Acesso aos consumos do Kaifa MA109H monifasico

Boa tarde e bom Ano de 2024.

Preciso ter acesso em tempo real aos dados de consumo do contador Kaifa MA109H que me instalaram a uns meses. Já fiz o pedido para a e-redes para o acesso à porta HAN e ficou agendado daqui a uns dias.

Sei que tenho que começar por ai, mas não sei muito mais.
Estou a pensar usar HA porque vou querer integrar mais elementos.

Por enquanto estou encravado no facto de residir em ambiente rural e o contador (que esta albergado numa pequena casa) estar a cerca de 160 metros da habitação. A rede WIFI da casa não chega nem perto da casinha do contador. Na vala que foi feita para passar o novo cabo de eletricidade foi deixado um tubo por onde posso passar um cabo de rede, mas tenho dúvidas sobre a viabilidade de transmitir dados dessa forma e a uma distância dessas. Quero evitar gastar dinheiro e tempo para depois descobrir que não pode ser feito dessa forma.

Quais serão as alternativas? Alguma sugestão?

Obrigado,

Cumprimentos,

Alberto

Ainda não tenho nada pronto com LoRa.

E não tenho experiência com as soluções RF 433mhz.

Teoricamente bastava um par de fios.

Se arranjar 160 metros de cabo de telefone usado vale apena o teste.

Cabo exterior entrelaçado (meo/pt).

Boa tarde

Devo conseguir o cabo de telefone, o que não falta por aqui são cabos desses abandonados pelo chão nos campos a volta de casa. :slightly_frowning_face:

É pena não ter nada com LoRa, parece ser feito à medida do que preciso. Algo como isto talvez?

Muito obrigado pela dica, vou experimentar primeiro com o cabo, depois informo. Tenho a certeza que pode ser útil a mais alguém.

Cumprimentos
Alberto

É preciso saber compilar o firmware

Só tenho pena de não poder ajudar :disappointed:
Devo conseguir fazer o teste com o cabo lá para a semana. Isto se entretanto os senhores da e-redes lá forem instalar o chicote :thinking:

É só o que tenho neste momento.

Na casinha do contador, tens eletricidade disponível (uma tomada)?
Se sim, uma hipótese seria o PowerLine. Por norma dá até 300 metros.

Outra solução caso tivesse linha de vista entre a casa e casinha do contador, seria antenas wifi direcionais. Acaba é por ser uma solução dispendiosa.

Boa tarde,
Vou ter uma tomada, brevemente. Seja qual for a solução.

Vou tentar primeiro o cabo com o metodo de ligação direta ao HA.

Se não der, tento com o powerline, até porque tenho por lá algum material desse. Não tenho é muito boa memoria desses aparelhos :thinking:

Se optar por atirar dinheiro ao problema será com wifi exterior de longo alcance, mas não estou aí ainda :slightly_smiling_face:

Claramente a solução melhor e que poderá servir para varias outras coisas será LoRa. Com 1 hectare de superficie total é o ideal. Bomba de calor, rega, bicharada, contador da agua, vigilancia remota, etc etc. Mas não vai ser para já.

Obrigado pela sugestão

Não basta desenvolver os produtos, é preciso mantê-los.

A nível comercial mais vale LoRaWAN.

O resto (lora) vai demorar tempo e é preciso mais conhecimentos.

LoRaWAN é um standard. Apesar que não é equivalente a WiFi.

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 :slightly_smiling_face: :slightly_smiling_face:) 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!!! :pray: :pray: :pray: 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… :woozy_face:

O modbus do HA e a edpbox é só chatices

Qual é a alternativa se quiser manter o hardware?


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


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