Monitoraggio Consumi Tramite Modulo PZEM-004T

HassioHelp

Monitoraggio Consumi Tramite Modulo PZEM-004T

In questa guida vedremo come fare un monitoraggio dei consumi elettrici con un metodo meno invasivo del più famoso Sonoff POW R2, infatti utilizzeremo il dispositivo PZEM-004T (Amazon, Banggood) inoltre avremmo bisogno di:
un NodeMCU (Amazon, Banggood) o un Wemos D1 Mini (Amazon, Banggood) o un Sonoff Basic (AmazonBanggood) e un Alimentatore da quadro con attacco din a 5v

Un ringraziamento a Enrico Nos317 un supporter del nostro gruppo Telegram per aver realizzato la guida.

 

ATTENZIONE!!!
L’elettricità è pericolosa e potenzialmente mortale, se non siete sicuri di quello che fate rivolgetevi ad un professionista. Questa vuole essere solo una guida dimostrativa lo staff declina ogni responsabilità dall’uso che ne deriva.

 

Come vedete è diviso in 2 pezzi:

  • Scheda elettronica con circuito AC 230V a sinistra e circuito DC 5V a destra
  • Toroide con portata max 100A dove infileremo il cavo di cui vogliamo monitorare l’energia.

A differenza quindi del Sonoff POW R2, non facciamo scorrere la corrente attraverso la scheda, ma andiamo a leggerne il valore tramite il campo magnetico generato dalla stessa e “raccolto” dal toroide. Rendendo il nostro sistema decisamente molto meno invasivo oltre che più sicuro.

Questo dispositivo tuttavia si occupa solo della lettura dei dati, in questo caso dobbiamo mandarli in qualche modo al nostro server Home Assistant. In questa guida è stato scelto di utilizzare un NodeMCU (versione Lolin V3 nella fattispecie) che fungerà da client MQTT, connesso al WIFI del nostro router. Tuttavia è stato testato e funzionante anche con il Sonoff Basic (tramite i pin 3,3V, TX, RX e GND) e con il Wemos D1 mini.

 

PREPARAZIONE
Prima di proseguire dobbiamo subito fare una modifica al Pzem: saldare una resistenza da 1kohm come di seguito perché i nostri dispositivi comunicano con seriale a 3,3V e non 5V come vorrebbe il Pzem:

 

CIRCUITO
Di seguito il circuito da realizzare nella versione NodeMCU, Wemos D1 Mini e Sonoff Basic:

 

 

Spiegazione dello schema elettrico

Per la lettura della potenza elettrica in corrente alternata abbiamo bisogno di 3 valori fondamentali:

  • Tensione (V)
  • Corrente (I)
  • Fattore di Potenza

Il Pzem è in grado di leggere tutti questi 3 valori e più precisamente: la tensione tra i morsetti “AC”, la corrente tra i morsetti “CT” grazie al toroide ed i fattore di potenza è lo sfasamento fra tensione e corrente (non sto qui ad annoiarvi, se vi interessa fate una ricerca in merito).

Perciò la tensione la leggiamo mettendo 2 fili (fase e neutro) in parallelo ad una qualsiasi linea in partenza dal quadro elettrico (la cosa migliore sarebbe utilizzare un magnetotermico dedicato da 6A, tuttavia ai fini della sicurezza va bene anche un 10A esistente, vi consiglio quello dedicato per le luci o qualche servizio ausiliario (campanello, chiamata, etc…), almeno se dovete staccare un attimo l’alimentazione per fare i collegamenti, restate solo senza luci, senza staccare la forza motrice o altro).

Mentre per la lettura della corrente non sarà necessario aggiungere alcun cavo, semplicemente facciamo passare il cavo immediatamente a valle dell’interruttore generale DENTRO al toroide, nel caso non abbiate la linea generale ma ad esempio la separazione tra forza motrice e illuminazione, potrete far passare entrambi i cavi dentro il toroide con l’unica accortezza che siano entrambe Fasi o Neutri. A tal proposito si DEVE staccare prima la corrente a tutta la casa, perciò assicuratevi di avere il circuito fuori tensione prima di staccare il cavo, mettere il toroide e riattaccare il cavo. Esistono delle versioni di Pzem con il toroide apribile, molto più pratico in questo caso. Poi ovviamente i due fili rosso e nero del Pzem vanno ai contatti “CT” dello stesso.

La sequenza dei cavi AC e CT non è fondamentale perché il pzem misura la corrente solo positiva, non è bidirezionale, perciò anche se invertiamo i fili del toroide oppure L-N non cambia nulla.

Poi ci servirà un’alimentazione per il NodeMCU o Wemos (per il Sonoff non è necessario), visto che siamo sul quadro elettrico vi consiglio un alimentatore 5V da guida DIN come quello indicato in figura. Lo alimenteremo dalla stessa linea (L-N) a cui abbiamo collegato il Pzem e l’uscita andrà sui pin “VIN” e “GND” del Nodemcu o Wemos. Va bene anche un comune alimentatore da cellulare con uscita 5V, non sono certo della corrente necessaria, attualmente alimento 2 Pzem e un Nodemcu con 700mA perciò non ci sono particolari esigenze.

CABLAGGIO
Di seguito un paio di foto di come viene sul quadro elettrico, ovviamente, se non siete sicuri fate fare tutto ad un elettricista, stiamo operando sul quadro elettrico, non si scherza assolutamente. Soprattutto prestate attenzione al fatto che una volta terminato nessun cavo possa per nessun motivo staccarsi o fare corto circuito con un altro. Anche durante il montaggio, i cavetti rosso e nero del toroide non devono toccarsi quando avete il toroide con un cavo attraversato da corrente al suo interno, potrebbe danneggiarsi e non essere più preciso.

 

PROGRAMMAZIONE NODEMCU o WEMOS
Dovrete installare il firmware Tasmota sul dispositivo NodeMCU o Wemod D1 Mini si consiglia la versione 6.4.1. L’installazione prevede il collegamento tra Pc e il dispositivo mediante cavo USB – Mini USB, il procedimento è analogo alla Guida Tasmota Sonoff Facile Facile.

Web UI Tasmota
Entriamo nella UI di tasmota e modifichiamo i seguenti parametri dalla configurazione del modulo:

NodeMCU/wemos: CASO A

Sonoff Basic: CASO B

Come vedete, tra una versione e l’altra di Tasmota, hanno cambiato la nomenclatura dei sensori, la sostanza non cambia, il pin “RX” del Pzem va dichiarato nel pin “TX” del nostro modulo ESP, e il pin “TX” nel “RX”.

A questo punto nella pagina iniziare dopo il riavvio dovreste avere una cosa di questo tipo:

A parte i valori di energia che ovviamente saranno inizialmente a 0, tutti gli altri valori devono comparire, se così non fosse avete sbagliato qualche collegamento o qualche impostazione di configurazione, controllate e tornate qui, non ha senso proseguire se prima non vedrete i valori corretti in questa schermata.

CALIBRAZIONE
A questo punto è caldamente consigliato eseguire la calibrazione dello strumento, per farlo dovete avere un tester, ma ancora meglio una pinza amperometrica (magari fatevela prestare per l’occasione). Quindi verificate che i valori di tensione, corrente e potenza attiva siano gli stessi che misurate con la pinza, se così non fosse eseguite questi comandi da console, inserendo i valori che leggete sul vostro strumento:

VoltageSet xx  al posto di xx inserire la tensione (V) di calibrazione letta con lo strumento di calibrazione
PowerSet xx    al posto di xx inserire la potenza (W) di calibrazione

Ora abbiamo tutto quel che ci serve per configurare Home Assistant, però di default il nostro dispositivo manda i valori ogni 300 secondi (5 minuti), che non va assolutamente bene per il nostro caso, perciò digitiamo da console:

TelePeriod 20

 

CONFIGURAZIONE HOME ASSISTANT

Nel file sensor.yaml scrivete quanto segue ricordatevi di scrivere il nome del topic che avete scritto nella configurazione di MQTT di Tasmota:

Nel caso vogliate monitorare più consumi, ovviamente dovrete replicare il circuito, come è stato fatto vedi le foto poco sopra.

 

LOVELACE
Se avete un impianto fotovoltaico vi consiglio di usare questa card molto carina per Lovelace minimale ma efficacie:

Questo il link per installarla: https://github.com/gurbyz/custom-cards-lovelace/tree/master/power-wheel-card
Potrete vedere anche la guida ufficiale Tasmota Pzem: https://github.com/arendst/Sonoff-Tasmota/wiki/PZEM004T-Energy-Monitor

 

31 risposte

  1. Avatar Mauro ha detto:

    Ottima guida!
    Secondo voi esiste il modo di far stare tutto dentro un modulo vuoto 1DIN per inserirlo in un centralino esistente? Al max. potrei arrivare a 2DIN di larghezza ma non di più. Altrimenti dovrei attendere lo Shelly EM che ho intravisto nel gruppo Telegram e che pare debba uscire il 15/03..

  2. Avatar Alberto ha detto:

    Ciao,
    bell’articolo e bel sito. Ho già ordinato il modulo :).
    Vorrei eliminare l’alimentatore a 5V per salvare spazio. Dal PDF di istruzioni del PZEM non riesco a capire se include un alimentatore, vedendo la figura sembrerebbe di si. In questo caso sarebbe possibile alimentare il Wemos o Nodemecu direttamente dal PZEM.
    In caso contrario si potrebbe usare il Sonoff (che però è più ingombrante). Dallo schema proposto si vede che viene usato il 3,3V e non il 5V. In questo caso suppongo che il PZEM sia alimentato a 3,3V (funziona?) e quindi dovrebbe essere inutile la resistenza addizionale sul TX.
    Chi ha in mano il modulo può darmi un chiarimento?

    Grazie

    Al

    • Enrico Enrico ha detto:

      Il PZEN per funzionare deve essere alimentato a 220 dalla parte sinistra della foto (AC), nella parte destra dove va collegato l’ESP viene messa la resistenza per unificare i potenziali. Normalmente in uscita del pzem tra Tx e Gnd avremmo 5v ma gli ESP vogliono in ingresso tensioni max di 3,3v. In questo modo collegando le alimentazioni di Vcc del pzem e dell’ESP si eliminano disturbi da alimentazioni diverse.

  3. Avatar Gabriele ha detto:

    Ciao, proprio in questi giorni stavo cercando un modo per monitorare la produzione del fotovoltaico ed il consumo, per poter gestire gli elettrodomestici al meglio. Il mio impianto è di 6 Kw, posso utilizzare questo schema? Stavo per acquistare questo kit ”
    Aeotec Home Energy Meter Gen5 – 100A with three clamps” ma costa 150 euro.

    • Enrico Nos317 Enrico Nos317 ha detto:

      Ciao, io lo uso proprio per quello scopo, in primis monitorare l’impianto fotovoltaico e poi gestire gli elettrodomestici in modo da autoconsumare più energia possibile. Nel tuo caso quindi devi fare esattamente come me, 2 pzem con 2 wemos/sonoff/nodemcu. Poi per gestire gli elettrodomestici ci pensa home assistant.

      • Avatar Gabriele ha detto:

        Scusa la domanda; io ho il doppio contatore per il fotovoltaico, quindi un toroide deve essere applicato al cavo che esce dall’interruttore generale per vedere l’energia assorbita dalla casa, mentre l’altro devo collegarlo ad il cavo proveniente dal contatore del fotovoltaico per vedere l’energia prodotta?

  4. Avatar Nicola ha detto:

    ciao e complimenti per la guida.
    Ma se uso il sonoff + Pzem la resistenza da 1K và inserita?
    Grazie

    • Enrico Nos317 Enrico Nos317 ha detto:

      Ciao, certamente si. La resistenza va inserita in tutti e 3 i casi, in quanto tutti i dispositivi montano chip wifi a 3.3V.

  5. Avatar davide ha detto:

    nella guida sulla configurazione del firmware per nodemcu e wemos sono stati assegnati i pin invertiti rispetto alla configurazione per sonoff.infatti su un altra guida in rete sono assegnati inversamente il 63 ed il 62 (tx e RX) e cosi funziona

    • Enrico Nos317 Enrico Nos317 ha detto:

      Confermo, errore mio in quanto sulla mia configurazione i pin sono invertiti anche fisicamente e quindi funziona. Vedo di correggere al più presto altrimenti non torna con lo schema. Grazie

  6. […] alla Guida Pzem per il monitoraggio dei consumi, realizzata dal nostro admin Enrico e prendendo spunto […]

  7. Avatar Gabriele ha detto:

    Buona sera, ho fatto la configurazione con il nodemcu e turro funziona molto bene, ma dato che per semplificare preferirei utilizzare un sonoff basic per avre solamante l`alimentazione 220 e non 220 e 5v. Ho fatto come detto e tutto va bene ma il sonoff non riceve i dati, rimane tutto a 0. suggerimenti?

    • Enrico Enrico ha detto:

      Buongiorno, hai provato ad invertire tx ed rx fisicamente e/o lato configurazione?

      • Avatar Gabriele ha detto:

        Sinceramente no, mi sono attenuto allo schema, questa sera verifico e vi faccio sapere.

        • Enrico Enrico ha detto:

          Per prima cosa cambia solamente tx con rx sulla configurazione di tasmota. E vedrai che funziona senza fare altre modifiche.
          Facci sapere, così da correggere l’articolo.

          • Avatar gabriele ha detto:

            Ciao, funziona bene anche con il sonoff basic, ho risaldato i cavetti per sicurezza ed è andato tutto ok. In questi giorni volevo provare con un sonoff th16, sarebbe bello avere anche il monitoraggio della temperatura.
            Grazie.

  8. Avatar Giovanni ha detto:

    con il sonoff non funziona . ho provato a sostituire il Pzem perchè pensavo fosse guasto , dopo di che ho sostituito anche il sonoff , ho provato tutte le configurazioni possibili con i collegamenti RX – TX, sia da configurazione che da hardware , non ci sono più prove da fare. Siamo sicuri che funzioni con il sonoff? qualcuno l’ha provato? Grazie

    • Enrico Enrico ha detto:

      Si con il sonoff funziona è più probabile che il pzem sia fallato e quindi non funzionante.

    • Avatar Gabriele ha detto:

      Ciao, io ho provato la configurazione sia con NodeMcu che con il sonoff e ti posso dire che con il sonoff funziona, la prima volta che ho fatto il collegamento non funzionava perchè i cavetti saldati al sonoff non erano ben saldi, controlla le saldature e vedrai che funziona.

  9. Avatar Alchimista ha detto:

    Volevo segnalare un errore nel codice che si scarica dal sito. In value_template: ‘{{ value_json[‘ENERGY’].Voltage }}’ ci sono gli apici mentre in Hassio bisogna mettere value_template: “{{ value_json[‘ENERGY’].Voltage }}” i doppi apici

  10. Avatar maframan ha detto:

    Ciao, veramente ottima guida complimenti.
    Avrei una domanda, come mai hai usato due PZEM? Nella foto vedo un solo toroide.
    Nel mio caso vorrei utilizzarne uno solo e mettere il toroide sul neutro che arriva dal contatore dell’ENEL?

  11. Avatar maframan ha detto:

    Ciao, veramente ottima guida complimenti.
    Avrei una domanda, come mai hai usato due PZEM? Nella foto vedo un solo toroide.
    Nel mio caso vorrei utilizzarne uno solo e mettere il toroide sul neutro che arriva dal contatore dell’ENEL, è corretto?

    • Enrico Nos317 Enrico Nos317 ha detto:

      Ciao, ho usato 2 pzem perché devo monitorare anche un impianto fotovoltaico. Nel tuo caso va benissimo come hai detto, un solo pzem e toroide sul neutro in arrivo dal contatore. Ciao

  12. Avatar Gabriele Girardi ha detto:

    Ciao, ho un problema con la calibrazione non mi accetta i comandi PowerSet 60.0 e VoltageSet 60

  13. Avatar Gabriele Girardi ha detto:

    Buongiorno,
    ho scoperto che i comandi PowerSet e VoltageSet non possono essere utilizzati con il pzem 004t e pertanto non è possibile sostituire il toroide con un toride non calibrato per questo dispositivo. Con questo dispositivo è possibile monitorare un impianto fotovoltaico da 6kw?

  14. Avatar MARCO TORRICELLI ha detto:

    potreste specificare come collegare due pzem ad un solo dode mcu?
    grazie

  15. Avatar Alex ha detto:

    Ciao Enrico e grazie per l’ ottima guida.
    Volevo segnalare un problema che ho riscontrato nella lettura dei valori del PZEM004T tramite SONOFF BASIC.
    Ho visto in effetti che ci sono anche altri commenti precedenti di lettura valori tutti a zero.
    Le ho pensate tutte, compreso che il PZEM004T fosse guasto ed invece, modificando sulla configurazione del SONOFF la RX da PZEM004 Rx (63) a PZEM016 Rx (98) le letture hanno cominciato da subito a comparire ed i 2 microled della seriale sul PZEM a “pulsare” in sequenza ed in modo regolare.
    Un Saluto.
    Alessandro.
    Anche se non ho capito il perchè ed anche se, sulla carta, ho un PZEM004T , ho segnalato la cosa nella speranza che possa essere utile anche ad altri.

    • Avatar PeVa ha detto:

      Ciao, stessa cosa anche per me. Ho pensato di aver sbagliato qualcosa finché ho trovato su un blog che suggeriva la stessa modifica. Il perché è dovuto alla nuova versione di PZEM-004T.

    • Avatar PeVa ha detto:

      Dimenticavo: io, invece, ho rimosso i due led e ho usato una delle due resistenze da 1K come resistenza aggiuntiva per la comunicazione a 3,3V invece di 5V

  16. Avatar gabriele ha detto:

    Salve, oggi mi è arrivato il Pzem-004t V3, ma la resistenza va ancora messa per ridurre la corrente da 5v a 3.3v?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *