From 94d3157c4d2e7c5ed8c096647ff4048f5846c230 Mon Sep 17 00:00:00 2001 From: Edward Firmo <94725493+edwardtfn@users.noreply.github.com> Date: Thu, 1 Jun 2023 18:30:16 +0200 Subject: [PATCH] Climate: support to `target_temp_step` (#853) * Climate: support to `target_temp_step` Adding support to attribute `target_temp_step` to define the step of changing temperature. `0.5` will be used if this attribute is not available on the climate entity. * Update nspanel_esphome.yaml * Update nspanel_eu files * Update nspanel_eu_code files --- nspanel_blueprint.yaml | 149 +++++++++++++++++++++--------------- nspanel_esphome.yaml | 22 +++--- nspanel_eu.HMI | Bin 21307134 -> 21307134 bytes nspanel_eu.tft | Bin 6546320 -> 6547520 bytes nspanel_eu_code/climate.txt | 42 +++++++--- 5 files changed, 133 insertions(+), 80 deletions(-) diff --git a/nspanel_blueprint.yaml b/nspanel_blueprint.yaml index eb94f88..7965291 100644 --- a/nspanel_blueprint.yaml +++ b/nspanel_blueprint.yaml @@ -33,7 +33,7 @@ blueprint: 🎉 Roadmap Roadmap can be found here [Roadmap](https://github.com/Blackymas/NSPanel_HA_Blueprint/labels/roadmap) - ℹ️ Version: v.3.3.1 + ℹ️ Version: v.3.3.2 source_url: https://github.com/Blackymas/NSPanel_HA_Blueprint/blob/main/nspanel_blueprint.yaml domain: automation @@ -3512,7 +3512,7 @@ trigger_variables: variables: ##### GENERAL ##### - blueprint_version: '3.3.1' + blueprint_version: '3.3.2' language: !input 'language' date_format_temp: !input 'date_format' #Avoid breaking change for existing users with legacy type format @@ -7460,65 +7460,66 @@ action: sequence: *display_value ##### Slider ##### + - variables: + current_temp: '{{ state_attr(climate_entity, "current_temperature") | float(-999) | round(1) }}' + target_temp: '{{ state_attr(climate_entity, "temperature") | float(-999) * 10 | round(0) | int }}' + temp_offset: '{{ (state_attr(climate_entity, "min_temp") | float(5) * 10) | round(0) | int }}' + max_temp: '{{ (state_attr(climate_entity, "max_temp") | float(25) * 10) | round(0) | int }}' + temp_step: > + {% set target_temp_step = state_attr(climate_entity, "target_temp_step") %} + {% if not is_number(target_temp_step) %} + {% set target_temp_step = state_attr(climate_entity, "target_temperature_step") %} + {% endif %} + {% set target_temp_step = target_temp_step | float(0.5) | abs %} + {{ ((10 * target_temp_step) | round(0) | int) if is_number(target_temp_step) and target_temp_step > 0 else 10 }} + total_steps: '{{ ((max_temp-temp_offset)/temp_step) | round(0) | int }}' - *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 }}' + current_temp: '{{ current_temp }}' + target_temp: '{{ target_temp }}' + temp_step: '{{ temp_step }}' + total_steps: '{{ total_steps }}' + slider_val: '{{ ((target_temp - temp_offset) / temp_step) | round(0) | int }}' + temp_offset: '{{ temp_offset }}' 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 + - variables: + mode_supported: '{{ repeat.item.mode in hvac_modes }}' + - *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 if mode_supported else nextion.colors.grey_dark) + }} + 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 if mode_supported else nextion.commands.hide }}' + continue_on_error: true else: ##### Return to Home page in case is not a climate entity ##### - *jump_page_home @@ -8566,19 +8567,45 @@ action: if trigger.event.data.new_state.attributes.hvac_modes is defined else [] }} - target_temperature: > - {{ - trigger.event.data.new_state.attributes.temperature * 10 + target_temp: > + {{ + trigger.event.data.new_state.attributes.temperature * 10 + if + trigger.event.data.new_state.state != "off" + and trigger.event.data.new_state.attributes.temperature is defined + and is_number(trigger.event.data.new_state.attributes.temperature) + else -999 + }} + temp_offset: > + {{ + trigger.event.data.new_state.attributes.min_temp * 10 + if + trigger.event.data.new_state.state != "off" + and trigger.event.data.new_state.attributes.min_temp is defined + and is_number(trigger.event.data.new_state.attributes.min_temp) + else 50 + }} + temp_step: > + {{ + ((trigger.event.data.new_state.attributes.target_temp_step * 10) | abs) + if + trigger.event.data.new_state.state != "off" + and trigger.event.data.new_state.attributes.target_temp_step is defined + and is_number(trigger.event.data.new_state.attributes.target_temp_step) + else + ( + ((trigger.event.data.new_state.attributes.target_temperature_step * 10) | abs) if trigger.event.data.new_state.state != "off" - and trigger.event.data.new_state.attributes.temperature is defined - and is_number(trigger.event.data.new_state.attributes.temperature) - else -999 - }} - + and trigger.event.data.new_state.attributes.target_temperature_step is defined + and is_number(trigger.event.data.new_state.attributes.target_temperature_step) + else 10 + ) + }} - service: '{{ nextion.commands.set_climate_target_temp }}' data: - target_temp: '{{ target_temperature }}' + target_temp: '{{ target_temp | round(0) | int }}' + slider_val: '{{ ((target_temp - temp_offset) / temp_step) | round(0) | int }}' continue_on_error: true - repeat: for_each: '{{ page_climate.buttons.hvac_mode }}' diff --git a/nspanel_esphome.yaml b/nspanel_esphome.yaml index b1d5afc..07a776f 100644 --- a/nspanel_esphome.yaml +++ b/nspanel_esphome.yaml @@ -314,7 +314,8 @@ api: #### Service to set climate target_temp #### - service: set_climate_target_temp variables: - target_temp: float + target_temp: int + slider_val: int then: - wait_until: binary_sensor.is_on: nextion_init @@ -322,7 +323,7 @@ api: lambda: |- if (target_temp > -999) { - id(disp1).set_component_value("climateslider", target_temp); + id(disp1).set_component_value("climateslider", slider_val); id(disp1).set_component_value("target_temp", target_temp); id(disp1).show_component("target_icon"); id(disp1).show_component("target_temp"); @@ -344,19 +345,20 @@ api: #### Service to set climate state #### - service: set_climate variables: - state: string - hvac_modes: string current_temp: float - target_temp: float - min_temp: int - max_temp: int + target_temp: int + temp_step: int + total_steps: int + slider_val: int + temp_offset: int then: - wait_until: binary_sensor.is_on: nextion_init - *set_climate_target_temp - lambda: |- - id(disp1).send_command_printf("climateslider.minval=%i", min_temp); - id(disp1).send_command_printf("climateslider.maxval=%i", max_temp); + id(disp1).send_command_printf("climateslider.maxval=%i", total_steps); + id(disp1).set_component_value("temp_offset", temp_offset); + id(disp1).set_component_value("temp_step", temp_step); id(disp1).set_component_text_printf("current_temp", "%.1f°", current_temp); id(disp1).show_component("current_temp"); id(disp1).show_component("current_icon"); @@ -913,7 +915,7 @@ display: - logger.log: "Nextion start - Jump to page 8" - lambda: id(disp1).send_command_printf("page 8"); - logger.log: "Nextion start - Publish ESPHome version" - - lambda: id(disp1).set_component_text_printf("boot.esph_version", "%s", "3.3.1"); ### esphome-version ### + - lambda: id(disp1).set_component_text_printf("boot.esph_version", "%s", "3.3.2"); ### esphome-version ### - logger.log: "Nextion start - Wait for Home Assistant API" - wait_until: api.connected diff --git a/nspanel_eu.HMI b/nspanel_eu.HMI index d9df2b85cc526675acf2cbb127d378297ffd2628..42ec5e3b848cf78d9da64a933b0518495021b533 100644 GIT binary patch delta 4860 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 diff --git a/nspanel_eu.tft b/nspanel_eu.tft index 9c650a3f56e6c6d257044a4f9dea2840f204f917..277afa7ace46c637f86ef8626570b9b6b8da6e1f 100644 GIT binary patch delta 52031 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 A82|tP diff --git a/nspanel_eu_code/climate.txt b/nspanel_eu_code/climate.txt index 038d935..170fea9 100644 --- a/nspanel_eu_code/climate.txt +++ b/nspanel_eu_code/climate.txt @@ -44,7 +44,7 @@ Page climate if(timer01.en==1) { timer01.en=0 - covx climateslider.val,va1.txt,0,0 + covx target_temp.val,va1.txt,0,0 climatesetting.txt="{\"page\": \"climate\", \"component\": \"climate_position\", \"value\": "+va1.txt+"}" printh 92 prints "nspanelevent",0 @@ -75,6 +75,18 @@ Variable (string) lastclick Text : Max. Text Size: 100 +Variable (int32) temp_offset + Attributes + ID : 40 + Scope: local + Value: 0 + +Variable (int32) temp_step + Attributes + ID : 41 + Scope: local + Value: 1 + XFloat target_temp Attributes ID : 38 @@ -297,13 +309,15 @@ Slider climateslider Scope : local Dragging : 0 Send Component ID: disabled - Position : 180 - Upper range limit: 250 - Lower range limit: 50 + Position : 20 + Upper range limit: 40 + Lower range limit: 0 Events Touch Release Event target_temp.val=climateslider.val + target_temp.val*=temp_step.val + target_temp.val+=temp_offset.val timer01.en=1 Hotspot decrease_temp @@ -315,8 +329,13 @@ Hotspot decrease_temp Events Touch Press Event - climateslider.val-=1 - target_temp.val=climateslider.val + if(climateslider.val>0) + { + climateslider.val-=1 + target_temp.val=climateslider.val + target_temp.val*=temp_step.val + target_temp.val+=temp_offset.val + } Touch Release Event timer01.en=1 @@ -330,8 +349,13 @@ Hotspot increase_temp Events Touch Press Event - climateslider.val+=1 - target_temp.val=climateslider.val + if(climateslider.val