From c14f9b4929cec0303263821ee6d011945480a7bd Mon Sep 17 00:00:00 2001 From: thomas Date: Fri, 29 Aug 2025 14:46:53 +0000 Subject: [PATCH] blueprints/automation/motion-light.yaml aktualisiert --- blueprints/automation/motion-light.yaml | 71 ++++++++++++------------- 1 file changed, 33 insertions(+), 38 deletions(-) diff --git a/blueprints/automation/motion-light.yaml b/blueprints/automation/motion-light.yaml index 25ae2df..a723145 100644 --- a/blueprints/automation/motion-light.yaml +++ b/blueprints/automation/motion-light.yaml @@ -1,6 +1,6 @@ blueprint: - name: Smart Motion Light with Optional Lux Trigger and Time-Based Dimming - description: Turns on a light when motion is detected or when lux drops below a threshold (if sensor is defined), dims based on time, and turns off when no motion. + name: Smart Motion Light with Optional Lux and Global No-Motion Timer + description: Turns on a light when motion is detected, optionally based on lux sensor, dims based on time of day, and turns off using a global no-motion timer. domain: automation input: motion_entity: @@ -33,52 +33,47 @@ blueprint: min: 0 max: 1000 unit_of_measurement: lx - no_motion_wait: - name: Wait Time After Motion Stops - default: 120 + no_motion_timer: + name: Global No-Motion Timer + description: An input_number entity representing the delay in seconds after motion stops before turning off the light. selector: - number: - min: 0 - max: 3600 - unit_of_measurement: seconds + entity: + domain: input_number mode: restart max_exceeded: silent trigger: - # Motion trigger - platform: state - entity_id: !input motion_entity + entity_id: !input.motion_entity from: "off" to: "on" - - # Optional lux trigger - - platform: template - value_template: > - {% if lux_entity %} - {{ states(lux_entity) | float(0) < lux_threshold and - (states(motion_entity) == 'on' or - (as_timestamp(now()) - as_timestamp(states(motion_entity))) < 300) }} - {% else %} - false - {% endif %} condition: [] action: - - alias: "Turn on the light with calculated brightness" - service: light.turn_on - target: !input.light_target - data: - brightness: "{{ brightness }}" - - alias: "Wait until motion stops" - wait_for_trigger: - - platform: state - entity_id: !input.motion_entity - from: "on" - to: "off" - - alias: "Wait the configured delay" - delay: !input.no_motion_wait - - alias: "Turn off the light" - service: light.turn_off - target: !input.light_target + - alias: "Check lux (if defined) before turning on" + choose: + - conditions: + - condition: template + value_template: > + {% if lux_entity %} + {{ states(lux_entity) | float(0) < lux_threshold }} + {% else %} + true + {% endif %} + sequence: + - service: light.turn_on + target: !input.light_target + data: + brightness: "{{ brightness }}" + - alias: "Wait until motion stops" + wait_for_trigger: + - platform: state + entity_id: !input.motion_entity + from: "on" + to: "off" + - delay: + seconds: "{{ states('!input.no_motion_timer') | int }}" + - service: light.turn_off + target: !input.light_target