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