Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save rvdlee/d489f0e433c865b93da8c1da72be5b8d to your computer and use it in GitHub Desktop.
Save rvdlee/d489f0e433c865b93da8c1da72be5b8d to your computer and use it in GitHub Desktop.
blueprint:
name: Timed Motion-activated Light
description: Turn on a light when motion is detected within a certain time contraint.
domain: automation
input:
motion_entity:
name: Motion Sensor
selector:
entity:
domain: binary_sensor
device_class: motion
light_target:
name: Light
selector:
target:
entity:
domain: light
light_strength:
name: Light Strength
description: Light level for configured lamps on trigger.
default: 50
selector:
number:
min: 0
max: 100
time_from:
name: 'Timeslot from'
default: "22:00:00"
selector:
time:
time_to:
name: 'Timeslot to'
default: "07:00:00"
selector:
time:
no_motion_wait:
name: Wait time
description: Time to leave the light on after last motion is detected.
default: 120
selector:
number:
min: 0
max: 3600
unit_of_measurement: seconds
# If motion is detected within the delay,
# we restart the script.
mode: restart
max_exceeded: silent
trigger:
platform: state
entity_id: !input motion_entity
from: "off"
to: "on"
condition:
- condition: time
after: !input time_from
before: !input time_to
action:
- service: light.turn_on
target: !input light_target
data:
brightness_pct: !input light_strength
- wait_for_trigger:
platform: state
entity_id: !input motion_entity
from: "on"
to: "off"
- delay: !input no_motion_wait
- service: light.turn_off
target: !input light_target
@rvdlee
Copy link
Author

rvdlee commented Apr 9, 2021

@Mediaripper see the following script with the additional control https://gist.github.com/rvdlee/2af667b095d783d44395ba25798217aa.

This is I think the closest you would get to a software solution. I've also seen an interesting and different approach in the cookbook here. Anyway :) Have fun!

@ahhwoodrow
Copy link

This does almost everything I need, how would it be edited to use the sun rather than an absolute time frame?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment