Add motion sensing lights blueprint
This commit is contained in:
182
motion-sensing-lights.yaml
Normal file
182
motion-sensing-lights.yaml
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
# adapted from https://github.com/iainsmacleod/Home-Assistant-Blueprints
|
||||||
|
blueprint:
|
||||||
|
name: Motion- or sensor- activated light with brightness and temperature
|
||||||
|
description: Turn on lights when motion is detected, with brightness and temperature depending on sunrise/sunset (with offsets).
|
||||||
|
domain: automation
|
||||||
|
input:
|
||||||
|
motion_sensors:
|
||||||
|
name: Motion and Occupancy Sensors
|
||||||
|
description: Select one or more motion or occupancy sensors.
|
||||||
|
selector:
|
||||||
|
entity:
|
||||||
|
domain: binary_sensor
|
||||||
|
device_class:
|
||||||
|
- motion
|
||||||
|
- occupancy
|
||||||
|
- door
|
||||||
|
multiple: true
|
||||||
|
entity_target:
|
||||||
|
name: Lights and Switches
|
||||||
|
description: Select one or more lights or switches to control.
|
||||||
|
selector:
|
||||||
|
target:
|
||||||
|
entity:
|
||||||
|
domain:
|
||||||
|
- light
|
||||||
|
- switch
|
||||||
|
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
|
||||||
|
use_custom_settings:
|
||||||
|
name: Use Changing Brightness and Temperature
|
||||||
|
description: Enable to use brightness and temperature settings based on surrounding lights and light level.
|
||||||
|
default: true
|
||||||
|
selector:
|
||||||
|
boolean:
|
||||||
|
brightness_bright:
|
||||||
|
name: Brightness (bright setting)
|
||||||
|
description: Set the brightness level (0-255) used when high brightness is set.
|
||||||
|
default: 255
|
||||||
|
selector:
|
||||||
|
number:
|
||||||
|
min: 0
|
||||||
|
max: 255
|
||||||
|
brightness_dim:
|
||||||
|
name: Brightness (dim setting)
|
||||||
|
description: Set the brightness level (0-255) used when low brightness is set.
|
||||||
|
default: 150
|
||||||
|
selector:
|
||||||
|
number:
|
||||||
|
min: 0
|
||||||
|
max: 255
|
||||||
|
sun_offset_brightness:
|
||||||
|
name: Sun Offset for Brightness (Optional)
|
||||||
|
description: Offset from sunrise/sunset in format 'HH:MM' (e.g., '01:00' or '-01:00') at which light brightness reduces.
|
||||||
|
default: "00:00"
|
||||||
|
selector:
|
||||||
|
text:
|
||||||
|
temperature_cool:
|
||||||
|
name: Cool temperature
|
||||||
|
description: A cooler colour temperature, used during the day.
|
||||||
|
default: 250
|
||||||
|
selector:
|
||||||
|
number:
|
||||||
|
min: 1.0
|
||||||
|
max: 600.0
|
||||||
|
step: 1.0
|
||||||
|
mode: slider
|
||||||
|
temperature_warm:
|
||||||
|
name: Warm temperature
|
||||||
|
description: A warmer colour temperature, used at night.
|
||||||
|
default: 375
|
||||||
|
selector:
|
||||||
|
number:
|
||||||
|
min: 1.0
|
||||||
|
max: 600.0
|
||||||
|
step: 1.0
|
||||||
|
mode: slider
|
||||||
|
sun_offset_temperature:
|
||||||
|
name: Sun Offset for Temperature (Optional)
|
||||||
|
description: Offset from sunrise/sunset in format 'HH:MM' (e.g. '01:00' or '-01:00') at which light temperature turns warm.
|
||||||
|
default: "00:00"
|
||||||
|
selector:
|
||||||
|
text:
|
||||||
|
|
||||||
|
mode: restart
|
||||||
|
max_exceeded: silent
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
- platform: state
|
||||||
|
entity_id: !input motion_sensors
|
||||||
|
to: "on"
|
||||||
|
|
||||||
|
variables:
|
||||||
|
use_custom_settings: !input use_custom_settings
|
||||||
|
entity_target: !input entity_target
|
||||||
|
|
||||||
|
action:
|
||||||
|
- choose:
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: "{{ use_custom_settings }}"
|
||||||
|
sequence:
|
||||||
|
- choose:
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: "{{ 'light.' in entity_target.entity_id|string }}"
|
||||||
|
sequence:
|
||||||
|
|
||||||
|
- if:
|
||||||
|
- condition: sun
|
||||||
|
after: sunrise
|
||||||
|
after_offset: !input sun_offset_brightness
|
||||||
|
before: sunset
|
||||||
|
before_offset: !input sun_offset_brightness
|
||||||
|
then:
|
||||||
|
- variables:
|
||||||
|
brightness: !input brightness_bright
|
||||||
|
else:
|
||||||
|
- variables:
|
||||||
|
brightness: !input brightness_dim
|
||||||
|
- if:
|
||||||
|
- condition: sun
|
||||||
|
after: sunrise
|
||||||
|
after_offset: !input sun_offset_temperature
|
||||||
|
before: sunset
|
||||||
|
before_offset: !input sun_offset_temperature
|
||||||
|
then:
|
||||||
|
- variables:
|
||||||
|
temperature: !input temperature_cool
|
||||||
|
else:
|
||||||
|
- variables:
|
||||||
|
temperature: !input temperature_warm
|
||||||
|
|
||||||
|
- service: light.turn_on
|
||||||
|
target: !input entity_target
|
||||||
|
data:
|
||||||
|
brightness: "{{ brightness }}"
|
||||||
|
color_temp: "{{ temperature }}"
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: "{{ 'switch.' in entity_target.entity_id|string }}"
|
||||||
|
sequence:
|
||||||
|
- service: switch.turn_on
|
||||||
|
target: !input entity_target
|
||||||
|
default:
|
||||||
|
- choose:
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: "{{ 'light.' in entity_target.entity_id|string }}"
|
||||||
|
sequence:
|
||||||
|
- service: light.turn_on
|
||||||
|
target: !input entity_target
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: "{{ 'switch.' in entity_target.entity_id|string }}"
|
||||||
|
sequence:
|
||||||
|
- service: switch.turn_on
|
||||||
|
target: !input entity_target
|
||||||
|
- wait_for_trigger:
|
||||||
|
platform: state
|
||||||
|
entity_id: !input motion_sensors
|
||||||
|
to: "off"
|
||||||
|
- delay: !input no_motion_wait
|
||||||
|
- choose:
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: "{{ 'light.' in entity_target.entity_id|string }}"
|
||||||
|
sequence:
|
||||||
|
- service: light.turn_off
|
||||||
|
target: !input entity_target
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: "{{ 'switch.' in entity_target.entity_id|string }}"
|
||||||
|
sequence:
|
||||||
|
- service: switch.turn_off
|
||||||
|
target: !input entity_target
|
||||||
Reference in New Issue
Block a user