Skip to content

Instantly share code, notes, and snippets.

@rattletat
Last active November 28, 2023 15:31
Show Gist options
  • Save rattletat/637a3ceb88db2a8a9f251e7ce7d3d279 to your computer and use it in GitHub Desktop.
Save rattletat/637a3ceb88db2a8a9f251e7ce7d3d279 to your computer and use it in GitHub Desktop.
Motion-activated light with added contions.
blueprint:
name: Motion-activated Light with Conditions
description: Turn on a light when motion is detected and conditions are fulfilled.
homeassistant:
min_version: 2023.8.0
domain: automation
source_url: https://community.home-assistant.io/t/presence-sensor-light-automation/564590
input:
motion_entity:
name: Motion Sensor
selector:
entity:
filter:
device_class: motion
domain: binary_sensor
light_target:
name: Light
description: Light device
selector:
target:
entity:
- domain:
- light
bright_percentage:
name: Bright Percentage
description: Brightness level that the light will turn into once is turned on
default: 100
selector:
number:
min: 0.0
max: 100.0
unit_of_measurement: percentage
mode: slider
step: 1.0
no_motion_wait:
name: Wait time
description: Time to leave the light on after last motion is detected.
default: 0
selector:
number:
min: 0.0
max: 3600.0
unit_of_measurement: seconds
mode: slider
step: 1.0
off_transition:
name: Transition time
description: Time in seconds of transition turning off
default: 0
selector:
number:
min: 0.0
max: 60.0
unit_of_measurement: seconds
mode: slider
step: 1.0
additional_conditions:
name: Additional conditions
description: |
Extra conditions you may want to add to this automation
(Example: Home occupied, TV on, etc)
default: []
selector:
condition:
trigger:
platform: state
entity_id: !input motion_entity
from: 'off'
to: 'on'
condition:
- condition: !input additional_conditions
action:
- alias: Turn on the light
service: light.turn_on
target: !input light_target
data:
brightness_pct: !input bright_percentage
- 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 light
service: light.turn_off
target: !input light_target
data:
transition: !input off_transition
mode: restart
max_exceeded: silent
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment