Last active
April 9, 2024 19:03
-
-
Save Ultra9k/6ea1205463a3266ef36e35e1b9d61dec 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 | |
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.0 | |
max: 3600.0 | |
unit_of_measurement: seconds | |
mode: slider | |
step: 1.0 | |
mode: restart | |
max_exceeded: silent | |
trigger: | |
platform: state | |
entity_id: !input 'motion_entity' | |
variables: | |
light_target: !input 'light_target' | |
switch_target: !input 'switch_target' | |
command: '{{ trigger.to_state.state }}' | |
action: | |
- choose: | |
- conditions: '{{ light_target|length > 0 and switch_target|length > 0 and command=="on"}}' | |
sequence: | |
- service: switch.turn_on | |
target: !input 'switch_target' | |
- service: light.turn_on | |
target: !input 'light_target' | |
- conditions: '{{ switch_target|length > 0 and command=="on"}}' | |
sequence: | |
- service: switch.turn_on | |
target: !input 'switch_target' | |
- conditions: '{{ light_target|length > 0 and command=="on"}}' | |
sequence: | |
- service: light.turn_on | |
target: !input 'light_target' | |
- conditions: '{{ light_target|length > 0 and switch_target|length > 0 and command=="off"}}' | |
sequence: | |
- 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 and command=="off"}}' | |
sequence: | |
- delay: !input 'no_motion_wait' | |
- service: switch.turn_off | |
target: !input 'switch_target' | |
- conditions: '{{ light_target|length > 0 and command=="off"}}' | |
sequence: | |
- 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