Homey Community Forum

MQTT Broker for Homey

MQTT Broker for Homey

Since this post was on the old forum, i decided to post it also in the new forum.

Today the MQTT Broker App has been released in the App store beta channel.

With this App it is now possible to have a complete MQTT Broker on Homey. The app is based on the Mosca nodejs library. The Mosca library is a library that is used to implement a MQTT Broker on a web based platform using nodejs.

So you no longer need to install a MQTT Broker on a NAS, homeserver or use a MQTT Broker in the cloud. You can simply install one on your Homey (https://apps.athom.com/app/nl.scanno.mqttbroker ).

What is a MQTT broker?
A MQTT Broker is a service that provides a Publish / Subscribe mechanism often used in IoT solutions. This means that an App or Device can subscribe to a topic. When another App or Device publishes a message on that topic, all Apps or devices subscribed to that topic, will receive that message.

What do I need?
You just have to install the MQTT Broker for Homey App and go to its settings page. There you have to provide the IP port you want the broker to listen on for messages. If you don’t know what to enter there, use the default 1883 value.
Second you will need to enter usernames and passwords for Apps or Devices that need to have access to the Broker. And that’s it.

2 Likes

Selfsigned certificates

With the MQTT broker for Homey it is possible to generate selfsigend certificates to enable TLS connections. Using offically signed certificates is always better, but not everybody knows how to do this and even with a service like Letsencrypt it is still difficult to do so without having a running HTTP server that is connected to the internet.

Generating a selfsigned certificate is very easy with the MQTT Broker for Homey. After you have installed the MQTT Broker for Homey from the App Store, go to the settings page an go to the Session Settings. On that page check the Generate a selfsigned certificate checkbox.

In the CommonName field enter the DNS name where your Homey resolves to (or use the internet IP adress). As default the Days Valid field is set to 365 days. That means that the certificate will be valid for 365 days. After 365 days you will need to generate a new one.

After entering the CommonName field, just press the Generate Certificate button to start generating the selfsigned certificates. Please be patient because it can take up to 30 seconds (or more) until the generation has been completed.

Once generation has been completed, you will see the Private key and Certificate text boxes filled with data:

After the text boxes are filled, the generation process has finished. Press the Save certificate button to save them the the internal storage of homey.

Make sure you have enabled TLS also:

The secure connection will be available once you Stop en Start the Broker again:

Please enable Selfsigned certificates in apps like the Owntracks client and MQTT client if you use them.

Quick question: does retained messages work with this broker? I’m trying to attach a device which should react to retained messages if the device is disconnected or woken up from deep sleep. However, the retained message doesn’t seem to be received. Switching to mosquitto without doing any other changes :top: my code works as expected!

Does anyone know if WebSockets is supported in the Broker app? I trying to use an MQTT IOS Dashboard but I do not get it to connect.

I test with this http://www.hivemq.com/demos/websocket-client/

Hi guys, how do I find out whats the MQTT Host() ? Not sure how do I obtain that IP address. Need it to complete MQTT configuration of a tasmotized sonoff.

You need the op adres of your Homey?
In the homey app:
Settings / General / About

Hi
Is there anyone who can tell me how to use topic command.
i have an esp with espeasy on and can see it in my broker. It’s a temperature sensor. How do I get tempature in a flow.

3 Likes

Hi there, since a few days, my MQTT Broker is somehow rebooting many mornings between 7:20 and 7:24am, and sometimes in the afternoon.

I’ve got those messages in Homey:

The MQTT broker is UNAVAILABLE
The MQTT broker is AVAILABLE again

I’ve got no flow that intercats with the app. The big change i’ve made lately is Node-Red MQTT connected in a Raspberry. Any thoughts?

U get the same when WiFi is down:

image

So it may be my Orbi that’s reseting the connection with Homey? I’ll take a look into that, thanks.

Was this ever ascertained? I too think they may not be being correctly retained.

On this broker messages are NOT retained when the broker or homey is restarted. The messages are stored in memory, just for the simple fact that there is (or was) no database available to store messages in. That would have meant writing a storage mechanism myself. Not something that is easily done as you can imagine.

You should really state that in the ‘not implemented’ features