/
motion_brightness_light_v2.yaml
76 lines (71 loc) · 1.99 KB
/
motion_brightness_light_v2.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
blueprint:
name: Motion and brightness activated Light V2
description: Turn on a light when motion is detected and it is dark enough or night.
domain: automation
source_url: https://github.com/OliverHi/blueprints/blob/main/motion_brightness_light.yaml
input:
motion_entity:
name: Motion Sensor
selector:
entity:
domain: binary_sensor
device_class: motion
brightness_entity:
name: Lux/Brightness Sensor
selector:
entity:
device_class: illuminance
light_target:
name: Light(s) to control
selector:
target:
entity:
domain: light
brightness_trigger:
name: Maximum brightness
description: Brightness trigger level. If it gets any brighter the lights will not be turned on.
default: 20
selector:
number:
min: 0
max: 1000
unit_of_measurement: lx
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
# If motion is detected within the delay,
# we restart the script.
mode: restart
max_exceeded: silent
# making the input variable usable in the condition
variables:
lights: !input "light_target"
trigger:
platform: state
entity_id: !input motion_entity
from: "off"
to: "on"
condition:
- condition: or
conditions:
- "{{ expand(lights.entity_id) | selectattr('state', '==', 'on') | list | count > 0 }}" # some lights in the group are on
- condition: numeric_state
entity_id: !input brightness_entity
below: !input brightness_trigger
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