From 88a49b00e475c954d80e9e705c024f20d4dc06cc Mon Sep 17 00:00:00 2001 From: Edward Firmo <94725493+edwardtfn@users.noreply.github.com> Date: Tue, 19 Dec 2023 10:25:07 +0100 Subject: [PATCH] Use `back_page_id` on `screensaver` page Let's simplify things! --- advanced/esphome/nspanel_esphome_core.yaml | 44 ++++++++----------- advanced/hmi/nspanel_eu.HMI | Bin 15033379 -> 15033379 bytes advanced/hmi/nspanel_eu_code/screensaver.txt | 14 ++---- advanced/hmi/nspanel_us.HMI | Bin 14820802 -> 14820802 bytes advanced/hmi/nspanel_us_code/screensaver.txt | 14 ++---- 5 files changed, 27 insertions(+), 45 deletions(-) diff --git a/advanced/esphome/nspanel_esphome_core.yaml b/advanced/esphome/nspanel_esphome_core.yaml index 2b765cd..7f6d0a1 100644 --- a/advanced/esphome/nspanel_esphome_core.yaml +++ b/advanced/esphome/nspanel_esphome_core.yaml @@ -430,15 +430,6 @@ api: - lambda: |- static const char *const TAG = "service.open_entity_settings_page"; - auto pageIndex = [](const std::string& page_name) -> uint8_t { - for (uint8_t i = 0; i < id(page_names).size(); ++i) { - if (id(page_names)[i] == page_name) { - return i; // Return the index if found - } - } - return 0u; // Return 0 (home page) if not found - }; - detailed_entity->publish_state(entity); if (page == "alarm_control_panel") page = "alarm"; std::string cmd_page = std::string("page ") + page.c_str(); @@ -447,7 +438,7 @@ api: page_label = page_label.replace(page_label.find("\\r"), 2, " "); } disp1->set_component_text_printf("page_label", "%s", page_label.c_str()); - disp1->send_command_printf("back_page_id=%i", pageIndex(back_page.c_str())); + set_page_id->execute("back_page_id", back_page.c_str()); if (page == "climate") { if (entity == "embedded_climate") addon_climate_set_climate_friendly_name->execute(page_label.c_str()); @@ -2448,21 +2439,7 @@ script: mode: restart then: - lambda: |- - static const char *const TAG = "script.page_screensaver"; - - auto pageIndex = [](const std::string& page_name) -> uint8_t { - for (uint8_t i = 0; i < id(page_names).size(); ++i) { - if (id(page_names)[i] == page_name) { - return i; // Return the index if found - } - } - return 0u; // Return 0 (home page) if not found - }; - - if (current_page->state == "screensaver") { // Is screensaver page visible? - ESP_LOGV(TAG, "Update screensaver page"); - disp1->set_component_value("orign", pageIndex(wakeup_page_name->state)); - } + set_page_id->execute("back_page_id", wakeup_page_name->state.c_str()); - id: page_settings mode: restart @@ -2510,6 +2487,23 @@ script: id: page_weather page_number: 5 + - id: set_page_id + mode: queued + parameters: + variable: string + page: string + then: + - lambda: |- + auto pageIndex = [](const std::string& page_name) -> uint8_t { + for (uint8_t i = 0; i < id(page_names).size(); ++i) { + if (id(page_names)[i] == page_name) { + return i; // Return the index if found + } + } + return 0u; // Return 0 (home page) if not found + }; + disp1->send_command_printf("%s=%i", variable.c_str(), pageIndex(page.c_str())); + - id: exit_reparse mode: restart then: diff --git a/advanced/hmi/nspanel_eu.HMI b/advanced/hmi/nspanel_eu.HMI index a24cb6b791e78d9be3a96e83c8e29a43a47cbd92..26e250466e91eb2d4e3e0b7c993c599ad83fa296 100644 GIT binary patch delta 1416 zcmd_o*>4ST6u|M{Oz%}|B9dMY9=s}5Dv?raDQfMYcGcEWYU|Ze`=#2$weK~ky_VY5 z#i;exUTc+7YF{2iB0PB$-$6peA0Tm(Pv)G=Ig{U<{0gq;g%&`&U8H4b(NQfTy{YO~ z6i0Yfes$_k>26gkU;my{I?u$GUX`pXrCm-4?A0nlv`K4y?)vjoS%Pw0Wn>p4LAO#h zo0+Q8X?4Dwnm#!)zIS&gb>elDshl3|FLOJiO|`Vq&$&O2)-=Ub`)cs6bRfqw-N9Og zI(4ARomAIVSQ>XIH`e2i^=Qx$0vFt=^z~?Rys*%iIXnURk}&MbeA5|Q+i2n=_3hZ zNMGqE{UuQb$Uqq+gJp;em0>bml4OJ=ONyk*NEs!gWsIcBSQ#hjGF~RgM42R$CF8ia zIHFFl-p5SmZnxrMx~!NKvq^Y!(huBSCmMt(_4!AtYP*z5pmt(ds8ZFfqQtB=c14Q0 zT(`>oC1F--_Uw4;>?m`C)!dg8X}wsG)7aWS+6=Q_dVEou{Uyz;p<4}O%rGl^;`tK$ zK!lmB`vcKlOtAyenS;LAU(-ze_nsc%X3%YGD@>p6XA)D9g=v_M8JLM#n2kB`VJ_w& z8}pHaTnH9mA^cc`#aM!+Scc_Tft6T=)mVeIScg2UhlLH;h)u}HW^BP$Y{Pc!z)lok z7j|P0_M#B`upb9-5QlIWM{pEHIEDa@;{;B^#wirzG|u2G&fz>RAczuN#3fwD6@z(YJjB_87ms_+!g@EkAj60h(YZ}8S`81v56_#3e& B#L55w delta 1315 zcmd7Q>2FM76vy#%O>Y~!2t&df;YF*Bh8IfhOHupY+SO7^OQ%NdRn^1TU5c@9weQR@ zT3hY4wy1sIUU(r9ZwMj2!%g}xc#==<@3}em@f{MS3>+W~C_N8WM?MiWunN3_0%X`BV-(KUP!;suevsOK>B262)lI#}2 zM}=s&)Nf4bg>%w4_p@2c5T6;EQY|Fwy!A6D+v&-68Yl+`LSP~^knIf1`jl%qs;LTOq{M9M)&d#NE zL_&>!HP7mn)wiuz)~BF>$Q*}6{;g^nE>hn9piKnpYv=feB0ub=9iqK&cg<_CHLJXnOq zSc0WkhUHj+m9Vf1tC5Q}Sc`S=Vm&rsBQ{|(wqPr^VLNtUC-SfhyRip*u@C!k00(gh zhj9c)aSX?C0zUY05~mQrY2>2-XK)tha2^*>h>N&{%eaE8xQ6Q}!VTQSE!@T(+(j`; pa1ZzK0Ht_{M|g}Uc#3Cuju&`|S9py#c#C&Wa#e*h~b?pXi; diff --git a/advanced/hmi/nspanel_eu_code/screensaver.txt b/advanced/hmi/nspanel_eu_code/screensaver.txt index f5055b1..8c3a7a8 100644 --- a/advanced/hmi/nspanel_eu_code/screensaver.txt +++ b/advanced/hmi/nspanel_eu_code/screensaver.txt @@ -16,17 +16,11 @@ Page screensaver dim=0 Touch Release Event - page orign.val + page back_page_id -Variable (int32) orign - Attributes - ID : 2 - Scope: local - Value: 0 - Timer swipestore Attributes - ID : 4 + ID : 3 Scope : local Period (ms): 50 Enabled : no @@ -44,11 +38,11 @@ TouchCap wakeup Events Touch Press Event - page orign.val + page back_page_id TouchCap swipe Attributes - ID : 3 + ID : 2 Scope: local Value: 0 diff --git a/advanced/hmi/nspanel_us.HMI b/advanced/hmi/nspanel_us.HMI index 5762ab94113e8eb01986a15604a5c558899ea586..4459d989e31b7286ac634f4d14bc294043266d73 100644 GIT binary patch delta 1207 zcmd7Q*H2VY5WwMkci9CK2{DG;2V2&}2QeWRpJ<9$L0PaXV8f0At}a-x%LrId6!oI0 zU`ItoLD#-4Vg(fJ9Y}m23JE6o?hniVz$D)}GbfXiGs&s0&GoKEd8yhrH7PkQFv=dS z{ENr{hf-yssPj`RYSdg+RSN88EnMX+XlS4#>3<`;yTzdt`H*xBuquP%&3|&ru07$q zL+Ml%MRjvei8;o^J?$1vRVysk-o3n1^0U8X*|Z#+rosd>ykLRVWz)QyS_^c|Qt8vp zADN|VIXYA5OrbM{&J?^GR+p}MH?($#h6-K#<&q>PkNGFryS zSQ#f#5-sCpg2aejVkJ%{$|RXAQ)H@4lj$-;W=gyyNTSS=*)m7w$~;Mu`LaM3$|6}T zOJu1e%Q9ImDUvE_vZB)AZt?AC_qTWbhhYANmr>l$Ib^U-`oqLR^f4>S&%deC(@Rm} zsJkN3TTy(B#{7&hS7?7{p2^r-pY3mW>YJkso6T9+RR$Uno~i)DZ=loP)m)Ytq`K?{ z?j9z?FR0qz$hVYuT)u&hPBkaC&4HCz1t-#xfz?=pwOEHttj7jy#3pRU7Hq{fWI?bU z*~mdIc3>xVVK?%y2YZo^eb|oz9Kb;wf`LLD#t{_ZD30Mcicx|SIEhm@jWallb121m zT);(?;Sw(63d(U6*HD2RKbI4JU|T|;t?L>37+B^YEg%J mJjV+(pb;i9LMqJ>71v-9pmD;anpqx7v^y%B3X;dzOUIsc_>S^(1(+KImi-{E!pD4 zv3DFvgraPTbR{!2*71}ncsXrGrvepzAu8Z60@g~mY&%sF(t|9 zn1tT05w;A&M6lA#H_ePdipP#K*#FN~wEW8&4TXkVUuabQYP7O@b@k-_aE)4T$2&!y zrZWSu@bA0g>0c;|U^oib^~~6`rFSFYppIc!k$^ lgId(#E#9FX4S0_a_=r#Vj7EGx6Tadbn(;l9+SZaC`xoWH%ai~B diff --git a/advanced/hmi/nspanel_us_code/screensaver.txt b/advanced/hmi/nspanel_us_code/screensaver.txt index f5055b1..8c3a7a8 100644 --- a/advanced/hmi/nspanel_us_code/screensaver.txt +++ b/advanced/hmi/nspanel_us_code/screensaver.txt @@ -16,17 +16,11 @@ Page screensaver dim=0 Touch Release Event - page orign.val + page back_page_id -Variable (int32) orign - Attributes - ID : 2 - Scope: local - Value: 0 - Timer swipestore Attributes - ID : 4 + ID : 3 Scope : local Period (ms): 50 Enabled : no @@ -44,11 +38,11 @@ TouchCap wakeup Events Touch Press Event - page orign.val + page back_page_id TouchCap swipe Attributes - ID : 3 + ID : 2 Scope: local Value: 0