550 lines
14 KiB
YAML
550 lines
14 KiB
YAML
## Events for 3 pages
|
|
|
|
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
|