Integrar Contador EDP ZIV com Tasmota (Parte 1/3)

Tutorial de como integrar o contador ZIV da EDP com Tasmota.

Neste tutorial vamos abordar um pouco mais sobre a integração dos nossos contadores inteligentes com o Tasmota.
Desde já começamos por agradecer ao @ReDaLeRt , @nikito7 e ao @PDM por terem aberto o caminho para o desenvolvimento e implementação dos nossos contadores inteligentes com o Tasmota para obtenção de dados. Sem eles não teria sido possível ter tido o sucesso com os nossos contadores inteligentes, como temos hoje.
Obrigado !!!

Este Tutorial é especifico para os contadores ZIV, no entanto o mesmo poder-se-á aplicar a outros tipos de contador.

Em resumo, estes são os passos necessários:
1 - Ter um contador inteligente (ZIV)
2 - Ter instalado chicote na porta HAN (Rj12 cabo)
3 - NodeMCU (esp8266)
4 - Conversor RS485 to TTL
5 - Ligaçõoes do NodeMCU com o Conversor RS485 to TTL
6 - Flashar e configurar Tasmota

Em detalhe:
1- Será necessário ter um contador inteligente da EDP, neste caso vamos fazer o setup para os contadores ZIV:

3

2 - Instalar no contador um chicote RJ12 na porta HAN:

1

3 - Ter um NodeMCU (esp8266):
1

4 - Ter um Coversor RS485 to TTL:

1

5 - Ligações do NodeMCU com o Conversor RS485 to TTL:

no NodeMCU vamos usar o Hardware Serial Pins

A seguir, vamos ligar os 3.3V, GND, RX(GPIO3) e TX(GPIO1) do esp8266 com o 3.3V, GND, RX e TX do conversor RS485 to TTL:

RX ----- RX
TX ----- TX
GND —GND
3.3V ----3.3V

No conversor vamos ligar ao Rj12 da seguinte forma:
:warning: ATENÇÃO À POSIÇÃO DA FICHA :warning:

1

B- ----- B- (pin 3 ficha macho Rj 12)
A+ ----- A+ (pin 5 ficha macho Rj 12)
GND —GND (pin 1 ficha macho Rj 12)

6 - Flashar o ESP8266 com Tasmota:

Iremos utilizar uma .bin pré-compilada com o Tasmota, que nos é fornecida pelo o user @nikito7, que está disponível no seu GitHub:

De seguida, vamos configurar o Tasmota recorrendo ao uso de scripts Smart Meter Interface (SMI).
Este script vai-nos ajudar com o protocolo de comunicação MODBUS entre o Tasmota e o contador. Poderão encontrar informações sobre o SMI aqui:

https://tasmota.github.io/docs/Smart-Meter-Interface/

Seguidamente, passaremos à interface do Tasmota para configurar o mesmo com o script:

O próximo passo será colocar o nosso script e gravar conforme abaixo:

>D

>B

=>sensor53 r

smlj=0

tper=20  

>S

if upsecs>25
then
smlj=1
endif

>M 1

+1,3,mN2,1,9600,ZIV,1,15,0104006C,r010400260007,r010400790003,0104007F

1,=hVALORES INSTANTANEOS <hr>
1,010404UUuuxxxx@i0:10,Tensão,V,ZIV_Voltage,16 
1,010404xxxxUUuu@i0:10,Corrente,A,ZIV_Current,18


1,=h<br>TOTALIZADORES ENERGIA <hr>
1,01041cUUuuUUuuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@i1:1000,Vazio(1),kWh,ZIV_Energy_Vazio,16
1,01041cxxxxxxxxUUuuUUuuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@i1:1000,Ponta(2),kWh,ZIV_Energy_Ponta,16
1,01041cxxxxxxxxxxxxxxxxUUuuUUuuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@i1:1000,Cheia(3),kWh,ZIV_Energy_Cheia,16
1,01041cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxUUuuUUuu@i1:1000,TOTAL(1+2+3),kWh,ZIV_Energy_TOTAL,16


1,=h<br>POTENCIA <hr>
1,01040AUUuuUUuuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@i2:1,Potência,W,ZIV_Power,16
1,01040AxxxxxxxxxxxxxxxxUUuuxxxxxxxxxxxxxxxxxxxx@i2:1000,Fator Potência,Pf,ZIV_PFactor,17


1,=h<br>FREQUENCIA <hr>
1,01040AUUuuxxxx@i3:10,Frequência,Hz,ZIV_Frequency,16

#

Vamos agora tentar perceber um pouco partes do script:

1

+1   - Número de contadores neste caso 1
 3   - O número do GPIO do RX usado no NodeMCU
mN2  - Tipo de comunicação do contador
9600 - Baudrate de comunicação usada
ZIV  - É simplesmente o nome de JsonPerfix que vai aparecer no vosso MQTT
1    - O número do GPIO do TX usado no NodeMCU
15  - É o número de  de incrementos em que (n * 100ms) de refresh rate , neste caso 1,5 segundos por pedido
0104006C,r010400260007,r010400790003,0104007F - são os vários pedidos que fazemos ao contador neste caso temos 4 pedidos

Mais abaixo no script é onde vamos descodificar a mensagem que o contador nos vais enviar:

1,010404UUuuxxxx@i0:10,Tensão,V,ZIV_Voltage,16
1,010404xxxxUUuu@i0:10,Corrente,A,ZIV_Current,18

Se quisermos fazer um debug aos logs de pedidos, que fazemos ao contador, podemos ir à consola do Tasmota e enviar o seguinte comando para ativar os logs:

Usar o seguinte comando na consola:
sensor53 d1

De seguida, deveremos visualizar o seguinte:

1

Como podemos observar, na seguinte imagem, temos um code HEX começado por > e outro começado por :

  • A linha que começa com o símbolo > corresponde ao nosso pedido que fazemos ao contador
  • A linha que começa com o símbolo : corresponde à resposta que o contador nos vai enviar

Caso obtenhamos resposta do contador deveremos desativar o log com o comando
sensor53 d0

Atenção! Se não desativarmos os logs, não vamos obter os dados em tempo real no GUI do Tasmota

Caso tudo tenha corrido como descrito, devemos ter o resultado final:

Neste tutorial só estamos a pedir ao contador os dados mais usados. Existem outros tipo de dados que podem ser pedidos ao nosso contador.

Seguem abaixo os vários links de informação usados para este tutorial:

https://tasmota.github.io/docs/Smart-Meter-Interface/

Este tutorial é a parte 1 de 3 partes

1 - Integrar Contador EDP ZIV com Tasmota
2 - Integrar Contador EDP ZIV com Homeassistant
3 - Apresentação gráfica de dados no lovelace (to do)

8 Likes

Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade