Turn on / off lights using presence sensor
with configuration like:
- Brighter percentage
- Wait time
- Transition time
- Light sensor
based on Motion light blueprint from home-assistant.
blueprint:
name: Presence-activated Light
description: Turn on a light when presence is detected.
domain: automation
source_url: https://github.com/antoniopacheco/presence_light/presence_light.yaml
input:
presence_entity:
name: Presence Sensor
description: Presence sensor device
selector:
entity:
domain: binary_sensor
device_class: occupancy
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
max: 100
unit_of_measurement: percentage
no_motion_wait:
name: Wait time
description: Time to leave the light on after last motion is detected.
default: 0
selector:
number:
min: 0
max: 3600
unit_of_measurement: seconds
off_transition:
name: Transition time
description: Time in seconds of transition turning off
default: 0
selector:
number:
min: 0
max: 60
unit_of_measurement: seconds
light_sensor:
name: Light sensor
description: Light sensor to read from
default: []
selector:
entity:
domain:
- sensor
device_class:
- illuminance
multiple: false
light_threshold:
name: Light threshold
description: Light sensorās lower threshold
default: 200
selector:
number:
min: 0
max: 255
# If presence is detected within the delay,
# we restart the script.
mode: restart
max_exceeded: silent
trigger:
platform: state
entity_id: !input presence_entity
from: "off"
to: "on"
condition:
- condition: numeric_state
entity_id: !input light_sensor
below: !input light_threshold
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 presence_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