Código para implementar com ESPHome um medidor de energia para redes monofásica, bifásica ou trifásica e ter essas informações no Home Assistant.
Se você busca uma implementação onde é possível ligar todos os módulos PZEM no mesmo par de pino do ESP e deve-se alterar o endereço de cada módulo PZEM veja este post:
Se você busca uma implementação onde não é necessária a alteração do endereço dos módulos PZEM, onde cada módulo PZEM será ligado em um par de pinos diferentes do ESP, veja este post:
Acredito que não vai conseguir efetuar a medição negativa com o PZEM, mas talvez você possa calcular a potência injetada e consumida da rede medindo a energia de saída do inversor e a de entrada na residência. Porém você precisaria de dois conjuntos de PZEM.
Conseguir realizar as medidas com 2 Pzem, mas não consigo obter energia total e os outros dados referente a potencia total, mostra somente como desconhecido. Tenho que editar alguma coisa no código ??
@douglasit
Esse era o erro, como esse código funciona para circuitos trifásicos não mudei o NumFases.
Somete outra duvida, esse sensor.med_energia_fase_1_energia e fase_2, não deveria ser resetado a cada dia ??
Pois utilizava o tasmota e alimentava o Utility Meter com consumo diário e a cada dia ele zerava esse valor de energia. Fiquei um pouco confuso nessa parte. Mesmo assim Obrigado pela ajuda !!!
A informação do sensor de energia por fase e de energia total (soma da energia total de casa fase) são provenientes dos PZEMs e são cumulativo até que seja resetado no PZEM (por comando ou porque chegou ao valor máximo). Mas mesmo assim ele já é suficiente para usar no gerenciamento de energia do HA. A vantagem de usar esses sensores no painel de energia ao invés dos sensores utility meter é que os PZEMs continuam a acumular a leitura mesmo se perder a comunicação com o HA, sendo que a diferença da última medição e a medição de quando retornar a comunicação com o HA contabilizada na hora do retorno da comunicação.
As entidades utility meter podem ser criadas normalmente a partir dessa informação de energia total e vão servir para estatística para o usuário, podendo ser usadas em automação.
O código para criar as entidades utility meter é:
#Totalizado com reset diário
energia_diaria:
source: sensor.med_energia_energia_total
cycle: daily
tariffs:
- normal
#Totalizado com reset semanal
energia_semanal:
source: sensor.med_energia_energia_total
cycle: weekly
tariffs:
- normal
#Totalizado com reset mensal
energia_mensal:
source: sensor.med_energia_energia_total
cycle: monthly
tariffs:
- normal
#Totalizado com reset anual
energia_anual:
source: sensor.med_energia_energia_total
cycle: yearly
tariffs:
- normal
#Totalizado sem reset periódico
energia_total:
source: sensor.med_energia_energia_total
tariffs:
- normal
Novamente muito obrigado, @douglasit. Desta forma como estou em fase de teste para meu TCC, tenho somente que resetar a energia acumulativa dos pzem. Na ide arduino com a biblioteca do pzem-004t v3, existe a possibilidade de esse reset, no esphome teria essa possibilidade ? Criando um botão para esse reset ?
Desconheço que a biblioteca do PZEMAC no ESPHome possua essa função implementada, mas acredito que você possa conseguir sim. Utilize o UART SWITC com o campo data de acordo com o manual do PZEM para executar o reset.
Eu comecei a medir a energia no dia 21/02, desde então minha base não para de crescer, o que estava dentro do esperado, só que eu estou achando um pouco exacerbado esse crescimento.
Pergunto, se eu alterar o tempo de atualização, está 1 segundo conforme o tutorial, para tipo 5 ou 10 segundos, vai alterar de alguma forma a consistência dos dados, ou seja, as informações armazenadas ou online continuarão verdadeiras?
Era exatamente isso que precisava, através do switch que criou, tenho a possibilidade no nodeRED criar uma rotina para zerar essa energia a cada troca de dia. Muito obrigado !!!
Tive problema para zerar também. Fiz esse código de sugerido para ele zera só do PZEM de endereço 0x01. Procurei e achei nesse link uma tabela que ai deu certo.
Muito TOP seu post @douglasit .
Sabe dizer se consigo criar meu próprio “PZEM” com um sensor de corrente (Sct-013-100) e um arduino (ESP01, ESP32 ou mesmo c NODEMCU)? e dá para integrar com HA?
Com o SCT-013-100 você não consegue medir todas as informações que um PZEM mede. O SCT-013-100 é um medidor de corrente, para medir a potência e a energia você precisa medir a tensão e o fator de potência também.
Mas se quiser usar um SCT-013-100, recomendo usar ESPHome, facilita bem a implementação e a integração com o Home Assistant. Aqui está a documentação para uso.
Prezado, obrigado por disponibilizar esse conteúdo com a comunidade. Gostaria de saber se você pode me ajudar com alguma informação em relação a maneira de zerar o valor acumulado na “device_classe: energy” , pois na página do Esphome tem essa informação, porém não consegui entender.
This action resets the total energy value of the pzemac device with the given ID when executed.