New architecture attempt
This commit is contained in:
@@ -55,7 +55,7 @@ blueprint:
|
||||
selector:
|
||||
action: {}
|
||||
|
||||
mode: single
|
||||
mode: restart
|
||||
max_exceeded: silent
|
||||
|
||||
trigger:
|
||||
@@ -67,6 +67,8 @@ action:
|
||||
press_count: 1
|
||||
time_window: !input time_window
|
||||
immediate: !input immediate_single_press
|
||||
trigger_entity: !input trigger_entity
|
||||
initial_last_changed: "{{ states[trigger_entity].last_changed }}"
|
||||
|
||||
# Execute single press immediately if enabled
|
||||
- if:
|
||||
@@ -77,25 +79,24 @@ action:
|
||||
- conditions: []
|
||||
sequence: !input single_press_action
|
||||
|
||||
# Wait for additional presses
|
||||
# Wait for additional presses by monitoring last_changed
|
||||
- repeat:
|
||||
while:
|
||||
- condition: template
|
||||
value_template: "{{ press_count < 4 }}"
|
||||
sequence:
|
||||
- wait_for_trigger:
|
||||
- platform: state
|
||||
entity_id: !input trigger_entity
|
||||
- wait_template: "{{ states[trigger_entity].last_changed != initial_last_changed }}"
|
||||
timeout:
|
||||
seconds: "{{ time_window }}"
|
||||
continue_on_timeout: true
|
||||
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: "{{ wait.trigger is not none }}"
|
||||
value_template: "{{ not wait.completed }}"
|
||||
then:
|
||||
- variables:
|
||||
press_count: "{{ press_count + 1 }}"
|
||||
initial_last_changed: "{{ states[trigger_entity].last_changed }}"
|
||||
|
||||
# Execute action based on final press count
|
||||
- choose:
|
||||
|
||||
Reference in New Issue
Block a user