Boa Tarde
Mais uma vez obrigado.
Boa tarde, pequena actualização (a condizer com o progresso).
A e-redes foi lá instalar o chicote e supostamente activar a porta HAN. Não sem incidentes: tiveram que lá ir duas vezes. A primeira coisa que disse o sujeito foi que não tinha o cabo para aquele contador ??? Acabou por deixar o contador aberto até ter voltado dois dias depois com o cabo e finalmente selou o contador.
Acabei por encontrar varias secções de cabo telefónico caído no chão e após algumas emendas lá deu para a distância necessária.
Não cheguei a testar a ligação. Passei o tempo disponível a tentar aceder ao RPi 4 com o HA (instalado como sistema operativo) usando o browser do laptop. Não consegui. O curioso e que acedia usando um iPad sem problemas. No portátil que tem Windows 11 usando o Edge ou Opera não consegui de todo?
Enfim, daqui a duas semanas tento novamente…
Alberto
Bom dia,
Preciso de ajuda. Será que existe algum teste simples (se possível como se estiverem a falar com uma criança de 5 anos por favor
) para validar a ligação física entre o RPI4 com a ultima versao do HASOS e a porta HAN do contador (MA109H monofásico)?
Uso o método directo com o waveshare RS485. Os primeiros testes não deram em nada, alem de aparecer apenas Unavailable,
Os leds TXD e RXD do adaptador usb RS485 não mostram qualquer actividade só o PWR está aceso.
Alem de remover os COUNT que geraram erro e corrigir os RETRY penso que o yaml estará como o do tutorial:
configuration.yaml:
Loads default set of integrations. Do not remove.
default_config:
Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
#begin EDP smart meter
modbus:
-
name: edp_box_1
type: serial
method: rtu
port: /dev/ttyUSB1
baudrate: 9600
stopbits: 1
bytesize: 8
parity: N
delay: 1
timeout: 5
retries: 3
message_wait_milliseconds: 200
sensors:
-
name: “EDP Box - Frequência”
scan_interval: 5
slave: 1
address: 127
input_type: input
unit_of_measurement: “Hz”
scale: 0.1
offset: 0
precision: 2
long unsigned
data_type: uint16
-
name: “EDP Box - Tensão”
scan_interval: 5
slave: 1
address: 108
input_type: input
unit_of_measurement: “V”
scale: 0.1
offset: 0
precision: 1
long unsigned
data_type: uint16
device_class: voltage
-
name: “EDP Box - Corrente”
scan_interval: 5
slave: 1
address: 109
input_type: input
unit_of_measurement: “A”
scale: 0.1
offset: 0
precision: 1
long unsigned
data_type: uint16
device_class: current
-
name: “EDP Box - Potência Ativa”
slave: 1
address: 121
input_type: input
data_type: uint32
precision: 1
scale: 1
unit_of_measurement: W
device_class: power
-
name: “EDP Box - Fator de Potência”
scan_interval: 5
slave: 1
address: 123
input_type: input
unit_of_measurement: “p.u.”
scale: 0.001
offset: 0
precision: 3
long unsigned
data_type: uint16
device_class: power_factor
-
name: “ICP State L1”
0 para disconectado - 1 para conectado - 2 para preparado a reconectar
scan_interval: 5
slave: 1
address: 132
input_type: input
count: 1
data_type: custom
structure: “>Bx”
-
name: “Tariff L1”
1 para Vazio - 2 para Ponta - 3 para Cheia
scan_interval: 10
slave: 1
address: 11
input_type: input
count: 1
data_type: custom
structure: “>Bx”
-
name: “EDP Box - Total Vazio”
scan_interval: 30
slave: 1
address: 38
input_type: input
data_type: uint32
precision: 3
scale: 0.001
unit_of_measurement: kWh
device_class: “energy”
-
name: “EDP Box - Total Ponta”
scan_interval: 10
slave: 1
address: 39
input_type: input
data_type: uint32
precision: 3
scale: 0.001
unit_of_measurement: kWh
device_class: “energy”
-
name: “EDP Box - Total Cheia”
scan_interval: 10
slave: 1
address: 40
input_type: input
data_type: uint32
precision: 3
scale: 0.001
unit_of_measurement: kWh
device_class: “energy”
-
sensor:
EDP BOX Tarifa - MODBUS
-
platform: template
sensors:
edp_box_tarifa:
friendly_name: "EDP Box - Tarifa" icon_template: "{{ 'mdi:counter' }}" value_template: >- {% set x = states('sensor.tariff_l1')|string %} {% if x == "1" %} {{ "Vazio" }} {% elif x == "2" %} {{ "Ponta" }} {% elif x == "3" %} {{ "Cheia" }} {% else %} {{ x }} {% endif %}
EDP BOX Estado ICP - MODBUS
-
platform: template
sensors:
edp_box_estado_icp:
friendly_name: "EDP Box - Estado ICP" icon_template: "{{ 'mdi:flash' }}" value_template: >- {% set x = states('sensor.icp_state_l1')|string %} {% if x == "0" %} {{ "Desligado" }} {% elif x == "1" %} {{ "Ligado" }} {% elif x == "2" %} {{ "Preparado para religação" }} {% else %} {{ x }} {% endif %}
Customize.yaml:
EDP BOX
sensor.voltage_l1:
icon: “mdi:transmission-tower”
friendly_name: “Tensão”
sensor.current_l1:
icon: “mdi:power-socket”
friendly_name: “Corrente”
sensor.power_factor:
icon: “mdi:percent”
friendly_name: “Fator de potência”
sensor.frequency:
icon: “mdi:current-ac”
friendly_name: “Frequência”
sensor.tariff:
icon: “mdi:counter”
friendly_name: “Tarifa”
sensor.switch_control_state:
icon: “mdi:power”
friendly_name: “DCP”
Obrigado por qualquer ajuda.
Alberto
acho que andei atras do bicho errado. Como acho os 160 metros de cabo telefónico com três emendas tão tosco concentrei-me nessa ligação…
Logo a seguir a ter mandado a ultima mensagem acabei por aceder aos logs do HA e mostram isto:
2024-02-21 02:11:56.980 WARNING (MainThread) [homeassistant.components.modbus.validators] Modbus edp_box_1 timeout(5) is adjusted(4) due to scan_interval
2024-02-21 02:11:56.981 WARNING (MainThread) [homeassistant.components.modbus.modbus] retries
: is deprecated and will be removed in version 2024.7
2024-02-21 02:11:56.992 ERROR (SyncWorker_0) [pymodbus.logging] [Errno 2] could not open port /dev/ttyUSB1: [Errno 2] No such file or directory: ‘/dev/ttyUSB1’
2024-02-21 02:12:00.755 ERROR (SyncWorker_11) [pymodbus.logging] [Errno 2] could not open port /dev/ttyUSB1: [Errno 2] No such file or directory: ‘/dev/ttyUSB1’
2024-02-21 02:12:00.755 ERROR (SyncWorker_11) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 127 → Modbus Error: [Connection] Failed to connect[ModbusSerialClient(<pymodbus.framer.rtu_framer.ModbusRtuFramer object at 0x7f65411a30> baud[9600])]
2024-02-21 02:12:01.017 ERROR (SyncWorker_6) [pymodbus.logging] [Errno 2] could not open port /dev/ttyUSB1: [Errno 2] No such file or directory: ‘/dev/ttyUSB1’
2024-02-21 02:12:01.225 ERROR (SyncWorker_8) [pymodbus.logging] [Errno 2] could not open port /dev/ttyUSB1: [Errno 2] No such file or directory: ‘/dev/ttyUSB1’
2024-02-21 02:12:01.433 ERROR (SyncWorker_11) [pymodbus.logging] [Errno 2] could not open port /dev/ttyUSB1: [Errno 2] No such file or directory: ‘/dev/ttyUSB1’
2024-02-21 02:12:01.638 ERROR (SyncWorker_4) [pymodbus.logging] [Errno 2] could not open port /dev/ttyUSB1: [Errno 2] No such file or directory: ‘/dev/ttyUSB1’
2024-02-21 02:12:01.845 ERROR (SyncWorker_0) [pymodbus.logging] [Errno 2] could not open port /dev/ttyUSB1: [Errno 2] No such file or directory: ‘/dev/ttyUSB1’
2024-02-21 02:12:02.050 ERROR (SyncWorker_2) [pymodbus.logging] [Errno 2] could not open port /dev/ttyUSB1: [Errno 2] No such file or directory: ‘/dev/ttyUSB1’
2024-02-21 02:12:02.256 ERROR (SyncWorker_7) [pymodbus.logging] [Errno 2] could not open port /dev/ttyUSB1: [Errno 2] No such file or directory: ‘/dev/ttyUSB1’
E continua por ali fora…
Como posso corrigir isto?
Obrigado
Alberto
Deve ser outro device. /dev/ttyUSB1
No pi:
lsusb
Em cheio!!!
Nem foi preciso fazer lsusb, lembrei-me do outro RPi onde tenho a correr o flightradar24 em que o USB é 0. Foi só mudar o 1 para 0 e magia, os valores do contador começaram a aparecer. Pode-se concluir que mesmo com 160 metros de cabo telefónico, usando o método directo funciona com KAIFA MA109H Monofásico. Quase todos os valores ficaram preenchidos.
Infelizmente foi efémero. Ouvi que vinha aí chuva e fui reforçar as emendas com mais fita isoladora porque o cabo ainda está estendido pelo chão e tive receio que houvesse infiltração de água. Antes tivesse ficado quieto porque depois disso o HA deixou de receber dados do contador e desta vez deve ser o cabo (as emendas).
Já tentei de diversas formas mas não consigo comprar 160 metros desse cabo em lado nenhum. Queria ter 160 metros sem emendas e por um preço que faça sentido mas está difícil…
Alguém sabe onde posso comprar disso?
Aqui vão os erros do home-assistant.log. Podem-me confirmar que será o cabo desta vez? Não me apetece refazer as emendas e não ser daí:
Obrigado
2024-02-21 23:20:29.554 WARNING (Recorder) [homeassistant.components.recorder.util] The system could not validate that the sqlite3 database at //config/home-assistant_v2.db was shutdown cleanly
2024-02-21 23:20:42.472 WARNING (MainThread) [homeassistant.components.modbus.validators] Modbus edp_box_1 timeout(5) is adjusted(4) due to scan_interval
2024-02-21 23:20:42.474 WARNING (MainThread) [homeassistant.components.modbus.modbus] retries
: is deprecated and will be removed in version 2024.7
2024-02-21 23:20:48.531 WARNING (SyncWorker_8) [pymodbus.logging] Cleanup recv buffer before send: 0x3f 0x3e 0x3e 0x3e 0x3e 0x3e 0x3e 0x3e 0x3e 0x3e 0x7e 0xbe 0x3e 0xfe 0xff 0x3e 0x3e 0x3e 0x3e 0xfe 0xbf 0x3e 0x3e 0x3e 0x3f 0xfe 0xbf 0x3f 0x3e 0xbf 0x3e 0x7e 0xbf 0x3f 0x3e
2024-02-21 23:21:34.698 ERROR (SyncWorker_8) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 127 → Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 4 bytes (0 received)
2024-02-21 23:25:52.805 WARNING (MainThread) [homeassistant.bootstrap] Setup timed out for bootstrap - moving forward
2024-02-21 23:26:07.816 WARNING (MainThread) [homeassistant.core] Something is blocking Home Assistant from wrapping up the start up phase. We’re going to continue anyway. Please report the following info at https://github.com/home-assistant/core/issues: water_heater, assist_pipeline, input_button, scene, image_upload, mobile_app.device_tracker, bluetooth, application_credentials, mqtt.sensor, automation, devolo_home_network.switch, my, mqtt.vacuum, homeassistant, recorder, device_tracker, mqtt.fan, mqtt.lock, mqtt.update, map, devolo_home_network.update, dlna_dmr, button, lawn_mower, trace, met.weather, devolo_home_network.sensor, counter, mqtt.scene, modbus, update, mqtt.number, mqtt.valve, ssdp, repairs, network, mobile_app.binary_sensor, sun, tag, input_datetime, mqtt.binary_sensor, template.sensor, mqtt.camera, mqtt.button, devolo_home_network.device_tracker, conversation, ffmpeg, devolo_home_network.image, google_translate.tts, template, devolo_home_network, modbus.sensor, usb, input_boolean, zone, default_config, hassio.sensor, radio_browser, cloud, cast.media_player, mqtt.switch, energy, system_log, hardware, vacuum, notify, sun.sensor, mqtt.water_heater, hassio, binary_sensor, websocket_api, homeassistant.scene, media_source, script, cast, file_upload, met, homeassistant_alerts, weather, mqtt.device_tracker, schedule, mqtt.light, climate, mqtt.event, mqtt.humidifier, system_health, mobile_app.sensor, input_number, humidifier, mqtt.climate, rpi_power.binary_sensor, mobile_app, media_player, image, todo, number, blueprint, cover, dlna_dmr.media_player, energy.sensor, logger, persistent_notification, shopping_list, event, api, devolo_home_network.binary_sensor, auth, siren, camera, logbook, input_text, valve, http, stream, device_automation, diagnostics, history, wake_word, fan, alarm_control_panel, person, onboarding, mqtt.siren, switch, lovelace, hassio.update, mqtt.image, mqtt.alarm_control_panel, timer, input_select, search, hassio.binary_sensor, rpi_power, devolo_home_network.button, lock, tts, mqtt.cover, webhook, mqtt.select, frontend, zeroconf, raspberry_pi, google_translate, text, analytics, cloud.tts, sensor, mqtt, light, dhcp, mqtt.text, mqtt.lawn_mower, select, mobile_app.notify, stt, shopping_list.todo, config
Neste momento apenas digo: evita o componente do HA…
Como assim? peço desculpa mas não percebo…
O modbus do HA e a edpbox é só chatices
Qual é a alternativa se quiser manter o hardware?
Boa Noite,
Refiz as ligações e o cabo telefónico está de maneira que não vai ser movido ou manipulado. foi passado no tubo que está enterrado. Tenho acesso a alguns valores mas faltam os mais importantes. Além de que desconfio da estabilidade do funcionamento disto a longa prazo.
De qualquer maneira, alguém sabe a razão de faltarem os valores principais?
Junto uma captura de ecrã e as linhas de erro do home-assistant.log.
Obrigado
2024-02-25 23:12:39.717 ERROR (SyncWorker_13) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 38 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
2024-02-25 23:12:40.273 ERROR (SyncWorker_10) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 39 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
2024-02-25 23:12:50.029 ERROR (SyncWorker_3) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 39 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
2024-02-25 23:12:54.963 ERROR (SyncWorker_5) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 121 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
2024-02-25 23:13:00.033 ERROR (SyncWorker_11) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 39 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
2024-02-25 23:13:09.740 ERROR (SyncWorker_14) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 38 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
2024-02-25 23:13:10.310 ERROR (SyncWorker_12) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 39 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
2024-02-25 23:13:20.027 ERROR (SyncWorker_7) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 39 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
2024-02-25 23:13:24.969 ERROR (SyncWorker_9) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 121 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
2024-02-25 23:13:30.025 ERROR (SyncWorker_0) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 39 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
2024-02-25 23:13:39.716 ERROR (SyncWorker_7) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 38 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
2024-02-25 23:13:40.270 ERROR (SyncWorker_8) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 39 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
2024-02-25 23:13:50.032 ERROR (SyncWorker_12) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 39 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
2024-02-25 23:13:54.970 ERROR (SyncWorker_6) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 121 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
2024-02-25 23:14:00.031 ERROR (SyncWorker_1) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 39 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
2024-02-25 23:14:09.728 ERROR (SyncWorker_5) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 38 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
2024-02-25 23:14:10.286 ERROR (SyncWorker_13) [homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Error: device: 1 address: 39 → Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response
Obrigado vou fazer isso.
Estranhamente ainda está a funcionar. A pesar de ainda não terem passado 24 horas
Se calhar vou levar algum tempo porque apesar de saber como fazer no caso de RPi, não é claro para mim no caso em que o HA é o proprio sistema operativo. Acho que deve ser elementar mas ainda não aprendi essa parte
Os 32bits da edpbox não são normais
Estive a pensar se a resistencia de 120 Ohms é determinante nisto, neste momento não está instalada. Como tenho a sensação que isto é uma espécie de magia negra, não me apetece ir tocar naquilo por enquanto
Quando conseguir completar o teste informo, obrigado
Bom dia
Adaptei o port e endereço IP e corri os comandos numa janela terminal do windows 11 no laptop que está na mesma rede do RPI.
Resultado dos testes:
…\modpoll-3.11\win> ./modpoll -m enc -a 1 -0 -1 -r 108 -c 1 -t 3 -p 8123 192.168.50.110
modpoll 3.11 - FieldTalk™ Modbus(R) Master Simulator
Copyright (c) 2002-2024 proconX Pty Ltd
Visit https://www.modbusdriver.com for Modbus libraries and tools.
Protocol configuration: Encapsulated RTU over TCP, FC4
Slave configuration…: address = 1, start reference = 108 (PDU), count = 1
Communication…: 192.168.50.110, port 8123, t/o 1.00 s, poll rate 1000 ms
Data type…: 16-bit register, input register table
– Polling slave…
Checksum error!
…modpoll-3.11\win> ./modpoll -m enc -a 1 -0 -1 -r 22 -c 1 -t 3:int -e -p 8123 192.168.50.110
modpoll 3.11 - FieldTalk™ Modbus(R) Master Simulator
Copyright (c) 2002-2024 proconX Pty Ltd
Visit https://www.modbusdriver.com for Modbus libraries and tools.
Protocol configuration: Encapsulated RTU over TCP, FC4
Slave configuration…: address = 1, start reference = 22 (PDU), count = 1
Communication…: 192.168.50.110, port 8123, t/o 1.00 s, poll rate 1000 ms
Data type…: 32-bit integer, input register table
32-bit mode…: Daniel/Enron single 32-bit word
– Polling slave…
Checksum error!
Não é muito encorajador pois não?
Tens de usar a pen directamente.
Para usar rtuovertcp tinhas de usar o ser2net acho eu
inserir o RS485 na porta USB do laptop??