Lettura Consumi con PZEM 016

HassioHelp

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

 

43 risposte

  1. Avatar Davide ha detto:

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

  2. Avatar Samuele ha detto:

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

  3. Avatar 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. Avatar 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. Avatar 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 Enrico ha detto:

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

      • Avatar Antonio ha detto:

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

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

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

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

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

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

    • Avatar 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)

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

  10. Avatar 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. Avatar 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. Avatar 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. Avatar Antonio Ortega ha detto:

    Ciao, cosa intendi dritta di invertire i pin?

  14. Avatar Antonio ha detto:

    Ciao, cosa intendi dritta di invertire i pin?

  15. Avatar Antonio ha detto:

    Ciao, come vengono invertiti i pin?

    • Avatar TizianoSan ha detto:

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

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

        • Avatar TizianoSan ha detto:

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

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

    • Avatar 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. Avatar 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. Avatar Jolly ha detto:

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

  19. Avatar 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?

    • Avatar 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. Avatar 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. Avatar pino ha detto:

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

Lascia un commento

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