Garage presence light VIP
This commit is contained in:
155
blueprints/automation/homeassistant/presence_light.yaml
Normal file
155
blueprints/automation/homeassistant/presence_light.yaml
Normal file
@@ -0,0 +1,155 @@
|
||||
blueprint:
|
||||
name: Presence-activated-Light
|
||||
description: Turn on a light when presence is detected
|
||||
domain: automation
|
||||
author: Tiziano Trabattoni
|
||||
input:
|
||||
presence_entity1:
|
||||
name: presence-sensor1
|
||||
description: First Sensor presence entity
|
||||
selector:
|
||||
entity:
|
||||
filter:
|
||||
device_class: occupancy
|
||||
domain: binary_sensor
|
||||
light_target:
|
||||
name: Light
|
||||
description: Entity of the Lamp to be controlled
|
||||
selector:
|
||||
target:
|
||||
entity:
|
||||
domain: light
|
||||
use_sun:
|
||||
name: Sun_driven
|
||||
description: Controlled by sunrise and sunset flag
|
||||
default: on
|
||||
selector:
|
||||
boolean:
|
||||
dont_disturb:
|
||||
name: dont_disturb_light_control
|
||||
description: Controls if lamp brightness has to be reduced to not disturb
|
||||
default: on
|
||||
selector:
|
||||
boolean:
|
||||
no_presence_wait:
|
||||
name: Wait time
|
||||
description: Time to leave the light on after last presence is detected.
|
||||
default: 20
|
||||
selector:
|
||||
number:
|
||||
min: 0
|
||||
max: 300
|
||||
unit_of_measurement: seconds
|
||||
|
||||
# Every motion state change is captured and managed by the script therefore we need to restart by queueing triggers
|
||||
# in this automation the poweroff of light is started only if all managed motion sensor are in clear state (= "off")
|
||||
mode: queued
|
||||
max_exceeded: silent
|
||||
|
||||
triggers:
|
||||
- trigger: state
|
||||
entity_id: !input presence_entity1
|
||||
from: "off"
|
||||
to: "on"
|
||||
id: presence_entity1_on
|
||||
|
||||
- trigger: state
|
||||
entity_id: !input presence_entity1
|
||||
from: "on"
|
||||
to: "off"
|
||||
id: presence_entity1_off
|
||||
|
||||
variables:
|
||||
use_sun_flag: !input use_sun
|
||||
dont_disturb_flag: !input dont_disturb
|
||||
light_target_var: !input light_target
|
||||
presence_entity1_var: !input presence_entity1
|
||||
|
||||
actions:
|
||||
- choose:
|
||||
# Conditions for triggering on light
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- presence_entity1_on
|
||||
# - presence_entity2_on
|
||||
# - presence_entity3_on
|
||||
sequence:
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: "{{ use_sun_flag }}"
|
||||
then: # Sun and luminescence controlled
|
||||
- if:
|
||||
- or:
|
||||
# external light is LOW (below Helper daylight_luminescence set value)
|
||||
- condition: template
|
||||
value_template: "{{ ( states('sensor.esterno_luminosita_illuminance_lux') | int ) < ( states('input_number.daylight_luminescence') | int ) }}"
|
||||
# after sunrise and before sunset
|
||||
- condition: sun
|
||||
after: sunset
|
||||
after_offset: "-01:00:00"
|
||||
before: sunrise
|
||||
before_offset: "+01:00:00"
|
||||
then:
|
||||
- if:
|
||||
- and:
|
||||
- condition: template
|
||||
value_template: "{{ dont_disturb_flag }}"
|
||||
- condition: template
|
||||
value_template: "{{ is_state('binary_sensor.dont_disturb_nighttime', 'on') }}"
|
||||
then:
|
||||
- action: light.turn_on
|
||||
target: !input light_target
|
||||
data:
|
||||
brightness_pct: "{{ states('input_number.dont_disturb_light_brightness') | float }}"
|
||||
color_temp_kelvin: 2500
|
||||
else:
|
||||
- action: light.turn_on
|
||||
target: !input light_target
|
||||
data:
|
||||
brightness_pct: 100
|
||||
color_temp_kelvin: 2500
|
||||
else: # Always active
|
||||
- if:
|
||||
- and:
|
||||
- condition: template
|
||||
value_template: "{{ dont_disturb_flag }}"
|
||||
- condition: template
|
||||
value_template: "{{ is_state('binary_sensor.dont_disturb_nighttime', 'on') }}"
|
||||
then:
|
||||
- action: light.turn_on
|
||||
target: !input light_target
|
||||
data:
|
||||
brightness_pct: "{{ states('input_number.dont_disturb_light_brightness') | float }}"
|
||||
color_temp_kelvin: 2500
|
||||
else:
|
||||
- action: light.turn_on
|
||||
target: !input light_target
|
||||
data:
|
||||
brightness_pct: 100
|
||||
color_temp_kelvin: 2500
|
||||
|
||||
# conditions for triggering off lights
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- presence_entity1_off
|
||||
# - presence_entity2_off
|
||||
# - presence_entity3_off
|
||||
sequence:
|
||||
- if:
|
||||
- alias: "None of motion sensor are detected"
|
||||
condition: not
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: "{{ is_state(presence_entity1_var, 'on') }}"
|
||||
# - condition: template
|
||||
# value_template: "{{ is_state(presence_entity2_var, 'on') }}"
|
||||
# - condition: template
|
||||
# value_template: "{{ is_state(presence_entity3_var, 'on') }}"
|
||||
then:
|
||||
- alias: "Wait for delay set before turn off"
|
||||
delay: !input no_presence_wait
|
||||
- alias: "Turn off the light"
|
||||
action: light.turn_off
|
||||
target: !input light_target
|
||||
Reference in New Issue
Block a user