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

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

mercoledì 30 maggio 2018

Home Automation System - Misurazione dei consumi...versione definitiva




Sono passati diversi giorni dal mio ultimo post sul sistema di Home Automation ed avevamo lasciato un discorso in sospeso, in merito alla misurazione dei consumi di casa.

Il prototipo funziona bene, quindi è arrivato il momento di utilizzarlo per quello che è nato: misurare il consumo di casa.

Il mio progetto definitivo prevede di mettere 3 misuratori, uno per piano, per avere l'indicazione dei consumi differenziati. Certo, l'ottimale sarebbe avere un rilevatore per ogni punto luce presente in casa, ma, non avendoci pensato in fase di definizione impianti durante la costruzione, al momento sarebbe un lavoro immane. Mi accontento di avere un totale per piano...

La destinazione finale di questo primo rilevatore è il piano principale, dove ci sono i principali apparecchi da cucina da tenere sotto controllo.

Il punto migliore dove mettere il rilevatore è vicino al salvavita del piano, dove arrivano fase e neutro dall'esterno. In questo modo sono sicuro di monitorare tutto il passaggio di corrente del piano.

Individuo quindi la scatola di derivazione, mi faccio un paio di collegamenti per alimentare l'ESP8266 con un alimentatore da 5V e il PZEM-004T direttamente ed inserisco la pinza amperometrica attorno al cavo di fase principale.

Per adesso lascio i fili volanti per fare un test di funzionamento prima di chiudere il tutto:



Vediamo, con il solito mqtt-spy, se i messaggi MQTT arrivano:


Perfetto, tutto funziona. Posso mettere tutto in ordine e chiudere


Metterò poi bene in sicurezza la schedina, perchè lato sinistro (potenza) un po' di corrente passa...e non vorrei mai che mi finisse il dito li dentro per sbaglio :)

Adesso tocca ad OpenHAB e Grafana.

Iniziamo ad acquisire il dato su OpenHAB, come variabile numerica (prendo solo la potenza W), utilizzando il solito topic MQTT nella definizione dell'item. Inserisco quindi una nuova entry nella sitemap per la visualizzazione. Ecco il risultato:




Interessante metterlo a confronto con la produzione fotovoltaica (oggi non c'è il sole...e si vede).

Ultimo step, visualizzare i dati storici con Grafana. Anche qui, utile vedere i grafici di produzione (verde) e consumo (giallo) a confronto:



Visto il successo di questa prima prova, ho ordinato altri PZEM-004T, per completare il monitoraggio degli altri piani.

Alla prossima puntata!

mercoledì 18 aprile 2018

Home Automation System - Misurazione dei consumi...invio dei dati con MQTT





Rieccomi qua. Riprendiamo il discorso sulla rilevazione del consumo di energia da integrare in OpenHAB; ho fatto alcune passi avanti con le mie sperimentazioni.

Nel post precedente avevo fatto i primi test con il dispositivo PZEM-004T Energy Module, abbinato ad un Arduino UNO.




Test andati più che bene...ed adesso, come da programma, voglio sostituire Arduino UNO con un molto più economico Esp8266 NodeMCU

Ci sono un paio di osservazioni da fare in merito a questa sostituzione, in quanto Esp8266 NodeMCU lavora a 3.3V, rispetto ad Arduino che lavora a 5V, così come il PZEM-004T Energy Module, che, come abbiamo visto, necessita di 5V di alimentazione per la parte a bassa tensione.

Nel test precedente i 5V li prendevo direttamente da Arduino e quindi non avevo bisogno di diverse alimentazioni. In questo caso devo studiarmi qualcosa per evitare di dover alimentare il NodeMCU con 3.3V e il PZEM-004T con 5V.

Ogni tanto la fortuna aiuta gli audaci...le ultime schedine Esp8266 NodeMCU che ho comprato sono un modello particolare della LoLin che è in grado di essere alimentato a 5V tramite solito connettore microUSB ed ha un PIN di uscita della tensione di alimentazione (cosa che gli altri modelli non hanno...forniscono in uscita solo 3.3V)

Quindi, con un alimentatore di un vecchio cellulare, che fornisce 5V e 400mA e che ha l'attacco microUSB, riesco a fare tutto.


E allora, cabliamo il tutto.

Ecco le due schedine pronte per il collaudo.



Manca ancora la creazione del software. 

Come primo step, scrivo un programma del tutto simile a quello usato con Arduino, per verificare che i due dispositivi lavorino bene. Questa volta ho usato l'editor Visual Studio Code con plugin Platformio.

Ecco l'output della seriale durante il test.

Prima ho acceso una lampadina da circa 18W



E poi una da 100W


Il sistema reagisce bene...ottimo!

Non mi resta che modificare il software e fare in modo che le informazioni vengano mandate tramite MQTT, per una successiva integrazione su OpenHAB e Grafana.

Se i valori di consumo rimangono costanti, invio i dati circa ogni minuto; altrimenti, quando il sistema rileva un cambiamento di consumi sopra una certa soglia, invia i dati. Ho fatto in questo modo per evitare di inviare una mole di dati identici inutilmente.

Per adesso imposto un topic MQTT di test:

nodemcu/test/esp8266mcu12/powerconsumption/state

e attraverso il solito MQTT-SPY verifico la ricezione dei dati:


Tutto funziona egregiamente...non mi rimane altro che integrare il tutto in OpenHAB e vedere i dati tramite le sue sitemap e attraverso le dashboard di Grafana

Alla prossima puntata...

sabato 10 marzo 2018

Home Automation System - Misurazione dei consumi...primi test





Dopo una piccola pausa, dovuta a cause di forza maggiore, ritorno finalmente a parlare del mio sistema di Home Automation, sempre work in progress

In particolare volevo parlarvi dei primi test che ho fatto per implementare un sistema di misurazione dei consumi elettrici, da affiancare a quanto già fatto per il monitor della produzione del mio impianto fotovoltaico (trovate a questo link il relativo post).

Quello che sto cercando di fare è un qualcosa che sia facilmente integrabile in OpenHAB; non mi servono quei sistemi che vendono completi di display perché il mio obiettivo non è quello di fare delle verifiche manuali, ma piuttosto acquisire i dati di consumo per poter fare delle analisi, tenerli sotto controllo in remoto (senza il bisogno di essere sempre davanti al dispositivo...) ed eventualmente far scattare avvisi e/o notifiche...

OpenHAB, insieme a Grafana, ci permette di fare tutto questo in maniera relativamente semplice...la cosa fondamentale è quella di fargli arrivare i dati...

Il mio risultato finale dovrà essere un qualcosa in grado di leggere i consumi di casa, interfacciabile con OpenHAB tramite rete e relativamente piccolo per essere inserito in qualche scatola di derivazione...

Nelle mie ricerche su internet mi imbatto nel contatore Eastron sdm120c Modbus...



Un gran bel prodotto...che permette attraverso seriale RS485 la lettura di tutta una serie di parametri energetici, tra cui tensione, corrente e potenza...Essendo una lettura tramite protocollo seriale si può interfacciare ad Arduino e/o Raspberry per leggere ed inviare i dati. Non è proprio un dispositivo economico, ma al momento di meglio non ho trovato. Non è piccolo ma è montabile nei quadri elettrici.

Ero ormai quasi deciso a comprarlo quando per pura combinazione trovo un prodottino che potrebbe fare al caso mio...il PZEM-004T Energy Module, un piccolo dispositivo che, attraverso una pinza amperometrica, è in grado di leggere il consumo di corrente che passa attraverso una linea di fase...mette a disposizione una porta seriale per leggerne i dati, quindi è interfacciabile con Arduino / Raspberry e/o simili, ha dimensioni ridotte e soprattutto costa relativamente poco...sono riuscito a portarlo a casa con circa 8€ spedito...



Per adesso ne ho comprato uno solo...se i test vanno a buon fine ne prenderò altri...il mio obiettivo finale è quello di avere il monitoraggio indipendente dei 3 piani di casa...avendo un quadro elettrico su ogni piano, non devo far altro che intercettare la fase principale ed agganciare la pinza amperometrica...il resto lo farà il microcontrollore che lo affiancherà in questo duro lavoro. L'ideale sarebbe utilizzare uno dei tanti Esp8266 NodeMCU che ho già "a magazzino"...con il Wifi integrato e le dimensioni ridotte (così come il costo...) sarebbero la soluzione ideale! Se non risulterà compatibile, ci sarà sempre il solito Arduino a venirci in aiuto...anche se poi dovrò risolvere il problema del collegamento alla rete.
Sì, perché i dati verranno trasmessi ad OpenHAB tramite protocollo MQTT

Bene, non rimane altro che fare qualche prova...iniziamo con Arduino così il test è più facile, anche perché si trovano schemi di collegamento e software già fatti in rete...una volta appurato che il dispositivo funziona, proverò con il NodeMCU.

Il dispositivo dev'essere alimentato da un lato in bassa tensione con i fatidici 5V, mentre dall'altro (il lato di potenza) necessita della 220v.

Iniziamo i collegamenti con Arduino


  • GND e 5V da Arduino verso il dispositivo;
  • uscita seriale dal dispositivo verso due ingressi digitali di Arduino



L'altro lato del dispositivo invece vuole la connessione con la pinza amperometrica e la 220v. Per fare i test ho preso un portalampada con fase e neutro a vista, in modo tale che alla fase possa agganciare la pinza di misurazione. Il tutto termina con una normale spina.



Scarichiamo un software molto semplice per Arduino, che stampa sulla seriale i dati letti. Ecco l'output con luce spenta (lampadina svitata)...zero corrente, zero potenza:



Avvitiamo la lampadina, che si accende...




e sulla seriale di Arduino si vede il rilevamento della potenza...




Accendo e spengo la lampada più volte per verificare che tutto funzioni...OK, ci siamo...i primi test sono andati più che bene...

Prossimo step sarà quello di provare ad utilizzare un Esp8266 NodeMCU al posto di Arduino e poi iniziare ad inviare i dati ad OpenHAB.

Se tutto funzionerà correttamente penso proprio che ne comprerò almeno altri due...ed inizierò ad inserirli nel mio impianto.

giovedì 25 gennaio 2018

Home Automation System - Antifurto ed OpenHAB - Fase operativa




Come promesso, ecco la seconda parte del post relativo all'integrazione dell'antifurto con OpenHAB, solo per quanto riguarda lo stato degli ingressi...per poter monitorare anche in remoto il loro stato...cosa che la mia attuale centralina non mi permette di fare...


Passiamo quindi alla fase operativa (o distruttiva, dipenderà dall'obiettivo raggiunto 😱). Ricapitoliamo quanto c'è da fare:


  • portare tutti gli ingressi dell'antifurto al Raspberry PI3
  • costruire una piccola scheda di interfaccia per abbassare il segnale dei sensori / contatti da 4.5v a max 3.3v attraverso partitori di tensione (questo per non bruciare gli ingressi del raspberry)
  • connettere gli ingressi dell'antifurto agli ingressi di questa schedina e le sue uscite ai GPIO del raspberry
  • installare e configurare su OpenHAB il GPIO binding (vedere https://github.com/openhab/openhab1-addons/wiki/GPIO-Binding)
  • infine, inserire in una sitemap su OpenHAB gli oggetti per la visualizzazione dello stato degli ingressi dell'antifurto

Iniziamo...

Cablaggi vari

Il raspberry è vicino alla centralina dell'antifurto dove arrivano diretti 3 degli 11 ingressi che devo gestire...gli altri 8 sono gestiti da una scheda di espansione distante dalla centrale, alla quale è collegata solo tramite bus seriale...

Fortunatamente ci sono un paio di tubi vuoti che collegano le due scatole di derivazione...quindi mi basta passare un cavo di rete dalla scheda di espansione alla scatola vicino alla centrale (e quindi vicino al raspberry).

Ho scelto il cavo di rete perchè ha proprio 8 fili (quanti ne servono a me...), è schermato ed è comodo da passare...

E allora passiamo questo cavo...e dopo averlo passato colleghiamo i sui 8 terminali agli 8 ingressi della scheda di espansione dell'antifurto...


Questa sopra è la scatola di derivazione che contiene l'espansione dell'antifurto (scatola bianca in basso...) e tutti i segnali dei singoli sensori / contatti...
Il cavetto di rete è quello blu che si vede uscire dal secondo tubo a partire dall'alto...i suoi fili sono collegati ai morsetti neri che a loro volta sono collegati alla scheda di espansione.

Bene qui è tutto fatto...possiamo chiudere.

Andiamo al piano di sopra, dove c'è la scatola di derivazione che porta tutto alla centrale.

Ecco la scatola di derivazione, vicino alla centrale, dove arrivano tutti i cablaggi necessari...compreso il nostro cavetto di rete blu


Recupero anche i 3 ingressi non gestiti dalla scheda di espansione, ma collegati direttamente alla centrale, cercando di capire quali connessioni fossero quelle giuste in tutto questo groviglio...


Quindi, gli 8 fili del cavo di rete più i tre recuperati qui direttamente li porto alla schedina d'interfaccia autocostruita (e si vede...) con i partitori di tensione. Eccola, lato destro ingressi, lato sinistro uscite...al centro le resistenze per il partitore, una coppia per ogni ingresso...


Ultimo step, connessione tra uscite e GPIO del raspberry...


Se contate bene i fili, non sono 11 come detto prima ma 12...perchè oltre a tutte le connessioni dei segnali bisogna mettere anche la massa in comune tra impianto antifurto e Raspberry...il 12° filo è proprio questo...ed è connesso ad un terminale GND del raspberry (nel suo pin header ci sono più terminali GND...basta sceglierne uno comodo...)

Tutto collegato...il Raspberry si accende ancora e anche l'antifurto sembra ancora funzionante...bene, per adesso nulla di distruttivo!!!

Prima di passare al software faccio qualche prova: apro e chiudo le finestre e le persiane e verifico con il tester che il relativo ingresso passi da 0v a 3v (il partitore mi da 3v in corrispondenza del 4.5v originario) e viceversa.

Configuriamo OpenHAB

Adesso che la parte hardware è a posto (parola grossa!!!!), tocca al software...intervento sicuramente con potenzialità meno distruttive 😎

Installiamo su OpenHAB il GPIO Binding, che ci permette di interfacciare OpenHAB direttamente con i GPIO del raspberry su cui gira...

Come al solito passiamo dalla PAPERUI (l'interfaccia web di configurazione di OpenHAB) e seguiamo il percorso Add-ons -> Bindings


Per info dettagliate si può consultare la documentazione ufficiale

Fatto questo, occorre creare gli items OpenHab relativi ai singoli 11 ingressi che vogliamo gestire in modo che poi possano essere inseriti in una sitemap. Creiamo quindi il file gpio.items nella cartella /etc/openhab2/items ed inseriamo gli 11 oggetti legati ognuno ad un ingresso GPIO

Ecco come appare il mio file (editor Visual Studio Code con estensione Platformio, consigliatissimo!!!!)



Come vedete, oltre ad altri parametri, ogni riga è legata ad un pin diverso, che corrisponde ad un ingresso GPIO del raspberry. Il parametro activelow indica se bisogna considerare un contatto aperto se il segnale è a 0v ... nel nostro caso è a "no" perchè, come abbiamo visto, quando il contatto è APERTO, abbiamo tensione...

Aggiungiamo ancora gli items appena creati in una sitemap, editando il relativo file ed otteniamo a video qualcosa di simile a questo (visto da app OpenHAB su smartphone)


Adesso parte un periodo di verifica che tutto funzioni e stia in piedi ... non ne sono ancora certo al 100%, ma ci sono buoni presupposti...🍀🍀🍀



Disclaimer:

le operazioni indicate nel presente post sono eseguite a mio rischio e pericolo e non sono da utilizzare come guida tecnica. Chi effettua le stesse operazioni su proprio o altrui impianti ne è direttamente responsabile

venerdì 19 gennaio 2018

Home Automation System - Antifurto ed OpenHAB - L'idea iniziale




Incredibile ma vero!!! Sono riuscito a raggiungere un piccolo traguardo, inseguito da un pò di tempo...Riuscire ad integrare in OpenHAB lo stato dell'antifurto...più precisamente dei suoi ingressi!!!

Molti di voi diranno...beh, semplice...ormai tutti gli antifurti hanno questa caratteristica...tramite centraline moderne e app mobile è possibile farlo...certo!!! Ma il mio antifurto ha 10 anni e cambiare centralina ha un costo non di poco conto...e all'epoca non era così scontato avere un sistema "online" come oggi...

Il mio obiettivo era solo quello di intercettare lo stato dei sensori e non di permettere la gestione totale dell'antifurto, anche per un discorso di sicurezza...in sostanza, nel momento in cui per qualche motivo mi arriva la telefonata dall'antifurto a fronte di allarme, al volo riesco a capire quale sensore è stato aperto (chiaramente mentre mi catapulto a casa...)...ad oggi questa cosa non la posso fare perchè il combinatore telefonico non è in grado di interfacciarsi in maniera dettagliata alla centrale per capire quale ingresso ha fatto scattare l'allarme!!!

E allora basta intercettare tutti i cablaggi provenienti dai diversi sensori radar volumetrici e contatti magnetici, in qualche modo interfacciarli con una schedina tipo Arduino o simili in modo da ottenere lo stato di "APERTO" o "CHIUSO"...alla fine i diversi sensori dell'antifurto non fanno nient'altro che questo...

Inizio allora con i miei esperimenti per capire che tipo di segnale viaggia, documentazione alla mano...e scopro che, oltre al doppino che porta corrente a tutti i sensori / magneti (a 13.5v), ci sono tutti singoli fili, per ogni contatto / sensore che interessano a me...cioè, la massa di riferimento e la tensione...quando tra i due capi non c'è tensione, il contatto è CHIUSO, quando c'è una tensione positiva il contatto è APERTO...in sostanza sono gli 0 e gli 1 logici che interessano a me...

Prima di interfacciare il tutto con OpenHAB faccio delle prove con il tester...anche perchè devo capire che valore di tensione arriva sul contatto che mi identificherà il mio 1 logico...in base anche alla schedina che andrò ad usare come interfaccia, avrò delle soglie di tensione da rispettare per non bruciare gli ingressi...

Quindi, metto i terminali del TESTER tra massa e cavetto del segnale di un contatto (ad esempio porta d'ingresso, che è vicina alla scatola di derivazione...)...tensione pari a 0...perfetto, la porta è chiusa...Apro la porta, per sicurezza verifico la tastiera dell'antifurto che mi segnala contatto aperto e quindi controllo la tensione...4.5v...chiudo la porta...torna a 0...direi che funziona...ho intercettato il segnale che mi interessa...E' così per ogni sensore / contatto...

Direi che la mia idea può funzionare...poichè ho 11 ingressi da gestire (vari sensori e contatti singoli oppure messi in serie come unico ingresso...) devo trovare una schedina che mi permetta di gestire almeno 11 ingressi digitali, che abbia una tensione compatibile con i 4.5v forniti dai contatti e che possa essere connessa in rete per trasmettere l'informazione a OpenHAB tramite MQTT...

La scelta è tra

- una schedina NodeMCU ESP8266, con wifi integrato che però da specifica accetta solo 3.3v negli ingressi digitali;


- un Arduino UNO con shield ethernet che dovrebbe accettare fino a 5v negli ingressi digitali;


La prima scelta sarebbe più comoda perchè ha il wifi integrato ed è molto più piccola...bisognerà però fare un piccolo circuito per abbassare la tensione da 4.5v a sotto i 3.3v.
Con Arduino UNO invece la tensione è già a posto ma la scheda è molto più grande e necessita anche di uno shield (una scheda) in più...

Pensa che ti ripensa mi viene un lampo di genio...


il Raspberry PI3 dove attualmente stanno girando OpenHAB e il broker MQTT ha anche una serie di GPIO digitali...se riesco a far arrivare tutti i segnali, posso usarla direttamente, così evito di sprecare un'ulteriore scheda...ed essendo lo stesso sistema su cui gira OpenHAB non ho neanche la necessità di trasmettere il dato in rete...sarà tutto in locale... Purtroppo i suoi GPIO lavorano a 3.3v quindi il nostro 4.5v sicuramente non le farà bene...Niente paura...costruirò una piccola schedina di interfaccia con una serie di partitori di tensione per abbassare proporzionalmente la tensione sotto i 3.3v...tanto resistenze ne ho in abbondanza 😎


Se riesco a fare questo, posso usare direttamente un Binding di OpenHAB (vedi https://github.com/openhab/openhab1-addons/wiki/GPIO-Binding) che permette di integrare facilmente i segnali ottenuti tramite lettura di GPIO (in sostanza permette di agganciare un item di tipo logico 1/0 di OpenHAB allo stato di un ingresso del raspberry), senza dover fare un programma esterno, ed inviarli tramite MQTT...direi ottimo...(se funziona)

Ricapitoliamo:

 - far convergere tutti i segnali degli ingressi dell'antifurto verso il Raspberry PI3
 - creare una schedina per abbassare il segnale dei sensori / contatti da 4.5v a max 3.3v
 - collegare gli ingressi di questa schedina con i cavetti degli ingressi dell'antifurto e le uscite con il Raspberry
 - installare e configurare il binding GPIO di OpenHAB (vedi https://github.com/openhab/openhab1-addons/wiki/GPIO-Binding)
 - creare una sitemap su OpenHAB per visualizzare lo stato degli ingressi

Non dovrei aver dimenticato nulla...spero...

Nel prossimo post, a breve online, descriverò la fase operativa e il risultato ottenuto!