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ì 5 ottobre 2018

Home Automation System - Due PZEM-004T con unico ESP8266




Dopo il successo degli esperimenti fatti con il PZEM-004T connesso ad un Nodemcu ESP8266 per la misurazione dei consumi tramite pinza amperometrica (metodo poco invasivo...), sistema attualmente funzionante nel mio impianto per il monitoraggio dei consumi del piano terra (vedere https://domoticaduino.blogspot.com/2018/05/home-automation-system-misurazione-dei.html), ho deciso di aggiornare l'attuale sistema di monitoraggio della produzione dei pannelli fotovoltaici, basato su un ricevitore Wifi 433Mhz (vedere https://domoticaduino.blogspot.com/2017/08/home-automation-system-mqtt-e-rf433-per.html).

L'attuale sistema ha un problema dovuto al fatto che quando l'inverter è spento viene rilevato un passaggio di corrente anomalo che porta ad un'indicazione di circa 250W di consumo / produzione.

L'idea è quella di utilizzare lo stesso circuito usato per il monitoraggio dei consumi del piano terra...quindi un PZEM-004T, la sua pinza amperometrica e un Nodemcu ESP8266 per l'acquisizione delle informazioni e il loro invio verso il server MQTT.

Per chi non sapesse di cosa sto parlando, questi sono i dispositivi:

NODEMCU ESP8266

PZEM-004T

Poichè l'inverter è vicino al quadro elettrico in garage, decido di complicare un po' la cosa, a scopo di ottimizzazione, cercando di gestire due PZEM-004T con la stessa scheda ESP8266, in modo tale da poter monitorare anche il consumo del piano seminterrato.

E, dulcis in fundo, perchè non inserire anche un sensore di temperatura e umidità nello stesso circuito?

Faccio al volo due prove per verificare che effettivamente due PZEM-004T siano gestibili dalla stessa scheda e, verificatone il corretto funzionamento, creo il circuito definitivo, per adesso su breadboard.

Ecco il primo PZEM-004T connesso, tramite la sonda, al cavo di fase all'uscita dell'inverter...sulla destra si può notare anche il sensore di temperatura e umidità DHT11 (sensore non precisissimo, ma non male per le misure che voglio fare io...)


Questo invece è il secondo PZEM-004T connesso al cavo di fase del piano seminterrato, all'interno del quadro elettrico


Vista d'insieme:


Adesso non rimane altro che scrivere il software e fare qualche prova. Operazione relativamente semplice in quanto il codice è molto simile a quanto già fatto in precedenza.

Battezzo i topic MQTT per la gestione del dato su OpenHAB e creo i soliti items e oggetti all'interno di una sitemap...

Ecco il risultato sulla BASIC UI di OpenHAB



Il valore di Energy Consumption è dato dalla somma dei consumi dei 3 piani...due dei quali sono già monitorati (i valori non coincidono tra i due screenshot perchè sono stati presi in momenti diversi...)


Essendo informazioni che possono avere anche una loro valenza storica, ho creato i rispettivi grafici temporali sulla dashboard di Grafana


L'obiettivo principale è stato raggiunto: ad inverter spento la produzione passa a circa 0 W...


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

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