## Dynamically generated event configuration ## Do not edit manually - run generator script to update substitutions: nr_of_pages: '3' display_events: - double_click page 0 - triple_click page 0 - hold page 0 - double_click page 1 - triple_click page 1 - hold page 1 - double_click page 2 - triple_click page 2 - hold page 2 button_events: - click page 0 - double_click page 0 - triple_click page 0 - hold page 0 - click page 1 - double_click page 1 - triple_click page 1 - hold page 1 - click page 2 - double_click page 2 - triple_click page 2 - hold page 2 script: - id: trigger_with_feedback parameters: event_id: esphome::template_::TemplateEvent* event_msg: std::string led_id: light::LightState* r: float g: float b: float then: - lambda: event_id->trigger(event_msg); - if: condition: lambda: return led_id != nullptr; then: - lambda: |- auto call = led_id->make_call(); call.set_state(true); call.set_rgb(r, g, b); call.set_brightness(1.0); call.set_flash_length(200); // Returns to previous state automatically call.perform(); event: - platform: template name: DISPLAY Button Left id: display_btn_left_event device_class: button event_types: ${display_events} - platform: template name: DISPLAY Button Right id: display_btn_right_event device_class: button event_types: ${display_events} - platform: template name: BAR1 Button Left id: bar1_btn_left_event device_class: button event_types: ${button_events} - platform: template name: BAR1 Button Right id: bar1_btn_right_event device_class: button event_types: ${button_events} - platform: template name: BAR2 Button Left id: bar2_btn_left_event device_class: button event_types: ${button_events} - platform: template name: BAR2 Button Right id: bar2_btn_right_event device_class: button event_types: ${button_events} - platform: template name: BAR3 Button Left id: bar3_btn_left_event device_class: button event_types: ${button_events} - platform: template name: BAR3 Button Right id: bar3_btn_right_event device_class: button event_types: ${button_events} binary_sensor: - id: !extend 'main_display_btn_left' filters: - delayed_off: 10ms internal: true on_multi_click: - timing: - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: prev_page - timing: - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: display_btn_left_event event_msg: !lambda "return \"double_click page \" + std::to_string(id(actual_page));" led_id: !lambda "return nullptr;" r: 0.0 g: 0.0 b: 1.0 - timing: - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: display_btn_left_event event_msg: !lambda "return \"triple_click page \" + std::to_string(id(actual_page));" led_id: !lambda "return nullptr;" r: 1.0 g: 0.0 b: 1.0 - timing: - ON for at least 1s - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: display_btn_left_event event_msg: !lambda "return \"hold page \" + std::to_string(id(actual_page));" led_id: !lambda "return nullptr;" r: 1.0 g: 0.5 b: 0.0 - id: !extend 'main_display_btn_right' filters: - delayed_off: 10ms internal: true on_multi_click: - timing: - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: next_page - timing: - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: display_btn_right_event event_msg: !lambda "return \"double_click page \" + std::to_string(id(actual_page));" led_id: !lambda "return nullptr;" r: 0.0 g: 0.0 b: 1.0 - timing: - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: display_btn_right_event event_msg: !lambda "return \"triple_click page \" + std::to_string(id(actual_page));" led_id: !lambda "return nullptr;" r: 1.0 g: 0.0 b: 1.0 - timing: - ON for at least 1s - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: display_btn_right_event event_msg: !lambda "return \"hold page \" + std::to_string(id(actual_page));" led_id: !lambda "return nullptr;" r: 1.0 g: 0.5 b: 0.0 - id: !extend 'bar1_btn_left' filters: - delayed_off: 10ms internal: true on_multi_click: - timing: - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar1_btn_left_event event_msg: !lambda "return \"click page \" + std::to_string(id(actual_page));" led_id: bar1_left_rgb_front r: 0.0 g: 1.0 b: 0.0 - timing: - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar1_btn_left_event event_msg: !lambda "return \"double_click page \" + std::to_string(id(actual_page));" led_id: bar1_left_rgb_front r: 0.0 g: 0.0 b: 1.0 - timing: - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar1_btn_left_event event_msg: !lambda "return \"triple_click page \" + std::to_string(id(actual_page));" led_id: bar1_left_rgb_front r: 1.0 g: 0.0 b: 1.0 - timing: - ON for at least 1s - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar1_btn_left_event event_msg: !lambda "return \"hold page \" + std::to_string(id(actual_page));" led_id: bar1_left_rgb_front r: 1.0 g: 0.5 b: 0.0 - id: !extend 'bar1_btn_right' filters: - delayed_off: 10ms internal: true on_multi_click: - timing: - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar1_btn_right_event event_msg: !lambda "return \"click page \" + std::to_string(id(actual_page));" led_id: bar1_right_rgb_front r: 0.0 g: 1.0 b: 0.0 - timing: - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar1_btn_right_event event_msg: !lambda "return \"double_click page \" + std::to_string(id(actual_page));" led_id: bar1_right_rgb_front r: 0.0 g: 0.0 b: 1.0 - timing: - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar1_btn_right_event event_msg: !lambda "return \"triple_click page \" + std::to_string(id(actual_page));" led_id: bar1_right_rgb_front r: 1.0 g: 0.0 b: 1.0 - timing: - ON for at least 1s - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar1_btn_right_event event_msg: !lambda "return \"hold page \" + std::to_string(id(actual_page));" led_id: bar1_right_rgb_front r: 1.0 g: 0.5 b: 0.0 - id: !extend 'bar2_btn_left' filters: - delayed_off: 10ms internal: true on_multi_click: - timing: - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar2_btn_left_event event_msg: !lambda "return \"click page \" + std::to_string(id(actual_page));" led_id: bar2_left_rgb_front r: 0.0 g: 1.0 b: 0.0 - timing: - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar2_btn_left_event event_msg: !lambda "return \"double_click page \" + std::to_string(id(actual_page));" led_id: bar2_left_rgb_front r: 0.0 g: 0.0 b: 1.0 - timing: - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar2_btn_left_event event_msg: !lambda "return \"triple_click page \" + std::to_string(id(actual_page));" led_id: bar2_left_rgb_front r: 1.0 g: 0.0 b: 1.0 - timing: - ON for at least 1s - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar2_btn_left_event event_msg: !lambda "return \"hold page \" + std::to_string(id(actual_page));" led_id: bar2_left_rgb_front r: 1.0 g: 0.5 b: 0.0 - id: !extend 'bar2_btn_right' filters: - delayed_off: 10ms internal: true on_multi_click: - timing: - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar2_btn_right_event event_msg: !lambda "return \"click page \" + std::to_string(id(actual_page));" led_id: bar2_right_rgb_front r: 0.0 g: 1.0 b: 0.0 - timing: - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar2_btn_right_event event_msg: !lambda "return \"double_click page \" + std::to_string(id(actual_page));" led_id: bar2_right_rgb_front r: 0.0 g: 0.0 b: 1.0 - timing: - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar2_btn_right_event event_msg: !lambda "return \"triple_click page \" + std::to_string(id(actual_page));" led_id: bar2_right_rgb_front r: 1.0 g: 0.0 b: 1.0 - timing: - ON for at least 1s - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar2_btn_right_event event_msg: !lambda "return \"hold page \" + std::to_string(id(actual_page));" led_id: bar2_right_rgb_front r: 1.0 g: 0.5 b: 0.0 - id: !extend 'bar3_btn_left' filters: - delayed_off: 10ms internal: true on_multi_click: - timing: - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar3_btn_left_event event_msg: !lambda "return \"click page \" + std::to_string(id(actual_page));" led_id: bar3_left_rgb_front r: 0.0 g: 1.0 b: 0.0 - timing: - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar3_btn_left_event event_msg: !lambda "return \"double_click page \" + std::to_string(id(actual_page));" led_id: bar3_left_rgb_front r: 0.0 g: 0.0 b: 1.0 - timing: - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar3_btn_left_event event_msg: !lambda "return \"triple_click page \" + std::to_string(id(actual_page));" led_id: bar3_left_rgb_front r: 1.0 g: 0.0 b: 1.0 - timing: - ON for at least 1s - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar3_btn_left_event event_msg: !lambda "return \"hold page \" + std::to_string(id(actual_page));" led_id: bar3_left_rgb_front r: 1.0 g: 0.5 b: 0.0 - id: !extend 'bar3_btn_right' filters: - delayed_off: 10ms internal: true on_multi_click: - timing: - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar3_btn_right_event event_msg: !lambda "return \"click page \" + std::to_string(id(actual_page));" led_id: bar3_right_rgb_front r: 0.0 g: 1.0 b: 0.0 - timing: - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar3_btn_right_event event_msg: !lambda "return \"double_click page \" + std::to_string(id(actual_page));" led_id: bar3_right_rgb_front r: 0.0 g: 0.0 b: 1.0 - timing: - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at most 0.2s - ON for at most 300ms - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar3_btn_right_event event_msg: !lambda "return \"triple_click page \" + std::to_string(id(actual_page));" led_id: bar3_right_rgb_front r: 1.0 g: 0.0 b: 1.0 - timing: - ON for at least 1s - OFF for at least 0.2s then: - script.execute: id: trigger_with_feedback event_id: bar3_btn_right_event event_msg: !lambda "return \"hold page \" + std::to_string(id(actual_page));" led_id: bar3_right_rgb_front r: 1.0 g: 0.5 b: 0.0