Skip to content

Instantly share code, notes, and snippets.

@edwardmp
Created January 5, 2024 17:29
Show Gist options
  • Save edwardmp/b3858698e2c2eb982f37b54a7eb92e9b to your computer and use it in GitHub Desktop.
Save edwardmp/b3858698e2c2eb982f37b54a7eb92e9b to your computer and use it in GitHub Desktop.
blueprint
blueprint:
name: Motion-activated Switch
description: Turn on a Switch when motion is detected.
domain: automation
author: edwardmp
input:
motion_entity:
name: Motion Sensor
selector:
entity:
filter:
device_class: motion
domain: binary_sensor
switch:
name: Switch
selector:
target:
entity:
domain: switch
no_motion_wait:
name: Wait time
description: Time to leave the switch 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"
action:
- alias: "Turn on the switch"
service: switch.turn_on
target: !input switch
- alias: "Wait until there is no motion from device"
wait_for_trigger:
platform: state
entity_id: !input motion_entity
from: "on"
to: "off"
- alias: "Wait the number of seconds that has been set"
delay: !input no_motion_wait
- alias: "Turn off the switch"
service: switch.turn_off
target: !input switch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment