From 2faf02aa4d8481f00943564ca3c30ccc5da30a82 Mon Sep 17 00:00:00 2001 From: ttrabatt Date: Sun, 22 Mar 2026 15:20:23 +0100 Subject: [PATCH] New Motion Light PRO with Restart Mode --- .HA_VERSION | 2 +- .ha_run.lock | 2 +- automations.yaml | 213 ++++++++++++------ .../homeassistant/motion_light_pro_dual.yaml | 165 ++++++++++++++ .../motion_light_pro_single.yaml | 142 ++++++++++++ .../motion_light_pro_triple.yaml | 188 ++++++++++++++++ examples/motion_light_dual_lux.yaml | 148 ------------ .../motion_light_dual_ng.yaml | 0 examples/motion_light_tris_lux.yaml | 164 -------------- .../motion_light_trix_ng.yaml | 0 10 files changed, 647 insertions(+), 377 deletions(-) create mode 100644 blueprints/automation/homeassistant/motion_light_pro_dual.yaml create mode 100644 blueprints/automation/homeassistant/motion_light_pro_single.yaml create mode 100644 blueprints/automation/homeassistant/motion_light_pro_triple.yaml delete mode 100644 examples/motion_light_dual_lux.yaml rename {blueprints/automation/homeassistant => examples}/motion_light_dual_ng.yaml (100%) delete mode 100644 examples/motion_light_tris_lux.yaml rename {blueprints/automation/homeassistant => examples}/motion_light_trix_ng.yaml (100%) diff --git a/.HA_VERSION b/.HA_VERSION index 2f69e60..089c334 100644 --- a/.HA_VERSION +++ b/.HA_VERSION @@ -1 +1 @@ -2025.12.4 \ No newline at end of file +2026.3.3 \ No newline at end of file diff --git a/.ha_run.lock b/.ha_run.lock index 3cce9e6..87bb5ca 100644 --- a/.ha_run.lock +++ b/.ha_run.lock @@ -1 +1 @@ -{"pid": 66, "version": 1, "ha_version": "2025.12.4", "start_ts": 1770245525.0375628} \ No newline at end of file +{"pid": 65, "version": 1, "ha_version": "2026.3.3", "start_ts": 1774178078.8002532} \ No newline at end of file diff --git a/automations.yaml b/automations.yaml index 994f759..d8666f1 100644 --- a/automations.yaml +++ b/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 diff --git a/blueprints/automation/homeassistant/motion_light_pro_dual.yaml b/blueprints/automation/homeassistant/motion_light_pro_dual.yaml new file mode 100644 index 0000000..953de92 --- /dev/null +++ b/blueprints/automation/homeassistant/motion_light_pro_dual.yaml @@ -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 diff --git a/blueprints/automation/homeassistant/motion_light_pro_single.yaml b/blueprints/automation/homeassistant/motion_light_pro_single.yaml new file mode 100644 index 0000000..b2ac55c --- /dev/null +++ b/blueprints/automation/homeassistant/motion_light_pro_single.yaml @@ -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 diff --git a/blueprints/automation/homeassistant/motion_light_pro_triple.yaml b/blueprints/automation/homeassistant/motion_light_pro_triple.yaml new file mode 100644 index 0000000..61a827e --- /dev/null +++ b/blueprints/automation/homeassistant/motion_light_pro_triple.yaml @@ -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 diff --git a/examples/motion_light_dual_lux.yaml b/examples/motion_light_dual_lux.yaml deleted file mode 100644 index e86a1cd..0000000 --- a/examples/motion_light_dual_lux.yaml +++ /dev/null @@ -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 diff --git a/blueprints/automation/homeassistant/motion_light_dual_ng.yaml b/examples/motion_light_dual_ng.yaml similarity index 100% rename from blueprints/automation/homeassistant/motion_light_dual_ng.yaml rename to examples/motion_light_dual_ng.yaml diff --git a/examples/motion_light_tris_lux.yaml b/examples/motion_light_tris_lux.yaml deleted file mode 100644 index 50c8f0b..0000000 --- a/examples/motion_light_tris_lux.yaml +++ /dev/null @@ -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 diff --git a/blueprints/automation/homeassistant/motion_light_trix_ng.yaml b/examples/motion_light_trix_ng.yaml similarity index 100% rename from blueprints/automation/homeassistant/motion_light_trix_ng.yaml rename to examples/motion_light_trix_ng.yaml