Integrar contadores inteligentes da EDP em Home Assistant

Se não for inteligente não dá

1 Curtiu

Eu acredito que tenha a porta HAN tapada por este plástico escur.

Bom dia,

Há alguma novidade em relação a obter os dados via site? Entrando pelo site consigo chegar aos dados sem passar por nenhum captcha, talvez tenham mudado isso entretanto e já seja possível?

Obrigado

Boa tarde,

Fiz uma implementação muito parecida a esta. Enquanto a malta da E-Redes estava cá a instalar o chicote da port a HAN, testei e consegui ler dados durante uns 5 minutos, estava a funcionar perfeitamente.

Agora que consegui meter uma fonte de 5V estavel ao pe do quadro, fui testar e meter tudo a funcionar e os valores aparecem todos a 0.

image

Nunca usei os 5V da porta HAN para alimentar o ESP, o que pode ter acontecido, e o que posso fazer?

Muito obrigado desde já.

(edit: adicionei a segunda print)

Boa Tarde,

Consegues-me ajudar com isto? Julgo que tenho o mesmo problema. Estou a ligar um contador ao ELFIN, mas não estou a conseguir nenhuma leitura. Segui um foram com as indicações incluindo as ligações da RJ12 à RJ45 mas nada chega ao homeassistant. Incluindo com um utilitario QModMaster (que o chatgpt me sugeriu) não consigo obter nenhuma leitura.

Estou a seguir as indicações deste site

Estou com estes erros:
2024-05-16 23:04:59.282 DEBUG (MainThread) [homeassistant.components.modbus.modbus] Pymodbus: edpbox: Error: device: 1 address: 127 → pymodbus returned isError True
2024-05-16 23:04:59.484 DEBUG (MainThread) [pymodbus.logging] Adding transaction 7
2024-05-16 23:04:59.484 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer -
2024-05-16 23:04:59.484 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x7 0x0 0x0 0x0 0x6 0x1 0x4 0x0 0x26 0x0 0x2
2024-05-16 23:05:00.031 DEBUG (MainThread) [pymodbus.logging] recv: 0x0 0x7 0x0 0x0 0x0 0x3 0x1 0x84 0x81 old_data: addr=None
2024-05-16 23:05:00.032 DEBUG (MainThread) [pymodbus.logging] Processing: 0x0 0x7 0x0 0x0 0x0 0x3 0x1 0x84 0x81
2024-05-16 23:05:00.032 DEBUG (MainThread) [pymodbus.logging] Factory Response[132]
2024-05-16 23:05:00.032 DEBUG (MainThread) [pymodbus.logging] Getting transaction 7
2024-05-16 23:05:00.033 DEBUG (MainThread) [pymodbus.logging] Frame check, no more data!

2 Curtiram

Obrigado, acho que entrei num beco sem saida…vou ver se consigo entrar em contacto com a e-redes.

Para pessoas com o mesmo problema, está resolvido.
Assim que paguei a conta da luz, comecei a conseguir ler valores. Não sei se foi coincidencia ou não.

Bom dia! Consegui obter alguns valores, mas a maior parte deles não estou a conseguir ler.
Depois de contactar a e-redes, disseram-me que iam ver mas nunca informaram mais nada. Apos algumas semanas começei a receber alguns valores no homeassistant:

  • Tensão (108)
  • Corrente (109)
  • Fator de potencia (123)
  • Frequencia (127)
  • State L1 (132)
  • Tariff L1 (11)
  • Firmware Core (4)

No entanto os restantes valores como o consumo estão com erro. Estou a tentar varias configurações para ler o valor da Potencia Activa mas sem sucesso (nos endereços 115, tambem ja tentei ler os endereços 121, 117 e 119). De momento esta configuração no homeassistant configuration.yaml:

  - name: "EDP Box - Potência Ativa" # 79
    unique_id: edp_box_potencia_activa_sensor
    slave: 1
    address: 119
    input_type: input
    count: 4
    data_type: custom
    structure: ">Q"
    unit_of_measurement: W
    device_class: power
    scan_interval: 30

Mas o sensor não apresenta qualquer valor. No log do homeassistant apresenta o erro:

Logger: homeassistant.components.modbus.modbus
Source: components/modbus/modbus.py:331
integration: Modbus (documentation, issues)
First occurred: 09:58:05 (31 occurrences)
Last logged: 10:13:05

Pymodbus: edpbox: Error: device: 1 address: 119 → pymodbus returned isError True

No detalhe:
2024-06-05 09:57:55.252 DEBUG (MainThread) [pymodbus.logging] Connecting to 192.168.1.208:9502.

2024-06-05 09:57:55.252 DEBUG (MainThread) [pymodbus.logging] Connecting comm

2024-06-05 09:57:55.261 DEBUG (MainThread) [pymodbus.logging] Connected to comm

2024-06-05 09:57:55.261 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer -

2024-06-05 09:57:55.262 INFO (MainThread) [homeassistant.components.modbus.modbus] modbus edpbox communication open

2024-06-05 09:58:01.265 DEBUG (MainThread) [pymodbus.logging] → transport: received eof

2024-06-05 09:58:01.266 DEBUG (MainThread) [pymodbus.logging] Connection lost comm due to None

2024-06-05 09:58:01.266 DEBUG (MainThread) [pymodbus.logging] callback_disconnected called: None

2024-06-05 09:58:01.268 DEBUG (MainThread) [pymodbus.logging] Wait comm 100.0 ms before reconnecting.

2024-06-05 09:58:01.380 DEBUG (MainThread) [pymodbus.logging] Connecting to 192.168.1.208:9502.

2024-06-05 09:58:01.380 DEBUG (MainThread) [pymodbus.logging] Connecting comm

2024-06-05 09:58:01.405 DEBUG (MainThread) [pymodbus.logging] Connected to comm

2024-06-05 09:58:01.406 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer -

2024-06-05 09:58:03.921 DEBUG (MainThread) [pymodbus.logging] Adding transaction 1

2024-06-05 09:58:03.921 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer -

2024-06-05 09:58:03.921 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x1 0x0 0x0 0x0 0x6 0x1 0x4 0x0 0x6d 0x0 0x1

2024-06-05 09:58:04.478 DEBUG (MainThread) [pymodbus.logging] recv: 0x0 0x1 0x0 0x0 0x0 0x5 0x1 0x4 0x2 0x0 0x1b old_data: addr=None

2024-06-05 09:58:04.478 DEBUG (MainThread) [pymodbus.logging] Processing: 0x0 0x1 0x0 0x0 0x0 0x5 0x1 0x4 0x2 0x0 0x1b

2024-06-05 09:58:04.478 DEBUG (MainThread) [pymodbus.logging] Factory Response[ReadInputRegistersResponse’: 4]

2024-06-05 09:58:04.478 DEBUG (MainThread) [pymodbus.logging] Getting transaction 1

2024-06-05 09:58:04.479 DEBUG (MainThread) [pymodbus.logging] Frame check, no more data!

2024-06-05 09:58:04.710 DEBUG (MainThread) [pymodbus.logging] Adding transaction 2

2024-06-05 09:58:04.712 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer -

2024-06-05 09:58:04.712 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x2 0x0 0x0 0x0 0x6 0x1 0x4 0x0 0x77 0x0 0x4

2024-06-05 09:58:05.264 DEBUG (MainThread) [pymodbus.logging] recv: 0x0 0x2 0x0 0x0 0x0 0x3 0x1 0x84 0x4 old_data: addr=None

2024-06-05 09:58:05.265 DEBUG (MainThread) [pymodbus.logging] Processing: 0x0 0x2 0x0 0x0 0x0 0x3 0x1 0x84 0x4

2024-06-05 09:58:05.265 DEBUG (MainThread) [pymodbus.logging] Factory Response[132]

2024-06-05 09:58:05.265 DEBUG (MainThread) [pymodbus.logging] Getting transaction 2

2024-06-05 09:58:05.265 DEBUG (MainThread) [pymodbus.logging] Frame check, no more data!

2024-06-05 09:58:05.279 ERROR (MainThread) [homeassistant.components.modbus.modbus] Pymodbus: edpbox: Error: device: 1 address: 119 → pymodbus returned isError True

2024-06-05 09:58:09.719 DEBUG (MainThread) [pymodbus.logging] → transport: received eof

2024-06-05 09:58:09.720 DEBUG (MainThread) [pymodbus.logging] Connection lost comm due to None

2024-06-05 09:58:09.721 DEBUG (MainThread) [pymodbus.logging] callback_disconnected called: None

2024-06-05 09:58:09.722 DEBUG (MainThread) [pymodbus.logging] Wait comm 100.0 ms before reconnecting.

- name: "EDP Box - Potência Ativa" # 79
    unique_id: edp_box_potencia_activa_sensor
    slave: 1
    address: 121
    input_type: input
    count: 1
    data_type: custom
    structure: ">L"
    unit_of_measurement: W
    device_class: power
    scan_interval: 30

Não há garantias que o componente modbus do Home Assistant funcione correctamente.

Os 32bits da edpbox são non-standard.

Obrigado @nikito7 . Não resulta, apresenta o erro:
Logger: homeassistant.config
Source: config.py:1326
First occurred: 14:04:17 (1 occurrences)
Last logged: 14:04:17

Invalid config for ‘modbus’ at configuration.yaml, line 196: EDP Box - Potência Ativa: Size of structure is 4 bytes but count: 1 is 2 bytes ‘modbus->0->sensors->7’, got {‘name’: ‘EDP Box - Potência Ativa’, ‘unique_id’: ‘edp_box_potencia_activa_sensor’, ‘slave’: 1, ‘address’: 121, ‘input_type’: ‘input’, ‘count’: 1, ‘data_type’: ‘custom’, ‘structure’: ‘>L’, ‘unit_of_measurement’: ‘W’, ‘device_class’: ‘power’, ‘scan_interval’: 30}, please check the docs at https://www.home-assistant.io/integrations/modbus

Vou experimentar tambem com o Count=2 (mas acho que ja tinha tentado isto antes numa das dezenas de sugestões do ChatGPT).

Com count=2, o erro no log é apresentao:
2024-06-05 14:10:28.102 DEBUG (MainThread) [pymodbus.logging] Adding transaction 8

2024-06-05 14:10:28.103 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer -

2024-06-05 14:10:28.103 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x8 0x0 0x0 0x0 0x6 0x1 0x4 0x0 0x79 0x0 0x2

2024-06-05 14:10:28.668 DEBUG (MainThread) [pymodbus.logging] recv: 0x0 0x8 0x0 0x0 0x0 0xb 0x1 0x4 0x8 0x0 0x0 0x2 0x2 0x0 0x0 0x0 0x0 old_data: addr=None

2024-06-05 14:10:28.668 DEBUG (MainThread) [pymodbus.logging] Processing: 0x0 0x8 0x0 0x0 0x0 0xb 0x1 0x4 0x8 0x0 0x0 0x2 0x2 0x0 0x0 0x0 0x0

2024-06-05 14:10:28.669 DEBUG (MainThread) [pymodbus.logging] Factory Response[ReadInputRegistersResponse’: 4]

2024-06-05 14:10:28.669 DEBUG (MainThread) [pymodbus.logging] Getting transaction 8

2024-06-05 14:10:28.669 DEBUG (MainThread) [pymodbus.logging] Frame check, no more data!

2024-06-05 14:10:28.872 ERROR (MainThread) [homeassistant.components.modbus.base_platform] Received 8 bytes, unpack error unpack requires a buffer of 4 bytes

Não resulta.

Não sei se é “EDP BOX”, estou a usar um ELFIN EW11, o nome EDP BOX veio das instruções que segui e usei o mesmo nome. De qualquer forma as configurações estão coerentes com o documento da especificação do protocolo da e-redes.

O pymodbus não suporta 32bits count 1. 4 bytes de uma só vez.

