Lettura Consumi con PZEM 016

Lettura Consumi con PZEM 016

In questa guida vedremo come leggere il consumo elettrico utilizzando il Pzem-016 alternativa più “pulita” ma altrettanto efficace rispetto il Pzem-004 visto nell’articolo Monitoraggio Consumi Tramite Modulo PZEM-004T, inoltre potrete sfruttare il package Controllo Consumi e Costi bolletta Elettrici.
I Pzem verrà collegato alle seriale (TX e RX) di un Wemos D1 Mini (o di un qualsiasi ESP8266) che farà, tramite firmware Tasmota, comunicare Home Assistant al Pzem.

Caratteristiche Tecniche

  • marca e modello: Pacefair Pzem-016
  • lettura consumi a 230V: max 100A (22kW circa)
  • case di protezione
  • tensione di uscita 5V
  • toroide apribile

Già dalle caratteristiche si possono notare alcune cose interessanti: il case di protezione già incluso nella confezione, utilissimo per non doverlo isolare in modo improvvisato, l’uscita a 5V con cui andremo ad alimentare il Wemos che farà da tramite tra il Pzem e Home Assistant infine il toroide apribile (presente anche nella versione 004t) ottimo così ci risparmia il fastidio di dover scollegare il cavo che alimenta il/i dispositivo/i da analizzare.

Queste condizioni ci permettono di non dover aggiungere altri dispositivi come alimentatori o scatole per raggiungere il nostro obiettivo, infatti la scatola dove è alloggiato il Pzem-016 è abbastanza grande da contenere anche il Wemos, quindi quando chiuderemo la scatola avremmo un dispositivo isolato e pronto per comunicare con Home Assistant da posizionare nelle scatole di derivazione o nei quadri elettrici.

La procedura per preparare il dispositivo è leggermente più complessa rispetto il fratello minore, ma nulla di trascendentale.

Lista Materiali

Il materiale che ci occorre è:

Procedura

Pzem016 02

Per iniziare dovremmo dissaldare dalla basetta l’integrato evidenziato nella foto senza danneggiare le piste sottostanti: con un piccolo cacciavite a taglio o con una taglierina, facendo leva sotto l’integrato, sarà possibile levarlo è possibile che alcune piste possano saltare ma poco male. 

Pzem016 03

Dovremmo ora stagnare le resistenze da 1 o 2 kΩ ai capi dei due fototransistor. 
La prima resistenza tra il pin 1 e 2 la seconda tra il pin 1 e 3,
mentre le uscite che andremmo a collegare al Wemos saranno:
il pin 2 al TX del Wemos
il pin 4 al RX del Wemos

Pzem016 04

Qui si vede come sono state saldate le due resistenze

Pzem016 05

L’alimentazione al Wemos Gnd e 5V vengono forniti dai morsetti posti in basso (rispettate le polarità) mentre l’alimentazione a 230V presi dalla rete sono gli ultimi due in alto a destra mentre i primi due viene collegato il toroide di misurazione.

Tasmota

Prima di ultimare la chiusura del Pzem installiamo il firmware Tasmota sul Wemos potete seguire la Guida Tasmota Sonoff Facile Facile.
Inseriamo i parametri in tasmota come da immagine, leggete la Guida Parametri Tasmota se non siete ancora pratici.
Selezioniamo su Modulo Generico e configuriamo i GPIO. Dopo il riavvio, nella schermata iniziale vi dovrà comparire le informazioni della tensione, corrente ecc ecc se non dovessero comparire ricontrollate i collegamenti o la configurazione di Tasmota. 

Infine potrete fissare il Wemos al circuito, io ho usato la colla a caldo e dei distanziali, quest’ultimi non sono necessari basta abbondare con la colla a caldo che farà da isolante. Chiudete il coperchio facendo attenzione ai cavi che alimentano il Wemos.

Vi ricordo che il toroide dovrà “abbracciare” un solo cavo dell’utenza che dovrete misurare o Fase o Neutro non entrambe, al massimo per misurare il consumo di più utenze basta far passare o entrambe le Fasi o Neutri all’interno del toroide.

Home Assistant

Ora in Home Assistant basterà creare i vari sensori per rilevare tensione, corrente, potenza ecc ecc. 

sensor:
- platform: mqtt
name: "016 Corrente"
state_topic: "tele/pzem016/SENSOR"
value_template: "{{ value_json['ENERGY'].Current}}"
unit_of_measurement: 'amps'
- platform: mqtt
name: "016 Watt"
state_topic: "tele/pzem016/SENSOR"
value_template: "{{ value_json['ENERGY'].Power}}"
unit_of_measurement: 'watts'
- platform: mqtt
name: "016 Volt"
state_topic: "tele/pzem016/SENSOR"
value_template: "{{ value_json['ENERGY'].Voltage}}"
unit_of_measurement: 'volts'
- platform: mqtt
name: "016 cosfi"
state_topic: "tele/pzem016/SENSOR"
value_template: "{{ value_json['ENERGY'].Factor}}"
unit_of_measurement: 'cosfi'
- platform: mqtt
name: "016 Energia Oggi"
state_topic: "tele/pzem016/SENSOR"
value_template: "{{ value_json['ENERGY'].Today}}"
unit_of_measurement: 'kWh'
- platform: mqtt
name: "016 Energia Ieri"
state_topic: "tele/pzem016/SENSOR"
value_template: "{{ value_json['ENERGY'].Yesterday}}"
unit_of_measurement: 'kWh'
- platform: mqtt
name: "016 Energia Totale"
state_topic: "tele/pzem016/SENSOR"
value_template: "{{ value_json['ENERGY'].Total}}"
unit_of_measurement: 'kWh'

Per commenti idee o altro vi lascio il link alla discussione sul nostro Forum.

http://forum.hassiohelp.eu/showthread.php?tid=246

 

