Recolher Valores da Placa de Relés - HTTP ou MODBUS

Olá pessoal.

Tenho uma placa de 8 reles penso que seja limitada mas já consegui fazer a “integração” no HomeAssistant através do command_line.

Até ao momento consigo ligar e desligar os relés, mas caso o HA reinicie, a placa não tem qualquer alteração mas no HA os Switchs ficam desligado.

Agora gostaria que o HA verifica-se sempre o estado dos relés.

tenho acesso ao estado dos mesmos através http, atraves de algum template é possível criar um sensor para cada estado???, se houver por ai alguma base para começar agradecia.

a placa também tem acesso pela porta 502 MODBUS, mas não sei como ir buscar os valores, através de um programa consigo verificar o estado dos reles em tempo real, alguem com ideias para recolher valores por esta porta?



Segue abaixo a configuração até ao momento .yaml:


switch:
  - platform: command_line
    switches:
      rele1:
        command_on: "/usr/bin/curl -X GET http://admin:12345678@192.168.60.166/relay_en.cgi?relayon1=on"
        command_off: "/usr/bin/curl -X GET http://admin:12345678@192.168.60.166/relay_en.cgi?relayoff1=off"
        friendly_name: Relé 1    
        
  - platform: command_line
    switches:
      rele2:
        command_on: "/usr/bin/curl -X GET http://admin:12345678@192.168.60.166/relay_en.cgi?relayon2=on"
        command_off: "/usr/bin/curl -X GET http://admin:12345678@192.168.60.166/relay_en.cgi?relayoff2=off"
        friendly_name: Relé 2         
        
  - platform: command_line
    switches:
      rele3:
        command_on: "/usr/bin/curl -X GET http://admin:12345678@192.168.60.166/relay_en.cgi?relayon3=on"
        command_off: "/usr/bin/curl -X GET http://admin:12345678@192.168.60.166/relay_en.cgi?relayoff3=off"
        friendly_name: Relé 3
        
  - platform: command_line
    switches:
      rele4:
        command_on: "/usr/bin/curl -X GET http://admin:12345678@192.168.60.166/relay_en.cgi?relayon4=on"
        command_off: "/usr/bin/curl -X GET http://admin:12345678@192.168.60.166/relay_en.cgi?relayoff4=off"
        friendly_name: Relé 4         
        
  - platform: command_line
    switches:
      rele5:
        command_on: "/usr/bin/curl -X GET http://admin:12345678@192.168.60.166/relay_en.cgi?relayon5=on"
        command_off: "/usr/bin/curl -X GET http://admin:12345678@192.168.60.166/relay_en.cgi?relayoff5=off"
        friendly_name: Relé 5        
        
  - platform: command_line
    switches:
      rele6:
        command_on: "/usr/bin/curl -X GET http://admin:12345678@192.168.60.166/relay_en.cgi?relayon6=on"
        command_off: "/usr/bin/curl -X GET http://admin:12345678@192.168.60.166/relay_en.cgi?relayoff6=off"
        friendly_name: Relé 6         
        
  - platform: command_line
    switches:
      rele7:
        command_on: "/usr/bin/curl -X GET http://admin:12345678@192.168.60.166/relay_en.cgi?relayon7=on"
        command_off: "/usr/bin/curl -X GET http://admin:12345678@192.168.60.166/relay_en.cgi?relayoff7=off"
        friendly_name: Relé 7         
        
  - platform: command_line
    switches:
      rele8:
        command_on: "/usr/bin/curl -X GET http://admin:12345678@192.168.60.166/relay_en.cgi?relayon8=on"
        command_off: "/usr/bin/curl -X GET http://admin:12345678@192.168.60.166/relay_en.cgi?relayoff8=off"
        friendly_name: Relé 8

obrigado pela informação.

pois já tentei através do MODBUS mas os valores não aparecem, dado que tb não sei se a config está certa…pois em address não sei o que poderá ser.

pelo print acima está a 0 (tambem ja tentei 00001) mas nao aparece nada…

Talvez os binary_sensors

Não faço ideia como funciona os “coils”

Os endereços deve ser 1, 2, 3, 4…

Habitualmente ler o estado é noutro endereço

Ou input, holding…

Começa por tentar ler e controlar o 5 por exemplo…

01… ler coils
05… escrever coils
15… escrever multiplos, como desligar tudo.

Isso deve ser nos modbus switches


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


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