New Motion Light PRO with Restart Mode
This commit is contained in:
@@ -1 +1 @@
|
||||
2025.12.4
|
||||
2026.3.3
|
||||
@@ -1 +1 @@
|
||||
{"pid": 66, "version": 1, "ha_version": "2025.12.4", "start_ts": 1770245525.0375628}
|
||||
{"pid": 65, "version": 1, "ha_version": "2026.3.3", "start_ts": 1774178078.8002532}
|
||||
213
automations.yaml
213
automations.yaml
@@ -24,31 +24,6 @@
|
||||
window_sensor: binary_sensor.soggiornopt_finestrasud_contact
|
||||
climate_target: climate.soggiornopt_termosifonesud
|
||||
ext_temp_limit: 17
|
||||
- id: '1731705145404'
|
||||
alias: Luce Automatica Scala Mansarda
|
||||
description: ''
|
||||
use_blueprint:
|
||||
path: homeassistant/motion_light_dual_ng.yaml
|
||||
input:
|
||||
motion_entity1: binary_sensor.presenza_alta_scala_mansarda_occupancy
|
||||
motion_entity2: binary_sensor.presenza_bassa_scala_mansarda_occupancy
|
||||
light_target:
|
||||
device_id: 702137a6f2c17b89fdb0598f7003743c
|
||||
no_motion_wait: 30
|
||||
- id: '1732739522749'
|
||||
alias: Luce Automatica Taverna Garage
|
||||
description: ''
|
||||
use_blueprint:
|
||||
path: homeassistant/motion_light_trix_ng.yaml
|
||||
input:
|
||||
light_target:
|
||||
entity_id: light.luce_taverna_garage
|
||||
motion_entity1: binary_sensor.presenza_bassa_scala_taverna_occupancy
|
||||
motion_entity2: binary_sensor.presenza_taverna_garage_occupancy
|
||||
motion_entity3: binary_sensor.presenza_taverna_lavanderia_occupancy
|
||||
use_sun: false
|
||||
dont_disturb: false
|
||||
no_motion_wait: 40
|
||||
- id: '1736805701473'
|
||||
alias: P1confort-light
|
||||
description: ''
|
||||
@@ -57,18 +32,6 @@
|
||||
input:
|
||||
light_target:
|
||||
device_id: e0397b54f1c2d1514be403e2996ca368
|
||||
- id: '1738366774549'
|
||||
alias: Test-motion-light-ng
|
||||
description: ''
|
||||
use_blueprint:
|
||||
path: homeassistant/motion_light_dual_ng.yaml
|
||||
input:
|
||||
motion_entity1: binary_sensor.presenza_alta_scala_mansarda_occupancy
|
||||
motion_entity2: binary_sensor.presenza_bassa_scala_mansarda_occupancy
|
||||
light_target:
|
||||
device_id: 9f46c5b7c07f1495e0f4bf8d6f72a525
|
||||
no_motion_wait: 0
|
||||
dont_disturb: false
|
||||
- id: '1738426726761'
|
||||
alias: Test-Pulsante01
|
||||
description: ''
|
||||
@@ -99,18 +62,6 @@
|
||||
description: ''
|
||||
use_blueprint:
|
||||
path: homeassistant/test_macro.yaml
|
||||
- id: '1748185066312'
|
||||
alias: Luce-Garage
|
||||
description: ''
|
||||
use_blueprint:
|
||||
path: homeassistant/presence_light.yaml
|
||||
input:
|
||||
presence_entity1: binary_sensor.presenza_garage_occupancy
|
||||
light_target:
|
||||
device_id: d5b217920e2f4fe83e0496257b27e39c
|
||||
use_sun: false
|
||||
dont_disturb: false
|
||||
no_presence_wait: 180
|
||||
- id: '1753031203413'
|
||||
alias: Apri-Cancelletto
|
||||
description: ''
|
||||
@@ -181,19 +132,6 @@
|
||||
message: Qualcuno ha suonato al Cancelletto usa Home Assistant
|
||||
enabled: false
|
||||
mode: single
|
||||
- id: '1756127648616'
|
||||
alias: Luce Automatica Scala Taverna
|
||||
description: ''
|
||||
use_blueprint:
|
||||
path: homeassistant/motion_light_dual_ng.yaml
|
||||
input:
|
||||
motion_entity1: binary_sensor.presenza_alta_scala_taverna_occupancy
|
||||
motion_entity2: binary_sensor.presenza_bassa_scala_taverna_occupancy
|
||||
light_target:
|
||||
device_id: 6d330da42619e33e75960756cd2262eb
|
||||
use_sun: false
|
||||
dont_disturb: false
|
||||
no_motion_wait: 30
|
||||
- id: '1757599657040'
|
||||
alias: Luce-Giardino
|
||||
description: ''
|
||||
@@ -312,6 +250,45 @@
|
||||
payload: "{\"cmd\": \"setFixHPlimit\", \"params\": {\n \"level\": \"{{states('input_select.fix_hp_power')}}\",\n
|
||||
\ \"duration\": {{states('input_number.fix_hp_power_duration')}} }}"
|
||||
mode: single
|
||||
- id: '1774178169206'
|
||||
alias: Luce Automatica Scala-Mansarda
|
||||
description: Motion light PRO dual
|
||||
use_blueprint:
|
||||
path: homeassistant/motion_light_pro_dual.yaml
|
||||
input:
|
||||
motion_entity1: binary_sensor.presenza_alta_scala_mansarda_occupancy
|
||||
motion_entity2: binary_sensor.presenza_bassa_scala_mansarda_occupancy
|
||||
light_target:
|
||||
entity_id: light.luce_scala_mansarda
|
||||
no_motion_wait: 40
|
||||
use_sun: true
|
||||
- id: '1774178649402'
|
||||
alias: Luce Automatica Scala-Taverna
|
||||
description: Motion light PRO dual per Scala Taverna
|
||||
use_blueprint:
|
||||
path: homeassistant/motion_light_pro_dual.yaml
|
||||
input:
|
||||
motion_entity1: binary_sensor.presenza_alta_scala_taverna_occupancy
|
||||
motion_entity2: binary_sensor.presenza_bassa_scala_taverna_occupancy
|
||||
light_target:
|
||||
entity_id: light.luce_scala_taverna
|
||||
no_motion_wait: 40
|
||||
use_sun: false
|
||||
dont_disturb: false
|
||||
- id: '1774187260983'
|
||||
alias: Luce Automatica Taverna-Garage
|
||||
description: Motion light PRO dual per Luce Taverna-Garage
|
||||
use_blueprint:
|
||||
path: homeassistant/motion_light_pro_triple.yaml
|
||||
input:
|
||||
motion_entity1: binary_sensor.presenza_bassa_scala_taverna_occupancy
|
||||
motion_entity2: binary_sensor.presenza_taverna_garage_occupancy
|
||||
motion_entity3: binary_sensor.presenza_taverna_lavanderia_occupancy
|
||||
light_target:
|
||||
entity_id: light.luce_taverna_garage
|
||||
use_sun: false
|
||||
dont_disturb: false
|
||||
no_motion_wait: 60
|
||||
- id: '1764007463105'
|
||||
alias: ETcontroller_fix_limit_copy
|
||||
description: 'This Automation allows to copy status from MQTT read HP Fix Limit
|
||||
@@ -331,6 +308,50 @@
|
||||
data_template:
|
||||
option: '{{ states(''sensor.fix_hp_level_read'') }}'
|
||||
mode: single
|
||||
- id: '1774188925405'
|
||||
alias: Luce Automatica Garage
|
||||
description: ''
|
||||
triggers:
|
||||
- trigger: state
|
||||
entity_id:
|
||||
- binary_sensor.presenza_garage_occupancy
|
||||
from:
|
||||
- 'off'
|
||||
to:
|
||||
- 'on'
|
||||
id: garage_on
|
||||
- trigger: state
|
||||
entity_id:
|
||||
- binary_sensor.presenza_garage_occupancy
|
||||
from:
|
||||
- 'on'
|
||||
to:
|
||||
- 'off'
|
||||
id: garage_off
|
||||
conditions: []
|
||||
actions:
|
||||
- if:
|
||||
- condition: trigger
|
||||
id:
|
||||
- garage_on
|
||||
then:
|
||||
- action: light.turn_on
|
||||
metadata: {}
|
||||
target:
|
||||
entity_id: light.luce_garage
|
||||
data: {}
|
||||
else:
|
||||
- delay:
|
||||
hours: 0
|
||||
minutes: 3
|
||||
seconds: 0
|
||||
milliseconds: 0
|
||||
- action: light.turn_off
|
||||
metadata: {}
|
||||
target:
|
||||
entity_id: light.luce_garage
|
||||
data: {}
|
||||
mode: single
|
||||
- id: '1765575450095'
|
||||
alias: Xmas-light-mgmt
|
||||
description: ''
|
||||
@@ -427,7 +448,7 @@
|
||||
- delay:
|
||||
hours: 0
|
||||
minutes: 0
|
||||
seconds: 6
|
||||
seconds: 8
|
||||
milliseconds: 0
|
||||
- action: switch.turn_off
|
||||
metadata: {}
|
||||
@@ -491,3 +512,69 @@
|
||||
title: Persiane di Tiziano
|
||||
target:
|
||||
- sistemser@alice.it
|
||||
- id: '1771585465072'
|
||||
alias: Nuova automazione
|
||||
description: ''
|
||||
triggers:
|
||||
- trigger: tag
|
||||
tag_id: fdd88606-1018-4f01-8e7a-792c87c77943
|
||||
conditions: []
|
||||
actions:
|
||||
- action: switch.toggle
|
||||
metadata: {}
|
||||
target:
|
||||
entity_id:
|
||||
- switch.edelweiss_accesscontol_allarme_disinserito
|
||||
- switch.edelweiss_accesscontol_allarme_inserito
|
||||
data: {}
|
||||
mode: single
|
||||
- id: '1773510003619'
|
||||
alias: SalottoPT-save-energy
|
||||
description: ''
|
||||
use_blueprint:
|
||||
path: homeassistant/heat_save.yaml
|
||||
input:
|
||||
window_sensor: binary_sensor.salottopt_finestra_contact
|
||||
climate_target: climate.salottopt_termosifone
|
||||
ext_temp_limit: 17
|
||||
- id: '1773787966184'
|
||||
alias: SE_fan_automation
|
||||
description: Manages fan under Solaredge Inverter
|
||||
triggers:
|
||||
- trigger: numeric_state
|
||||
entity_id:
|
||||
- sensor.se_heatsink_temp
|
||||
above: 36
|
||||
id: se_fan_on
|
||||
- trigger: numeric_state
|
||||
entity_id:
|
||||
- sensor.se_heatsink_temp
|
||||
below: 32
|
||||
id: se_fan_off
|
||||
conditions: []
|
||||
actions:
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- se_fan_on
|
||||
sequence:
|
||||
- type: turn_on
|
||||
device_id: e3ed6a2244c1e2ddaeff6f94e96f25e1
|
||||
entity_id: 361d8b711623afed18b3e9397bdae647
|
||||
domain: switch
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- se_fan_off
|
||||
sequence:
|
||||
- type: turn_off
|
||||
device_id: e3ed6a2244c1e2ddaeff6f94e96f25e1
|
||||
entity_id: 361d8b711623afed18b3e9397bdae647
|
||||
domain: switch
|
||||
default:
|
||||
- type: turn_off
|
||||
device_id: e3ed6a2244c1e2ddaeff6f94e96f25e1
|
||||
entity_id: 361d8b711623afed18b3e9397bdae647
|
||||
domain: switch
|
||||
mode: single
|
||||
|
||||
165
blueprints/automation/homeassistant/motion_light_pro_dual.yaml
Normal file
165
blueprints/automation/homeassistant/motion_light_pro_dual.yaml
Normal file
@@ -0,0 +1,165 @@
|
||||
blueprint:
|
||||
name: Motion-activated-Light PRO (dual motion sensors)
|
||||
description: Turn on a light when motion is detected PRO (dual motion sensor)
|
||||
domain: automation
|
||||
author: Tiziano Trabattoni
|
||||
input:
|
||||
motion_entity1:
|
||||
name: Motion-sensor1
|
||||
description: First Sensor motion entity
|
||||
selector:
|
||||
entity:
|
||||
filter:
|
||||
device_class: motion
|
||||
domain: binary_sensor
|
||||
motion_entity2:
|
||||
name: Motion-sensor2
|
||||
description: Second Sensor motion entity
|
||||
selector:
|
||||
entity:
|
||||
filter:
|
||||
device_class: motion
|
||||
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_motion_wait:
|
||||
name: Wait time
|
||||
description: Time to leave the light on after last motion 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: restart
|
||||
max_exceeded: silent
|
||||
|
||||
triggers:
|
||||
- trigger: state
|
||||
entity_id: !input motion_entity1
|
||||
from: "off"
|
||||
to: "on"
|
||||
id: motion_entity1_on
|
||||
- trigger: state
|
||||
entity_id: !input motion_entity2
|
||||
from: "off"
|
||||
to: "on"
|
||||
id: motion_entity2_on
|
||||
- trigger: state
|
||||
entity_id: !input motion_entity1
|
||||
from: "on"
|
||||
to: "off"
|
||||
id: motion_entity1_off
|
||||
- trigger: state
|
||||
entity_id: !input motion_entity2
|
||||
from: "on"
|
||||
to: "off"
|
||||
id: motion_entity2_off
|
||||
|
||||
variables:
|
||||
use_sun_flag: !input use_sun
|
||||
dont_disturb_flag: !input dont_disturb
|
||||
light_target_var: !input light_target
|
||||
motion_entity1_var: !input motion_entity1
|
||||
motion_entity2_var: !input motion_entity2
|
||||
|
||||
actions:
|
||||
- if:
|
||||
- condition: trigger
|
||||
id:
|
||||
- motion_entity1_on
|
||||
- motion_entity2_on
|
||||
then:
|
||||
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
|
||||
- if:
|
||||
- condition: trigger
|
||||
id:
|
||||
- motion_entity1_off
|
||||
- motion_entity2_off
|
||||
then:
|
||||
- if:
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: "{{ is_state(motion_entity1_var,'off') }}"
|
||||
- condition: template
|
||||
value_template: "{{ is_state(motion_entity2_var,'off') }}"
|
||||
then:
|
||||
- alias: "Wait for delay set before turn off"
|
||||
delay: !input no_motion_wait
|
||||
- alias: "Turn off the light"
|
||||
action: light.turn_off
|
||||
target: !input light_target
|
||||
142
blueprints/automation/homeassistant/motion_light_pro_single.yaml
Normal file
142
blueprints/automation/homeassistant/motion_light_pro_single.yaml
Normal file
@@ -0,0 +1,142 @@
|
||||
blueprint:
|
||||
name: Motion-activated-Light PRO (singlel motion sensors)
|
||||
description: Turn on a light when motion is detected PRO (single motion sensor)
|
||||
domain: automation
|
||||
author: Tiziano Trabattoni
|
||||
input:
|
||||
motion_entity1:
|
||||
name: Motion-sensor1
|
||||
description: First Sensor motion entity
|
||||
selector:
|
||||
entity:
|
||||
filter:
|
||||
device_class: motion
|
||||
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_motion_wait:
|
||||
name: Wait time
|
||||
description: Time to leave the light on after last motion 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: restart
|
||||
max_exceeded: silent
|
||||
|
||||
triggers:
|
||||
- trigger: state
|
||||
entity_id: !input motion_entity1
|
||||
from: "off"
|
||||
to: "on"
|
||||
id: motion_entity1_on
|
||||
- trigger: state
|
||||
entity_id: !input motion_entity1
|
||||
from: "on"
|
||||
to: "off"
|
||||
id: motion_entity1_off
|
||||
|
||||
variables:
|
||||
use_sun_flag: !input use_sun
|
||||
dont_disturb_flag: !input dont_disturb
|
||||
light_target_var: !input light_target
|
||||
motion_entity1_var: !input motion_entity1
|
||||
|
||||
actions:
|
||||
- if:
|
||||
- condition: trigger
|
||||
id:
|
||||
- motion_entity1_on
|
||||
then:
|
||||
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
|
||||
- if:
|
||||
- condition: trigger
|
||||
id:
|
||||
- motion_entity1_off
|
||||
then:
|
||||
- if:
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: "{{ is_state(motion_entity1_var,'off') }}"
|
||||
then:
|
||||
- alias: "Wait for delay set before turn off"
|
||||
delay: !input no_motion_wait
|
||||
- alias: "Turn off the light"
|
||||
action: light.turn_off
|
||||
target: !input light_target
|
||||
188
blueprints/automation/homeassistant/motion_light_pro_triple.yaml
Normal file
188
blueprints/automation/homeassistant/motion_light_pro_triple.yaml
Normal file
@@ -0,0 +1,188 @@
|
||||
blueprint:
|
||||
name: Motion-activated-Light PRO (triple motion sensors)
|
||||
description: Turn on a light when motion is detected PRO (triple motion sensor)
|
||||
domain: automation
|
||||
author: Tiziano Trabattoni
|
||||
input:
|
||||
motion_entity1:
|
||||
name: Motion-sensor1
|
||||
description: First Sensor motion entity
|
||||
selector:
|
||||
entity:
|
||||
filter:
|
||||
device_class: motion
|
||||
domain: binary_sensor
|
||||
motion_entity2:
|
||||
name: Motion-sensor2
|
||||
description: Second Sensor motion entity
|
||||
selector:
|
||||
entity:
|
||||
filter:
|
||||
device_class: motion
|
||||
domain: binary_sensor
|
||||
motion_entity3:
|
||||
name: Motion-sensor3
|
||||
description: Third Sensor motion entity
|
||||
selector:
|
||||
entity:
|
||||
filter:
|
||||
device_class: motion
|
||||
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_motion_wait:
|
||||
name: Wait time
|
||||
description: Time to leave the light on after last motion 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: restart
|
||||
max_exceeded: silent
|
||||
|
||||
triggers:
|
||||
- trigger: state
|
||||
entity_id: !input motion_entity1
|
||||
from: "off"
|
||||
to: "on"
|
||||
id: motion_entity1_on
|
||||
- trigger: state
|
||||
entity_id: !input motion_entity2
|
||||
from: "off"
|
||||
to: "on"
|
||||
id: motion_entity2_on
|
||||
- trigger: state
|
||||
entity_id: !input motion_entity3
|
||||
from: "off"
|
||||
to: "on"
|
||||
id: motion_entity3_on
|
||||
- trigger: state
|
||||
entity_id: !input motion_entity1
|
||||
from: "on"
|
||||
to: "off"
|
||||
id: motion_entity1_off
|
||||
- trigger: state
|
||||
entity_id: !input motion_entity2
|
||||
from: "on"
|
||||
to: "off"
|
||||
id: motion_entity2_off
|
||||
- trigger: state
|
||||
entity_id: !input motion_entity3
|
||||
from: "on"
|
||||
to: "off"
|
||||
id: motion_entity3_off
|
||||
|
||||
variables:
|
||||
use_sun_flag: !input use_sun
|
||||
dont_disturb_flag: !input dont_disturb
|
||||
light_target_var: !input light_target
|
||||
motion_entity1_var: !input motion_entity1
|
||||
motion_entity2_var: !input motion_entity2
|
||||
motion_entity3_var: !input motion_entity3
|
||||
|
||||
actions:
|
||||
- if:
|
||||
- condition: trigger
|
||||
id:
|
||||
- motion_entity1_on
|
||||
- motion_entity2_on
|
||||
- motion_entity3_on
|
||||
then:
|
||||
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
|
||||
- if:
|
||||
- condition: trigger
|
||||
id:
|
||||
- motion_entity1_off
|
||||
- motion_entity2_off
|
||||
- motion_entity3_off
|
||||
then:
|
||||
- if:
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: "{{ is_state(motion_entity1_var,'off') }}"
|
||||
- condition: template
|
||||
value_template: "{{ is_state(motion_entity2_var,'off') }}"
|
||||
- condition: template
|
||||
value_template: "{{ is_state(motion_entity3_var,'off') }}"
|
||||
then:
|
||||
- alias: "Wait for delay set before turn off"
|
||||
delay: !input no_motion_wait
|
||||
- alias: "Turn off the light"
|
||||
action: light.turn_off
|
||||
target: !input light_target
|
||||
@@ -1,148 +0,0 @@
|
||||
blueprint:
|
||||
name: Dual Sensor Sunset and Luminescence Motion-activated Light
|
||||
description: Turn on a light when motion is detected (with Sunrise / Sunset / Luminance).
|
||||
domain: automation
|
||||
# source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/motion_light.yaml
|
||||
author: Tiziano Trabattoni
|
||||
input:
|
||||
motion_entity_down:
|
||||
name: Motion Sensor (Sensore Basso)
|
||||
description: Sensore parte bassa della scala
|
||||
selector:
|
||||
entity:
|
||||
filter:
|
||||
device_class: motion
|
||||
domain: binary_sensor
|
||||
motion_entity_up:
|
||||
name: Motion Sensor (Sensore Alto)
|
||||
description: Sensore parte alta della scala
|
||||
selector:
|
||||
entity:
|
||||
filter:
|
||||
device_class: motion
|
||||
domain: binary_sensor
|
||||
light_target:
|
||||
name: Light
|
||||
selector:
|
||||
target:
|
||||
entity:
|
||||
domain: light
|
||||
sun_condition:
|
||||
name: Sun_driven
|
||||
description: Controlled by sunrise and sunset
|
||||
default: on
|
||||
selector:
|
||||
boolean:
|
||||
dont_disturb_condition:
|
||||
name: dont_disturb_light_control
|
||||
description: Controls if lamp brightness has to be reduced to not disturb
|
||||
default: on
|
||||
selector:
|
||||
boolean:
|
||||
no_motion_wait:
|
||||
name: Wait time
|
||||
description: Time to leave the light on after last motion is detected.
|
||||
default: 30
|
||||
selector:
|
||||
number:
|
||||
min: 10
|
||||
max: 120
|
||||
unit_of_measurement: seconds
|
||||
|
||||
trigger_variables:
|
||||
use_sun: !input sun_condition
|
||||
|
||||
triggers:
|
||||
- trigger: state
|
||||
entity_id:
|
||||
- !input motion_entity_up
|
||||
- !input motion_entity_down
|
||||
to: "on"
|
||||
id: motion-detected
|
||||
- trigger: state
|
||||
entity_id:
|
||||
- !input motion_entity_up
|
||||
- !input motion_entity_down
|
||||
to: "off"
|
||||
for:
|
||||
hours: 0
|
||||
minutes: 0
|
||||
seconds: !input no_motion_wait
|
||||
|
||||
conditions: []
|
||||
|
||||
actions:
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: template
|
||||
value_template: "{{ use_sun }}"
|
||||
sequence:
|
||||
# we need to use either external luminescence or sunrise and sunset conditions
|
||||
- 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:
|
||||
- condition: trigger
|
||||
id:
|
||||
- motion-detected
|
||||
then:
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: "{{ dont_disturb_condition }}"
|
||||
then:
|
||||
- action: light.turn_on
|
||||
target: !input light_target
|
||||
data:
|
||||
brightness_pct: states('input_number.dont_disturb_light_brightness')
|
||||
color_temp_kelvin: 2500
|
||||
else:
|
||||
- action: light.turn_on
|
||||
target: !input light_target
|
||||
data:
|
||||
brightness_pct: 100
|
||||
color_temp_kelvin: 2500
|
||||
else:
|
||||
- action: light.turn_off
|
||||
metadata: {}
|
||||
data:
|
||||
transition: 10
|
||||
target: !input light_target
|
||||
default:
|
||||
# the motion light is always active
|
||||
- if:
|
||||
- condition: trigger
|
||||
id:
|
||||
- motion-detected
|
||||
then:
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: "{{ dont_disturb_condition }}"
|
||||
then:
|
||||
- action: light.turn_on
|
||||
target: !input light_target
|
||||
data:
|
||||
brightness_pct: states('input_number.dont_disturb_light_brightness')
|
||||
color_temp_kelvin: 2500
|
||||
else:
|
||||
- action: light.turn_on
|
||||
target: !input light_target
|
||||
data:
|
||||
brightness_pct: 100
|
||||
color_temp_kelvin: 2500
|
||||
else:
|
||||
- action: light.turn_off
|
||||
metadata: {}
|
||||
data:
|
||||
transition: 10
|
||||
target: !input light_target
|
||||
|
||||
mode: single
|
||||
@@ -1,164 +0,0 @@
|
||||
blueprint:
|
||||
name: Tris Sensor Sunset and Luminescence Motion-activated Light
|
||||
description: Turn on a light when motion is detected (with Sunrise / Sunset / Luminance).
|
||||
domain: automation
|
||||
# source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/motion_light.yaml
|
||||
author: Tiziano Trabattoni
|
||||
input:
|
||||
motion_entity_uno:
|
||||
name: Motion Sensor (Sensore Uno)
|
||||
description: Sensore Uno
|
||||
selector:
|
||||
entity:
|
||||
filter:
|
||||
device_class: motion
|
||||
domain: binary_sensor
|
||||
motion_entity_due:
|
||||
name: Motion Sensor (Sensore Due)
|
||||
description: Sensore Due
|
||||
selector:
|
||||
entity:
|
||||
filter:
|
||||
device_class: motion
|
||||
domain: binary_sensor
|
||||
motion_entity_tre:
|
||||
name: Motion Sensor (Sensore Tre)
|
||||
description: Sensore tre
|
||||
selector:
|
||||
entity:
|
||||
filter:
|
||||
device_class: motion
|
||||
domain: binary_sensor
|
||||
light_target:
|
||||
name: Light
|
||||
selector:
|
||||
target:
|
||||
entity:
|
||||
domain: light
|
||||
sun_condition:
|
||||
name: Sun_driven
|
||||
description: Controlled by sunrise and sunset
|
||||
default: on
|
||||
selector:
|
||||
boolean:
|
||||
|
||||
dont_disturb_condition:
|
||||
name: dont_disturb_light_control
|
||||
description: Controls if lamp brightness has to be reduced to not disturb
|
||||
default: on
|
||||
selector:
|
||||
boolean:
|
||||
|
||||
no_motion_wait:
|
||||
name: Wait time
|
||||
description: Time to leave the light on after last motion is detected.
|
||||
default: 30
|
||||
selector:
|
||||
number:
|
||||
min: 10
|
||||
max: 120
|
||||
unit_of_measurement: seconds
|
||||
|
||||
trigger_variables:
|
||||
use_sun: !input sun_condition
|
||||
# use_dont_disturb: !input dont_disturb_nighttime
|
||||
|
||||
triggers:
|
||||
- trigger: state
|
||||
entity_id:
|
||||
- !input motion_entity_uno
|
||||
- !input motion_entity_due
|
||||
- !input motion_entity_tre
|
||||
to: "on"
|
||||
id: motion-detected
|
||||
- trigger: state
|
||||
entity_id:
|
||||
- !input motion_entity_uno
|
||||
- !input motion_entity_due
|
||||
- !input motion_entity_tre
|
||||
to: "off"
|
||||
for:
|
||||
hours: 0
|
||||
minutes: 0
|
||||
seconds: !input no_motion_wait
|
||||
id: motion-cleared
|
||||
|
||||
conditions: []
|
||||
|
||||
actions:
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: template
|
||||
value_template: "{{ use_sun }}"
|
||||
sequence:
|
||||
# we need to use either external luminescence or sunrise and sunset conditions
|
||||
- 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:
|
||||
- condition: trigger
|
||||
id:
|
||||
- motion-detected
|
||||
then:
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: "{{ dont_disturb_condition }}"
|
||||
then:
|
||||
- action: light.turn_on
|
||||
target: !input light_target
|
||||
data:
|
||||
brightness_pct: states('dont_disturb_light_brightness')
|
||||
color_temp_kelvin: 2500
|
||||
else:
|
||||
- action: light.turn_on
|
||||
target: !input light_target
|
||||
data:
|
||||
brightness_pct: 100
|
||||
color_temp_kelvin: 2500
|
||||
|
||||
else:
|
||||
- action: light.turn_off
|
||||
target: !input light_target
|
||||
metadata: {}
|
||||
data:
|
||||
transition: 10
|
||||
|
||||
default:
|
||||
# the motion light is always active
|
||||
- if:
|
||||
- condition: trigger
|
||||
id:
|
||||
- motion-detected
|
||||
then:
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: "{{ dont_disturb_condition }}"
|
||||
then:
|
||||
- action: light.turn_on
|
||||
target: !input light_target
|
||||
data:
|
||||
brightness_pct: states('dont_disturb_light_brightness')
|
||||
color_temp_kelvin: 2500
|
||||
else:
|
||||
- action: light.turn_on
|
||||
target: !input light_target
|
||||
data:
|
||||
brightness_pct: 100
|
||||
color_temp_kelvin: 2500
|
||||
|
||||
else:
|
||||
- action: light.turn_off
|
||||
target: !input light_target
|
||||
data:
|
||||
transition: 10
|
||||
|
||||
mode: single
|
||||
Reference in New Issue
Block a user