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. Mostra tutti i post
Visualizzazione post con etichetta sonoff. Mostra tutti i post

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
-----------------------------------------------------

sabato 1 settembre 2018

Home Automation System - SONOFF 4 channel integrato in OpenHAB






Nel post precedente avevo introdotto il mio SONOFF 4 channel, descrivendo gli step fisici di installazione nell'impianto.

Questo bel dispositivo mi andrà a pilotare 4 luci: 1 interna e 3 esterne; naturalmente la centralina di controllo sarà sempre il solito OpenHAB con le sue belle e comode sitemap; il protocollo di comunicazione tra SONOFF e OpenHAB sarà, as usual, l'ormai arcinoto MQTT

Come prima cosa andiamo a configurare il SONOFF tramite interfaccia web, raggiungibile attraverso browser utilizzando l'indirizzo ip assegnato al device



Il primo step è settare il tipo di modello nella sezione Configuration -> Configure Module




Successivamente, nella sezione Configuration -> Configure MQTT, oltre alle solite informazioni di connessione al broker MQTT, inseriamo il topic così come lo vuole TASMOTA e cioè separato in TOPIC e FULLTOPIC



In questo caso il dispositivo trasmetterà e sarà in ascolto sul topic smarthome/sonoff4ch14/###
Al posto di ### TASMOTA andrà ad inserire il tipo di messaggio che andrà ad inviare (ad esempio cmnd per i comandi, state per le informazioni di stato, etc etc)

Tralascio il resto della configurazione che è praticamente identico a quanto già fatto sugli altri SONOFF.

Adesso tocca ad OpenHAB...vanno subito aggiunti i 4 item che mapperanno le 4 luci da comandare...

Creiamo quindi un nuovo file, chiamato sonoff4ch.items, nella solita cartella /etc/openhab2/items nel quale andremo ad inserire gli item da creare:


Come si vede, il topic MQTT è identico per tutti e 4 gli items...quello che cambia è il nome della proprietà, indicizzato da un numero con lo scopo di distinguere quale dei 4 relè entra in gioco.

Ultimo step....far vivere i 4 items attraverso una sitemap e prendere così il controllo del sonoff tramite APP OpenHAB (oltre che dai pulsanti a muro, cablati direttamente sui bottoni presenti nel sonoff)

Inseriamo allora i nostri 4 items nella sitemap già attiva per la gestione delle luci

(i 3 items per le luci esterne...)

Ecco il risultato nella sitemap completa:


Non ci resta che premere i pulsanti e vedere come si comportano le luci coinvolte.

Ecco un video con alcune prove



venerdì 17 agosto 2018

Home Automation System - Utilizzo del SONOFF 4ch




Finalmente trovo un pò di tempo per proseguire con la mia "domotizzazione" di casa...
E' già da un pò di tempo che ho in casa il SONOFF 4 channel, il più grande.


Con questo semplice aggeggino sono in grado di pilotare, tramite connessione Wifi, 4 carichi. Nel mio caso lo utilizzerò per comandare 4 luci tra interno ed esterno.

Oltre ai connettori di collegamento di neutro, fase e terra per i 4 canali di uscita più un canale di ingresso per l'alimentazione, sono presenti 4 pulsanti che consentono di comandare le 4 uscite. Fondamentalmente è come se fossero 4 SONOFF Basic in un unico apparecchio e con un'unica connessione Wifi.

Come sempre, non utilizzerò il firmware standard, che permette l'utilizzo del dispositivo solo tramite app proprietaria EWelink, ma andrò a caricare l'ormai famosissimo firmware TASMOTA per una facile integrazione in OpenHAB tramite protocollo MQTT

Ecco il SONOFF durante l'upload del firmware tramite seriale


Come sempre, basta seguire le indicazioni presenti sul Wiki ufficiale di TASMOTA ed il gioco è fatto. In questo caso i connettori seriali sono anche molto comodi...

Ricordarsi che è un'operazione irreversibile, in quanto non è più ripristinabile il firmware originale

Per poter comandare il SONOFF anche tramite pulsante tradizionale ho pensato di rendere disponibili i 4 pulsanti integrati nel dispositivo stesso...collegandoli opportunamente ai pulsanti / interruttori a muro...

Fortunatamente non butto via mai niente ed in questo caso torna molto utile un cavetto seriale maschio/femmina per connettere in maniera comoda e plug and play i pulsanti/interruttori a muro con i pulsanti del SONOFF.

Grazie all'aiuto del solito Piero siamo (anzi è) riusciti a saldare i terminali della femmina ai pin dei 4 pulsanti


facendo uscire il connettore dalla scatola del SONOFF


Dall'altro lato abbiamo un cavo di rete collegato ai pulsanti a muro