Obrigado.
Vou tentar seguir isto tentar correr dentro do docker container, não estou muito familiarizado com isto… se conseguir algum resultado informo.
Mais uma vez, obrigado pela ajuda

Podes tentar mas não compensa.

Esp8266 + rs485

Não me vou aventurar por agora. Isso ainda não esta ao meu alcance, não tenho know-how para me aventurar ainda e começar do zero com outra integração em tasmota.
Instalar outra versão Modbus no HA, parece que isso substitui componentes standard to modbus no homeassistant e imagino que iria ter problemas em actualizações ou não saberia resolver problemas que possam surgir.

Como ainda não tenho geração fotovoltaica e só tenho uma fase com tarifa simples, por agora vou usar os sensores que consigo obter no ELFIN e para a potencia activa/consumo momentanio vou usar uma formula num helper com template. Deixo o template para quem tiver com precisar e não se quiser dar ao trabalho:

{% set tensao = states(‘sensor.edp_box_tensao’) | float %}
{% set corrente = states(‘sensor.edp_box_corrente’) | float %}
{% set fator_potencia = states(‘sensor.edp_box_fator_de_potencia’) | float %}
{% set consumo = tensao * corrente * fator_potencia %}
{{ consumo }}

Aparentemente os valores parecem certos, mas não sei se a formula esta correta.

Bom dia,

Estou a usar o dispositivo feito pelo Tiago freire, e de há uns meses para cá deixou de conseguir ir buscar os valores da tensão, corrente, potência activa, entre outros . Mas consegue ler os totalizadores de consumo.

Contador: Landis GYR ZCXe110CRUOL3D2.03 S3 (PLC)

Alguém sabe porque poderá ter acontecido isto e uma possível solução?

Script no dispositivo:

>D 32
pin=0
pout=0
pi_d=0
po_d=0
hr=0
p:pi_m=0
p:po_m=0

;#after sensors init
>BS
smlj=0
tper=30
=>sensor53 r

;#every second
>S
if upsecs>20
and upsecs<30
{
smlj=1
tper=10
}

;#meter definition
>M 1
+1,3,m,1,9300,EB,1,8,r010400010001,r0104006C0007,r010400730007,r0104007A0006,r010400260003,r010400160006,r0104000B0004,r010400840003

1,=hClock
; 01
1,01040CUUuu@i0:1,Year,,Year,0
1,01040Cxxxxuu@i0:1,Month,,Month,0
1,01040Cxxxxxxuu@i0:1,Day,,Day,0
1,01040Cxxxxxxxxxxuu@i0:1,Clock,h,CH,0
1,01040Cxxxxxxxxxxxxuu@i0:1,Clock,m,CM,0
1,01040Cxxxxxxxxxxxxxxuu@i0:1,Clock,s,CS,0

1,=h<hr> Overview
; 6C
1,01040EUUuu@i1:10,Voltage L1,V,Voltage_P1,1
1,01040ExxxxUUuu@i1:10,Current L1,A,Current_P1,1
; 79
1,01041cx8x8x8UUuuUUuu@i2:1,Active Power Import,W,Power_P1,0
; 7A
1,01040eUUuuUUuu@i3:1,Active Power Export,W,Power_Export_P1,0
; 7B
1,01040exxxxxxxxUUuu@i3:1000,Power Factor,pf,PFactor_P1,3
; 7F
1,01040exxxxxxxxxxxxxxxxxxxxxxxxUUuu@i3:10,Frequency_P1,Hz,F,1


1,=h<hr>Energy
; 26
1,01040CUUuuUUuu@i4:1000,T1 Vazio (1),kWh,Energy_P1_R1,1
1,01040CxxxxxxxxUUuuUUuu@i4:1000,T2 Ponta (2),kWh,Energy_P1_R2,1
1,01040CxxxxxxxxxxxxxxxxUUuuUUuu@i4:1000,T3 Cheia (3),kWh,Energy_P1_R3,1
; 16
1,010418UUuuUUuu@i5:1000,Import,kWh,Energy_Imported_P1,3
1,010418xxxxxxxxUUuuUUuu@i5:1000,Export,kWh,Energy_Exported_P1,3

1,=h<hr>

; 0B

1,01040euu@i6:1,Tariff ,,Tariff_P1,0
1,01040exxUUuuUUuu@i6:1000,Contract T1,kVA,Tariff_P1_R1,2
1,01040exxxxxxxxxxUUuuUUuu@i6:1000,Contract T2,kVA,Tariff_P1_R2,2
1,01040exxxxxxxxxxxxxxxxxxUUuuUUuu@i6:1000,Contract T3,kVA,Tariff_P1_R3,2

1,=h<hr>

; 84

1,01040auu@i7:1,DCP,,DCP,0
1,01040axxUUuuUUuu@i7:1,DCP Q,,Q,0
1,01040axxxxxxxxxxUUuuUUuu@i7:100,DCP K,,K,1


#

+1,3,m,1,9300,EB,1,8,r010400010001,r0104006C0007,r010400730007,r0104007A0006,r010400260003,r010400160006,r0104000B0004,r010400840003

Estes pedidos são trifásicos, não funciona em todos os monofásicos


+1,3,mN1,1,9600,EB1,1,15,r010400010001,r0104006C0002,r010400160002,r010400260003,r010400790003,r0104007F0001,r0104000B0007,r01440601

; r01440601 Imp+Exp
; r01440301 Imp

1,=h<br>

; 01

1,01040Cx4xxuu@i0:1,Clock ,h,CH,0
1,01040Cx4xxxxuu@i0:1,Clock ,m,CM,0
1,01040Cx4xxxxxxuu@i0:1,Clock ,s,CS,0

1,=h<br>

; 6C

1,010404UUuu@i1:10,Voltage L1 ,V,VL1,1
1,010404xxxxUUuu@i1:10,Current L1 ,A,CL1,1

1,=h<br>

; 16

1,010408UUuuUUuu@i2:1000,%TE% Total Import ,kWh,TEI,3
1,010408x4UUuuUUuu@i2:1000,%TE% Total Export ,kWh,TEE,3

1,=h<br>

; 26

1,01040CUUuuUUuu@i3:1000,%TE% T1 Vazio ,kWh,TET1,3
1,01040Cx4UUuuUUuu@i3:1000,%TE% T2 Ponta ,kWh,TET2,3
1,01040Cx8UUuuUUuu@i3:1000,%TE% T3 Cheias ,kWh,TET3,3

1,=h<br>

; 79

1,01040aUUuuUUuu@i4:1,%AP% Import ,W,API,0
1,01040ax4UUuuUUuu@i4:1,%AP% Export ,W,APE,0
1,01040ax8UUuu@i4:1000,%PF% ,φ,PF,3

; 7F

1,010402UUuu@i5:10,Frequency ,Hz,FR,1

1,=h<br>

; 0B

1,01041Auu@i6:1,Tarifa,,Tariff,0
1,01041AxxUUuuUUuu@i6:1000,CT1,kVA,CT1,2
1,01041Ax12xxUUuuUUuu@i6:1000,CT4,kVA,CT4,2

1,=h<br>

; lp

; 01441d Imp+Exp
; 014411 Imp

1,01441dUUuu@i7:1,LP Year,,LP1_Y,0
1,01441dxxxxuu@i7:1,LP Month,,LP1_M,0
1,01441dxxxxxxuu@i7:1,LP Day,,LP1_D,0
1,01441dx4xxuu@i7:1,LP Hour,h,LP1_HH,0
1,01441dx4xxxxuu@i7:1,LP Minute,m,LP1_MM,0
;
1,01441dx8x4xxUUuuUUuu@i7:1000,LP Import Inc,kWh,LP3_IMP,3
1,01441dx16xxUUuuUUuu@i7:1000,LP 4,kWh,LP4,3
1,01441dx16x4xxUUuuUUuu@i7:1000,LP 5,kWh,LP5,3
1,01441dx16x8xxUUuuUUuu@i7:1000,LP Export Inc,kWh,LP6_EXP,3

#

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


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