diff --git a/multi_press_action.yaml b/multi_press_action.yaml index 030910b..1cc2e14 100644 --- a/multi_press_action.yaml +++ b/multi_press_action.yaml @@ -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: