From 89e55a20d457f8803cdd9562ca4b255f19edccd7 Mon Sep 17 00:00:00 2001 From: Edward Firmo <94725493+edwardtfn@users.noreply.github.com> Date: Mon, 29 May 2023 21:08:07 +0200 Subject: [PATCH] Fix buttons on climate page (#850) * Fix buttons on climate page Fix icon for dry and auto. Move Off for last position. Fix TFT sending incorrect id for buttons. * Update TFT * Update nspanel_eu_code --- nspanel_blueprint.yaml | 228 ++++++++++++++++++------------------ nspanel_eu.HMI | Bin 21307134 -> 21307134 bytes nspanel_eu.tft | Bin 6546300 -> 6546208 bytes nspanel_eu_code/climate.txt | 2 +- 4 files changed, 113 insertions(+), 117 deletions(-) diff --git a/nspanel_blueprint.yaml b/nspanel_blueprint.yaml index 15dfdc0..eb94f88 100644 --- a/nspanel_blueprint.yaml +++ b/nspanel_blueprint.yaml @@ -5346,7 +5346,7 @@ variables: buttons: hvac_mode: - mode: auto - icon: calendarsync + icon: calendar-sync color: green component: button01 - mode: heat_cool @@ -5361,17 +5361,17 @@ variables: icon: snowflake color: blue component: button04 - - mode: "off" - icon: power - color: "off" + - mode: dry + icon: water-percent + color: orange component: button05 - mode: fan_only icon: fan color: cyan component: button06 - - mode: dry - icon: waterpercent - color: orange + - mode: "off" + icon: power + color: "off" component: button07 qrcode_enabled: !input 'qrcode_enabled' @@ -6198,7 +6198,8 @@ action: ##### NSPanel boot init finished and jump to Home Page##### - *delay-default - - service: '{{ nextion.commands.printf }}' + - &jump_page_home + service: '{{ nextion.commands.printf }}' data: cmd: "page {{ pages.home }}" continue_on_error: true @@ -7405,7 +7406,7 @@ action: } {% else %}{{ settings_entity_dict }} {% endif %} - climate_entity: '{{ settings_entity_dict.entity }}' + climate_entity: '{{ settings_entity_dict.entity if settings_entity_dict.entity is defined }}' settings_entity_domain: > {{ climate_entity.split(".")[0] @@ -7417,110 +7418,110 @@ action: }} hvac_modes: '{{ state_attr(climate_entity, "hvac_modes") if settings_entity_domain == "climate" }}' - ##### Page title ##### - - service: '{{ nextion.commands.text_printf }}' - data: - component: climate.climate_label - message: '{{ settings_entity_dict.name }}' - continue_on_error: true + - if: '{{ settings_entity_domain == "climate" }}' + then: + ##### Page title ##### + - service: '{{ nextion.commands.text_printf }}' + data: + component: climate.climate_label + message: '{{ settings_entity_dict.name }}' + continue_on_error: true - ##### Values ##### - - &variables-climate_page - variables: - climate_page_entities: - - entity: !input 'climate_value01' - icon: !input 'climate_value01_icon' - icon_color_rgb: !input 'climate_value01_icon_color' - label_color_rgb: !input 'climate_value01_label_color' - page: climate - component: value01 - - entity: !input 'climate_value02' - icon: !input 'climate_value02_icon' - icon_color_rgb: !input 'climate_value02_icon_color' - label_color_rgb: !input 'climate_value02_label_color' - page: climate - component: value02 - - entity: !input 'climate_value03' - icon: !input 'climate_value03_icon' - icon_color_rgb: !input 'climate_value03_icon_color' - label_color_rgb: !input 'climate_value03_label_color' - page: climate - component: value03 - - entity: !input 'climate_value04' - icon: !input 'climate_value04_icon' - icon_color_rgb: !input 'climate_value04_icon_color' - label_color_rgb: !input 'climate_value04_label_color' - page: climate - component: value04 - - repeat: - for_each: '{{ climate_page_entities }}' - sequence: *display_value + ##### Values ##### + - &variables-climate_page + variables: + climate_page_entities: + - entity: !input 'climate_value01' + icon: !input 'climate_value01_icon' + icon_color_rgb: !input 'climate_value01_icon_color' + label_color_rgb: !input 'climate_value01_label_color' + page: climate + component: value01 + - entity: !input 'climate_value02' + icon: !input 'climate_value02_icon' + icon_color_rgb: !input 'climate_value02_icon_color' + label_color_rgb: !input 'climate_value02_label_color' + page: climate + component: value02 + - entity: !input 'climate_value03' + icon: !input 'climate_value03_icon' + icon_color_rgb: !input 'climate_value03_icon_color' + label_color_rgb: !input 'climate_value03_label_color' + page: climate + component: value03 + - entity: !input 'climate_value04' + icon: !input 'climate_value04_icon' + icon_color_rgb: !input 'climate_value04_icon_color' + label_color_rgb: !input 'climate_value04_label_color' + page: climate + component: value04 + - repeat: + for_each: '{{ climate_page_entities }}' + sequence: *display_value - - condition: '{{ settings_entity_domain == "climate" }}' + ##### Slider ##### + - *delay-default + - service: '{{ nextion.commands.set_climate }}' + data: + state: '{{ states(climate_entity) }}' + hvac_modes: '{{ state_attr(climate_entity, "hvac_modes") }}' + current_temp: '{{ state_attr(climate_entity, "current_temperature") | float(default=-999) | round(1) }}' + target_temp: '{{ state_attr(climate_entity, "temperature") | float(default=-999) * 10 }}' + min_temp: '{{ (state_attr(climate_entity, "min_temp") | round(0, default=5) * 10) | int }}' + max_temp: '{{ (state_attr(climate_entity, "max_temp") | round(0, default=25) * 10) | int }}' + continue_on_error: true - ##### Slider ##### - - *delay-default - - service: '{{ nextion.commands.set_climate }}' - data: - state: '{{ states(climate_entity) }}' - hvac_modes: '{{ state_attr(climate_entity, "hvac_modes") }}' - current_temp: '{{ state_attr(climate_entity, "current_temperature") | float(default=-999) | round(1) }}' - target_temp: '{{ state_attr(climate_entity, "temperature") | float(default=-999) * 10 }}' - min_temp: '{{ (state_attr(climate_entity, "min_temp") | round(0, default=5) * 10) | int }}' - max_temp: '{{ (state_attr(climate_entity, "max_temp") | round(0, default=25) * 10) | int }}' - continue_on_error: true - - ##### Buttons ##### - - repeat: - for_each: '{{ page_climate.buttons.hvac_mode }}' - sequence: &update_climate_button - - if: > - {{ - repeat.item.mode in hvac_modes - }} - then: - - *delay-default - ### ICON Font Color ### - - service: '{{ nextion.commands.font_color }}' - data: - component: 'climate.{{ repeat.item.component }}_icon' - message: > - {{ - nextion.colors[repeat.item.color] - if states(climate_entity) == repeat.item.mode - else nextion.colors.disabled - }} - continue_on_error: true - ### ICON Font ### - - *delay-default - - service: '{{ nextion.commands.text_printf }}' - data: - component: 'climate.{{ repeat.item.component }}_icon' - message: '{{ all_icons[repeat.item.icon] }}' - continue_on_error: true - ### Show button ### - - *delay-default - - service: '{{ nextion.commands.show }}' - data: - component: '{{ repeat.item.component }}_icon' - continue_on_error: true - - *delay-default - - service: '{{ nextion.commands.show }}' - data: - component: '{{ repeat.item.component }}' - continue_on_error: true - else: - ### Hide button ### - - *delay-default - - service: '{{ nextion.commands.hide }}' - data: - component: '{{ repeat.item.component }}' - continue_on_error: true - - *delay-default - - service: '{{ nextion.commands.hide }}' - data: - component: '{{ repeat.item.component }}_icon' - continue_on_error: true + ##### Buttons ##### + - repeat: + for_each: '{{ page_climate.buttons.hvac_mode }}' + sequence: &update_climate_button + - if: '{{ repeat.item.mode in hvac_modes }}' + then: + - *delay-default + ### ICON Font Color ### + - service: '{{ nextion.commands.font_color }}' + data: + component: 'climate.{{ repeat.item.component }}_icon' + message: > + {{ + nextion.colors[repeat.item.color] + if states(climate_entity) == repeat.item.mode + else nextion.colors.disabled + }} + continue_on_error: true + ### ICON Font ### + - *delay-default + - service: '{{ nextion.commands.text_printf }}' + data: + component: 'climate.{{ repeat.item.component }}_icon' + message: '{{ all_icons[repeat.item.icon] }}' + continue_on_error: true + ### Show button ### + - *delay-default + - service: '{{ nextion.commands.show }}' + data: + component: '{{ repeat.item.component }}_icon' + continue_on_error: true + - *delay-default + - service: '{{ nextion.commands.show }}' + data: + component: '{{ repeat.item.component }}' + continue_on_error: true + else: + ### Hide button ### + - *delay-default + - service: '{{ nextion.commands.hide }}' + data: + component: '{{ repeat.item.component }}' + continue_on_error: true + - *delay-default + - service: '{{ nextion.commands.hide }}' + data: + component: '{{ repeat.item.component }}_icon' + continue_on_error: true + else: + ##### Return to Home page in case is not a climate entity ##### + - *jump_page_home ## ENTITY PAGES 01 - 04 ## - alias: Entity pages @@ -8800,12 +8801,7 @@ action: - "{{ trigger.event.data.old_state.state == 'on' }}" - "{{ trigger.event.data.new_state.state == 'off' }}" sequence: - - *delay-default - - service: "{{ nextion.commands.printf }}" - data: - cmd: "page {{ pages.home }}" - continue_on_error: true - + - *jump_page_home ############################################################# ##### CLOSE - Action ##### diff --git a/nspanel_eu.HMI b/nspanel_eu.HMI index 601fcd20856d6e84e1e6897bfb5c0eefe938242b..68b7bc6a38b4f7fe60a7db258c7524ca11d08d57 100644 GIT binary patch delta 1571 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 z z(w;+6>ZWuo)E9D1SZ?0%# L?8XQ0HCz6FZ&Yje delta 14360 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 diff --git a/nspanel_eu_code/climate.txt b/nspanel_eu_code/climate.txt index 2c720bc..2bd2c83 100644 --- a/nspanel_eu_code/climate.txt +++ b/nspanel_eu_code/climate.txt @@ -494,7 +494,7 @@ Hotspot button07 Events Touch Release Event - lastclick.txt="{\"page\": \"climate\", \"component\": \"button01\", \"value\": \"release\"}" + lastclick.txt="{\"page\": \"climate\", \"component\": \"button07\", \"value\": \"release\"}" printh 92 prints "nspanelevent",0 printh 00