al quale è stato saldato il connettore maschio seriale per poter connettersi al SONOFF


Il gioco è fatto...adesso non mi resta che configurare il dispositivo ed integrarlo in OpenHAB tramite MQTT...

Alla prossima puntata...

domenica 29 ottobre 2017

Home Automation System - Nuovi arrivi in posta...




Venerdì scorso, il postino ha bussato alla porta e mi ha portato alcuni nuovi giocattolini dalla Cina...


Tra gli altri, abbiamo

- un SONOFF B1, lampada RGB controllata via WiFi;
- un SONOFF 4Ch, 4 relay comandati via WiFi;
- alcuni sensori di temperatura / umidità DHT11
- alcune coppie di trasmettitori / ricevitori RF433
- un paio di ESP8266 NodeMCU

Il progetto va avanti...

domenica 8 ottobre 2017

Home Automation System - Controllo degli aggiornamenti di TASMOTA con OpenHAB v.2




Un piccolo post riguardo l'inserimento in OpenHAB v.2 di una notifica automatica in caso di aggiornamento della versione del firmware TASMOTA per i SONOFF

Come abbiamo già scoperto in un post precedente e come si "intuisce" dalla documentazione ufficiale di TASMOTA (https://github.com/arendst/Sonoff-Tasmota/wiki/Upgrade#firmware-binary-sources), l'utente @smadds gestisce un broker MQTT pubblico "sonoff.maddox.co.uk:1883" sul quale viene pubblicato l'ultimo aggiornamento della versione del firmware TASMOTA su topic sonoff-version.

Sulla mia configurazione ho facilmente aggiunto un "item" legato, tramite MQTT, a questo valore che poi ho pubblicato sulla mia sitemap.

Per prima cosa ho dovuto creare una nuova connessione MQTT (chiamata sonoffmaddox-mqtt) al broker di @smadds, andando ad aggiungere al file /etc/openhab2/services/mqtt.cfg le seguenti righe:

sonoffmaddox-mqtt.url=tcp://sonoff.maddox.co.uk:1883
sonoffmaddox-mqtt.clientId=
sonoffmaddox-mqtt.user=
sonoffmaddox-mqtt.pwd=
sonoffmaddox-mqtt.qos=0
sonoffmaddox-mqtt.retain=true

Ho creato quindi un nuovo file nella cartella /etc/openhab2/items che ho chiamato general.items, nel quale ho inserito la seguente riga:

String      SonoffTasmotaVersion      "SONOFF Tasmota Version [%s]"     <settings>
{mqtt="<[sonoffmaddox-mqtt:sonoff-version:state:default]"}


Il mio item si chiama SonoffTasmotaVersion, è di tipo "String" ed è legato alla connessione mqtt sonoffmaddox-mqtt, topic sonoff-version. In questo modo tutte le volte che verrà pubblicato qualcosa sul topic sonoff-version del broker sonoff.maddox.co.uk:1883 il mio item verrà aggiornato.

Ultimo passaggio: aggiungere l'item nella sitemap, in modo tale da visualizzare sempre l'ultima versione disponibile di TASMOTA.

Per fare questo, modifico il solito file /etc/openhab2/sitemaps/test.sitemap, aggiungendo, in testa, la visualizzazione dell'item appena creato, all'interno di un "frame" chiamato "general":

Frame label="General" {
    Text item=SonoffTasmotaVersion
}

Ecco il risultato:



Per rendere tutto più utile, ho inserito una regola che mi notifica ogni volta che la versione di TASMOTA viene aggiornata.

Aggiungo quindi il file /etc/openhab2/rules/checks.rules ed inserisco le seguenti righe all'interno:

rule "tasmota version check"
when
Item SonoffTasmotaVersion changed
then

logInfo("rules", "New Tasmota Version " + SonoffTasmotaVersion.state)

sendNotification([user_to_be_notified], "New Tasmota Version " + SonoffTasmotaVersion.state)

end

La funzione sendNotification invia una notifica all'utente specificato; questa notifica viene visualizzata sui dispositivi mobile che hanno installato l'app di OpenHAB agganciata al cloud di OpenHAB (MyOpenHAB). La configurazione è molto semplice; basta seguire la guida ufficiale qui http://docs.openhab.org/addons/io/openhabcloud/readme.html

Attendo il prossimo aggiornamento per verificare che la regola funzioni.

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.


Ecco un video con i test di entrambe le modalità





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:









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],
                     <[openhabianpi- mqtt:tasmota/garden/light/sonoffbasic01/tele/STATE:state:JSONPATH($.POWER)],
                     >[openhabianpi-mqtt:tasmota/garden/light/sonoffbasic01/cmnd/power:command:*: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:

Frame label="Lights" {

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: