Olá pessoal, estou a tentar fazer uma automação bastante simples, no entanto só está a a funcionar em parte…
Eu quero que a luz da rua (controlada por um switch sonoff) ligue ao abrir a porta e depois desligue ao fim de 5 segundos. Para dar o trigger da porta aberta/fechada tenho um sensor da xiaomi
A luz liga ao abrir a porta, no entanto não desliga passados 5 segundos como seria suposto… já olhei 100x vezes para o código e não encontro nenhuma falha… também já testei com “delay” em vez do “for” e também não funcionou…
Estou a correr o home assistant num Pi3 em Hassio. Não tenho erros no log
Código que estou a utilizar:
- alias: liga luz rua
initial_state: true
trigger:
platform: state
entity_id: binary_sensor.door_window_sensor_01
to: 'on'
action:
- service: switch.turn_on
entity_id: switch.tx_hall_a2
- alias: desliga luz rua
initial_state: true
trigger:
platform: state
entity_id: binary_sensor.door_window_sensor_01
to: 'off'
for:
seconds: 5
action:
- service: switch.turn_off
entity_id: switch.tx_hall_a2
@j_assuncao mas na tua automação não falta o sensor de porta? Como é que o HA vai saber que a porta foi aberta?
Eu para essa situação uso estas duas automações…
- alias: Liga Luz do Gateway
initial_state: true
trigger:
platform: state
entity_id: binary_sensor.door_window_sensor_158d00022b3ad2
to: 'on'
condition:
condition: or
conditions:
- condition: sun
after: sunset
after_offset: "+00:15:00"
- condition: sun
before: sunrise
action:
- service: light.turn_on
data_template:
entity_id: light.gateway_light_7811dcb38555
brightness: 200
color_name: deepskyblue
- alias: Desliga Luz do Gateway
initial_state: true
trigger:
platform: state
entity_id: binary_sensor.door_window_sensor_158d00022b3ad2
to: 'off'
for:
minutes: 2
action:
- service: light.turn_off
data_template:
entity_id: light.gateway_light_7811dcb38555
Não sei se são as mais corretas mas estão a funcionar a mais de 1 ano.
Agora tenho estes erros no log, dizem respeito precisamente ao switch que estou a tentar automatizar… vou tentar descobrir a que se referem os erros
No matching payload found for entity: tx_hall_A1 Button2 with state topic: TX_hall_A/stat/RESULT. Payload: , with value template Template("{{value_json.BUTTON2}}")
11:50 components/mqtt/binary_sensor.py (WARNING) - message first occurred at 2:22 and shows up 6 times
No matching payload found for entity: tx_hall_A1 Button1 with state topic: TX_hall_A/stat/RESULT. Payload: , with value template Template("{{value_json.BUTTON1}}")
11:50 components/mqtt/binary_sensor.py (WARNING) - message first occurred at 2:22 and shows up 6 times
Finalmente consegui fazer funcionar… Já tinha uma outra automação com o mesmo trigger mas com uma action diferente, será que estava ai o problema? Foi só adicionar a nova action à que já existia e ficou a funcionar… Apesar de estar a funcionar acho que tenho isto um pouco complicado… vou postar o código, será que alguem me poderá dar umas dicas de como poderei melhorar o codigo da automação?
- alias: liga luz gateway e luz rua
initial_state: true
trigger:
platform: state
entity_id: binary_sensor.door_window_sensor_01
to: 'on'
action:
- service: light.turn_on
data_template:
entity_id: light.gateway_light_7c49ebad8595
brightness: 100
color_name: white
- service: switch.turn_on
data_template:
entity_id: switch.tx_hall_a2
- alias: desliga luz rua
initial_state: true
trigger:
platform: state
entity_id: binary_sensor.door_window_sensor_01
to: 'off'
for:
seconds: 5
action:
- service: switch.turn_off
data_template:
entity_id: switch.tx_hall_a2
- alias: desliga luz gateway
initial_state: true
trigger:
platform: state
entity_id: binary_sensor.door_window_sensor_01
to: 'off'
for:
minutes: 2
action:
- service: light.turn_off
data_template:
entity_id: light.gateway_light_7c49ebad8595
Basicamente o que está aqui a acontecer é:
Quando a porta se abre, é ligada a luz do gateway da xiaomi e a luz exterior (controlada por um switch sonoff com tasmota)…
Passados 5 segundos de a porta ser fechada a luz exterior desliga.
Passados 2 minutos de a porta ser fechada desliga-se a luz do gateway
Mas acho que deverias meter aí uma condição para acender só a noite. Porque assim vai sempre acender. Quer seja dia ou noite. Basicamente está igual ao código que eu partilhei mais em cima mas sem a condition.
por acaso já tinha tirado, mas o código que colei aqui foi de um backup do automations.yaml e nem reparei… Nesse caso em que situações se deve usar o “data_template”?