Blog migrato su nuova piattaforma
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
Visualizzazione post con etichetta sonoff basic. Mostra tutti i post
Visualizzazione post con etichetta sonoff basic. Mostra tutti i post
martedì 16 giugno 2020
venerdì 26 ottobre 2018
Home Automation System - Domotizziamo una lampada
Continuiamo, un passettino alla volta, la costruzione del nostro Home Automation System, basato su OpenHAB.
Questa volta tocca ad una lampada da pavimento che abbiamo in soggiorno, da rendere SMART attraverso un semplice SONOFF BASIC.
Ecco una parte del mio arsenale:
Per chi non lo conoscesse, il SONOFF è un semplice "pulsante wifi" che permette di pilotare dei carichi in remoto. Il modello Basic é la versione più semplice in quanto contiene un solo relè, quindi permette di pilotare un solo carico.
Lavoretto relativamente semplice questa volta in quanto non dobbiamo andare alla ricerca di passaggi strani nei tubi dell'impianto attuale e soprattutto non abbiamo bisogno di cercare uno spazio dove inserire il SONOFF.
Operiamo alla luce del sole...
Quello che si deve fare è andare a sostituire il pulsante della lampada con il SONOFF...taglio quindi il filo ai capi del pulsante e lo sfilo via...la parte di filo che va alla presa di corrente verrà collegata all'INPUT del SONOFF, mentre il filo che va verso la lampada sarà collegato all'OUTPUT. Detto fatto...
Complichiamo un pochino la faccenda: sul Wiki di TASMOTA (https://github.com/arendst/Sonoff-Tasmota/wiki/DHT11-Wiring---Sonoff-Basic), il firmware custom caricato sui miei SONOFF, che ne permette, tra le altre cose, l'integrazione in OpenHAB tramite protocollo MQTT, apprendo che questo firmware è in grado di gestire anche un sensore di temperatura / umidità connesso ad un pin di INPUT libero nel SONOFF, il GPIO14. Fortunatamente il sensore gestito è il DHT11 e io ne possiedo un paio.
Questo sensore ha 3 pin, Vin, GND e OUT. Connetto quindi al Vin e al GND i rispettivi segnali presi dal SONOFF e al pin di OUT collego il GPIO14...scopro dove sono fisicamente collocati questi pin sul SONOFF sempre dal solito Wiki di TASMOTA (https://github.com/arendst/Sonoff-Tasmota/wiki/GPIO-Locations)
Ecco i tre fili saldati e protetti da guaina termorestringente
Adesso non mi resta che saldare l'altro capo dei fili al sensore DHT11...
Anche qui, metto della guaina per protezione...i contatti sono molto vicino tra loro
Ed ecco il nostro SONOFF al completo...
Adesso non mi rimane che fare un piccolo foro nel coperchio del SONOFF per far passare i fili, chiudere tutto e collegarlo alla corrente
Ed ecco la lampada, con il SONOFF in basso a destra e il sensore di temperatura temporaneamente appeso al palo...
Adesso tocca alla configurazione software...tramite il solito pannello web del SONOFF, andiamo a dire che abbiamo connesso un sensore al GPIO14
e poi inseriamo le solite informazioni per la comunicazione MQTT e altro...(nulla di diverso dagli altri SONOFF)
Tornando alla home page dell'interfaccia WEB si vede che nella parte alta sono apparse le informazioni rilevate dal sensore DHT11
Passiamo ad OpenHAB...devo, come sempre, definire gli items agganciati al topic MQTT con il quale il SONOFF invia e riceve le informazioni dal mondo esterno...
Nel mio caso il topic che ho scelto è smarthome/light_env/%topic%/%prefix%/
Sniffando la console del SONOFF si vede che, oltre al solito invio di informazioni circa lo stato del pulsante, viene inviato anche lo stato del sensore, con un prefix diverso
Sarà questo topic che dovrò agganciare agli item di OpenHAB per ricevere le informazioni di temperatura ed umidità rilevate dal DHT11
Ecco il risultato sull'applicazione
Ed ecco la dashboard di Grafana
Per quanto riguarda il pulsante per accendere la lampada, nulla di diverso rispetto al solito
-----------------------------------------------------
Oggetti simili usati in questo progetto
-----------------------------------------------------
lunedì 2 ottobre 2017
Home Automation System - Pulsanti e Switch esterni al SONOFF Basic con TASMOTA
Per utilizzare i SONOFF nel mio impianto luci, ho bisogno che siano attivabili, oltre che tramite OpenHAB anche fisicamente, tramite pulsanti e/o interruttori classici da parete.
Il modo più semplice è quello di usare un pulsante collegato direttamente ai pin del pulsante fisico presente nel SONOFF. Avevo già fatto una prova con il primo SONOFF Basic, come descritto in un post precedente (http://domoticaduino.blogspot.com/2017/08/home-automation-system-sonoff-e-mqtt_19.html).
In questo modo possiamo attivare e disattivare il SONOFF come se agissimo sul pulsante fisico. Ma nel mio caso, ho la necessità di dover controllare i SONOFF anche tramite interruttori/switch da parete. Leggendo la documentazione di TASMOTA, scopro che c'è la possibilità di collegare un pulsante o un interruttore al GPIO14. La cosa bella è che grazie a TASMOTA possiamo decidere se utilizzare un bottone o un interruttore; quindi attivare il SONOFF con un impulso (pulsante) oppure con un segnale continuo (interruttore).
Per fare questo occorre collegare il pulsante / interruttore al pin GPIO14 e al GND; entrambi i pin sono facilmente raggiungibili sul SONOFF Basic. Il GPIO14 è il pin non utilizzato sulla basetta dell'interfaccia seriale, mentre il GND lo ritroviamo subito di fianco (già utilizzato per la comunicazione seriale).
Una volta collegato il pulsante / interruttore non dobbiamo far altro che dire a TASMOTA che al GPIO14 è collegato uno SWITCH e configurare la modalità con cui dovrà lavorare.
Sull'interfaccia web del SONOFF, nel menù di configurazione modulo, vado a settare la tendina del GPIO14 con il valore 09 Switch1
Successivamente si dovrà settare il parametro SwitchMode, tramite Console. Se lavorerò con un pulsante, setterò il valore 3, se invece avrò un interruttore inserirò il valore 0.
Qui maggiori informazioni: https://github.com/arendst/Sonoff-Tasmota/wiki/Understanding-SwitchMode-and-SwitchTopic
Ecco un video con i test di entrambe le modalità
Etichette:
button,
home automation system,
iot,
sonoff,
sonoff basic,
switch,
tasmota
sabato 30 settembre 2017
Home Automation System - MQTT, SONOFF e OpenHAB v. 2
E' arrivato finalmente il momento di integrare MQTT in OpenHAB v.2.
Come descritto in un post precedente (http://domoticaduino.blogspot.com/2017/08/home-automation-system-sonoff-e-mqtt_19.html), attualmente ho un SONOFF Basic già installato e che comanda un lampione in giardino. Come abbiamo visto è già configurato per lavorare con MQTT e quindi lo integriamo in OpenHAB.
Seguo step by step il wiki di Tasmota, dove si parla di integrazione con OpenHAB (https://github.com/arendst/Sonoff-Tasmota/wiki/openHAB) e come prima cosa installo diversi ADDONS in OpenHAB:
- MQTT Binding: http://docs.openhab.org/addons/bindings/mqtt1/readme.html
- MQTT Action: http://docs.openhab.org/addons/actions/mqtt/readme.html
- JsonPath Transformation: http://docs.openhab.org/addons/transformations/jsonpath/readme.html
A questo punto bisogna configurare la connessione di OpenHAB verso il broker MQTT, che ricordo essere installato sul Raspberry PI 3 dove c'è anche lo stesso OpenHAB. Per fare questo bisogna modificare il file di configurazione /etc/openhab2/config/mqtt.cfg o direttamente dalla shell linux (con nano o vi) oppure utilizzando Eclipse SmartHome Designer, un editor di testo evoluto che semplifica la modifica dei file di configurazione di OpenHAB v.2. Io lo utilizzo per comodità. La sua installazione è molto semplice e quello di cui necessita è semplicemente il path in cui trovare i file di configurazione di OpenHAB. Nel mio caso ho mappato una unità disco di rete chiamata Z che punta alla share samba definita automaticamente durante l'installazione di openHABianPI.
In particolare i parametri di configurazione che ho configurato sono i seguenti:
openhabianpi-mqtt.url=tcp://localhost:1883
server e porta del broker MQTT
openhabianpi-mqtt.clientId=openhabianpi
Client Id con cui openHAB si presenta al broker MQTT
openhabianpi-mqtt.user=openhabian
Username per l'accesso al broker MQTT
openhabianpi-mqtt.pwd=XXXXXXX
Password per l'accesso al broker MQTT
openhabianpi-mqtt.retain=true
Indica se al broker se mantenere i messaggi inviati
openhabianpi-mqtt è il nome logico che ho dato alla connessione ed è ripetuto in ogni parametro, questo perchè potremmo avere diverse connessione mqtt ognuna con il proprio nome. Questo nome verrà poi utilizzato nella configurazione degli items.
Se tutto è andato a buon fine, all'avvio di OpenHAB si dovrebbero trovare due righe di log simili a queste:
Bene, adesso si devono configurare gli items e la sitemap di OpenHAB.
Creo quindi un file nella cartella /etc/openhab2/items chiamato sonoffbasic01.items ed in cui vado ad inserire le definizioni degli items legati al comando del lampione da gestire.
Vado quindi a definire un oggetto di tipo "Switch" (di categoria light) che verrà agganciato al full topic mqtt del SONOFF Basic 01, che ricordo essere tasmota/garden/light/%topic%/%prefix%/. Ecco la sintassi:
Switch Garden_Light_1Lamp "Garden 1-Lamp" <light>
(gLightSwitchGarden)
{mqtt="
<[openhabianpi-mqtt:tasmota/garden/light/sonoffbasic01/stat/POWER:state:default],
(gLightSwitchGarden)
{mqtt="
<[openhabianpi-mqtt:tasmota/garden/light/sonoffbasic01/stat/POWER:state:default],
}
Per informazioni sulla sintassi dei file .items, consultare la documentazione ufficiale http://docs.openhab.org/configuration/items.html
In questo modo ho definito un item chiamato Garden_Light_1Lamp agganciato ai messaggi MQTT appartenenti a determinati topics definiti dal blocco racchiuso tra {...}
Adesso vado ad inserire l'item in una sitemap per poterlo utilizzare. Modifico quindi il file di definizione della sitemap, andando ad aggiungere le seguenti righe:
Switch item=Garden_Light_1Lamp label="Garden Light 1 Lamp" icon="switch"
}
Non appena salvato, OpenHAB aggiorna la sitemap e se quindi andiamo a vederla, troviamo il nuovo blocco "Lights"
Ecco un video che riassume l'esito dell'integrazione:
lunedì 4 settembre 2017
Home Automation System - Nuovi arrivi...
Mentre proseguono i miei test per l'interfacciamento e la configurazione dei dispositivi, ecco arrivati altri nuovi bimbi...
5 SONOFF Basic + una New Entry: 1 SONOFF Dual
Il DUAL non è nient'altro che un SONOFF basic con due relays comandabili indipendentemente.
Eccoli, subito "marchiati" con il loro futuro nome:
Come sempre la prima cosa che faccio prima di aprirli ed aggiornarli con il firmware TASMOTA è quella di testarli con il software standard EWeLink
Lo schema di collegamento è simile al SONOFF Pow, in quanto i terminali sono tutti da un lato.
Non esiste il collegamento per la terra, ma solo 3 coppie di Fase / Neutro, 1 per l'INPUT e 2 per i carichi da controllare.
Ecco la procedura di attivazione per il nuovo arrivato SONOFF DUAL con EWeLink
martedì 22 agosto 2017
Home Automation System - SONOFF e TASMOTA, piccolo errore di configurazione
Giocando con il SONOFF Basic con firmware TASMOTA e MQTT mi sono accorto di un piccolo errore sulla messaggistica scambiata. In sostanza, nel momento in cui mandavo il messaggio MQTT per l'accensione o lo spegnimento (tasmota/garden/light/sonoffbasic01/cmnd/POWER ON), il SONOFF come risposta inviava un messaggio con il topic standard (stat/sonoffbasic01/RESULT) e non quello inserito da me nel parametro "FullTopic".
All'inizio pensavo fosse un baco del firmware e quindi ho subito aperto un "issue" sulla pagina GitHub di TASMOTA.
Nel giro di qualche ora sono arrivato alla soluzione del problema, dovuta non ad un baco del firmware ma ad un mio errore di configurazione.
In particolare, ho lasciato il valore di default per il parametro "MqttClient" che quindi ho scoperto assumre lo stesso valore del parametro "Topic". Per come funziona TASMOTA questo porta al comportamento evidenziato. E' quindi bastato settare il parametro "MqttClient" ad una stringa diversa dal "Topic" (nel mio caso mqtt-sonoffbasic01), ricordando sempre che anche questo dev'essere univoco all'interno del sistema, e tutto ha ripreso a funzionare come mi aspettavo.
Questo è il link della discussione, se qualcuno vuole approfondire:
https://github.com/arendst/Sonoff-Tasmota/issues/760
Devo ammettere che nel giro di poche ore ho risolto il problema grazie al grande supporto dello sviluppatore.
GRAZIE Theo Arends
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à.
Etichette:
firmware,
home automation system,
iot,
mqtt,
sonoff,
sonoff basic,
tasmota,
wifi switch
giovedì 10 agosto 2017
Home Automation System - SONOFF e MQTT, accoppiata vincente...
Bene, è arrivato il momento di far funzionare come si deve questi ottimi SONOFF.
Ricapitolando, ad oggi ho due SONOFF pronti all'uso. Un SONOFF Pow e un SONOFF Basic, entrambi customizzati con firmware TASMOTA
Attraverso questo firmware, i dispositivi diventano controllabili tramite comunicazione seriale, web (http) e, dulcis in fundo, MQTT,
l'ormai famoso protocollo di connettività utilizzato prevalentemente in sistemi IoT, grazie alla sua leggerezza e affidabilità. Ho introdotto MQTT in un post precedente (vedi http://domoticaduino.blogspot.it/2017/07/home-automation-system-la-scoperta-dei.html)
Io utilizzerò prevalentemente il protocollo MQTT; per far ciò, è necessario configurare il SONOFF, andando ad inserire i dati del broker MQTT e dei topic che si andranno ad utilizzare. Come sempre, il Wiki di TASMOTA ci viene in aiuto per capire cosa e come fare...(vedere https://github.com/arendst/Sonoff-Tasmota/wiki/MQTT-Features)
Chi non avesse il servizio di broker MQTT (il più famoso è Mosquitto), può utilizzare, solo per scopi di test, dei broker MQTT pubblici gratuiti (Mosquitto Test Server, Hive MQ, Eclipse sono solo alcuni tra i più famosi...)
Accedendo quindi alle pagine di configurazione dei SONOFF è possibile andare ad inserire tutti i dati inerenti a MQTT. Navighiamo quindi tramite browser sulla console di gestione del SONOFF Basic, inserendo l'indirizzo ip o il nome del SONOFF nella barra degli indirizzi. Apparirà qualcosa di simile:
Cliccando su "Configuration" ==>
Tra le tante voci di configurazione presenti, focalizziamoci su "Configure MQTT"; le altre sono abbastanza "autoesplicative".
Inserisco quindi le informazioni del broker MQTT nei campi Host (indirizzo ip o nome server) e Port (la porta di default del broker MQTT è la 1883).
Il campo Client ID indica come si presenta il dispositivo quando si connette al broker MQTT. Si può inserire una stringa a piacere, che però sia univoca tra tutti i dispositivi.
I campi User e Password sono utili se il broker MQTT necessita di autenticazione (consigliato!!!)
I campi Topic e Full Topic sono i due campi più importanti per il corretto utilizzo tramite MQTT. Questa è la pagina del wiki dove potete trovare ulteriori informazioni: https://github.com/arendst/Sonoff-Tasmota/wiki/MQTT-Features#mqtt-topic-definition
- Topic: normalmente identifica il dispositivo e farà normalmente parte del Full Topic MQTT. E' bene che sia univoco per tutti i dispositivi.
- Full Topic: è il topic completo utilizzato dal dispositivo per inviare e ricevere i messaggi MQTT
All'interno del Full Topic è possibile inserire due "variabili", chiamate %topic% e %prefix%.
Inserendo %topic% nel nostro Full Topic, caratterizziamo il messaggio con il dispositivo che lo ha gestito. Questa variabile può assumere i valori delle variabili di sistema Topic, GroupTopic, ButtonTopic, SwitchTopic e MqttClient, in base alla situazione in cui è coinvolto.
%prefix% invece identifica il tipo di messaggio e può assumere tre valori distinti, corrispondenti alle variabili di sistema Prefix1, Prefix2 e Prefix3
- Prefix1 = cmnd, utilizzato per i messaggi di comando
- Prefix2 = stat, utilizzato per i messaggi di stato del dispositivo
- Prefix3 = tele, utilizzato per i messaggi di telemetria del dispositivo
Quando parlo di variabili di sistema, intendo tutta una serie di proprietà configurabili per ogni dispositivo, introdotte dal firmware TASMOTA. Vi assicuro che ce ne sono veramente tante...Qui trovate la lista completa: https://github.com/arendst/Sonoff-Tasmota/wiki/Commands#command-overview
Nel mio caso, ecco come ho configurato il mio SONOFF Basic:
Topic = sonoffbasic01
Full Topic = tasmota/garden/light/%topic%/%prefix%/
Come già detto precedentemente, il Topic identifica il dispositivo. Mi sono dato una "naming convention" che mi aiuta ad identificare la tipologia di dispositivo con un progressivo univoco al fondo. Quindi, ad esempio, il SONOFF Pow lo chiamerà sonoffpow02. Questa stessa identificazione la utilizzo anche come nome di rete del dispositivo (nella sezione di configurazione del WiFi) e come client id per MQTT.
Anche per il Full Topic mi sono dato una regola, che è la seguente: firmware/zona/tipologia/%topic%/%prefix%/
Queste sono chiaramente scelte molto soggettive, ma se si utilizzano nomenclatura cosiddette "parlanti" è facile capire cosa sta succedendo solo guardando i messaggi MQTT che passano dal broker.
Ultimo step, abilitare la messaggistica MQTT sul dispositivo, andando a verificare il flag MQTT enable nella pagina Configure Other.
Bene, a questo punto sono veramente pronto a fare un primo test di scambio messaggi MQTT.
******************************************************
Un piccolo aggiornamento dovuto ad un errore di configurazione che ho scoperto in un secondo momento
http://domoticaduino.blogspot.com/2017/08/home-automation-system-sonoff-e-tasmota.html
Iscriviti a:
Post (Atom)




















