Pessoal,.
Tenho a automação abaixo para fechar as persianas (que estão equipadas com shelly’s)
O objectivo era fechar com base nas seguintes condições:
luminosidade (do meu sensor) abaixo dos 400lm
não estar em casa niguem
ser mais do que 16:30
e ainda queria adicionar quando a temperatura exterior começar a baixar e for inferior a um determinado valor
Ora o que já tenho feito é o abaixo, mas não está a despoletar sozinha, deduzo que como à hora marcada ainda está superior a 400lm não volta a verificar. Como posso por isto em loop?
Em relação à verificação da temperatura não sei como fazer. Teria de saber que a temperatura exterior está a baixar, mas como posso fazer isso numa automação?
- id: '1636765263151'
alias: PERSIANAS | Fechar (Inverno)
description: Fechar persianas durante o inverno quando sem sol e temperatura exterior
a reduzir
trigger:
- platform: time_pattern
hours: '16'
minutes: '30'
seconds: '00'
condition:
- condition: state
entity_id: person.J1
state: not home
- condition: state
entity_id: person.S1
state: not home
- condition: numeric_state
entity_id: sensor.illumination_7811dcded1ae
below: '400'
action:
- service: cover.set_cover_position
target:
entity_id:
- cover.persiana_quarto1
- cover.persiana_quarto2
- cover.persiana_quarto3
- cover.persiana_quarto4
- cover.persiana_sala1
- cover.persiana_sala2
data:
position: 0
mode: single
Eu diria para começares primeiro com 1 ou 2 condições por exemplo ser maior que determinada hora e que não estejas em casa…
isso de certeza que deve estar a ser invocado a diferença é que as condições não são aplicáveis para invocar a ação.
O sensor de iluminação vai mesmo abaixo dos 400?
Eu diria para implementares isso em NodeRed que seria mais facil.
- id: '1636765263151'
alias: PERSIANAS | Fechar (Inverno)
description: Fechar persianas durante o inverno quando sem sol e temperatura exterior
a reduzir
trigger:
- platform: state
entity_id:
- person.J1
- person.S1
from: "home"
to: "not_home"
condition:
- condition: state
entity_id: person.J1
state: not home
- condition: state
entity_id: person.S1
state: not home
- condition: numeric_state
entity_id: sensor.illumination_7811dcded1ae
below: '400'
- condition: time
after: "18:00:00"
before: "09:00:00"
action:
- service: cover.set_cover_position
target:
entity_id:
- cover.persiana_quarto1
- cover.persiana_quarto2
- cover.persiana_quarto3
- cover.persiana_quarto4
- cover.persiana_sala1
- cover.persiana_sala2
data:
position: 0
mode: single
Assim também não dá porque só activa a automação 1 vez quando verifica que não está ngm em casa, e se as condições seguintes não se verificarem, já não volta a verificar.
Me parece então que podes colocar todas as condições no trigger.
Segundo a documentação:
Triggers are what starts the processing of an automation rule. When any of the automation’s triggers becomes true (trigger fires), Home Assistant will validate the conditions, if any, and call the action.
Ou seja, se entrou em uma das triggers, mas alguma das condições falhou, só faz sentido tentar de novo se alguma condição mudar. Não sei se tem algum jeito melhor de fazer isso, mas penso que assim “funcionaria”. Já testou?
Já descobri porque não funciona.
A condição de não estar em casa não está a funcionar.
Ou seja eu tenho a verificar se o estado do device tracker é not_home e nºao dava, passei para away e se a pessoa estiver numa zona classificada o estado não é away nem not_home:
Como posso colocar a condição para verificar se as pessoas estão not_home ou away e funcionar?