From 2d2b11f4fc79957e1994e90405324cb2d2b7bbab Mon Sep 17 00:00:00 2001 From: Edward Firmo <94725493+edwardtfn@users.noreply.github.com> Date: Thu, 29 Jun 2023 08:29:16 +0200 Subject: [PATCH] Limit light & cover to supported settings (#896) * Limit light to supported settings When showing light settings, only the supported features will be shown for each light. * Limit light to supported settings * Limit light to supported settings * Limit light to supported settings * Limit light to supported settings * Limit light to supported settings This partially solves #635 * Limits covers to supported settings Only show cover settings when `set_position` is supported. This solves #635 * Limits covers to supported settings --- ReleaseNotes.md | 13 ++- nspanel_blueprint.yaml | 170 +++++++++++++++++++++++++-------- nspanel_eu.HMI | Bin 21307134 -> 21307134 bytes nspanel_eu.tft | Bin 6259604 -> 6259684 bytes nspanel_eu_code/light.txt | 7 +- nspanel_us.HMI | Bin 21307134 -> 21307134 bytes nspanel_us.tft | Bin 7637196 -> 7637276 bytes nspanel_us_code/light.txt | 7 +- nspanel_us_land.HMI | Bin 21307134 -> 21307134 bytes nspanel_us_land.tft | Bin 6259620 -> 6259700 bytes nspanel_us_land_code/light.txt | 7 +- 11 files changed, 156 insertions(+), 48 deletions(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index bbf38ca..4f34794 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -36,7 +36,8 @@ Since in this update lots of input to the blueprint changed, we highly recommend 4. New language selector (#882) 5. Removed `settings_entity` (#887) 6. Support for US model on landscape mode (#890) -7. API status indication on the panel +7. API status indication on the panel ([#5ff5d35](https://github.com/Blackymas/NSPanel_HA_Blueprint/commit/5ff5d35833be1a1cf9ca0f570662456058980024)) +8. Light & cover settings pages will show only the supported features (#896)   ## Details of all changes @@ -70,12 +71,12 @@ Althougt this is not visible for users at the first view, it will enable the use The entity `sensor.xxxxx_settings_entity` was previously used by ESPHome to to transfer information about the selected entity on the settings page to the Blueprint, enabling the transfer of settings from different instances of the blueprint with the use of service `esphome.xxxxx_set_settings_entity`. This mechanism was a bit fragile and not user friendly. With this version the information about the entity shown will be part of the `sensor.xxxxx_nspanel_event` and the settings pages will be called with the service `esphome.xxxxx_open_entity_settings_page`. Apart of a cleaner device page, this change should be transparent for most users. If you have made automations based on the removed elements, please update it using the new service. - +  ### 6. Support for US model on landscape mode If you are using a panel model US in landscape mode, you can now use `nspanel_us_land.tft` where the bars related to the hardware buttons will be located at the right, closer to the respective buttons and fixing the offset on the touch screen when using `nspanel_eu.tft` into a US panel. => The hardware buttons labels are hidden in this format, as Nextion cannot support rotated text. - +  ### 7. API status indication on the panel Now the Wi-Fi icon in the panel (at the right side of the time) will show one of 3 possible states: @@ -84,7 +85,11 @@ Now the Wi-Fi icon in the panel (at the right side of the time) will show one of ![api-off_red](https://github.com/Blackymas/NSPanel_HA_Blueprint/assets/94725493/2486df3b-17ea-4c2c-a3c2-057c565a3173) The panel is connected to the Wi-Fi, but the API is not connected to Home Assistant (mdi:api-off) ![wifi-off_red](https://github.com/Blackymas/NSPanel_HA_Blueprint/assets/94725493/c8b15d1f-0950-42d7-84d1-fca8610543c0) The panel is **NOT** connected to the Wi-Fi (mdi:wifi-off) - +  +### 8. Light & cover settings pages will show only the supported features +Now when long press a button conneted to a light or a cover, the detailed light settings page will open only when the entity supports advanced control, and the detailed page will only show the controls supported by that entity. + +  ## Next topics we are currently working on See here: https://github.com/Blackymas/NSPanel_HA_Blueprint/labels/roadmap diff --git a/nspanel_blueprint.yaml b/nspanel_blueprint.yaml index 099a6cc..6148182 100644 --- a/nspanel_blueprint.yaml +++ b/nspanel_blueprint.yaml @@ -5341,6 +5341,19 @@ variables: ##### ENTITIES ##### entitypages_enabled: !input 'entitypages_enabled' + enum: + color_mode: # Possible light color modes. - https://github.com/home-assistant/core/blob/dev/homeassistant/components/light/__init__.py + unknown: "[]" + onoff: "[]" + brightness: "[]" + color_temp: "[]" + hs: "[]" + xy: "[]" + rgb: "[]" + rgbw: "[]" + rgbww: "[]" + white: "[]" + ############################################################# ##### CLOSE - Variables ##### ############################################################# @@ -7085,6 +7098,24 @@ action: - alias: Light settings page conditions: '{{ nspanel_event.page == page.light }}' sequence: &refresh_page_light + - variables: + supported_color_modes: '{{ state_attr(nspanel_event.entity, "supported_color_modes") | default("unknown") }}' + color_mode_color: > + {{ + "hs" in supported_color_modes + or "xy" in supported_color_modes + or "rgb" in supported_color_modes + or "rgbw" in supported_color_modes + or "rgbww" in supported_color_modes + }} + color_mode_color_temp: '{{ "color_temp" in supported_color_modes }}' + #color_mode_brightness: > + # {{ + # "brightness" in supported_color_modes + # or "white" in supported_color_modes + # or color_mode_color + # or color_mode_color_temp + # }} ##### LIGHT State ##### - variables: curr_brightness: '{{ (state_attr(nspanel_event.entity, "brightness") | int(0) * 100 / 255) | round(0) }}' @@ -7108,27 +7139,77 @@ action: continue_on_error: true ##### LIGHT Check Color_Temp Value is available when yes send some current Values ##### - - variables: - curr_color_temp: '{{ state_attr(nspanel_event.entity, "color_temp") }}' - - condition: '{{ is_number(curr_color_temp) }}' - - *delay-default - - service: '{{ nextion.command.text_printf }}' - data: - component: light.temp_value - message: '{{ curr_color_temp | round(0) }}' - continue_on_error: true - - *delay-default - - service: '{{ nextion.command.text_printf }}' - data: - component: light.temp_value_2 - message: '{{ curr_color_temp | round(0) }}' - continue_on_error: true - - *delay-default - - service: '{{ nextion.command.value }}' - data: - component: light.tempslider - message: '{{ curr_color_temp | round(0) }}' - continue_on_error: true + - if: '{{ color_mode_color_temp }}' + then: + - variables: + curr_color_temp: '{{ state_attr(nspanel_event.entity, "color_temp") | int(-1) }}' + min_mireds: '{{ state_attr(nspanel_event.entity, "min_mireds") | int(153) }}' + max_mireds: '{{ state_attr(nspanel_event.entity, "max_mireds") | int(500) }}' + - variables: + curr_color_temp: > + {{ + curr_color_temp + if curr_color_temp >= min_mireds and curr_color_temp <= max_mireds + else ((min_mireds+max_mireds)/2) | int(327) + }} + - condition: '{{ is_number(curr_color_temp) }}' + - *delay-default + - service: '{{ nextion.command.text_printf }}' + data: + component: light.temp_value + message: '{{ curr_color_temp }}' + continue_on_error: true + - *delay-default + - service: '{{ nextion.command.text_printf }}' + data: + component: light.temp_value_2 + message: '{{ curr_color_temp }}' + continue_on_error: true + - *delay-default + - service: '{{ nextion.command.value }}' + data: + component: light.tempslider + message: '{{ curr_color_temp }}' + continue_on_error: true + - *delay-default + - service: '{{ nextion.command.printf }}' + data: + cmd: tempslider.minval={{ min_mireds }} + continue_on_error: true + - *delay-default + - service: '{{ nextion.command.printf }}' + data: + cmd: tempslider.maxval={{ max_mireds }} + continue_on_error: true + - *delay-default + - service: '{{ nextion.command.show }}' + data: + component: temp_button + continue_on_error: true + - *delay-default + - service: '{{ nextion.command.show }}' + data: + component: temp_value_2 + continue_on_error: true + - *delay-default + - service: '{{ nextion.command.show }}' + data: + component: temp_touch + continue_on_error: true + + ##### Hide color button when not supported ##### + - if: '{{ color_mode_color }}' + then: + - *delay-default + - service: '{{ nextion.command.show }}' + data: + component: color_button + continue_on_error: true + - *delay-default + - service: '{{ nextion.command.show }}' + data: + component: color_touch + continue_on_error: true ## PAGE COVER ## - alias: Cover settings page @@ -8180,25 +8261,29 @@ action: }} - if: '{{ (not wait.completed and entity_domain in ["cover", "light"]) or entity_domain == "climate" }}' then: # Long press - - service: '{{ nextion.command.open_entity_settings_page }}' - data: - page: '{{ entity_domain }}' - page_label: '{{ last_click_button.name if last_click_button.name is string and last_click_button.name | length > 0 else state_attr(last_click_button.entity, "friendly_name") }}' - page_icon: > - {{ - all_icons[last_click_button.icon.split(":")[1]] | default(last_click_button.icon if last_click_button.icon is defined and last_click_button.icon is string else nextion.icon.domain[entity_domain]) - if last_click_button.icon not in ["unavailable", "unknown", "", None] and last_click_button.icon | length > 0 - else nextion.icon.domain[entity_domain] - }} - page_icon_color: > - {{ - last_click_button.icon_color_rgb - if is_number(last_click_button.icon_color_rgb) - else ((last_click_button.icon_color_rgb[0] //(2**3)) *(2**11))+((last_click_button.icon_color_rgb[1] //(2**2)) *(2**5))+(last_click_button.icon_color_rgb[2] //(2**3)) - }} - entity: '{{ last_click_button.entity }}' - back_page: '{{ nspanel_event.page }}' - continue_on_error: true + - if: + - '{{ entity_domain != "light" or state_attr(last_click_button.entity, "supported_color_modes") | default("unknown") | string not in ["unknown", "onoff", enum.color_mode.unknown, enum.color_mode.onoff, "", none] }}' + - '{{ entity_domain != "cover" or state_attr(last_click_button.entity, "supported_features") | int(0) | bitwise_and(4) > 0 }}' + then: + - service: '{{ nextion.command.open_entity_settings_page }}' + data: + page: '{{ entity_domain }}' + page_label: '{{ last_click_button.name if last_click_button.name is string and last_click_button.name | length > 0 else state_attr(last_click_button.entity, "friendly_name") }}' + page_icon: > + {{ + all_icons[last_click_button.icon.split(":")[1]] | default(last_click_button.icon if last_click_button.icon is defined and last_click_button.icon is string else nextion.icon.domain[entity_domain]) + if last_click_button.icon not in ["unavailable", "unknown", "", None] and last_click_button.icon | length > 0 + else nextion.icon.domain[entity_domain] + }} + page_icon_color: > + {{ + last_click_button.icon_color_rgb + if is_number(last_click_button.icon_color_rgb) + else ((last_click_button.icon_color_rgb[0] //(2**3)) *(2**11))+((last_click_button.icon_color_rgb[1] //(2**2)) *(2**5))+(last_click_button.icon_color_rgb[2] //(2**3)) + }} + entity: '{{ last_click_button.entity }}' + back_page: '{{ nspanel_event.page }}' + continue_on_error: true else: # Short press - if: '{{ entity_domain not in ["unknown", "person", "binary_sensor", "sensor"] }}' then: @@ -8647,11 +8732,14 @@ action: timeout: !input hold_delay continue_on_timeout: true - if: '{{ not wait.completed }}' - then: # Hold + then: # Hold - Long press - choose: - conditions: - '{{ button_context.hold_select == "Default" and button_context.entity | length > 0 }}' - '{{ button_domain in ["climate", "cover", "light"] }}' + - '{{ button_domain != "light" or state_attr(button_context.entity, "supported_color_modes") | default("unknown") | string not in ["unknown", "onoff", enum.color_mode.unknown, enum.color_mode.onoff, "", none] }}' + - '{{ button_domain != "cover" or state_attr(button_context.entity, "supported_features") | int(0) | bitwise_and(4) > 0 }}' + sequence: - service: '{{ nextion.command.open_entity_settings_page }}' data: diff --git a/nspanel_eu.HMI b/nspanel_eu.HMI index 5735bca3cce6258cfb44ad3227b015e5af119716..d5378521745c42f95b830a50d424fcac03ca3c44 100644 GIT binary patch delta 2177 zcmdVZiC0u*7{~GF4$QD5CJQ0)m=|FrbhaZXhb6iEJqf49NvqBjZU-D=i$x z%mgd4MM}jQD@`<8Y_YPew2f@BvJBddB7YBaJ=5tgsC&-mJI}oLotbwIOy8j`?tQSQ zRt2(k&!1XtQgkWAN{JhVLl zi;3#AH{G$6s8*YY=Ms5oUu;Z1(Rgh=d%5Gwoc37h_~5gvtUXQZ;;l=@mHAk^VpP3t z<~DV#&bqUz%-?3&u9}n;xeWb<`)?A%thwa#t@@gP+V%vEmu`@ zNm>8xK>YQnqOh$0PPS?;&s))Qq$)`n7Vq`X8}^rkMP6R)e?R;7ut;xhr+v}B)!LI? znQW_zR8JLHTYIaWtqazwsn!~cdZr1#JKJWf#a(G^*Ox;Dtbt0Xf@-LNTBw7Yp&o95 zwQwsm0K;vt4jN%S+zuOHBisRZ!dZ9Rus}0dVJqAV+u%Of4)?|h;fk)vncpP>^J3IkT!XDTQ`=A5%!&C4y*x&#>1JA;9a1ai`^KckC z;Rqas7vLDY2rt3Q@CqD zpF$UW24~@O_yWF!uizYf4d1}Ga2~#c@8JUc0Nv07Kf+J&GyDR-!f)_9T!cTM7yg95 zpb!4u*sfPLfkY>9k~mBHZy029k+@3SB<_+cBm*QK5>LrM$smcB#9K00;v?~u43P|# z43qdthD)xL_)A7eu993WF-ig?*GK{-L6Treh-9Q>lq6I#S~5lwCK)RUmqbV+CF3Mf vl4!|z$ppzn$+eP6k{HQkNvvdwBu)}9F-a06iIS<3X_6%6aJxQPN%Ok|(sZ^~ delta 2058 zcmdVZi(6B59LMqR+1Nk=uXrJ;NJAsyA}Dg*05KIK0a1`7CCU;(DUX3%qT(AXt)ze* zGA)ZtOJ^$PEH#%|VK*`>GqYBiTAFDWyNZ6k?)2<=`U~nj&+C1@JNupOcb;eK+1cvf z0~_m1N<~Y(X|O__ZKf%P5Gt8FKWbw3B+`%dmP(58CsMlOl+Awmy{E=TRhInorkow& zDy=TZaC)(sHsl*G&Uh*3JiAJV72Mo)j_6pSFwEzmq5Ei~E7|5s zR=@y8@BtH;ovvix9ee*rn@!u(=(gJ2Rs{@T1RpSg+3B|WhPwVE3$Phwwv`h&k&`%? zQ#h3^Y~?gg=L{alnLM7a;|V;GCvg@}=Ic3|Z{R7M!?~QtQ#qff@pLZWLY~1zd?U}~ zV!nxI@oX;Po4J&4;ahnQ-^RD|TrT5zT+S6dpBHc?-@$kC!Yyi^U9*p|#cDa*tBSOo zzKd$K74fzM=ITSO!4>6NpNZt~XF!I8l(ks5!#Bs3X!lZ;keD zC?<|5Ro_rW0+9t9lw;ilq7nLr_GJ-;>GRoaqI7*8n@eQW=cIfhKc&HQbH+5HUid%B zF?l+XS)X$YymLXJcP^em6sWH$Dz;Hh_fejvj2Vn^; zg@@o_cm$R~Gdv29K?}4(8`wdEc6c0?!xOLqR>G6;6s&@$;Th@5*Z?oWM%ViORyE3unk^@S71BrfSvFv>;f0O2D{;P*aL6CoA4HN!CrV9 z-hp@FJ$N6w;RDzQAHsh42tI~S-~fCI2jMd~1fRoU_yWEJH+%(O!#8jQzJ;T3435Kh z@I9P>lkfwaf*;{DoPnRpYRv_4dNQ@F6$;CI! zGWkmUB)ug5l1n53l0ZpsNgqjHNk2({$pA@^WT0e_WUyq2Bv^8(WT+%Wa+&0E$rX}N z$(52}lHro8Bw>;fl97_DCE=25BoUHpC6SUSNwg$JGD;FFiIa?$jFH4k#!3<-iIOBq evLr>4DzQkck~B%WBttSzlBw)+n8qu)!508ZZ=6~H diff --git a/nspanel_eu.tft b/nspanel_eu.tft index 0fc8d2b748d0af23e249ee7d03c38c0ba57ebd26..4f7f5ace54ad79acac732fa8117750eb839c3c7e 100644 GIT binary patch delta 12179 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≧Qck#027QBD17q`jL${a6F6%# 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 delta 1959 zcmd7Ri(6B59LMqR*>(mhv<)dNrBFjsQcPwbHvutdVvSNk3olVtwB;qlgJ4vA5y}c` z)+x(S(9+bh5SJBMcGIGZ8QI;;(n>SB*`54+Ip=xyFL<8k_1<@9zn%Tgv#qytRsUYt zw$`OkV4W*QRl3%YKhWulQK-G!l|Mik7l@6GNvEFKDy`Nn8+_Dv$YWuvMmzCL*^^E* zX5l>J6{BjKMt-bOeAK=mcF`zXxG$qD(46nBa~CwY3ly+`6>Ok_J?Jh7^X)x7_R$rr zb9x$_9tA951skYf4>~pRcW%$Rr%p0pHBXXPPH_i{;%&>^^&<7_5UF)@aiyq%tH6$3BrX^Tf4kqU*ak@9D zLJhWT(!wly_K`+acOF{e4rUBJ+++>T&DD<2>HB6IDjij@46309mcy-33%9}Ta0k=@ zLp`j3255vk;VxJScf&n!FEl|j+z0nV09L^R@F3{$5IhX4;SqQg*1%)X0&8I%v_c!K zhYj#JJOLYF6FdoN2k*l^_yG39htLfl!2$RfK7mi+Gx!|7fG^=7d32FJ^TR2;5hsUC*UXOfuG?Q_!WMG-{B`B*P`=OX4LXBngrWBqJrGB#Dv>C8H%{BuSF7l8YqcB*_xD rWW3~JNs1&@GC`6iNta|uG9_7(iIQwdjwDwyNs_1Rs&q_N8XczqVI?`a diff --git a/nspanel_us.tft b/nspanel_us.tft index 28e704f2cab0e09c9ad586a68be04407d1c9560a..bbe162690e03fe00e7e928b46c10650a46fc5dea 100644 GIT binary patch delta 10945 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 BI2Hf^ delta 10884 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 NvDv2UZHqt8{69kVV~GF& diff --git a/nspanel_us_code/light.txt b/nspanel_us_code/light.txt index 062c640..300a31c 100644 --- a/nspanel_us_code/light.txt +++ b/nspanel_us_code/light.txt @@ -23,7 +23,6 @@ Page light vis light_b_press,1 vis lightslider,1 vis light_value,1 - vis temp_value_2,1 // #### OFF Button ##### vis temp_b_press,0 vis color_b_pres,0 @@ -33,6 +32,12 @@ Page light // #### OFF Slider ##### vis tempslider,0 vis colorwheel,0 + // #### Hide color & temp buttons ##### + vis temp_touch,0 + vis temp_value_2,0 + vis temp_button,0 + vis color_touch,0 + vis color_button,0 page_label.txt=home.entity.txt Touch Press Event diff --git a/nspanel_us_land.HMI b/nspanel_us_land.HMI index be0f6135ce461bb89b56cfa84c8f8d6bf0139c99..76e369c2b11e235a7ffc4aa8d508a1d960424939 100644 GIT binary patch delta 2141 zcmd7RiC0u*7{~GFGBa!mI)EXDIRuWP$f_plFrq_Js0E=SnkY+(f{dtqm^ zQ7NpCF$Nmwh`&PhGmL?X(w=8*H>6W!@gln9Y7JMZrGQB3s&J3}-@UX(mBI?KxvR;8 z+LCmAGk%qyWx7%_D|qgZztUb1cs@*jcxYQ^{c6jpTAQWLW>LTmbf5#!=|20GA#0o)xORu9wu%VYx%qb#)Yc#h`@Jdr1{g%jAylR1&6@Km;O z5?{yDIGL~K8#slh^9-KJH}XxK%4vKvr}HeH&2u<|=W-^`6#0pT?aZ7M`Y0s6c$gE(BJuH*~vs^?Lg~Nh=yr%>rA3VZ9bPu zq|@f^bRtis#`*AtSwvp=O339lhsa%gI8GTAWeUY*O3u&CGvyQ&6s<6sO=@0Yu_?P$Rg0FF^xY1{UysW2OZx6) zsYRtZOPUW<*pxvD#!GKFABl+mZ?W(7oZBO!{j{CVMdwy~cUF0lqdHnWo@d|QQ>nMl zUZbYis~Xgk_4wX7HrX4zmAY0#DU`uVD2EEDgeq7C)o?r1z-m|ncR(#L+zD%;4%We4 zupTzR-Ea@w3mah*+z0nVJ#2;sXaqZKfd^nKJP1wj5Nv~H*bY13VR!@{g%)@W9)~C3 zNq7pLhG(D^o`vUNCp-^r&7(Rhd;RKw7&)^h%4qw2R&;eh;Y4{qxfp6hE zI0N6q5AY*&!ddtU&cV;n1>Nuq{0hIp@9+ow3FqMg`~^MmH~a&=aB)McLD>irH;GQ7 zm-O9mm&rroDe;ncORkXgllVw{CH*A>Bu0s!#9tC187R3@5-1rY36cz!TqOyX43S(d z87eVJLL}EnLM366VG^@sxMYMRTryHJN)jO%Es2ywNunh&l2}QcWQ=62WSrz$$#_Y; hWP)U(WRk=pNsw42lO>6gDUzuYo3gLfkffvr{R`&|tWW>| delta 2022 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 G)%ic4=nUEb delta 10800 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 Y)-wvXXsShuU~V~8+w9T(!*