Skip to content

Instantly share code, notes, and snippets.

@GraemeF
Created November 5, 2023 11:24
Show Gist options
  • Select an option

  • Save GraemeF/6695c18b0d8a4eaec226454bf17f19d8 to your computer and use it in GitHub Desktop.

Select an option

Save GraemeF/6695c18b0d8a4eaec226454bf17f19d8 to your computer and use it in GitHub Desktop.

Revisions

  1. GraemeF created this gist Nov 5, 2023.
    123 changes: 123 additions & 0 deletions Presence-activated Light.yaml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,123 @@
    blueprint:
    name: Presence-activated Light
    description: Turn on a light when presence is detected.
    homeassistant:
    min_version: 2023.8.0
    domain: automation
    source_url: https://community.home-assistant.io/t/presence-sensor-light-automation/564590
    input:
    presence_entity:
    name: Presence Sensor
    description: Presence sensor device
    selector:
    entity:
    filter:
    domain:
    - binary_sensor
    device_class:
    - occupancy
    multiple: false
    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
    light_sensor:
    name: Light sensor
    description: Light sensor to read from
    default: []
    selector:
    entity:
    filter:
    domain:
    - sensor
    device_class:
    - illuminance
    multiple: false
    light_threshold:
    name: Light threshold
    description: Light sensor‘s lower threshold
    default: 200
    selector:
    number:
    min: 0.0
    max: 255.0
    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 presence_entity
    from: 'off'
    to: 'on'
    condition:
    - condition: numeric_state
    entity_id: !input light_sensor
    below: !input light_threshold
    - 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 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

    mode: restart
    max_exceeded: silent