From 00ddb505b9f6d937797ac1bdea1743f0ad7e4732 Mon Sep 17 00:00:00 2001 From: illuzn <57167030+illuzn@users.noreply.github.com> Date: Sat, 18 Jun 2022 23:46:48 +0930 Subject: [PATCH 1/6] Enable Status Icon Override --- apps/nspanel-lovelace-ui/luibackend/pages.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/nspanel-lovelace-ui/luibackend/pages.py b/apps/nspanel-lovelace-ui/luibackend/pages.py index 3a718474..3614af8d 100644 --- a/apps/nspanel-lovelace-ui/luibackend/pages.py +++ b/apps/nspanel-lovelace-ui/luibackend/pages.py @@ -167,7 +167,7 @@ class LuiPagesGen(object): if page_search_res is not None: name = name if name is not None else page_search_res.title text = get_translation(self._locale, "frontend.ui.card.button.press") - icon_id = get_icon_id(icon) if icon is not None else get_icon_id("gesture-tap-button") + status_entity = None if item.status is not None and self._ha_api.entity_exists(item.status): status_entity = self._ha_api.get_entity(item.status) icon_color = self.get_entity_color(status_entity) @@ -177,6 +177,7 @@ class LuiPagesGen(object): icon_id = icon_id[:-1] else: icon_color = 17299 + icon_id = get_icon_id_ha("sensor", state=status_entity.state, overwrite=icon) if icon is not None else get_icon_id("gesture-tap-button") return f"~button~{entityId}~{icon_id}~{icon_color}~{name}~{text}" else: return f"~text~{entityId}~{get_icon_id('alert-circle-outline')}~17299~page not found~" From 56522c044496779db91aa3692656658170c72d4e Mon Sep 17 00:00:00 2001 From: illuzn <57167030+illuzn@users.noreply.github.com> Date: Sat, 18 Jun 2022 23:52:30 +0930 Subject: [PATCH 2/6] Update pages.py --- apps/nspanel-lovelace-ui/luibackend/pages.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/nspanel-lovelace-ui/luibackend/pages.py b/apps/nspanel-lovelace-ui/luibackend/pages.py index 3614af8d..5ccda618 100644 --- a/apps/nspanel-lovelace-ui/luibackend/pages.py +++ b/apps/nspanel-lovelace-ui/luibackend/pages.py @@ -165,9 +165,10 @@ class LuiPagesGen(object): if entityType == "navigate": page_search_res = self._config.searchCard(entityId) if page_search_res is not None: + icon_id = get_icon_id("gesture-tap-button") + status_entity = None name = name if name is not None else page_search_res.title text = get_translation(self._locale, "frontend.ui.card.button.press") - status_entity = None if item.status is not None and self._ha_api.entity_exists(item.status): status_entity = self._ha_api.get_entity(item.status) icon_color = self.get_entity_color(status_entity) @@ -177,7 +178,8 @@ class LuiPagesGen(object): icon_id = icon_id[:-1] else: icon_color = 17299 - icon_id = get_icon_id_ha("sensor", state=status_entity.state, overwrite=icon) if icon is not None else get_icon_id("gesture-tap-button") + if icon is not None: + icon_id = get_icon_id_ha("sensor", state=status_entity.state, overwrite=icon) return f"~button~{entityId}~{icon_id}~{icon_color}~{name}~{text}" else: return f"~text~{entityId}~{get_icon_id('alert-circle-outline')}~17299~page not found~" From d1d85d68cb07a9bd2e82883995e6175520c85637 Mon Sep 17 00:00:00 2001 From: illuzn <57167030+illuzn@users.noreply.github.com> Date: Sun, 19 Jun 2022 00:03:36 +0930 Subject: [PATCH 3/6] Fix logical flow --- apps/nspanel-lovelace-ui/luibackend/pages.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/nspanel-lovelace-ui/luibackend/pages.py b/apps/nspanel-lovelace-ui/luibackend/pages.py index 5ccda618..5c881621 100644 --- a/apps/nspanel-lovelace-ui/luibackend/pages.py +++ b/apps/nspanel-lovelace-ui/luibackend/pages.py @@ -179,7 +179,10 @@ class LuiPagesGen(object): else: icon_color = 17299 if icon is not None: - icon_id = get_icon_id_ha("sensor", state=status_entity.state, overwrite=icon) + if status_entity is not None: + icon_id = get_icon_id_ha("sensor", state=status_entity.state, overwrite=icon) + else: + icon_id = get_icon_id(icon) return f"~button~{entityId}~{icon_id}~{icon_color}~{name}~{text}" else: return f"~text~{entityId}~{get_icon_id('alert-circle-outline')}~17299~page not found~" From f6a99a1a4bbf6cf20ed1d7b355bce4784199a08c Mon Sep 17 00:00:00 2001 From: joBr99 <29555657+joBr99@users.noreply.github.com> Date: Sat, 18 Jun 2022 16:39:42 +0200 Subject: [PATCH 4/6] Update pages.py --- apps/nspanel-lovelace-ui/luibackend/pages.py | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/apps/nspanel-lovelace-ui/luibackend/pages.py b/apps/nspanel-lovelace-ui/luibackend/pages.py index 5c881621..33060c32 100644 --- a/apps/nspanel-lovelace-ui/luibackend/pages.py +++ b/apps/nspanel-lovelace-ui/luibackend/pages.py @@ -165,32 +165,28 @@ class LuiPagesGen(object): if entityType == "navigate": page_search_res = self._config.searchCard(entityId) if page_search_res is not None: - icon_id = get_icon_id("gesture-tap-button") + icon_res = get_icon_id(icon) if icon is not None else get_icon_id("gesture-tap-button") status_entity = None name = name if name is not None else page_search_res.title text = get_translation(self._locale, "frontend.ui.card.button.press") if item.status is not None and self._ha_api.entity_exists(item.status): status_entity = self._ha_api.get_entity(item.status) + icon_res = get_icon_id_ha("sensor", state=status_entity.state, device_class=status_entity.attributes.get("device_class", "_"), overwrite=icon) icon_color = self.get_entity_color(status_entity) if item.status.startswith("sensor") and cardType == "cardGrid": - icon_id = status_entity.state[:4] - if icon_id[-1] == ".": - icon_id = icon_id[:-1] + icon_res = status_entity.state[:4] + if icon_res[-1] == ".": + icon_res = icon_res[:-1] else: icon_color = 17299 - if icon is not None: - if status_entity is not None: - icon_id = get_icon_id_ha("sensor", state=status_entity.state, overwrite=icon) - else: - icon_id = get_icon_id(icon) - return f"~button~{entityId}~{icon_id}~{icon_color}~{name}~{text}" + return f"~button~{entityId}~{icon_res}~{icon_color}~{name}~{text}" else: return f"~text~{entityId}~{get_icon_id('alert-circle-outline')}~17299~page not found~" if entityType == "iText": value = entityId.split(".", 2)[1] name = name if name is not None else "conf name missing" icon_id = get_icon_id(icon) if icon is not None else get_icon_id("alert-circle-outline") - return f"~text~{entityId}~{icon_id}~17299~{name}~{value}" + return f"~text~{entityId}~{icon_res}~17299~{name}~{value}" if not self._ha_api.entity_exists(entityId): return f"~text~{entityId}~{get_icon_id('alert-circle-outline')}~17299~Not found check~ apps.yaml" From 55b61495cf7c39269456910a04663b850803cda9 Mon Sep 17 00:00:00 2001 From: joBr99 <29555657+joBr99@users.noreply.github.com> Date: Sat, 18 Jun 2022 16:43:19 +0200 Subject: [PATCH 5/6] Update pages.py --- apps/nspanel-lovelace-ui/luibackend/pages.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/nspanel-lovelace-ui/luibackend/pages.py b/apps/nspanel-lovelace-ui/luibackend/pages.py index 33060c32..d789375f 100644 --- a/apps/nspanel-lovelace-ui/luibackend/pages.py +++ b/apps/nspanel-lovelace-ui/luibackend/pages.py @@ -171,7 +171,7 @@ class LuiPagesGen(object): text = get_translation(self._locale, "frontend.ui.card.button.press") if item.status is not None and self._ha_api.entity_exists(item.status): status_entity = self._ha_api.get_entity(item.status) - icon_res = get_icon_id_ha("sensor", state=status_entity.state, device_class=status_entity.attributes.get("device_class", "_"), overwrite=icon) + icon_res = get_icon_id_ha(item.status.split(".")[0], state=status_entity.state, device_class=status_entity.attributes.get("device_class", "_"), overwrite=icon) icon_color = self.get_entity_color(status_entity) if item.status.startswith("sensor") and cardType == "cardGrid": icon_res = status_entity.state[:4] From ed6bac8d51ed8c4bd432fb1231abe73c508cae1d Mon Sep 17 00:00:00 2001 From: joBr99 <29555657+joBr99@users.noreply.github.com> Date: Sat, 18 Jun 2022 16:56:28 +0200 Subject: [PATCH 6/6] fix --- apps/nspanel-lovelace-ui/luibackend/pages.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/nspanel-lovelace-ui/luibackend/pages.py b/apps/nspanel-lovelace-ui/luibackend/pages.py index d789375f..3d4cb4f6 100644 --- a/apps/nspanel-lovelace-ui/luibackend/pages.py +++ b/apps/nspanel-lovelace-ui/luibackend/pages.py @@ -185,7 +185,7 @@ class LuiPagesGen(object): if entityType == "iText": value = entityId.split(".", 2)[1] name = name if name is not None else "conf name missing" - icon_id = get_icon_id(icon) if icon is not None else get_icon_id("alert-circle-outline") + icon_res = get_icon_id(icon) if icon is not None else get_icon_id("alert-circle-outline") return f"~text~{entityId}~{icon_res}~17299~{name}~{value}" if not self._ha_api.entity_exists(entityId): return f"~text~{entityId}~{get_icon_id('alert-circle-outline')}~17299~Not found check~ apps.yaml"