59 risposte

  1. Davide ha detto:

    avendolo già realizzato qualche giorno fa non posso far altro che ulteriori COMPLIMENTI !!!! Eccezionale !!!

  2. Samuele ha detto:

    Che dire.. Fatto tutto ancora due mesi fa’ e funziona alla grande. Siete mitici ragazzi

  3. Claudio ha detto:

    Complimenti per l’articolo. Ho una domanda: è possibile usare un adattatore TTL to RS485 invece che modificare il PZEM-14 o PZEM-16?

  4. Beppe ha detto:

    stupendo progetto.. vorrei fare una precisazione se mi è concesso :)…. più che altro per evitare che qualcuno molli il progetto sul più bello…
    comunque per wemos d1 mini sono necessarie obbligatoriamente resistenze da 2Kohm. con quelle da 1 non funziona….

    Ciao e continuate cosi….

  5. Antonio ha detto:

    Ciao, ho fatto il progetto passo dopo passo ma ho dei problemi all’inizio la lettura è corretta ma per passare un minuto o due fermate di lavoro e restituisce tutto zero, ho guardato in console e ho gettato un errore 00:00:06 MQT: tele / pzem016 / INFO3 = {“RestartReason”: “Eccezione irreversibile: 0 flag: 2 (EXCEPTION) epc1: 0x402338dc .. Ho provato prima un altro microcontroller con wemos d1 e poi con esp8266 nodemcu cp2102 e nulla suppongo che ci dovrebbe essere qualche problema con PZEM-016, a differenza di quanto vedo è che la resistenza che ho venduto nel negozio di quartiere è 2,2 K 5%.

    • Enrico ha detto:

      Fai questa prova alimenta il wemos da presa USB ovviamente togliendo i 5v dal pzem poi fammi sapete

      • Antonio ha detto:

        Sì, l’ho già fatto, ed è sempre lo stesso.

        • Enrico ha detto:

          Purtroppo molti utenti stanno avendo problemi non sappiamo se la causa sia dovuta al Pzem o hai componenti che vengono montati successivamente.

          • Antonio ha detto:

            Sì, è vero, in diversi forum, si dice che ci sono problemi, non c’è modo di funzionare correttamente. Ho saputo che alcuni hanno avuto successo, ma la maggior parte non funziona per te. Grazie per la tua attenzione

          • Antonio ha detto:

            Sì, è vero, in diversi forum, si dice che ci sono problemi, non c’è modo di funzionare correttamente. Ho saputo che alcuni hanno avuto successo, ma la maggior parte non funziona per te. Grazie per la tua attenzione.

      • Marco ha detto:

        Io ho iniziato ad avere problemi con la versione tasmota 9.5.
        Prima avevo la 6.x e funzionava tutto regolarmente. Ho dovuto migrare alla 9.5 per abiltare la feature energy di home assistant ma penso che tornerò indietro…

  6. Alessandro ha detto:

    Ciao a tutti,io non riesco a flashare il Wesmos..c’e una guida?Ho trovato solo quella per il sonoff basic.Grazie

  7. Guido ha detto:

    Fatto tutto come da post ma non funziona.
    Guardando con Syslog vedo sempre un PzemAC response error 8 ed ogni tanto un PzemAC response error 9.

    Indago

  8. Alessandro ha detto:

    Finalmente sono risucito a flashare il wesmos..facendo tutto come da guida pero ho sempre valori 0,cosa puo essere?Ho usato 2 resistenze da 2 kohm.

  9. TizianoSan ha detto:

    Grazie mille per le vostre guide sempre molto utili, ben commentate e realizzate.
    Ho realizzato questo analizzatore di rete ma ho riscontrato 2 problemi.
    1 – Dava dei valori errati all’accensione (risolto con un ritardo e ora inserito nella repo)
    2 – Dopo pochi minuti dall’accensione mi continuava a dare “PzemAc response error 9”.
    Analizzando il circuito e il codice ho notato che l’ESP in questa configurazione sfrutta la seriale software e non quella hardware.
    Quindi per sfruttare la seriale hardware ho invertito i pin(RX – TX) sulla scheda Wemos e invertito i pin nella configurazione e dopo queste modifiche non si è piu presentato il problema.
    Spero di essere stato utile a qualcuno.

    • Matteo Barboni ha detto:

      A me sicuro, dopo aver seguito il tuo consiglio, mi si è risolto il problema che mi assillava da almeno una settimana. Grazie Tiziano San

    • shogunxam ha detto:

      Grazie mille TizianoSan mi hai salvato, continuavo ad avere letture a zero, ma grazie alla tua dritta di invertire i pin TX/Rx sul Wemos D1 mini ho risolto il problema.
      Dopo vari tentativi ho ottenuto qualcosa di funzionante con la seguente combinazione:
      – 2 resistenze da 1k
      – collegato il pin 2 al RX del wemos e il pin 4 a TX
      – Flashato Tasmota 6.6.01.1 Core/SDK Version 2_5_2/2.2.1
      – Configurazione Modulo Tasmota Generico (18)
      — TX GPIO1 Serial Out -> PZEM0XX Tx (62)
      — RX GPIO3 Serial In -> PZEM016 Rx (98)

    • Antonio Ortega ha detto:

      Ciao, scusami ma sono un novizio, non capisco cosa intendi con: … Per hardware seriale ho invertito i pin (RX – TX) sulla scheda Wemos e invertito i pin nella configurazione e dopo queste modifiche … Non so Come i birilli sono invertiti, per favore potresti spiegarmi come è fatto, grazie.

    • Antonio ha detto:

      Effettuata la tua modifica e, per il momento, i valori di consumo che sino a prima della modifica erano completamente sbagliati sono tornati a essere giusti.
      Grazie

  10. Mario ha detto:

    E se volessi usare la linea LAN per trasmettere i dati via MQTT? Devo evitare Tasmota vero? Qualcuno ci ha provato?

  11. Francesco ha detto:

    Ciao a Tutti, Grazie mille per questa fantastica guida!!!
    Ho appena realizzato il lettore consumi, la mia configurazione è:
    Pzem016, 2 resistenze da 2K , wemos d1 mini con fw Sonoff-Tasmota-6.6.0, collegamenti come nella guida pin 2 Tx – pin 4 Rx e alimentazione presa direttamente dal pzem.
    Tutto funzionante alla perfezione, ha impiegato solo qualche minuto per allinearsi con i valori tra tasmota ed HA ma poi tutto ok.

    Grazie ancora

  12. Matteo Barboni ha detto:

    Comunque… per chi, eventualmente, notasse strani malfunzionamenti, consiglio di fare quanto indica TizianoSan in qualche commento precedente. A me (e ad altri) ha risolto TUTTI i problemi relativi alla comunicazione tra il pzem 016 e Hassio

  13. Antonio Ortega ha detto:

    Ciao, cosa intendi dritta di invertire i pin?

  14. Antonio ha detto:

    Ciao, cosa intendi dritta di invertire i pin?

  15. Antonio ha detto:

    Ciao, come vengono invertiti i pin?

    • TizianoSan ha detto:

      Devi invertire i fili del tx e rx e poi inverti la configurazione dei pin sulla pagina della configurazione

      • Antonio ha detto:

        Grazie
        Quale versione di Tasmota mi consiglia, ne ho installati diversi e non ha funzionato correttamente, fino a quando non ne ho installato uno e si è rotto il modulo Pacefair Pzem-016, ha iniziato a innescare un componente, ho dovuto acquistarne uno nuovo.
        Grazie ancora.

        • TizianoSan ha detto:

          Ti conviene usare l’ultima versione(6.6) di tasmota almeno è presente il bugfix sulla lettura errata all’accensione.

          • Antonio ha detto:

            Ciao, l’ho fatto usando un modulo convertitore RS485 con rotazione TTL, quindi non ho dovuto saldare resistori o togliere nulla dal PZEM 016, tutto si adatta al PZEM. Si abbina perfettamente con l’ultimo firmware Tasmota v6.6.0.

            Link convertitore: https://bit.ly/2OCd01x
            Link 1 riferimento: https://bit.ly/2yAOwKU
            Link 2 riferimento: https://bit.ly/31kYyfV

            Pinout CONVERTIDOR >> WEMOS
            (TTL) GND >>>> GND (PZEM)
            (TTL) RXD >>>> RX (WEMOS)
            (TTL) TXD >>>> TX (WEMOS)
            (TTL) VCC >>>> 5v PZEM

            PEZM A >>> A+ (TTL)
            PEZM B >>> B- (TTL)

  16. Giovanni ha detto:

    Salve, ho installato tutto come da guida e funziona tutto perfettamente; anzi funzionava! dopo 10 minuti di utilizzo ricevevo valori sballati, quali il voltaggio a circa 5 V, la frequenza oscillava tra 140 e 180 Hz.
    Se spengo il pzem e lo riaccendo ho valori corretti per pochi minuti per poi avere di nuovo valori errati.
    Vi è capitato? come risolvere? si è guastato il pzem dopo pochi minuti di utilizzo?
    Grazie mille,

    Giovanni.

    • Giovanni ha detto:

      Aggiungo una informazione: sentivo il pzem molto caldo, l’ho aperto e l’ho raffreddato soffiandoci sopra; mano a mano che si raffreddava i valori si avvicinavano a quelli corretti per poi discostarsene appena smettevo di soffiarci sopra.

      Grazie,
      Giovanni

  17. Marco Paglioni ha detto:

    Ovviamente, con l’autodiscover della 6.6.0 (SetOption19 1) non serve tutta la parte di configurazione sensori di HA.

  18. Jolly ha detto:

    riuscireste a fare una cosa del genere utilizzando lo Shelly EM?

  19. James ha detto:

    Ciao ragazzi,
    sarei grato a chi avesse un po’ di tempo da dedicarmi per capire dove potrebbe stare il mio problema.
    Sono riuscito una sola volta a flashare il Wemos, era anche apparso il nuovo SSID e quindi pensavo di essere a buon punto, invece dopo essermi collegato mediante browser e avere settato i dati della mia WIFI, al riavvio del device, collegandomi al DHCP Server, fra i leases nessuna traccia, per cui ho tentato nuovamente la procedura dall’inizio, ma ora il sistema mi dice che il componente è stato flashato correttamente, ma in realtà non mi appare più il suo SSID. Ho persino provato con altre release di Tasmota ma sempre lo stesso problema. Consigli?

    • Francesco ha detto:

      Ciao, prima di riflashare tasmota prova a mettere su un blank.bin e poi vai di tasmota.
      Almeno sei certo di averlo ripulito prima di flasharlo di nuovo.

  20. pino ha detto:

    Ciao a tutti, ho effettuato tutte le operazioni descritte nell’ottima guida e il PZEM-016 con WEMOS funzionano alla grande. L’unico problema molto fastidioso è che dopo circa un giorno di utilizzo, il PZEM-016 si spegne e sono costretto a scollegare e ricollegare l’alimentazione (220V) del PZEM per ripristinare le funzionalità.
    La scatola contenente il PZEM ed il WEMOS sono praticamente fredde, pertanto ritengo non sia un problema di riscaldamento.
    Non potendo effettuare l’operazione di riaccensione quando sono distante, qualcuno può suggerirmi quale potrebbe essere la causa e come risolvere? Grazie

  21. pino ha detto:

    E’ normale un ronzio all’interno della scatola del PZEM-016? Può essere il fototransistor?

  22. Gabriele ha detto:

    Ciao, ho seguito la guida e tutto funziona correttamente. L’unico problema che ho è che più volte nel corso della giornata si azzerano i valori dei consumi e ripartono da 0.
    Penso sia un problema di impostazioni ma non so come risolvere. A nessuno è capitato?
    Grazie

    • Antonio ha detto:

      Se hai già provato ad invertire rx con TX, allora molto probabilmente è il pzem che funziona male. Mi è già successo ed ho risolto comprando un nuovo pzem. Si azzerano solo i valori della giornata così come quando togli l’alimentazione dal pzem

  23. Davide ha detto:

    Salve ragazzi, ho seguito la guida e da tasmota rilevo i consumi, su HASSIO invece dopo aver aggiunto tutti i sensori, mi da “sconosciuto” su tutti i sensori.
    Cosa puo’ essere il problema? sembra che mqtt comunichi bene altrimenti non dovrei rilevare i sensori su HASSIO.

  24. Andre ha detto:

    ho seguito la guida, e mi ha funzionato tutto senza dover invertire RX e TX. confrontandomi con altri utenti ho notato però che il mio pzem-016 è in v2.0, mentre altri hanno la v1.0.
    ieri tutto bene, il pzem mi ha indicato un consumo giornaliero di 4300kWh circa. Oggi però è capitata una cosa strana: da Home Assistant ho notato che alle 2 di stanotte mi sono stati riportati 16600kWh, cosa che poi è successa di nuovo alle 9 di stamattina, per un totale di più di 33200kWh…. a cosa può essere dovuto?

  25. Gianni ha detto:

    Il problema e’ aprirlo.

  26. Domenico ha detto:

    Ho eseguito la guida e mi funziona tutto, a perte il fatto che mi da valori sbagliati sui watt come potrei risolvere? Ho provato anche a dare il comando PowerSet xx ma mi da errore

  27. christian ha detto:

    Ciao, volevo sapere se va bene lo stesso delle resistenze da 2.2kohm?

  28. Lucio ha detto:

    …. Ho un paio di PZEM 016 … e wemos tasmotizzato 9.3.1 e da soli tutto funziona alla perfezione, ma con integrazione tasmota in hassio …. mi riconosce correttamente solo alcuni parametri !!! riconosce correttamente
    energy_today,
    energy_total,
    energy_totalstarttime,
    energy_yesterday
    e tutti i parametri normalmente disabilitati !!!
    Da console vedo tutto i queste sono le informazioni :
    17:40:18.511 MQT: tele/pzem2/STATE = {“Time”:”2021-03-29T17:40:18″,”Uptime”:”0T00:10:09″,”UptimeSec”:609,”Heap”:27,”SleepMode”:”Dynamic”,”Sleep”:50,”LoadAvg”:19,”MqttCount”:1,”Wifi”:{“AP”:1,”SSId”:”B525-24G”,”BSSId”:”FC:87:43:7B:6B:05″,”Channel”:9,”RSSI”:90,”Signal”:-55,”LinkCount”:1,”Downtime”:”0T00:00:03″}}
    17:40:18.519 MQT: tele/pzem2/SENSOR = {“Time”:”2021-03-29T17:40:18″,”ENERGY”:{“TotalStartTime”:”2021-03-18T17:10:42″,”Total”:0.168,”Yesterday”:0.000,”Today”:0.009,”Period”:2,”Power”:23,”ApparentPower”:23,”ReactivePower”:0,”Factor”:0.99,”Frequency”:50,”Voltage”:236,”Current”:0.097}}
    Controllato le alimentazioni del wemos e provato ad alimentarlo separatamente, provarto a cambiare il valore delle resistenze da 2 K …. ma nulla …
    solo dopo numerose prove e cancellazioni delle integrazioni funziona … ma se resetto tutto … non funziona nulla … Se tralascio integrazione Tasmota e faccio con integrazione MQTT e file sensor.yaml tutto funziona correttamente …. sono arrivato alla conclusione che Tasmota + Hassio ha qualche problema.
    Grazie per eventuali suggeriementi

Lascia un commento

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

Advertisment ad adsense adlogger