Colocar condição pra que a luz só apague se ela ja estiver apagada antes do gatilho

Estou tentando fazer com que a luz da minha sala apague quando eu fechar a porta, mas só se ela ja estiver apagada antes, se ela estiver acesa, a automação nao deveria funcionar, porém, a luz está apagando mesmo assim.

  - alias: ligar sala estar quando abrir porta sala a partir do por do sol
trigger:
  platform: state
  entity_id: binary_sensor.porta_sala
  to: 'on'
condition:
  - condition: state 
    entity_id: sun.sun
    state: "below_horizon"
  - condition: state
    entity_id: light.sala_estar
    state: "off"
action:
  - service: input_boolean.turn_on
    entity_id: input_boolean.porta_sala
  - service: light.turn_on
    entity_id: light.sala_estar
    
- alias: desligar sala estar 1 minuto apos fechar a porta se a automação anterior foi ativada
trigger:
  platform: state
  entity_id: binary_sensor.porta_sala
  to: 'off'
  for:
    minutes: 1
condition:
  condition: state
  entity_id: input_boolean.porta_sala
  state: 'on'
action:
  - service: input_boolean.turn_off
    entity_id: input_boolean.porta_sala
  - service: light.turn_off
    entity_id: light.sala_estar

a ideia é: se a luz estiver apagada, ele executa a primeira automação, e assim, com o boolean on, ele ativa a segunda. mas com a luz acesa a primeira automação nao é ativada e, com o boolean off, a luz nao se apaga. mas ela continua apagando mesmo quando acendo a luz antes de abrir a porta.

Não entendi nada do que vc está tentando fazer, poderia explicar melhor por favor?

Vamos lá:
Quero que a luz acenda quando abrir a porta, e depois, quando a porta estiver fechada por 1 minuto, a luz apague. Porém, se a luz já estiver acesa antes de abrir a porta, nao quero que apague.

Entao eu precisava de algo que indicasse se a luz foi acesa pela automaçao ou por outro meio.
Criei um input_boolean

input_boolean:
  porta_sala:
    name: porta sala

de forma que, quando a primeira automação é ativada, ele muda pra on,

action:
  - service: input_boolean.turn_on
    entity_id: input_boolean.porta_sala

e na segunda automação, coloquei uma condição, pra ela só ativar se o input_boolean estivesse on.

condition:
  condition: state
  entity_id: input_boolean.porta_sala
  state: 'on'

Tambem coloquei uma condição na primeira automação pra ela só funcionar se a luz estiver off.

  - condition: state
    entity_id: light.sala_estar
    state: "off"

Entao na teoria, se eu ligar a luz por outro meio, a primeira automação nao seria ativada, por causa da condição da luz nao estar off, e o input_boolean continuaria off o que nao ativaria a segunda automação e nao desligaria a luz.

Se eu entendi, basta vc colocar a condição pra ela pra acender na sua automação se estiver apagada. É óbvio que acende somente se estiver apagada, mas colocando essa condição, se a porta fechar e a lâmpada já estava acesa antes de a porta abrir, ela não vai apagar.

- id: '1613789106064'
  alias: 02.4 .................... garagem {{{ aberto (frente esquerda ligada) }}}
  description: ''
  trigger:
  - platform: device
    type: turned_on
    device_id: ff8xxxxxxxxxxxxxxxxxxxxxxd4a2
    entity_id: switch.sensoresgaragem
    domain: switch
  condition:
  - condition: sun
    before: sunrise
    after: sunset
  - condition: device
    type: is_off
    device_id: bxxxxxxxxxxxxxxxxxx1f8b
    entity_id: light.ftesquerda
    domain: light
  - condition: device
    type: is_on
    device_id: 65xxxxxxxxxxxxx63d9b7e
    entity_id: light.ftdireita
    domain: light
  action:
  - type: turn_on
    device_id: b9xxxxxxxxxxxxxxxxxxx41f8b
    entity_id: light.ftesquerda
    domain: light
  - wait_for_trigger:
    - platform: device
      type: turned_off
      device_id: ff8xxxxxxxxxxxxxxxxxxxxxx4a2
      entity_id: switch.sensoresgaragem
      domain: switch
      for:
        hours: 0
        minutes: 3
        seconds: 0
        milliseconds: 0
  - type: turn_off
    device_id: b9xxxxxxxxxxxxxxxxxxxx1f8b
    entity_id: light.ftesquerda
    domain: light
  mode: single

Durante todo o tempo que eu tava tentando fazer isso funcionar, meu pai nao pensou em dizer que ele tinha uma cena no ewelink pra apagar essa luz quando fecha a porta :woman_facepalming:t3:
Por fim minha automação funciona perfeitamente e nem precisava ser tao complicada.

  - alias: ligar sala estar quando abrir porta sala a partir do por do sol
    trigger:
      platform: state
      entity_id: binary_sensor.porta_sala
      to: 'on'
    condition:
      - condition: state 
        entity_id: sun.sun
        state: "below_horizon"
      - condition: state
        entity_id: light.sala_estar
        state: "off"
    action:
      - service: light.turn_on
        entity_id: light.sala_estar
      - delay:
          minutes: 1
      - service: light.turn_off
        entity_id: light.sala_estar

Desculpa pela bagunça.

1 curtida

Preciso de um help, o que precisa alterar nesse scritp para funcionar correto… preciso que a luz acenda apos o sunset baseado na geolocalizaçao… assim que eu entrar na zona que eu criei da minha casa e estiver a noite… ascende a luz…
o probela que ela so está acionando uma vez por dia…

alias: Ligar Spot
description: Ligar Spot se eu entrar em casa
trigger:

  • platform: sun
    event: sunset
    offset: 0
  • platform: geo_location
    source: ‘’
    zone: zone.home
    event: enter
    condition:
    action:
  • type: turn_on
    device_id: ebf5…c343028
    entity_id: switch.sonoff_100148c0e2_1
    domain: switch
    mode: single

No lugar de geolocalizacao, utilize status com você (person) em home.

Fiz exatamente isso. Só que via node red. É uma possibilidade usar o node red para você?

O por do sol tem que entrar em condição não em trigger.
Se por como trigger ele dispara toda vez q tiver por do sol independente de estar em casa ou não e só imediatamente na hora do por do sol.

O correto pra o comportamento que você quer é que o trigger seja você entrar na zona da sua casa e a condição é que o horário é após por do sol .

Valeu!!!
jã arrumei aqui!!! muito Obrigado mesmo!!!

tenho que aprender a usar o nodred, valeu!!! obrigado!!! alguma pessoas falam que ~e bem mais facil e intuitivo.