Seperate events out to own yaml file
This commit is contained in:
+2
-205
@@ -37,10 +37,9 @@ packages:
|
||||
files:
|
||||
path: 'package/3bar_1display.yaml'
|
||||
vars:
|
||||
nr_of_pages: '1'
|
||||
page_names: '{"Start"}'
|
||||
nr_of_pages: '2'
|
||||
page_names: '{"Start","Page 2"}'
|
||||
ref: main
|
||||
|
||||
|
||||
font:
|
||||
- file: "https://github.com/web-fonts/ttf/raw/refs/heads/master/bpg-ingiri-arial-webfont.ttf"
|
||||
@@ -98,208 +97,6 @@ color:
|
||||
- id: grey
|
||||
hex: A6A6A6
|
||||
|
||||
event:
|
||||
- platform: template
|
||||
name: BAR1 button Left event
|
||||
id: bar1_btn_left_event
|
||||
event_types:
|
||||
- "press page 0"
|
||||
- "release page 0"
|
||||
- "long press page 0"
|
||||
- platform: template
|
||||
name: BAR1 button Right event
|
||||
id: bar1_btn_right_event
|
||||
event_types:
|
||||
- "press page 0"
|
||||
- "release page 0"
|
||||
- "long press page 0"
|
||||
- platform: template
|
||||
name: BAR2 button Left event
|
||||
id: bar2_btn_left_event
|
||||
event_types:
|
||||
- "press page 0"
|
||||
- "release page 0"
|
||||
- "long press page 0"
|
||||
- platform: template
|
||||
name: BAR2 button Right event
|
||||
id: bar2_btn_right_event
|
||||
event_types:
|
||||
- "press page 0"
|
||||
- "release page 0"
|
||||
- "long press page 0"
|
||||
- platform: template
|
||||
name: BAR3 button Left event
|
||||
id: bar3_btn_left_event
|
||||
event_types:
|
||||
- "press page 0"
|
||||
- "release page 0"
|
||||
- "long press page 0"
|
||||
- platform: template
|
||||
name: BAR3 button Right event
|
||||
id: bar3_btn_right_event
|
||||
event_types:
|
||||
- "press page 0"
|
||||
- "release page 0"
|
||||
- "long press page 0"
|
||||
|
||||
binary_sensor:
|
||||
- id: !extend main_display_btn_left
|
||||
on_click:
|
||||
- script.execute: prev_page
|
||||
- id: !extend main_display_btn_right
|
||||
on_click:
|
||||
- script.execute: next_page
|
||||
- id: !extend bar1_btn_left
|
||||
on_click:
|
||||
lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar1_btn_left_event).trigger("press page 0");
|
||||
break;
|
||||
}
|
||||
on_release:
|
||||
lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar1_btn_left_event).trigger("release page 0");
|
||||
break;
|
||||
}
|
||||
on_multi_click:
|
||||
- timing:
|
||||
- ON for at least 2s
|
||||
then:
|
||||
- lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar1_btn_left_event).trigger("long press page 0");
|
||||
break;
|
||||
}
|
||||
- id: !extend bar1_btn_right
|
||||
on_click:
|
||||
lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar1_btn_right_event).trigger("press page 0");
|
||||
break;
|
||||
}
|
||||
on_release:
|
||||
lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar1_btn_right_event).trigger("release page 0");
|
||||
break;
|
||||
}
|
||||
on_multi_click:
|
||||
- timing:
|
||||
- ON for at least 2s
|
||||
then:
|
||||
- lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar1_btn_right_event).trigger("long press page 0");
|
||||
break;
|
||||
}
|
||||
- id: !extend bar2_btn_left
|
||||
on_click:
|
||||
lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar2_btn_left_event).trigger("press page 0");
|
||||
break;
|
||||
}
|
||||
on_release:
|
||||
lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar2_btn_left_event).trigger("release page 0");
|
||||
break;
|
||||
}
|
||||
on_multi_click:
|
||||
- timing:
|
||||
- ON for at least 2s
|
||||
then:
|
||||
- lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar2_btn_left_event).trigger("long press page 0");
|
||||
break;
|
||||
}
|
||||
- id: !extend bar2_btn_right
|
||||
on_click:
|
||||
lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar2_btn_right_event).trigger("press page 0");
|
||||
break;
|
||||
}
|
||||
on_release:
|
||||
lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar2_btn_right_event).trigger("release page 0");
|
||||
break;
|
||||
}
|
||||
on_multi_click:
|
||||
- timing:
|
||||
- ON for at least 2s
|
||||
then:
|
||||
- lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar2_btn_right_event).trigger("long press page 0");
|
||||
break;
|
||||
}
|
||||
- id: !extend bar3_btn_left
|
||||
on_click:
|
||||
lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar3_btn_left_event).trigger("press page 0");
|
||||
break;
|
||||
}
|
||||
on_release:
|
||||
lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar3_btn_left_event).trigger("release page 0");
|
||||
break;
|
||||
}
|
||||
on_multi_click:
|
||||
- timing:
|
||||
- ON for at least 2s
|
||||
then:
|
||||
- lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar3_btn_left_event).trigger("long press page 0");
|
||||
break;
|
||||
}
|
||||
- id: !extend bar3_btn_right
|
||||
on_click:
|
||||
lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar3_btn_right_event).trigger("press page 0");
|
||||
break;
|
||||
}
|
||||
on_release:
|
||||
lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar3_btn_right_event).trigger("release page 0");
|
||||
break;
|
||||
}
|
||||
on_multi_click:
|
||||
- timing:
|
||||
- ON for at least 2s
|
||||
then:
|
||||
lambda: |-
|
||||
switch (id(actual_page)){
|
||||
case 0:
|
||||
id(bar3_btn_right_event).trigger("long press page 0");
|
||||
break;
|
||||
}
|
||||
|
||||
display:
|
||||
#########
|
||||
# MAIN ##
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
packages:
|
||||
base: !include base.yaml
|
||||
scripts: !include 3bar_1display_scripts.yaml
|
||||
events: !include 3bar_1display_events.yaml
|
||||
|
||||
esphome:
|
||||
on_boot:
|
||||
|
||||
@@ -0,0 +1,358 @@
|
||||
## Dynamically generated on xx-xx-xxxx
|
||||
## Run python script again to update
|
||||
|
||||
substitutions:
|
||||
nr_of_pages: 2
|
||||
|
||||
# Dynamically generated list
|
||||
display_events:
|
||||
- "double_click page 0"
|
||||
- "triple_click page 0"
|
||||
- "hold page 0"
|
||||
- "double_click page 1"
|
||||
- "triple_click page 1"
|
||||
- "hold page 1"
|
||||
|
||||
# Dynamically generated list
|
||||
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"
|
||||
|
||||
event:
|
||||
- platform: template
|
||||
name: DISPLAY Button Left event
|
||||
id: display_btn_left_event
|
||||
device_class: button
|
||||
event_types: ${display_events}
|
||||
- platform: template
|
||||
name: DISPLAY Button Right event
|
||||
id: display_btn_right_event
|
||||
device_class: button
|
||||
event_types: ${display_events}
|
||||
- platform: template
|
||||
name: BAR1 Button Left event
|
||||
id: bar1_btn_left_event
|
||||
device_class: button
|
||||
event_types: ${button_events}
|
||||
- platform: template
|
||||
name: BAR1 Button Right event
|
||||
id: bar1_btn_right_event
|
||||
device_class: button
|
||||
event_types: ${button_events}
|
||||
- platform: template
|
||||
name: BAR2 Button Left event
|
||||
id: bar2_btn_left_event
|
||||
device_class: button
|
||||
event_types: ${button_events}
|
||||
- platform: template
|
||||
name: BAR2 Button Right event
|
||||
id: bar2_btn_right_event
|
||||
device_class: button
|
||||
event_types: ${button_events}
|
||||
- platform: template
|
||||
name: BAR3 Button Left event
|
||||
id: bar3_btn_left_event
|
||||
device_class: button
|
||||
event_types: ${button_events}
|
||||
- platform: template
|
||||
name: BAR3 Button Right event
|
||||
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.5s
|
||||
then:
|
||||
- script.execute: prev_page
|
||||
- timing:
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at least 0.2s
|
||||
then:
|
||||
lambda: |-
|
||||
id(display_btn_left_event).trigger("double_click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at least 0.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(display_btn_left_event).trigger("triple_click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for 1s to 5s
|
||||
- OFF for at least 0.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(display_btn_left_event).trigger("hold page " + std::to_string(id(actual_page)));
|
||||
|
||||
- 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.5s
|
||||
then:
|
||||
- script.execute: next_page
|
||||
- timing:
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at least 0.2s
|
||||
then:
|
||||
lambda: |-
|
||||
id(display_btn_right_event).trigger("double_click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at least 0.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(display_btn_right_event).trigger("triple_click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for 1s to 5s
|
||||
- OFF for at least 0.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(display_btn_right_event).trigger("hold page " + std::to_string(id(actual_page)));
|
||||
|
||||
- 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.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar1_btn_left_event).trigger("click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at least 0.2s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar1_btn_left_event).trigger("double_click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at least 0.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar1_btn_left_event).trigger("triple_click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for 1s to 5s
|
||||
- OFF for at least 0.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar1_btn_left_event).trigger("hold page " + std::to_string(id(actual_page)));
|
||||
|
||||
|
||||
- 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.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar1_btn_right_event).trigger("click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at least 0.2s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar1_btn_right_event).trigger("double_click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at least 0.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar1_btn_right_event).trigger("triple_click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for 1s to 5s
|
||||
- OFF for at least 0.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar1_btn_right_event).trigger("hold page " + std::to_string(id(actual_page)));
|
||||
|
||||
|
||||
- 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.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar2_btn_left_event).trigger("click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at least 0.2s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar2_btn_left_event).trigger("double_click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at least 0.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar2_btn_left_event).trigger("triple_click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for 1s to 5s
|
||||
- OFF for at least 0.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar2_btn_left_event).trigger("hold page " + std::to_string(id(actual_page)));
|
||||
|
||||
- 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.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar2_btn_right_event).trigger("click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at least 0.2s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar2_btn_right_event).trigger("double_click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at least 0.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar2_btn_right_event).trigger("triple_click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for 1s to 5s
|
||||
- OFF for at least 0.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar2_btn_right_event).trigger("hold page " + std::to_string(id(actual_page)));
|
||||
|
||||
|
||||
- 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.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar3_btn_left_event).trigger("click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at least 0.2s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar3_btn_left_event).trigger("double_click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at least 0.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar3_btn_left_event).trigger("triple_click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for 1s to 5s
|
||||
- OFF for at least 0.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar3_btn_left_event).trigger("hold page " + std::to_string(id(actual_page)));
|
||||
|
||||
|
||||
- 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.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar3_btn_right_event).trigger("click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at least 0.2s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar3_btn_right_event).trigger("double_click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at most 0.5s
|
||||
- ON for at most 300ms
|
||||
- OFF for at least 0.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar3_btn_right_event).trigger("triple_click page " + std::to_string(id(actual_page)));
|
||||
- timing:
|
||||
- ON for 1s to 5s
|
||||
- OFF for at least 0.5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(bar3_btn_right_event).trigger("hold page " + std::to_string(id(actual_page)));
|
||||
+3
-2
@@ -37,8 +37,8 @@ spi:
|
||||
mosi_pin: GPIO5
|
||||
|
||||
substitutions:
|
||||
nr_of_pages: '"1"'
|
||||
page_names: '{"Page 1"}'
|
||||
nr_of_pages: '"2"'
|
||||
page_names: '{"Page 1", "Page 2"}'
|
||||
|
||||
globals:
|
||||
- id: nr_of_pages
|
||||
@@ -117,6 +117,7 @@ sensor:
|
||||
icon: "mdi:order-numeric-ascending"
|
||||
id: active_page_id_ha
|
||||
update_interval: never
|
||||
accuracy_decimals: 0
|
||||
|
||||
text_sensor:
|
||||
- platform: template
|
||||
|
||||
Reference in New Issue
Block a user