Controlar luzes com comando Sonoff

Olá a todos,

preciso da vossa ajuda. Tenho o comando da Sonoff RM433. E queria configurar para cada botão um trigger para ligar ou desligar um grupo de dispositivos (rega e luzes).

Como não percebo nada disto, estou a fazer aos bocadinhos o código. Numa primeira fase, estou a fazer “ligar as luzes”.

no ficheiro configuration.yaml, tenho o seguinte código:

binary_sensor:
    - platform: mqtt
      state_topic: "tele/Sonoff443mhz/RESULT"
      name: 'Botton1'
      value_template: '{{value_json.RfReceived.Data}}'
      payload_on: '4E9088'
      payload_off: '4E9088off'
      device_class: light
      payload_available: "Online"
      payload_not_available: "Offline"
      qos: 1

para cada botão tenho esse código. Admito que tenho inventado um pouco :stuck_out_tongue: copy / paste de exemplos que estão na internet. há coisas aí que não percebo muito bem qual a importância, mas pronto… :stuck_out_tongue:

no ficheiro automation.yaml tenho o seguinte codigo:

- alias: '433Mhz Light on or off'
  trigger:
  - platform: state
    entity_id: binary_sensor.Botton1
    to: '4E9088'
  action:
  - service: homeassistant.turn_on
    data:
      entity_id: group.grupo_luzes_exteriores_noturnas

de acordo com esse código, não era suposto carregar o Botton1 e acender a luz?

um abraço

já agora, pode ser útil para que me poder ajudar:

20:58:14 MQT: tele/Sonoff443mhz/RESULT = {“RfReceived”:{“Sync”:7400,“Low”:240,“High”:710,“Data”:“4E9088”,“RfKey”:“None”}}

isto é o que eu vejo do lado do RF433 da sonoff

O que podes fazer é algo do estilo:

  - alias: Exemplo Comunidade Portuguesa de Home Assistant
    initial_state: true
    trigger:
      platform: mqtt
      topic: tele/teste/RESULT
    condition:
      condition: template
      value_template: '{{ trigger.payload_json.RfReceived.Data == "E0EC9D" }}'      
    action:
      service_template: >
       {% if is_state('switch.radio', 'off') %}
       switch.turn_on  
       {%- elif is_state('switch.radio', 'on') -%}
       switch.turn_off
       {% endif %}
      entity_id: switch.radio

Rodolfo, muito obrigado :slight_smile: já está a funcionar.

- alias: 'turn ON or OFF Light'
  initial_state: true
  trigger:
    platform: mqtt
    topic: tele/Sonoff443mhz/RESULT
  condition:  
    condition: template
    value_template: '{{ trigger.payload_json.RfReceived.Data == "4E9088" }}'
  action:
    service_template: >
     {% if is_state('group.grupo_luzes_exteriores_noturnas', 'off') %}
     homeassistant.turn_on 
     {%- elif is_state('group.grupo_luzes_exteriores_noturnas', 'on') -%}
     homeassistant.turn_off
     {% endif %}
    entity_id: group.grupo_luzes_exteriores_noturnas

vi vários tutoriais, videos, e todos eles, sempre que referenciavam o ID do botão (4E9088) era no trigger e não no condition!

anyway, está a funcionar e percebido. Obrigado

1 Curtiu

já agora, e não querendo complicar as coisas :slight_smile:

tudo funciona, excepto no dashboard. Quando faço restart ao hassio o botton1 está no modo “desligado”. Quando carrego no botton1 passa para “ligado” e as luzes ligam. Até aqui, tudo OK.

Quando volto a carregar no botton1, as luzes apagam, mas o estado o botton1 continua ligado. Penso que isto seja porque o código Data: transmitido pelo RF433 é sempre o mesmo.

é possível “falsear” o valor para actualizar no dashboard?

pensei em algo deste tipo:

- alias: 'turn ON or OFF Light noturnas'
  initial_state: true
  trigger:
    platform: mqtt
    topic: tele/Sonoff443mhz/RESULT
  condition:  
    condition: template
    value_template: '{{ trigger.payload_json.RfReceived.Data == "4E9088" }}'
  action:
    service_template: >
     {% if is_state('group.grupo_luzes_exteriores_noturnas', 'off') %}
     homeassistant.turn_on
     - service: mqtt.publish
       data:
         topic: tele/Sonoff443mhz/RESULT
         payload: 4E9088
     {%- elif is_state('group.grupo_luzes_exteriores_noturnas', 'on') -%}
     homeassistant.turn_off
     - service: mqtt.publish
       data:
          topic: tele/Sonoff443mhz/RESULT
          payload: 4E9088off
     {% endif %}
    entity_id: group.grupo_luzes_exteriores_noturnas

mas não funciona :frowning:

Porque não usas um switch?

  - platform: mqtt
    name: "exemplo cpha"
    state_topic: "stat/cpha/POWER"
    command_topic: "cmnd/cpha/power"
    availability_topic: "tele/cpha/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"

boa noite…

naaa, isso não funciona :frowning: e consegui estragar o que já tinha feito sem saber o que fiz

há alguma coisa de errado com este código para não funcionar o trigger?

- alias: 'Auto Light off'
  trigger:
    platform: time
    at: "23:25:00"
  action:
    service: switch.turn_off
    entity_id: switch.alpendretraseiro
      
- alias: 'Auto Light on'
  trigger:
    platform: time
    at: "23:25:35"
  action:
    service: switch.turn_on
    entity_id: switch.alpendretraseiro

poderá ser pelo facto do sonoff ter a hora antiga? ou seja, neste momento são 23:28 e o tasmota marca 00:28

00:28:24 MQT: tele/alpendretraseiro/STATE = {“Time”:“2019-11-01T00:28:24”,“Uptime”:“0T00:25:17”,“Heap”:15,“SleepMode”:“Dynamic”,“Sleep”:50,“LoadAvg”:21,“POWER”:“ON”,"W

No que te baseias, para dizeres que não funciona?
qual o erro gerado no log?

Relativamente à tua questão não está a funcionar porque deves ter a automação desligada.
usa: initial_state: true logo abaixo do Alias e alinhado com ele.

Quanto à questão da hora:

Rodolfo, impecável. agora sim, tudo funciona. obrigado

- alias: 'Auto Light off'
  initial_state: true
  trigger:
    platform: time
    at: "20:28:00"
  action:
    service: switch.turn_off
    entity_id: group.grupo_luzes_exteriores_noturnas
      
- alias: 'Auto Light on'
  initial_state: true
  trigger:
    platform: time
    at: "20:29:00"
  action:
    service: switch.turn_on
    entity_id: group.grupo_luzes_exteriores_noturnas
      
- alias: 'turn ON or OFF Light noturnas'
  initial_state: true
  trigger:
    platform: mqtt
    topic: tele/Sonoff443mhz/RESULT
  condition:  
    condition: template
    value_template: '{{ trigger.payload_json.RfReceived.Data == "4E9088" }}'
  action:
    service_template: >
     {% if is_state('group.grupo_luzes_exteriores_noturnas', 'off') %}
     homeassistant.turn_on
     {%- elif is_state('group.grupo_luzes_exteriores_noturnas', 'on') -%}
     homeassistant.turn_off
     {% endif %}
    entity_id: group.grupo_luzes_exteriores_noturnas
    
- alias: 'turn ON or OFF Light'
  initial_state: true
  trigger:
    platform: mqtt
    topic: tele/Sonoff443mhz/RESULT
  condition:  
    condition: template
    value_template: '{{ trigger.payload_json.RfReceived.Data == "4E908C" }}'
  action:
    service_template: >
     {% if is_state('group.grupo_luzes_exteriores', 'off') %}
     homeassistant.turn_on
     {%- elif is_state('group.grupo_luzes_exteriores', 'on') -%}
     homeassistant.turn_ off
     {% endif %}
    entity_id: group.grupo_luzes_exteriores

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


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