-
-
Save gdarko/f1719e92dea8abb651709eddd703b238 to your computer and use it in GitHub Desktop.
This is a blueprint based on the original motion_light from Home Assistant. This one, however, allows you to control not only lights but also switches when motion is detected.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
blueprint: | |
name: Motion-activated Switch and/or Light | |
description: Turn on a switch and/or light when motion is detected. | |
domain: automation | |
source_url: https://darkog.com/blog/home-assistant-motion-lights-with-switches/ | |
input: | |
motion_entity: | |
name: Motion Sensor | |
selector: | |
entity: | |
domain: binary_sensor | |
device_class: motion | |
switch_target: | |
name: Switch | |
default: {} | |
selector: | |
target: | |
entity: | |
domain: switch | |
light_target: | |
name: Light | |
default: {} | |
selector: | |
target: | |
entity: | |
domain: light | |
no_motion_wait: | |
name: Wait time | |
description: Time to leave the relay on after last motion is detected. | |
default: 120 | |
selector: | |
number: | |
min: 0 | |
max: 3600 | |
unit_of_measurement: seconds | |
sunset_offset: | |
name: Offset to turn on lights | |
description: Define offset to sunset | |
default: 60 | |
selector: | |
number: | |
min: 0 | |
max: 240 | |
unit_of_measurement: minutes | |
sunrise_offset: | |
name: Offset to turn off lights | |
description: Define offset to sunrise | |
default: 45 | |
selector: | |
number: | |
min: 0 | |
max: 240 | |
unit_of_measurement: minutes | |
# 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: or | |
conditions: | |
- condition: sun | |
after: sunset | |
after_offset: !input sunset_offset | |
- condition: sun | |
before: sunrise | |
before_offset: !input sunrise_offset | |
variables: | |
light_target: !input light_target | |
switch_target: !input switch_target | |
action: | |
- choose: | |
- conditions: "{{ light_target|length > 0 and switch_target|length > 0 }}" | |
sequence: | |
- service: switch.turn_on | |
target: !input switch_target | |
- service: light.turn_on | |
target: !input light_target | |
- wait_for_trigger: | |
- platform: state | |
entity_id: !input motion_entity | |
to: 'off' | |
- delay: !input no_motion_wait | |
- service: switch.turn_off | |
target: !input switch_target | |
- service: light.turn_off | |
target: !input light_target | |
- conditions: "{{ switch_target|length > 0 }}" | |
sequence: | |
- service: switch.turn_on | |
target: !input switch_target | |
- wait_for_trigger: | |
- platform: state | |
entity_id: !input motion_entity | |
to: 'off' | |
- delay: !input no_motion_wait | |
- service: switch.turn_off | |
target: !input switch_target | |
- conditions: "{{ light_target|length > 0 }}" | |
sequence: | |
- service: light.turn_on | |
target: !input light_target | |
- wait_for_trigger: | |
- platform: state | |
entity_id: !input motion_entity | |
to: 'off' | |
- delay: !input no_motion_wait | |
- service: light.turn_off | |
target: !input light_target | |
default: [] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment