From 5cc19470f7dbf6d2694c11d100946033b42cbc3b Mon Sep 17 00:00:00 2001 From: Edward Firmo <94725493+edwardtfn@users.noreply.github.com> Date: Sat, 2 Sep 2023 11:52:31 +0200 Subject: [PATCH] Fix climate icon update Partially solves https://github.com/Blackymas/NSPanel_HA_Blueprint/discussions/995#discussioncomment-6891454 --- nspanel_esphome.yaml | 82 ++++++++++++++ nspanel_esphome_addon_climate_cool.yaml | 144 +++--------------------- nspanel_esphome_addon_climate_heat.yaml | 144 +++--------------------- 3 files changed, 108 insertions(+), 262 deletions(-) diff --git a/nspanel_esphome.yaml b/nspanel_esphome.yaml index 0ababe6..1bc2ce2 100644 --- a/nspanel_esphome.yaml +++ b/nspanel_esphome.yaml @@ -1745,6 +1745,88 @@ script: id(disp1).set_component_font_color(component.c_str(), alarm_color); ESP_LOGV("script.update_alarm_icon", "Finished"); + - id: update_climate_icon + mode: restart + parameters: + component: string + action: int + mode: int + then: + - lambda: |- + ESP_LOGV("script.update_climate_icon", "Starting"); + ESP_LOGV("script.update_climate_icon", "component: %s", component.c_str()); + ESP_LOGV("script.update_climate_icon", "action: %i", action); + ESP_LOGV("script.update_climate_icon", "mode: %i", mode); + switch (action) // CLIMATE_ACTION_OFF = 0, CLIMATE_ACTION_COOLING = 2, CLIMATE_ACTION_HEATING = 3, CLIMATE_ACTION_IDLE = 4, CLIMATE_ACTION_DRYING = 5, CLIMATE_ACTION_FAN = 6 + { + case 0: //CLIMATE_ACTION_OFF + ESP_LOGV("script.update_climate_icon", "Climate 'action' is off. Using 'mode' instead"); + switch (mode) // CLIMATE_MODE_OFF = 0, CLIMATE_MODE_HEAT_COOL = 1, CLIMATE_MODE_COOL = 2, CLIMATE_MODE_HEAT = 3, CLIMATE_MODE_FAN_ONLY = 4, CLIMATE_MODE_DRY = 5, CLIMATE_MODE_AUTO = 6 + { + case 0: //CLIMATE_MODE_OFF + ESP_LOGV("script.update_climate_icon", "Icon: none"); + id(disp1).set_component_text_printf(component.c_str(), "%s", "\uFFFF"); // (E424) Don't show icon when off + id(disp1).set_component_font_color(component.c_str(), 35921); // grey (off) + break; + case 1: //CLIMATE_MODE_HEAT_COOL + ESP_LOGV("script.update_climate_icon", "Icon: autorenew"); + id(disp1).set_component_text_printf(component.c_str(), "%s", "\uE069"); // mdi:autorenew + id(disp1).set_component_font_color(component.c_str(), 35921); // grey (off) + break; + case 2: //CLIMATE_MODE_COOL + ESP_LOGV("script.update_climate_icon", "Icon: snowflake"); + id(disp1).set_component_text_printf(component.c_str(), "%s", "\uE716"); // mdi:snowflake + id(disp1).set_component_font_color(component.c_str(), 35921); // grey (off) + break; + case 3: //CLIMATE_MODE_HEAT + ESP_LOGV("script.update_climate_icon", "Icon: fire"); + id(disp1).set_component_text_printf(component.c_str(), "%s", "\uE237"); // mdi:fire + id(disp1).set_component_font_color(component.c_str(), 35921); // grey (off) + break; + case 4: //CLIMATE_MODE_FAN_ONLY + ESP_LOGV("script.update_climate_icon", "Icon: fan"); + id(disp1).set_component_text_printf(component.c_str(), "%s", "\uE20F"); // mdi:fan + id(disp1).set_component_font_color(component.c_str(), 35921); // grey (off) + break; + case 5: //CLIMATE_MODE_DRY + ESP_LOGV("script.update_climate_icon", "Icon: water-percent"); + id(disp1).set_component_text_printf(component.c_str(), "%s", "\uE58D"); // mdi:water-percent + id(disp1).set_component_font_color(component.c_str(), 35921); // grey (off) + break; + case 6: //CLIMATE_MODE_AUTO + ESP_LOGV("script.update_climate_icon", "Icon: calendar-sync"); + id(disp1).set_component_text_printf(component.c_str(), "%s", "\uEE8D"); // mdi:calendar-sync + id(disp1).set_component_font_color(component.c_str(), 35921); // grey (off) + break; + } + break; + case 2: //CLIMATE_ACTION_COOLING + ESP_LOGV("script.update_climate_icon", "Icon: snowflake"); + id(disp1).set_component_text_printf(component.c_str(), "%s", "\uE716"); // mdi:snowflake + id(disp1).set_component_font_color(component.c_str(), 1055); // blue + break; + case 3: //CLIMATE_ACTION_HEATING + ESP_LOGV("script.update_climate_icon", "Icon: fire"); + id(disp1).set_component_text_printf(component.c_str(), "%s", "\uE237"); // mdi:fire + id(disp1).set_component_font_color(component.c_str(), 64164); // deep-orange + break; + case 4: //CLIMATE_ACTION_IDLE + ESP_LOGV("script.update_climate_icon", "Icon: thermometer"); + id(disp1).set_component_text_printf(component.c_str(), "%s", "\uE50E"); // mdi:thermometer + id(disp1).set_component_font_color(component.c_str(), 35921); // grey (off) + break; + case 5: //CLIMATE_ACTION_DRYING + ESP_LOGV("script.update_climate_icon", "Icon: water-percent"); + id(disp1).set_component_text_printf(component.c_str(), "%s", "\uE58D"); // mdi:water-percent + id(disp1).set_component_font_color(component.c_str(), 64704); // orange + break; + case 6: //CLIMATE_ACTION_FAN + ESP_LOGV("script.update_climate_icon", "Icon: fan"); + id(disp1).set_component_text_printf(component.c_str(), "%s", "\uE20F"); // mdi:fan + id(disp1).set_component_font_color(component.c_str(), 1530); // cyan + break; + } + ##### ADD-ONS ############################################################ ##### Add-on - Climate ##### - id: addon_climate_service_call diff --git a/nspanel_esphome_addon_climate_cool.yaml b/nspanel_esphome_addon_climate_cool.yaml index 0b27952..ee5eff6 100644 --- a/nspanel_esphome_addon_climate_cool.yaml +++ b/nspanel_esphome_addon_climate_cool.yaml @@ -63,81 +63,18 @@ script: - id: !extend addon_climate_update_page_home mode: restart then: - - lambda: ESP_LOGV("script.addon_climate_update_page_home", "Starting"); - - if: - condition: - - binary_sensor.is_on: nextion_init - then: - - lambda: |- - // Update home.entity variable - ESP_LOGV("script.addon_climate_update_page_home", "Update home.entity variable: %s", (id(is_embedded_thermostat)) ? "embedded_climate" : ""); - id(disp1).set_component_text_printf("home.entity", (id(is_embedded_thermostat)) ? "embedded_climate" : ""); - - - if: - condition: - - lambda: !lambda 'return id(is_embedded_thermostat);' - then: - - lambda: |- - // Update chips - ESP_LOGV("script.addon_climate_update_page_home", "Update chips"); - ESP_LOGV("script.refresh_chips_climate", "thermostat_embedded.action=%i", int(id(thermostat_embedded).action)); - switch (int(id(thermostat_embedded).action)) // CLIMATE_ACTION_OFF = 0, CLIMATE_ACTION_COOLING = 2, CLIMATE_ACTION_HEATING = 3, CLIMATE_ACTION_IDLE = 4, CLIMATE_ACTION_DRYING = 5, CLIMATE_ACTION_FAN = 6 - { - case 0: //CLIMATE_ACTION_OFF - ESP_LOGV("script.refresh_chips_climate", "thermostat_embedded.mode=%i", int(id(thermostat_embedded).mode)); - switch (int(id(thermostat_embedded).mode)) // CLIMATE_MODE_OFF = 0, CLIMATE_MODE_HEAT_COOL = 1, CLIMATE_MODE_COOL = 2, CLIMATE_MODE_HEAT = 3, CLIMATE_MODE_FAN_ONLY = 4, CLIMATE_MODE_DRY = 5, CLIMATE_MODE_AUTO = 6 - { - case 0: //CLIMATE_MODE_OFF - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uFFFF"); // (E424) Don't show icon when off - id(disp1).set_component_font_color("home.icon_top_03", 35921); - break; - case 1: //CLIMATE_MODE_HEAT_COOL - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE069"); - id(disp1).set_component_font_color("home.icon_top_03", 35921); - break; - case 2: //CLIMATE_MODE_COOL - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE716"); - id(disp1).set_component_font_color("home.icon_top_03", 35921); - break; - case 3: //CLIMATE_MODE_HEAT - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE237"); - id(disp1).set_component_font_color("home.icon_top_03", 64164); - break; - case 4: //CLIMATE_MODE_FAN_ONLY - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE20F"); - id(disp1).set_component_font_color("home.icon_top_03", 35921); - break; - case 5: //CLIMATE_MODE_DRY - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE58D"); - id(disp1).set_component_font_color("home.icon_top_03", 35921); - break; - case 6: //CLIMATE_MODE_AUTO - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uEE8D"); - id(disp1).set_component_font_color("home.icon_top_03", 35921); - break; - } - case 2: //CLIMATE_ACTION_COOLING - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE716"); - id(disp1).set_component_font_color("home.icon_top_03", 1055); - break; - case 3: //CLIMATE_ACTION_HEATING - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE237"); - id(disp1).set_component_font_color("home.icon_top_03", 64164); - break; - case 4: //CLIMATE_ACTION_IDLE - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE50E"); // mdi:thermometer - id(disp1).set_component_font_color("home.icon_top_03", 35921); - break; - case 5: //CLIMATE_ACTION_DRYING - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE58D"); - id(disp1).set_component_font_color("home.icon_top_03", 64704); - break; - case 6: //CLIMATE_ACTION_FAN - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE20F"); - id(disp1).set_component_font_color("home.icon_top_03", 1530); - break; - } - - lambda: ESP_LOGV("script.addon_climate_update_page_home", "Finished"); + - lambda: |- + ESP_LOGV("script.addon_climate_update_page_home", "Starting"); + // Update home.entity variable + ESP_LOGV("script.addon_climate_update_page_home", "Update home.entity variable: %s", (id(is_embedded_thermostat)) ? "embedded_climate" : ""); + id(disp1).set_component_text_printf("home.entity", (id(is_embedded_thermostat)) ? "embedded_climate" : ""); + // Update chips + if (id(is_embedded_thermostat)) + { + ESP_LOGV("script.addon_climate_update_page_home", "Update chips"); + id(update_climate_icon).execute("home.icon_top_03", int(id(thermostat_embedded).action), int(id(thermostat_embedded).mode)); + } + ESP_LOGV("script.addon_climate_update_page_home", "Finished"); - id: !extend addon_climate_service_call then: @@ -210,62 +147,7 @@ script: # Update target temp icon - lambda: |- ESP_LOGV("script.addon_climate_update_page_climate", "thermostat_embedded.action=%i", int(id(thermostat_embedded).action)); - switch (int(id(thermostat_embedded).action)) // CLIMATE_ACTION_OFF = 0, CLIMATE_ACTION_COOLING = 2, CLIMATE_ACTION_HEATING = 3, CLIMATE_ACTION_IDLE = 4, CLIMATE_ACTION_DRYING = 5, CLIMATE_ACTION_FAN = 6 - { - case 0: //CLIMATE_ACTION_OFF - ESP_LOGV("script.addon_climate_update_page_climate", "thermostat_embedded.mode=%i", int(id(thermostat_embedded).mode)); - switch (int(id(thermostat_embedded).mode)) // CLIMATE_MODE_OFF = 0, CLIMATE_MODE_HEAT_COOL = 1, CLIMATE_MODE_COOL = 2, CLIMATE_MODE_HEAT = 3, CLIMATE_MODE_FAN_ONLY = 4, CLIMATE_MODE_DRY = 5, CLIMATE_MODE_AUTO = 6 - { - case 0: //CLIMATE_MODE_OFF - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uFFFF"); // (E424) Don't show icon when off - id(disp1).set_component_font_color("climate.target_icon", 35921); - break; - case 1: //CLIMATE_MODE_HEAT_COOL - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE069"); - id(disp1).set_component_font_color("climate.target_icon", 35921); - break; - case 2: //CLIMATE_MODE_COOL - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE716"); - id(disp1).set_component_font_color("climate.target_icon", 1055); - break; - case 3: //CLIMATE_MODE_HEAT - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE237"); - id(disp1).set_component_font_color("climate.target_icon", 64164); - break; - case 4: //CLIMATE_MODE_FAN_ONLY - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE20F"); - id(disp1).set_component_font_color("climate.target_icon", 35921); - break; - case 5: //CLIMATE_MODE_DRY - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE58D"); - id(disp1).set_component_font_color("climate.target_icon", 64704); - break; - case 6: //CLIMATE_MODE_AUTO - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uEE8D"); - id(disp1).set_component_font_color("climate.target_icon", 35921); - break; - } - case 2: //CLIMATE_ACTION_COOLING - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE716"); - id(disp1).set_component_font_color("climate.target_icon", 1055); - break; - case 3: //CLIMATE_ACTION_HEATING - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE237"); - id(disp1).set_component_font_color("climate.target_icon", 64164); - break; - case 4: //CLIMATE_ACTION_IDLE - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE50E"); // mdi:thermometer - id(disp1).set_component_font_color("climate.target_icon", 35921); - break; - case 5: //CLIMATE_ACTION_DRYING - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE58D"); - id(disp1).set_component_font_color("climate.target_icon", 64704); - break; - case 6: //CLIMATE_ACTION_FAN - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE20F"); - id(disp1).set_component_font_color("climate.target_icon", 1530); - break; - } + id(update_climate_icon).execute("climate.target_icon", int(id(thermostat_embedded).action), int(id(thermostat_embedded).mode)); # Update buttons bar - lambda: |- diff --git a/nspanel_esphome_addon_climate_heat.yaml b/nspanel_esphome_addon_climate_heat.yaml index a302c2c..1090368 100644 --- a/nspanel_esphome_addon_climate_heat.yaml +++ b/nspanel_esphome_addon_climate_heat.yaml @@ -63,81 +63,18 @@ script: - id: !extend addon_climate_update_page_home mode: restart then: - - lambda: ESP_LOGV("script.addon_climate_update_page_home", "Starting"); - - if: - condition: - - binary_sensor.is_on: nextion_init - then: - - lambda: |- - // Update home.entity variable - ESP_LOGV("script.addon_climate_update_page_home", "Update home.entity variable: %s", (id(is_embedded_thermostat)) ? "embedded_climate" : ""); - id(disp1).set_component_text_printf("home.entity", (id(is_embedded_thermostat)) ? "embedded_climate" : ""); - - - if: - condition: - - lambda: !lambda 'return id(is_embedded_thermostat);' - then: - - lambda: |- - // Update chips - ESP_LOGV("script.addon_climate_update_page_home", "Update chips"); - ESP_LOGV("script.refresh_chips_climate", "thermostat_embedded.action=%i", int(id(thermostat_embedded).action)); - switch (int(id(thermostat_embedded).action)) // CLIMATE_ACTION_OFF = 0, CLIMATE_ACTION_COOLING = 2, CLIMATE_ACTION_HEATING = 3, CLIMATE_ACTION_IDLE = 4, CLIMATE_ACTION_DRYING = 5, CLIMATE_ACTION_FAN = 6 - { - case 0: //CLIMATE_ACTION_OFF - ESP_LOGV("script.refresh_chips_climate", "thermostat_embedded.mode=%i", int(id(thermostat_embedded).mode)); - switch (int(id(thermostat_embedded).mode)) // CLIMATE_MODE_OFF = 0, CLIMATE_MODE_HEAT_COOL = 1, CLIMATE_MODE_COOL = 2, CLIMATE_MODE_HEAT = 3, CLIMATE_MODE_FAN_ONLY = 4, CLIMATE_MODE_DRY = 5, CLIMATE_MODE_AUTO = 6 - { - case 0: //CLIMATE_MODE_OFF - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uFFFF"); // (E424) Don't show icon when off - id(disp1).set_component_font_color("home.icon_top_03", 35921); - break; - case 1: //CLIMATE_MODE_HEAT_COOL - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE069"); - id(disp1).set_component_font_color("home.icon_top_03", 35921); - break; - case 2: //CLIMATE_MODE_COOL - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE716"); - id(disp1).set_component_font_color("home.icon_top_03", 35921); - break; - case 3: //CLIMATE_MODE_HEAT - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE237"); - id(disp1).set_component_font_color("home.icon_top_03", 64164); - break; - case 4: //CLIMATE_MODE_FAN_ONLY - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE20F"); - id(disp1).set_component_font_color("home.icon_top_03", 35921); - break; - case 5: //CLIMATE_MODE_DRY - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE58D"); - id(disp1).set_component_font_color("home.icon_top_03", 35921); - break; - case 6: //CLIMATE_MODE_AUTO - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uEE8D"); - id(disp1).set_component_font_color("home.icon_top_03", 35921); - break; - } - case 2: //CLIMATE_ACTION_COOLING - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE716"); - id(disp1).set_component_font_color("home.icon_top_03", 1055); - break; - case 3: //CLIMATE_ACTION_HEATING - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE237"); - id(disp1).set_component_font_color("home.icon_top_03", 64164); - break; - case 4: //CLIMATE_ACTION_IDLE - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE50E"); // mdi:thermometer - id(disp1).set_component_font_color("home.icon_top_03", 35921); - break; - case 5: //CLIMATE_ACTION_DRYING - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE58D"); - id(disp1).set_component_font_color("home.icon_top_03", 64704); - break; - case 6: //CLIMATE_ACTION_FAN - id(disp1).set_component_text_printf("home.icon_top_03", "%s", "\uE20F"); - id(disp1).set_component_font_color("home.icon_top_03", 1530); - break; - } - - lambda: ESP_LOGV("script.addon_climate_update_page_home", "Finished"); + - lambda: |- + ESP_LOGV("script.addon_climate_update_page_home", "Starting"); + // Update home.entity variable + ESP_LOGV("script.addon_climate_update_page_home", "Update home.entity variable: %s", (id(is_embedded_thermostat)) ? "embedded_climate" : ""); + id(disp1).set_component_text_printf("home.entity", (id(is_embedded_thermostat)) ? "embedded_climate" : ""); + // Update chips + if (id(is_embedded_thermostat)) + { + ESP_LOGV("script.addon_climate_update_page_home", "Update chips"); + id(update_climate_icon).execute("home.icon_top_03", int(id(thermostat_embedded).action), int(id(thermostat_embedded).mode)); + } + ESP_LOGV("script.addon_climate_update_page_home", "Finished"); - id: !extend addon_climate_service_call then: @@ -210,62 +147,7 @@ script: # Update target temp icon - lambda: |- ESP_LOGV("script.addon_climate_update_page_climate", "thermostat_embedded.action=%i", int(id(thermostat_embedded).action)); - switch (int(id(thermostat_embedded).action)) // CLIMATE_ACTION_OFF = 0, CLIMATE_ACTION_COOLING = 2, CLIMATE_ACTION_HEATING = 3, CLIMATE_ACTION_IDLE = 4, CLIMATE_ACTION_DRYING = 5, CLIMATE_ACTION_FAN = 6 - { - case 0: //CLIMATE_ACTION_OFF - ESP_LOGV("script.addon_climate_update_page_climate", "thermostat_embedded.mode=%i", int(id(thermostat_embedded).mode)); - switch (int(id(thermostat_embedded).mode)) // CLIMATE_MODE_OFF = 0, CLIMATE_MODE_HEAT_COOL = 1, CLIMATE_MODE_COOL = 2, CLIMATE_MODE_HEAT = 3, CLIMATE_MODE_FAN_ONLY = 4, CLIMATE_MODE_DRY = 5, CLIMATE_MODE_AUTO = 6 - { - case 0: //CLIMATE_MODE_OFF - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uFFFF"); // (E424) Don't show icon when off - id(disp1).set_component_font_color("climate.target_icon", 35921); - break; - case 1: //CLIMATE_MODE_HEAT_COOL - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE069"); - id(disp1).set_component_font_color("climate.target_icon", 35921); - break; - case 2: //CLIMATE_MODE_COOL - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE716"); - id(disp1).set_component_font_color("climate.target_icon", 1055); - break; - case 3: //CLIMATE_MODE_HEAT - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE237"); - id(disp1).set_component_font_color("climate.target_icon", 64164); - break; - case 4: //CLIMATE_MODE_FAN_ONLY - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE20F"); - id(disp1).set_component_font_color("climate.target_icon", 35921); - break; - case 5: //CLIMATE_MODE_DRY - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE58D"); - id(disp1).set_component_font_color("climate.target_icon", 64704); - break; - case 6: //CLIMATE_MODE_AUTO - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uEE8D"); - id(disp1).set_component_font_color("climate.target_icon", 35921); - break; - } - case 2: //CLIMATE_ACTION_COOLING - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE716"); - id(disp1).set_component_font_color("climate.target_icon", 1055); - break; - case 3: //CLIMATE_ACTION_HEATING - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE237"); - id(disp1).set_component_font_color("climate.target_icon", 64164); - break; - case 4: //CLIMATE_ACTION_IDLE - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE50E"); // mdi:thermometer - id(disp1).set_component_font_color("climate.target_icon", 35921); - break; - case 5: //CLIMATE_ACTION_DRYING - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE58D"); - id(disp1).set_component_font_color("climate.target_icon", 64704); - break; - case 6: //CLIMATE_ACTION_FAN - id(disp1).set_component_text_printf("climate.target_icon", "%s", "\uE20F"); - id(disp1).set_component_font_color("climate.target_icon", 1530); - break; - } + id(update_climate_icon).execute("climate.target_icon", int(id(thermostat_embedded).action), int(id(thermostat_embedded).mode)); # Update buttons bar - lambda: |-