update
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
blueprint:
|
||||
name: Motion-activated Light with Conditions, Exceptions, Optional Settings, and
|
||||
Sun Offset
|
||||
description: Turn on lights when motion is detected, with optional brightness and
|
||||
color settings, conditional entity state check, and sun position check with offset.
|
||||
domain: automation
|
||||
input:
|
||||
motion_sensors:
|
||||
name: Motion Sensors
|
||||
description: Select one or more motion sensors.
|
||||
selector:
|
||||
entity:
|
||||
domain:
|
||||
- binary_sensor
|
||||
device_class:
|
||||
- motion
|
||||
multiple: true
|
||||
light_targets:
|
||||
name: Lights
|
||||
description: Select one or more lights to control.
|
||||
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.0
|
||||
max: 3600.0
|
||||
unit_of_measurement: seconds
|
||||
mode: slider
|
||||
step: 1.0
|
||||
use_custom_settings:
|
||||
name: Use Custom Brightness and Color
|
||||
description: Enable to use custom brightness and color settings.
|
||||
default: false
|
||||
selector:
|
||||
boolean: {}
|
||||
brightness:
|
||||
name: Brightness
|
||||
description: Set the brightness level (0-255).
|
||||
default: 255
|
||||
selector:
|
||||
number:
|
||||
min: 0.0
|
||||
max: 255.0
|
||||
mode: slider
|
||||
step: 1.0
|
||||
color:
|
||||
name: Color
|
||||
description: Set the color (in RGB format).
|
||||
default:
|
||||
- 255
|
||||
- 255
|
||||
- 255
|
||||
selector:
|
||||
color_rgb: {}
|
||||
condition_entity:
|
||||
name: Condition Entity (Optional)
|
||||
description: Select an entity to check its state (optional). If no entity is
|
||||
defined, this condition is not evaluated.
|
||||
default:
|
||||
selector:
|
||||
entity: {}
|
||||
condition_states:
|
||||
name: Allowed States for Condition Entity
|
||||
description: Enter the states that the condition entity should be in (comma-separated).
|
||||
If a Condition Entity is not defined these values are ignored.
|
||||
default:
|
||||
selector:
|
||||
text: {}
|
||||
sun_condition:
|
||||
name: Sun Condition (Optional)
|
||||
description: Select the sun condition to check.
|
||||
default: none
|
||||
selector:
|
||||
select:
|
||||
options:
|
||||
- none
|
||||
- day
|
||||
- night
|
||||
multiple: false
|
||||
custom_value: false
|
||||
sort: false
|
||||
sun_offset:
|
||||
name: Sun Offset (Optional)
|
||||
description: Offset from sunrise/sunset in format 'HH:MM' (e.g., '01:00' or
|
||||
'-01:00')
|
||||
default: 00:00
|
||||
selector:
|
||||
text: {}
|
||||
blocking_entity:
|
||||
name: Blocking Entity (Optional)
|
||||
description: Select an entity that will prevent the automation from running
|
||||
when in specified states.
|
||||
default:
|
||||
selector:
|
||||
entity: {}
|
||||
blocking_states:
|
||||
name: Blocking States
|
||||
description: Enter the states that will prevent the automation from running
|
||||
(comma-separated).
|
||||
default:
|
||||
selector:
|
||||
text: {}
|
||||
source_url: https://github.com/iainsmacleod/Home-Assistant-Blueprints/blob/main/advanced_motion_automation.yaml
|
||||
mode: restart
|
||||
max_exceeded: silent
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: !input motion_sensors
|
||||
to: 'on'
|
||||
variables:
|
||||
use_custom_settings: !input use_custom_settings
|
||||
condition_entity: !input condition_entity
|
||||
condition_states: !input condition_states
|
||||
sun_condition: !input sun_condition
|
||||
sun_offset: !input sun_offset
|
||||
blocking_entity: !input blocking_entity
|
||||
blocking_states: !input blocking_states
|
||||
condition:
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: '{{ blocking_entity == None or blocking_entity == '''' }}'
|
||||
- condition: template
|
||||
value_template: '{% set blocking_states_list = blocking_states.split('','')
|
||||
| map(''trim'') | list %} {{ states(blocking_entity) not in blocking_states_list
|
||||
}}
|
||||
|
||||
'
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: '{{ condition_entity == None or condition_entity == '''' }}'
|
||||
- condition: template
|
||||
value_template: '{% set states_list = condition_states.split('','') | map(''trim'')
|
||||
| list %} {{ condition_entity != None and condition_entity != '''' and states_list
|
||||
| length > 0 and states(condition_entity) in states_list }}
|
||||
|
||||
'
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: '{{ sun_condition == ''none'' }}'
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: '{{ sun_condition == ''day'' }}'
|
||||
- condition: sun
|
||||
after: sunrise
|
||||
after_offset: !input sun_offset
|
||||
before: sunset
|
||||
before_offset: !input sun_offset
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: '{{ sun_condition == ''night'' }}'
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: sun
|
||||
after: sunset
|
||||
after_offset: !input sun_offset
|
||||
- condition: sun
|
||||
before: sunrise
|
||||
before_offset: !input sun_offset
|
||||
action:
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: template
|
||||
value_template: '{{ use_custom_settings }}'
|
||||
sequence:
|
||||
- service: light.turn_on
|
||||
target: !input light_targets
|
||||
data:
|
||||
brightness: !input brightness
|
||||
rgb_color: !input color
|
||||
default:
|
||||
- service: light.turn_on
|
||||
target: !input light_targets
|
||||
- wait_for_trigger:
|
||||
platform: state
|
||||
entity_id: !input motion_sensors
|
||||
to: 'off'
|
||||
- delay: !input no_motion_wait
|
||||
- service: light.turn_off
|
||||
target: !input light_targets
|
||||
Reference in New Issue
Block a user