From ba166ac55b2bef79023f906680031064c3eab5f3 Mon Sep 17 00:00:00 2001 From: Edward Firmo <94725493+edwardtfn@users.noreply.github.com> Date: Mon, 4 Sep 2023 07:20:10 +0200 Subject: [PATCH] Fix button pages not showing --- nspanel_blueprint.yaml | 19 +++++++------------ nspanel_esphome.yaml | 32 ++++++++++++++++++-------------- 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/nspanel_blueprint.yaml b/nspanel_blueprint.yaml index 03fc712..7157464 100644 --- a/nspanel_blueprint.yaml +++ b/nspanel_blueprint.yaml @@ -7397,10 +7397,10 @@ action: data: btn_id: '{{ repeat.item.page }}.{{ repeat.item.component }}' btn_pic: '{{ btn_pic }}' - btn_bg: '{{ btn_bg }}' - btn_icon_font: '{{ btn_icon_font }}' - btn_txt_font: '{{ btn_txt_font }}' - btn_bri_font: '{{ btn_bri_font }}' + btn_bg: '{{ [ btn_bg ] if is_number(btn_bg) else btn_bg }}' + btn_icon_font: '{{ [ btn_icon_font ] if is_number(btn_icon_font) else btn_icon_font }}' + btn_txt_font: '{{ [ btn_txt_font ] if is_number(btn_txt_font) else btn_txt_font }}' + btn_bri_font: '{{ [ btn_bri_font ] if is_number(btn_bri_font) else btn_bri_font }}' btn_icon: '{{ btn_icon }}' btn_label: '{{ btn_label }}' btn_bri_txt: '{{ btn_bri_txt }}' @@ -8529,7 +8529,7 @@ action: page: '{{ button_domain }}' page_label: '{{ (button_context.name | replace("\\r", " ")) if button_context.name is string and button_context.name | length > 0 else state_attr(button_context.entity, "friendly_name") }}' page_icon: '{{ nextion.icon.domain[button_domain] }}' - page_icon_color: -1 #No color set + page_icon_color: [-1 ] #No color set entity: '{{ "embedded_climate" if button_context.entity == thermostat_embedded else button_context.entity }}' back_page: '{{ page.home }}' continue_on_error: true @@ -8590,7 +8590,7 @@ action: page: 'climate' page_label: '{{ state_attr(climate, "friendly_name") }}' page_icon: '' - page_icon_color: -1 #No color set + page_icon_color: [ -1 ] #No color set entity: '{{ "embedded_climate" if climate == thermostat_embedded else climate }}' back_page: '{{ page.home }}' continue_on_error: true @@ -8753,12 +8753,7 @@ action: 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)) - }} + 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 }}' entity: '{{ "embedded_climate" if last_click_button.entity == thermostat_embedded else last_click_button.entity }}' back_page: '{{ nspanel_event.page }}' continue_on_error: true diff --git a/nspanel_esphome.yaml b/nspanel_esphome.yaml index 3ece2e8..3e2f250 100644 --- a/nspanel_esphome.yaml +++ b/nspanel_esphome.yaml @@ -258,7 +258,7 @@ api: page: string page_label: string page_icon: string - page_icon_color: int + page_icon_color: int[] entity: string back_page: string then: @@ -267,7 +267,7 @@ api: ESP_LOGV("api.service.open_entity_settings_page", "page: %s", page.c_str()); ESP_LOGV("api.service.open_entity_settings_page", "page_label: %s", page_label.c_str()); ESP_LOGV("api.service.open_entity_settings_page", "page_icon: %s", page_icon.c_str()); - ESP_LOGV("api.service.open_entity_settings_page", "page_icon_color: %i", page_icon_color); + ESP_LOGV("api.service.open_entity_settings_page", "page_icon_color: %i, %i, %i", page_icon_color[0], page_icon_color[1], page_icon_color[2] ); ESP_LOGV("api.service.open_entity_settings_page", "entity: %s", entity.c_str()); ESP_LOGV("api.service.open_entity_settings_page", "back_page: %s", back_page.c_str()); id(disp1).set_component_text_printf("home.entity", "%s", entity.c_str()); @@ -279,9 +279,10 @@ api: { id(disp1).set_component_text_printf("icon_state", "%s", page_icon.c_str()); } - if (page_icon_color >= 0 and page != "climate") + if (page != "climate") { - id(disp1).set_component_font_color("icon_state", page_icon_color); + id(set_component_color).execute("icon_state", page_icon_color, {}); + //id(disp1).set_component_font_color("icon_state", page_icon_color); } if (page == "climate" and entity == "embedded_climate") id(addon_climate_set_climate_friendly_name).execute(page_label.c_str()); ESP_LOGV("api.service.open_entity_settings_page", "Finished"); @@ -342,10 +343,10 @@ api: variables: btn_id: string btn_pic: int - btn_bg: int - btn_icon_font: int - btn_txt_font: int - btn_bri_font: int + btn_bg: int[] + btn_icon_font: int[] + btn_txt_font: int[] + btn_bri_font: int[] btn_icon: string btn_label: string btn_bri_txt: string @@ -356,12 +357,15 @@ api: std::string btntext = btn_id.c_str() + std::string("text"); std::string btnbri = btn_id.c_str() + std::string("bri"); id(disp1).send_command_printf("%spic.pic=%i", btn_id.c_str(), btn_pic); - id(disp1).set_component_background_color(btnicon.c_str(), btn_bg); - id(disp1).set_component_background_color(btntext.c_str(), btn_bg); - id(disp1).set_component_background_color(btnbri.c_str(), btn_bg); - id(disp1).set_component_font_color(btnicon.c_str(), btn_icon_font); - id(disp1).set_component_font_color(btntext.c_str(), btn_txt_font); - id(disp1).set_component_font_color(btnbri.c_str(), btn_bri_font); + id(set_component_color).execute(btnicon.c_str(), btn_icon_font, btn_bg); + id(set_component_color).execute(btntext.c_str(), btn_txt_font, btn_bg); + id(set_component_color).execute(btnbri.c_str(), btn_bri_font, btn_bg); + //id(disp1).set_component_background_color(btnicon.c_str(), btn_bg); + //id(disp1).set_component_background_color(btntext.c_str(), btn_bg); + //id(disp1).set_component_background_color(btnbri.c_str(), btn_bg); + //id(disp1).set_component_font_color(btnicon.c_str(), btn_icon_font); + //id(disp1).set_component_font_color(btntext.c_str(), btn_txt_font); + //id(disp1).set_component_font_color(btnbri.c_str(), btn_bri_font); id(disp1).set_component_text_printf(btnicon.c_str(), "%s", btn_icon.c_str()); id(disp1).set_component_text_printf(btntext.c_str(), "%s", btn_label.c_str()); // id(disp1).set_component_text_printf(btnbri.c_str(), "%s", btn_bri_txt.c_str());