Nspanel event (#689)
* upd: hmi2txt export * upd: sync latest dev * upd: currentpage * upd: lightsettings * upd: coversettings * upd: touchevent * Fix error preventing long click on button pages * upd: climate * upd: lastclick w.o. blueprint * Upd: Long_press - Lights * Update: Everything else (#688) Still a bug with confirmation message and long press button. * Fix: Notifications * Fix: Button long press * Fix: Climate page * Fix: Indoor temp when no sensor defined * fix: open climate from homepage triggers mulitple --------- Co-authored-by: Edward Firmo <94725493+edwardtfn@users.noreply.github.com>
This commit is contained in:
@@ -111,6 +111,13 @@ uart:
|
||||
rx_pin: 17
|
||||
baud_rate: ${baud_rate}
|
||||
id: tf_uart
|
||||
# debug:
|
||||
# direction: BOTH
|
||||
# dummy_receiver: false
|
||||
# after:
|
||||
# delimiter: "\n"
|
||||
# sequence:
|
||||
# - lambda: UARTDebug::log_string(direction, bytes);
|
||||
|
||||
##### START - BUTTON CONFIGURATION #####
|
||||
button:
|
||||
@@ -150,7 +157,7 @@ api:
|
||||
# password: ${api_password}
|
||||
services:
|
||||
|
||||
##### SERVICE TO UPDATE THE HMI FILE #####
|
||||
##### SERVICE TO UPDATE THE HMI FILE ##############
|
||||
- service: upload_tft
|
||||
then:
|
||||
- switch.turn_off: nextion_init
|
||||
@@ -407,36 +414,6 @@ globals:
|
||||
restore_value: true
|
||||
initial_value: '0'
|
||||
|
||||
##### lastclick_general State #####
|
||||
- id: lastclick_general_global
|
||||
type: std::string
|
||||
restore_value: no
|
||||
initial_value: ''
|
||||
|
||||
##### lastclick_lightsettings State #####
|
||||
- id: lastclick_lightsettings_global
|
||||
type: std::string
|
||||
restore_value: no
|
||||
initial_value: ''
|
||||
|
||||
##### lastclick_coversettings State #####
|
||||
- id: lastclick_coversettings_global
|
||||
type: std::string
|
||||
restore_value: no
|
||||
initial_value: ''
|
||||
|
||||
##### lastclick_climatesettings State #####
|
||||
- id: lastclick_climatesettings_global
|
||||
type: std::string
|
||||
restore_value: no
|
||||
initial_value: ''
|
||||
|
||||
##### lastclick_currentpage State #####
|
||||
- id: currentpage_global
|
||||
type: std::string
|
||||
restore_value: no
|
||||
initial_value: ''
|
||||
|
||||
##### START - BINARY SENSOR CONFIGURATION #####
|
||||
binary_sensor:
|
||||
|
||||
@@ -659,140 +636,35 @@ text_sensor:
|
||||
name: ${device_name} Settings Entity
|
||||
id: settings_entity
|
||||
|
||||
##### last click sensor, the main action variable - push to HA #####
|
||||
##### NSPanel event sensor, the main action sensor - push to HA #####
|
||||
- platform: nextion
|
||||
nextion_id: disp1
|
||||
name: ${device_name} Last Click
|
||||
id: disp1_lastclick_general
|
||||
update_interval: 50ms
|
||||
component_name: lastclick
|
||||
name: ${device_name} NSPanel event
|
||||
id: disp1_nspanel_event
|
||||
component_name: nspanelevent
|
||||
internal: false
|
||||
filters:
|
||||
- lambda: |-
|
||||
if (strcmp(x.c_str(), id(lastclick_general_global).c_str()) != 0) {
|
||||
return x;
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
x = x.c_str();
|
||||
x.shrink_to_fit();
|
||||
return x;
|
||||
on_value:
|
||||
then:
|
||||
- globals.set:
|
||||
id: lastclick_general_global
|
||||
value: !lambda return x;
|
||||
- lambda: |-
|
||||
id(page_timer)->execute(int(id(page_timeout).state));
|
||||
|
||||
##### last click lightsettings page, the main action variable - push to HA #####
|
||||
- platform: nextion
|
||||
nextion_id: disp1
|
||||
name: ${device_name} last click lightsettings
|
||||
id: disp1_lastclick_lightsettings
|
||||
update_interval: 50ms
|
||||
component_name: lightsetting
|
||||
internal: false
|
||||
filters:
|
||||
- lambda: |-
|
||||
if (strcmp(x.c_str(), id(lastclick_lightsettings_global).c_str()) != 0) {
|
||||
return x;
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
on_value:
|
||||
then:
|
||||
- globals.set:
|
||||
id: lastclick_lightsettings_global
|
||||
value: !lambda return x;
|
||||
- lambda: |-
|
||||
id(page_timer)->execute(int(id(page_timeout).state));
|
||||
|
||||
##### last click coversettings page, the main action variable - push to HA #####
|
||||
- platform: nextion
|
||||
nextion_id: disp1
|
||||
name: ${device_name} last click coversettings
|
||||
id: disp1_lastclick_coversettings
|
||||
update_interval: 50ms
|
||||
component_name: coversetting
|
||||
internal: false
|
||||
filters:
|
||||
- lambda: |-
|
||||
if (strcmp(x.c_str(), id(lastclick_coversettings_global).c_str()) != 0) {
|
||||
return x;
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
on_value:
|
||||
then:
|
||||
- globals.set:
|
||||
id: lastclick_coversettings_global
|
||||
value: !lambda return x;
|
||||
- lambda: |-
|
||||
id(page_timer)->execute(int(id(page_timeout).state));
|
||||
|
||||
##### last click climate page, the main action variable - push to HA #####
|
||||
- platform: nextion
|
||||
nextion_id: disp1
|
||||
name: ${device_name} last click climatesettings
|
||||
id: disp1_lastclick_climatesettings
|
||||
update_interval: 50ms
|
||||
component_name: climatesetting
|
||||
internal: false
|
||||
filters:
|
||||
- lambda: |-
|
||||
if (strcmp(x.c_str(), id(lastclick_climatesettings_global).c_str()) != 0) {
|
||||
return x;
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
on_value:
|
||||
then:
|
||||
- globals.set:
|
||||
id: lastclick_climatesettings_global
|
||||
value: !lambda return x;
|
||||
- lambda: |-
|
||||
id(page_timer)->execute(int(id(page_timeout).state));
|
||||
|
||||
##### currentpage sensor, the main action variable - push to HA #####
|
||||
- platform: nextion
|
||||
nextion_id: disp1
|
||||
name: ${device_name} currentpage
|
||||
id: disp1_currentpage
|
||||
update_interval: 50ms
|
||||
component_name: currentpage
|
||||
internal: false
|
||||
filters:
|
||||
- lambda: |-
|
||||
if (strcmp(x.c_str(), id(currentpage_global).c_str()) != 0) {
|
||||
return x;
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
on_value:
|
||||
then:
|
||||
- globals.set:
|
||||
id: currentpage_global
|
||||
value: !lambda return x;
|
||||
- lambda: |-
|
||||
id(page_timer)->execute(int(id(page_timeout).state));
|
||||
|
||||
|
||||
##### touchevent sensor, Reset the page timeout #####
|
||||
- platform: nextion
|
||||
nextion_id: disp1
|
||||
#name: ${device_name} touchevent
|
||||
id: disp1_touchevent
|
||||
update_interval: 50ms
|
||||
component_name: touchevent
|
||||
internal: true
|
||||
filters:
|
||||
- lambda: |-
|
||||
static std::string touchevent_history = "";
|
||||
if (strcmp(x.c_str(), touchevent_history.c_str()) != 0) {
|
||||
touchevent_history = x;
|
||||
return x;
|
||||
// touchevent_history = "";
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
x = x.c_str();
|
||||
x.shrink_to_fit();
|
||||
return x;
|
||||
on_value:
|
||||
then:
|
||||
- lambda: |-
|
||||
@@ -1007,7 +879,10 @@ script:
|
||||
- lambda: ESP_LOGD("nspanel", "start page-timer delay %i", int(id(page_timeout).state));
|
||||
- delay: !lambda return delay *1000;
|
||||
- lambda: |-
|
||||
if (id(disp1_currentpage).state == "home" or id(disp1_currentpage).state == "screensaver" or id(disp1_currentpage).state == "boot" or int(id(page_timeout).state) == 0) {
|
||||
DynamicJsonDocument doc(1024);
|
||||
deserializeJson(doc, id(disp1_nspanel_event).state);
|
||||
std::string page = doc["page"];
|
||||
if (page == "home" or page == "screensaver" or page == "boot" or int(id(page_timeout).state) == 0) {
|
||||
ESP_LOGD("nspanel", "no page-jump");
|
||||
} else {
|
||||
ESP_LOGD("nspanel", "timer->home");
|
||||
|
||||
Reference in New Issue
Block a user