Please, proceed carefully following the tips published in this blog, specially when Main Power is involved. I'm not responsible for any damages caused by what is written in this blog.
Thank you

Saturday, 19 August 2017

Home Automation System - SONOFF and MQTT together

I'm ready to test MQTT communication with my SONOFF Basic, also connected to a real button to light up my garden lamp.

I think it's important to be able to manage lights through standard buttons and switch, not only by Home Automation Software as openHAB and others, to avoid failures due to network problems.

So, I did another little hack to SONOFF: I soldered two little wire to its push button; these wires will be linked to a standard button on the wall.

Here are the wires connected to the button on the SONOFF

In this way, the standard button will activate the relays in the same way the button on the SONOFF or the APP will.

Last thing, to close the SONOFF with its case I have to make a little hole on the side to let the wires passing by:

Now, it's time to connect the SONOFF with the main power and link a standard button with the wires. In the INPUT pin I connected phase and neutral of the main power and in the OUTPUT pin I connected phase and neutral of the garden lamp.

Ok, after a little test all is working as expected. I pushed the button twice and lamp lighted up and down Thanks again to Piero who helped me to link the sonoff to the main power.

Now I can inspect the MQTT messages involved.

I use the web console, opening it through a internet browser, typing the ip address of the SONOFF in the address bar. Then, accessing the "Console" menĂ¹ I can take a look at the MQTT messages.

The first thing I noticed is the telemetry messages, sended by device about every 10 seconds (this timeout is managed by the TELEPERIOD parameter); the message content is a JSON string, which contains many informations (POWER, the state of the relay is the most interesting one for me in this moment); the MQTT topic is tasmota/garden/light/sonoffbasic01/tele/STATE, following what I wrote in a previous post (http://domoticsduino.blogspot.com/2017/08/home-automation-system-sonoff-and-mqtt.html).

In the following screenshot, the marked lines show the MQTT messages sequence:

After I pushed the button for the first time. the relay went on the ON state and the system sent a MQTT message with topic tasmota/garden/light/sonoffbasic01/stat/RESULT, with content POWER: ON. This is the confirmation sent by the device; the command has been well understood. When the relay changed its state to ON, the device sent another MQTT message with topic tasmota/garden/light/sonoffbasic01/stat/POWER and value ON. Now the relay is active and the lamp is ON.

The next telemetry messages confirmed this too. The POWER variable now has the value ON.

Then I pressed the button for the second time: the relay changes its state to OFF and the system sent the following MQTT messages:
tasmota/garden/light/sonoffbasic01/stat/RESULT {POWER: OFF} and tasmota/garden/light/sonoffbasic01/stat/POWER OFF. Now the lamp is OFF.

We get the same behaviour using the TOGGLE button on the web interface.

or sending POWER ON and POWER OFF commands directly from the web console.

As last step, I powered on the lamp using the MQTT POWER ON message, using a standard MQTT client, connected to our broker.

Normally I use MQTT-SPY, a very useful java software which permits to send and receive MQTT messages.

My message must belong to the topic tasmota/garden/light/sonoffbasic01/cmnd/POWER and must have the ON value. The lamp will turn ON.