Medição de Energia com PZEM + ESP com Tasmota

Está tendo picos de 658 kWh de tempo em tempo
Não dá pra entender o que está acontecendo

Galera, consegui contornar o problema!

Não sei se era obvio esses cálculo para o pessoal Fórum, mas tive que aprender sozinho, então compartilho com vocês.

Meu PZEM + NodeMCU está dando picos surreais de consumo, conforme mostrei acima.

O que fiz para contornar a situação foi o seguinte:

  1. Criei um sensor (template) para fazer a soma das potências instantâneas consumida das duas fases (W)
  2. Um sensor (integration) para medir consumo instantâneo
  3. Outro sensor (statistics) para calcular o consumo instantâneo por segundo (Wh)
  4. Outro sensor (template) para dividir o valor por 1000 que me entrega (kWh)
  5. Com o resultado do último sensor eu utilizei o utility_meter para me dar o consumo por hora, dia, semana, mês e ano.

abaixo está em sensor.yaml

   - platform: template
     sensors:
       pot_cons_total: ### SOMA DAS POSTENCIAS FASE R + S ###
         friendly_name: Potência R + S
         value_template: '{{ (states("sensor.supervisorio_brc_energy_power_1") | int(states("sensor.supervisorio_brc_energy_power_1")) + (states("sensor.supervisorio_brc_energy_power_2")| float)) | round(0) }}'
         unit_of_measurement: "W"

       cons_valor_total_brc: ### DIVIDE POR 1000 POT INST POR SEGUNDO ###
         friendly_name: Valor Consumido BRC
         value_template: '{{ (states("sensor.energy_consumed") | int(states("sensor.energy_consumed"))/1000 ) | round(3) }}'
         unit_of_measurement: "kWh"

   - platform: integration ### CONSUMO INSTANTANEO ###
     name: Energy Consumed
     source: sensor.pot_cons_total

   - platform: statistics ### CONSUMO INSTANTANEO POR SENGUNDO ###
     name: Potencia por segundo
     entity_id: sensor.pot_cons_total
     sampling_size: 60
  • sensor.pot_cons_total = soma das potências das fases
  • sensor.energy_consumed = consumo instantâneo
  • sensor.potencia_por_segundo = consumo instantâneo por segundo
  • sensor.cons_valor_total_brc = consumo instantâneo por segundo dividido por 1000 (já em kWh)

01

02

Até o momento está tudo funcionando perfeitamente!

2 curtidas

conseguiu fazer bifasico? como alterou?

posso colocar duas bobinas na mesma entrada pra calcular a rede bifásica ?

Alguem já fez esse totorial agora nova integração de energia?

@Tomas você já conseguiu implementar o medidor de energia trifásico com o pzem e esp8266?

Fiquei curioso pois estou querendo instalar um também.
Já até comprei na Aliexpress e estou aguardando chegar.

Eu tenho um medidor Tuya na minha casa e coloquei um na casa do meu pai onde ele também tem energia solar.
O problema lá e que o medidor não é bidirecional e não consigo medir o consumo real da casa.

Minha solução será colocar mais um medidor de energia para medir a energia que está sendo injetada na rede.
Por isso pensei em tentar a solução com o ESP8266 e 3 pzem já que que fica muito mais barato.

Se puder me ajudar caso já tenha implementado eu agradeço.

Obs: Aproveitando eu coloquei um medidor de água da IE Tecnologia na minha casa e está funcionando perfeitamente.
Tem um tópico aqui no fórum que eu detalhei mais sobre o projeto…

1 curtida

Oi @Bruno.BRC,
o PZEM monitora apenas o disjuntor geral da casa, ou é possível pegar o consumo de cada equipamento ligado? Neste último caso, somente com algum dispositivo Sonoff ou Tuya?

1 curtida

@douglas vc conseguiu fazer bifásico? é só colocar duas bobinas? com mesmo sensor?? valewwww

ele pega a energia da disjuntor geral da casa, ele mostra o consumo geral da residencia.
para ter o consumo de cada equipamento somente com os sonoff ou tuya mesmo!

Pessoal compartilhando.

Utilizando mais de uma fase com EPSHOME, Segue código

substitutions:
hostname: ‘esphome_pzem’

esphome:
name: $hostname
platform: ESP8266
board: nodemcuv2

wifi:
ssid: “wifi”
password: “senha”

manual_ip:
static_ip: 192.168.1.*
gateway: 192.168.1.*
subnet: 255.255.255.0

ap:
ssid: “esphome pzems”
password: “senhadarede”

api:
ota:
logger:
baud_rate: 0

modbus:
- id: mod1
uart_id: ua1
- id: mod2
uart_id: ua2

uart:

  • id: ua1
    tx_pin: TX #GPIO1
    rx_pin: RX #GPIO3
    baud_rate: 9600
    #stop_bits: 1
  • id: ua2
    tx_pin: D1 #GPIO1
    rx_pin: D2 #GPIO3
    baud_rate: 9600
    #stop_bits: 1

sensor:

  • platform: pzemac
    current:
    name: “Fase 1 Current”
    voltage:
    name: “Fase 1 Voltage”
    power:
    name: “Fase 1 Power”
    frequency:
    name: “Fase 1 Frequency”
    power_factor:
    name: “Fase 1 Power Factor”
    update_interval: 2s
    modbus_id: mod1

  • platform: pzemac
    current:
    name: “Fase 2 Current”
    voltage:
    name: “Fase 2 Voltage”
    power:
    name: “Fase 2 Power”
    frequency:
    name: “Fase 2 Frequency”
    power_factor:
    name: “Fase 2 Power Factor”
    update_interval: 2s
    modbus_id: mod2

1 curtida

Se tiver coloca uma foto das conexões dos PZEMs com o ESP8266 por favor!

Pessoal,

Eu configurei o meu PZEM com o ESP8266 pelo ESPHome:

esphome:
  name: medidor-pzemteste
  platform: ESP8266
  board: nodemcuv2

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  password: "xxXxXxXXXXxxxxXxxXXXxxXXXXXxxxXXX"

wifi:
  ssid: "ssid_da_rede"
  password: "senha_da_rede"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Pzemteste"
    password: "senha"

captive_portal:

# Example configuration entry
uart:
  rx_pin: D2
  tx_pin: D1
  baud_rate: 9600

modbus:

sensor:
  - platform: pzemac
    current:
      name: "PZEM-004T V3 Current"
    voltage:
      name: "PZEM-004T V3 Voltage"
    energy:
      name: "PZEM-004T V3 Energy"
    power:
      name: "PZEM-004T V3 Power"
    frequency:
      name: "PZEM-004T V3 Frequency"
    power_factor:
      name: "PZEM-004T V3 Power Factor"
    update_interval: 1s

Fiz alguns testes e não consegui medir potência negativa. Independente da posição que coloco o PZEM.

Alguém sabe se tem como medir potencia negativa com esses equipamentos?

A ligação da rede solar está produzindo energia direto em um dos quadros da casa e queria colocar o medidor de energia no quadro junto do disjuntor geral ao lado do relógio da cia de energia:

Para isso esse medidor precisa computar energia negativa e assim eu também conseguirei medir o consumo da casa e injeção na rede.
Alguém tem algum projeto parecido?

A única solução que eu encontrei sem precisar de medidor bidirecional é conectar o inversor antes do medidor de energia mas isso requer muita obra ou eletrodutos aparentes que nem sempre são viáveis (implementei isso uma segunda casa e funcionou perfeitamente):

1 curtida

Para alterar o endereço de um módulo PZEM, veja as alternativas neste post:

Para quem vem encontrando problemas com PZEM e ESPHome, apresentei algumas informações interessantes em:

Boa noite Pessoal ! após a configuração o meu apareceu assim. esta correto ?


Valew !

está vc só precisa configurar os gpio que vc tenha colocado no nodemcu

amigos, a alimentação dos bornes de força do pzem precisa necessariamente a que será medida ou posso usar qualquer alimentação e botar o CT no cabo do disjuntor principal por exemplo que possui a bitola maior?

Boa noite, utilizei um projeto “dougiteixeira.pzemgeral” trifásco, utilizei 2 fases pra medir o consumo da minha rede e a fase 3 para medir a injeção solar, o pzem-004T v3 não sabe quando a energia entra ou sai, mais podemos fazer a diferença entre o total das (F1 + F2) - F3 e saber se é Injeção ou Consumo, montando as condições no cálculo, fiz essa montagem e precisa de ajustes pra corrigir medidas exageradas que podem acontecer por motivo de sinal, travamentos, etc…
Caso tenha interesse posso postar tudo aqui formatado, tentei testar esse cálculo em função do resultado anterior e não consegui, tenho feito reset 00:01, montei uma planilha para comparar com o relógio CIA e app Hoymilles, medí por dias e por hora a hora e os valores batem com precisão. Funciona, porém por dia sempre tem umas 2 ocorrências fácil de identificar que foi algum erro no cálculo, podem ser editadas nas estatísticas do desenvolvedor…

1 curtida

Também tenho esta intenção, mas ainda não sei como fazer

@douglas, ótimo conteúdo.

Sugestão de correção do tutorial (Não sei se já informaram):
O script que você pede para colocar em Configure>Other>Template está com as aspas erradas. Isso deu erro para mim.

O seu:
{“NAME”:“PZEM-004”,“GPIO”:[255,255,255,255,98,62,255,255,255,255,255,255,255],“FLAG”:15,“BASE”:18}

O que deu certo:
{"NAME":"PZEM-004","GPIO":[255,255,255,255,98,62,255,255,255,255,255,255,255],"FLAG":15,"BASE":18}

Abraço!