From 20c02007fa9c950ace03af862ba716f51bf4fe9b Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 21 Mar 2022 21:31:42 +0100 Subject: [PATCH] cleanup get all items --- .../nspanel-lovelace-ui.py | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/apps/nspanel-lovelace-ui/nspanel-lovelace-ui.py b/apps/nspanel-lovelace-ui/nspanel-lovelace-ui.py index 8ecf9df6..b918b753 100644 --- a/apps/nspanel-lovelace-ui/nspanel-lovelace-ui.py +++ b/apps/nspanel-lovelace-ui/nspanel-lovelace-ui.py @@ -99,7 +99,6 @@ class NsPanelLovelaceUI: update_mode = "auto-notify" self.updater = Updater(self, update_mode) - # Request Tasmota Driver Version self.mqtt.mqtt_publish(self.config["panelSendTopic"].replace("CustomSend", "GetDriverVersion"), "x") @@ -368,13 +367,27 @@ class NsPanelLovelaceUI: pos = pos/100 self.api.get_entity(entity_id).call_service("volume_set", volume_level=pos) - def check_items(self): + def get_all_configured_items(self, pages): items = [] - for page in self.config["pages"]: + for page in pages: if "item" in page: items.append(page["item"]) if "items" in page: items.extend(page["items"]) + + # remove all dicts from list + cleaned_list = [] + for item in items: + # in case item is a dict, grab the key and replace it + if type(item) is dict: + cleaned_list.append(next(iter(item))) + else: + cleaned_list.append(item) + + return cleaned_list + + def check_items(self): + items = self.get_all_configured_items(self.config["pages"]) for item in items: # in case item is a dict, grab the key and use it as item name @@ -387,12 +400,7 @@ class NsPanelLovelaceUI: self.api.error("The following item does not exist in Home Assistant, configuration error: %s", item) def register_callbacks(self): - items = [] - for page in self.config["pages"]: - if "item" in page: - items.append(page["item"]) - if "items" in page: - items.extend(page["items"]) + items = self.get_all_configured_items(self.config["pages"]) for item in items: if not self.api.entity_exists(item):