Você vai precisar de:
1 PZEM-004T para cada fase que for fazer a medição
Link para compra: https://s.click.aliexpress.com/e/_9JpqkS 1
1 Nodemcu
Link para compra: https://s.click.aliexpress.com/e/_A8hMy6
Código Esphome
Lembre-se ligar o nodemcu ao pzem de acordo com os pinos descritos abaixo:
uart:
- id: uart1
tx_pin: D2
rx_pin: D1
baud_rate: 9600
stop_bits: 1
- id: uart2
tx_pin: D4
rx_pin: D3
baud_rate: 9600
stop_bits: 1
modbus:
- id: modbus1
uart_id: uart1
- id: modbus2
uart_id: uart2
sensor:
# FASE 1 INICIO #
- platform: pzemac
modbus_id: modbus1
current:
name: "Pzem fase 1 corrente"
id: pzem_fase_1_corrente
voltage:
name: "Pzem fase 1 tensão"
id: pzem_fase_1_tensao
energy:
name: "Pzem fase 1 energia"
id: pzem_fase_1_energia
unit_of_measurement: kWh
accuracy_decimals: 3
filters:
- multiply: 0.001
power:
name: "Pzem fase 1 potência"
id: pzem_fase_1_potencia
frequency:
name: "Pzem fase 1 frequência"
power_factor:
name: "Pzem fase 1 fator de potência"
update_interval: 2s
address: 1
# FASE 1 FIM #
# FASE 2 INICIO #
- platform: pzemac
modbus_id: modbus2
current:
name: "Pzem fase 2 corrente"
id: pzem_fase_2_corrente
voltage:
name: "Pzem fase 2 tensão"
id: pzem_fase_2_tensao
energy:
name: "Pzem fase 2 energia"
id: pzem_fase_2_energia
unit_of_measurement: kWh
accuracy_decimals: 3
filters:
- multiply: 0.001
power:
name: "Pzem fase 2 potência"
id: pzem_fase_2_potencia
frequency:
name: "Pzem fase 2 frequência"
power_factor:
name: "Pzem fase 2 fator de potência"
update_interval: 2s
address: 1
# FASE 2 FIM #
# SOMA INICIO #
- platform: template
name: "Pzem total energia"
icon: mdi:lightning-bolt
lambda: |-
return (id(pzem_fase_1_energia).state + id(pzem_fase_2_energia).state);
unit_of_measurement: kWh
update_interval: 1s
- platform: template
name: "Pzem total corrente"
icon: mdi:current-ac
lambda: |-
return (id(pzem_fase_1_corrente).state + id(pzem_fase_2_corrente).state);
unit_of_measurement: A
update_interval: 1s
- platform: template
name: "Pzem total potência"
icon: mdi:flash
id: pzem_total_energia_diaria
lambda: |-
return (id(pzem_fase_1_potencia).state + id(pzem_fase_2_potencia).state);
unit_of_measurement: W
update_interval: 1s
- platform: template
name: "Pzem total tensão"
icon: mdi:sine-wave
lambda: |-
return (id(pzem_fase_1_tensao).state + id(pzem_fase_2_tensao).state)/2;
unit_of_measurement: V
update_interval: 1s
# SOMA FIM #
# TOTAL ENERGIA DIARIA INICIO #
- platform: total_daily_energy
name: "Pzem total energia diária"
power_id: pzem_total_energia_diaria
filters:
- multiply: 0.001
accuracy_decimals: 3
unit_of_measurement: kWh
# TOTAL ENERGIA DIARIA FIM #
# TENSAO DO ESP8266 INICIO #
- platform: adc
pin: VCC
name: "Tensão do ESP"
# TENSAO DO ESP8266 FIM #
# VERSAO DO ESP INICIO #
text_sensor:
- platform: version
name: "Versão do ESP"
hide_timestamp: True
# VERSAO DO ESP FIM #
# RESETAR ESP INICIO #
switch:
- platform: restart
name: "Resetar ESP"
# RESETAR ESP FIM #
Utility Meter
consumo_de_energia_hora:
source: sensor.consumo_de_energia_total_pzem
cycle: hourly
consumo_de_energia_dia:
source: sensor.consumo_de_energia_total_pzem
cycle: daily
offset: '00:00:00'
consumo_de_energia_semana:
source: sensor.consumo_de_energia_total_pzem
cycle: weekly
consumo_de_energia_mes:
source: sensor.consumo_de_energia_total_pzem
cycle: monthly
offset:
days: 12
hours: 00
minutes: 00
consumo_de_energia_ano:
source: sensor.consumo_de_energia_total_pzem
cycle: yearly