ATTENZIONE: qualsiasi modifica all’impianto 220V della vostra abitazione va fatto da personale qualificato, questa guida è al solo scopo didattico, non abbiamo nessuna responsabilità per eventuali danni causati a cose o persone.
Maneggiare la tensione 220 Volt di casa è molto pericoloso, se non siete sicuri di quello che state facendo, fatevi aiutare da qualcuno competente.
Con questo articolo andiamo monitorare i consumi elettrici utilizzando la scheda PZEM-004T che leggerà tensione elettrica e gli Ampere assorbiti nel vostro impianto di casa, tramite il toroide e calcolerà i dati inviandoli al Sonoff Basic tramite l’interfaccia seriale inviandoli poi via MQTT ad Home Assistant.
Questo è un vero e proprio monitoraggio di consumi energetici, quindi un misuratore dei seguenti dati.
Dati ottenuti:
Tensione -> Volt (V)
Corrente -> Ampere (A)
Potenza -> Watts (W)
Potenza Apparente -> VoltAmpere (VA)
Fattore di potenza -> cos-fi
Potenza Reattiva VoltaAmpereR (VAr)
Potenza assorbita Oggi -> KiloWatt/Ora (KWh)
Potenza assorbita Ieri -> KiloWatt/Ora (KWh)
Potenza Totale da inizio misure -> KiloWatt/Ora (KWh)
Il materiale che serve è:
1 x PZEM-004T
1x Sonoff Basic
1x Arduino UNO per la programmazione (vedi guida qui)
Prima di tutto dobbiamo caricare il firmware Tasmota sul sonoff, fatto questo andiamo a collegare la seriale delle due schede:
1 2 3 4 5 6 |
PZEM-004T <-> Sonoff Basic -------------------------- GND <-> GND VCC <-> VCC RX <-> TX TX <-> RX |
Cosa importante l’ESP8266 o ESP8285 lavora a 3,3V, quindi dobbiamo mettere una resistenza sul PZEM come in foto.
Una volta scaricato il firmware Tasmota sul sonof e collegata la seriale tra le due schede, configuriamo il Sonoff con tutti i suoi parametri Wi-Fi, MQTT ed il tipo di modulo con i suoi GPIO come di seguito:
Colleghiamo le schede alla rete elettrica, facendo passare un solo filo dentro al toroide dove poi applicheremo il carico.
Applichiamo l’alimentazione al Sonoff, se tutto è configurato correttamente, sulla pagina web del Sonoff vedremo i dati dei consumi.
Configurazione su Home Assistant
Creiamo una serie di sensori, uno per ogni valore estratto dal Sonoff in MQTT, questa è la riga:
1 |
14:51:10 MQT: tele/sonoff_power/SENSOR = {"Time":"2019-04-10T14:51:10","ENERGY":{"TotalStartTime":"2019-03-05T22:56:51","Total":225.658,"Yesterday":6.513,"Today":2.503,"Period":0,"Power":185,"ApparentPower":272,"ReactivePower":199,"Factor":0.68,"Voltage":230,"Current":1.180}} |
Per creare i sensori nel file configuration.yaml inseriamo quanto segue, tenedo conto che dove c’è “sonoff_power” è il nome che avete inserito in MQTT topic:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
############################# # Sensore Consumi Elettrici # ############################# sensor: - platform: mqtt name: "Tensione" icon: mdi:gauge state_topic: "tele/sonoff_power/SENSOR" value_template: '{{ value_json["ENERGY"]["Voltage"] }}' unit_of_measurement: "V" - platform: mqtt name: "Corrente" icon: mdi:gauge state_topic: "tele/sonoff_power/SENSOR" value_template: '{{ value_json["ENERGY"]["Current"] }}' unit_of_measurement: "A" - platform: mqtt name: "Potenza Ist." icon: mdi:gauge state_topic: "tele/sonoff_power/SENSOR" value_template: '{{ value_json["ENERGY"]["Power"] }}' unit_of_measurement: "W" - platform: mqtt name: "Fattore Potenza" icon: mdi:function state_topic: "tele/sonoff_power/SENSOR" value_template: '{{ value_json["ENERGY"]["Factor"] }}' unit_of_measurement: "cosφ" - platform: mqtt name: "Energia Oggi" icon: mdi:chart-line state_topic: "tele/sonoff_power/SENSOR" value_template: '{{ value_json["ENERGY"]["Today"] }}' unit_of_measurement: "kWh" - platform: mqtt name: "Energia Ieri" icon: mdi:chart-line state_topic: "tele/sonoff_power/SENSOR" unit_of_measurement: "kWh" value_template: '{{ value_json["ENERGY"]["Yesterday"] }}' - platform: mqtt name: "Energia Totale" icon: mdi:alpha-t-circle-outline state_topic: "tele/sonoff_power/SENSOR" unit_of_measurement: "kWh" value_template: '{{ value_json["ENERGY"]["Total"] }}' - platform: mqtt name: "Potenza Apparente" icon: mdi:gauge state_topic: "tele/sonoff_power/SENSOR" unit_of_measurement: "VA" value_template: '{{ value_json["ENERGY"]["ApparentPower"] }}' - platform: mqtt name: "Potenza Reattiva" icon: mdi:gauge state_topic: "tele/sonoff_power/SENSOR" unit_of_measurement: "VAr" value_template: '{{ value_json["ENERGY"]["ReactivePower"] }}' - platform: mqtt name: "Data Inizio Misure" icon: mdi:calendar-clock state_topic: "tele/sonoff_power/SENSOR" value_template: '{{ value_json["ENERGY"]["TotalStartTime"] }}' |
Riavviamo home assistant cosi da avere i sensori nello status, per comodità si può creare un pannello dedicato nella Lovelace UI di seguito un esempio:
Complimenti per l’Articolo…… realizzato in maniera eccelente.
Ho solo 2 domande:
Che valore ha la resistenza da saldare sul PZEM?
Si può usare il Sonoff mini?
GRAZIE
Certo puoi usare il sonoff mini, ovviamente cambiano i pin rx tx e la resistenza è da 100 ohm