Skip to content

Instantly share code, notes, and snippets.

@KirovAir
Created September 27, 2022 17:27
Show Gist options
  • Select an option

  • Save KirovAir/81cbd0ba383fa45246ac41c2b1874a75 to your computer and use it in GitHub Desktop.

Select an option

Save KirovAir/81cbd0ba383fa45246ac41c2b1874a75 to your computer and use it in GitHub Desktop.

Revisions

  1. KirovAir created this gist Sep 27, 2022.
    79 changes: 79 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,79 @@
    blueprint:
    name: Motion-activated Light with sun condition
    description: Turn on a light when motion is detected and sunset.
    domain: automation
    input:
    motion_entity:
    name: Motion Sensor
    selector:
    entity:
    domain: binary_sensor
    device_class: motion
    light_target:
    name: Light
    selector:
    target:
    entity:
    domain: light
    no_motion_wait:
    name: Wait time
    description: Time to leave the light on after last motion is detected.
    default: 120
    selector:
    number:
    min: 0
    max: 3600
    unit_of_measurement: seconds

    sunset_offset:
    name: Offset to turn on lights
    description: Define offset to sunset
    default: 60
    selector:
    number:
    min: -240
    max: 240
    unit_of_measurement: minutes

    sunrise_offset:
    name: Offset to turn off lights
    description: Define offset to sunrise
    default: 45
    selector:
    number:
    min: -240
    max: 240
    unit_of_measurement: minutes

    # 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"

    condition:
    - condition: or
    conditions:
    - condition: sun
    after: sunset
    after_offset: !input sunset_offset
    - condition: sun
    before: sunrise
    before_offset: !input sunrise_offset

    action:
    - service: light.turn_on
    target: !input light_target
    - wait_for_trigger:
    platform: state
    entity_id: !input motion_entity
    from: "on"
    to: "off"
    - delay: !input no_motion_wait
    - service: light.turn_off
    target: !input light_target