Lights turn on manually by switch and should be turned off considering all this conditions:
lights turned on for 5 minutes
No motion detected by motion sensor for 2 minutes
So if someone turned lights on lights should be turned on at least for 5 minutes. Also if someone passed by motion sensor - it should increase turned on time for 2 minutes each time
A tried a lot of ways, I used repeat until , wait, I tried some blueprints - no luck. I get some issues and wrong behavior. Please help
As a total newbie, it took me 3 straight days of pulling my teeth to get it done. However, I am thankful for the community because searching up posts like this helped me piece together an automation.
The automation starts a timer of 2 minutes during the day or 30 seconds at night (2 timers, 1 called night one called day). 10 seconds before the timer is finished, the lights DIM to let the user know they are about to turn off and to wave at the motion sensor. Then, they turn off. If at any time motion is detected during those 2 minutes, the timer restarts.
Honestly I set this up as my first automation, when I didn’t even know anything (oh how far I’ve come in 2 months) , so I am not sure if its still the most efficient way to do it , but it seems to work for me.
alias: "Entrance Motion "
description: ""
trigger:
- type: motion
platform: device
device_id: enter your devide ID here
entity_id: entity ID here
domain: binary_sensor
condition: []
action:
- choose:
- conditions:
- condition: time
after: "11:00:00"
before: "21:30:00"
sequence:
- service: light.turn_on
data:
brightness_pct: 70
target:
entity_id: light.ground_floor_hallway_main_lights
- service: timer.cancel
data: {}
target:
entity_id: timer.entrance_timer
- wait_for_trigger:
- platform: state
entity_id:
- binary_sensor.entrance_motion_sensor_motion
from: "on"
to: "off"
- service: timer.start
data:
duration: "120"
target:
entity_id: timer.entrance_timer
- delay:
hours: 0
minutes: 1
seconds: 50
milliseconds: 0
- type: turn_on
device_id: ID goes here
entity_id: Here as well
domain: light
brightness_pct: 10
- wait_for_trigger:
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.entrance_timer
- service: light.turn_off
data: {}
target:
entity_id: light.ground_floor_hallway_main_lights
- conditions:
- condition: time
after: "21:31:00"
before: "07:00:00"
sequence:
- service: light.turn_on
data:
brightness_pct: 20
target:
entity_id: light.ground_floor_hallway_main_lights
- service: timer.cancel
data: {}
target:
entity_id: timer.entrance_timer_night
- wait_for_trigger:
- platform: state
entity_id:
- binary_sensor.entrance_motion_sensor_motion
from: null
to: "off"
- service: timer.start
data: {}
target:
entity_id: timer.entrance_timer_night
- delay:
hours: 0
minutes: 0
seconds: 20
milliseconds: 0
- type: turn_on
device_id: Again with the ID
entity_id: Here too
domain: light
brightness_pct: 1
- wait_for_trigger:
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.entrance_timer_night
- service: light.turn_off
data: {}
target:
entity_id: light.ground_floor_hallway_main_lights
mode: restart
Restartiing timer in one action section with additional code breaks timer.finishes trigger and i implemented automation using multi trigger appproach, here’s yaml of automation: