blueprint:
  name: Motion-activated Switch
  description: Turn on a switch when motion is detected.
  domain: automation
  input:
    motion_entity:
      name: Motion Sensor
      selector:
        entity:
          domain: binary_sensor
          device_class: motion
    lightsensor_entity:
      name: Illuminance Sensor
      selector:
        entity:
          domain: sensor
          device_class: illuminance
    illuminace_level:
      name: Max Illuminance
      description: Maximal immuminance level in lux. If illuminance is higher, light
        will not be enabled
      default: 300
      selector:
        number:
          min: 0.0
          max: 5000.0
          unit_of_measurement: lux
          mode: slider
          step: 1.0
    switch_target:
      name: Switch
      selector:
        target:
          entity:
            domain: switch
    time_from:
      name: Active from
      description: A time input which defines the time from which motion is detected
      selector:
        time: {}
    time_to:
      name: Active to
      description: A time input which defines the time to which motion is detected
      selector:
        time: {}
    no_motion_wait:
      name: Wait time
      description: Time to leave the light on after last motion is detected.
      default: 120
      selector:
        number:
          min: 0.0
          max: 3600.0
          unit_of_measurement: seconds
          mode: slider
          step: 1.0
  source_url: https://community.home-assistant.io/t/turn-on-a-switch-when-motion-is-detected/255709
mode: restart
max_exceeded: silent
trigger:
- platform: state
  entity_id: !input 'motion_entity'
  from: 'off'
  to: 'on'
condition:
- condition: and
  conditions:
  - condition: time
    after: !input 'time_from'
    before: !input 'time_to'
  - condition: numeric_state
    entity_id: !input 'lightsensor_entity'
    below: !input 'illuminace_level'
action:
- service: switch.turn_on
  target: !input 'switch_target'
- wait_for_trigger:
    platform: state
    entity_id: !input 'motion_entity'
    from: 'on'
    to: 'off'
- delay: !input 'no_motion_wait'
- service: switch.turn_off
  target: !input 'switch_target'
