Disclaimer

Prestare sempre attenzione a seguire le indicazioni fornite in questo blog, soprattutto se si tratta di apparecchiature elettriche collegate alla tensione di 220V. Non mi ritengo responsabile di danni causati dall'aver seguito i consigli qui pubblicati.
Grazie

sabato 19 agosto 2017

Home Automation System - SONOFF e MQTT all'opera




Sono pronto per fare un test di comunicazione MQTT con il SONOFF Basic che collegherò ad un pulsante per accendere in remoto la luce di un lampione in giardino.

Infatti secondo me è importante che il controllo delle luci sotto SONOFF possa avvenire anche attraverso l'utilizzo di pulsanti ed interruttori standard, presenti in un normale impianto elettrico e non solo attraverso applicazioni di Home Automation (OpenHAB nel mio caso...), altrimenti si corre il rischio di non riuscire ad accendere la luce ad esempio in situazioni di malfunzionamento della rete domestica.

Per fare questo bisogna fare un'ulteriore piccola modifica al SONOFF e cioè permettere il controllo del pulsante fisico presente sul dispositivo attraverso il pulsante a muro. La cosa è relativamente semplice: basta saldare due fili di comando al pulsante presente nel SONOFF e collegarli al nostro pulsante.

Ecco i fili di comando del pulsante del SONOFF


In questo modo l'azionamento del pulsante a muro fisicamente attiverà il pulsante del SONOFF attivando / disattivando il relè interno, come se fosse stato comandato tramite l'APP.

Per richiudere il SONOFF, basta praticare un piccolo foro nel coperchio, per far uscire i due fili:


A questo punto non mi rimane che inserire il SONOFF in una scatola a muro e far arrivare i due fili al pulsante di comando. Ai pin di INPUT del SONOFF faccio arrivare fase e neutro e ai pin di OUTPUT collego fase e neutro del lampione.

Collegato il tutto faccio subito una prova. Bene funziona tutto. Il solito ringraziamento a Piero per l'aiuto dei collegamenti fisici della tensione.

Adesso vediamo i messaggi MQTT che entrano in gioco.

Aprendo la console web del dispositivo, digitando il suo indirizzo ip nel browser ed accendendo al menù "console", si possono visualizzare i messaggi scambiati.


La prima cosa che balza all'occhio sono i messaggi di telemetria che il dispositivo invia circa ogni 10 secondi (perchè abbiamo impostato in questo modo la proprietà TELEPERIOD); il contenuto è un messaggio JSON con diverse informazioni, il topic è tasmota/garden/light/sonoffbasic01/tele/STATE, secondo quanto descritto nel posto precedente (http://domoticaduino.blogspot.it/2017/08/home-automation-system-sonoff-e-mqtt.html). Nel blocco di informazioni trasmesse, vediamo che c'è anche lo stato del relè, variabile POWER.

Nelle righe evidenziate nello screenshot seguente, vediamo la sequenza di messaggi MQTT durante la pressione del pulsante:


Alla prima pressione del pulsante, il relè si attiva e il sistema invia il messaggio con topic tasmota/garden/light/sonoffbasic01/stat/RESULT, contenente valore POWER: ON. E' la conferma che manda il dispositivo per dire che ha capito cosa deve fare. All'attivazione del relè arriva anche il messaggio con topic tasmota/garden/light/sonoffbasic01/stat/POWER e valore ON. A questo punto il relè è attivo e il lampione è acceso.

Si può vedere che nel successivo invio dei dati di telemetria, la variabile POWER adesso ha il valore ON

Alla seconda pressione del pulsante, il relè si disattiva e il sistema invia i messaggi tasmota/garden/light/sonoffbasic01/stat/RESULT {POWER: OFF} e tasmota/garden/light/sonoffbasic01/stat/POWER OFF. Il lampione è spento.

Lo stesso comportamento lo possiamo ottenere premendo il pulsante TOGGLE sull'interfaccia web del dispositivo


oppure inviando i comandi POWER ON e POWER OFF direttamente dalla console


Da notare che i messaggi MQTT di stato vengono inviati anche se lo stato è variato grazie a fattori esterni a MQTT.

Come ultimo step, accendo il lampione inviando il comando MQTT POWER ON, utilizzando un qualunque client MQTT connesso al nostro broker.

Io uso MQTT-SPY, molto utile sia per inviare messaggi che per vedere quelli che transitano, sottoscrivendo i topic di interesse.

Il messaggio da inviare deve appartenere al topic tasmota/garden/light/sonoffbasic01/cmnd/POWER ed avere valore ON. Il lampione si accenderà.