mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2026-02-21 13:44:45 +01:00
fixes #805
This commit is contained in:
@@ -11,7 +11,6 @@ class Entity(object):
|
|||||||
def __init__(self, entity_input_config):
|
def __init__(self, entity_input_config):
|
||||||
self.uuid = f"uuid.{uuid()}"
|
self.uuid = f"uuid.{uuid()}"
|
||||||
if type(entity_input_config) is not dict:
|
if type(entity_input_config) is not dict:
|
||||||
#self._ha_api.log("Config error, not a dict check your entity configs")
|
|
||||||
self.entityId = "error"
|
self.entityId = "error"
|
||||||
else:
|
else:
|
||||||
self.entityId = entity_input_config.get("entity", "unknown")
|
self.entityId = entity_input_config.get("entity", "unknown")
|
||||||
@@ -59,26 +58,34 @@ class Card(object):
|
|||||||
|
|
||||||
def get_entity_names(self, uuid=False):
|
def get_entity_names(self, uuid=False):
|
||||||
entityIds = {}
|
entityIds = {}
|
||||||
|
#apis.ha_api.log(f"test123 {self.entity.entityId}")
|
||||||
if self.entity is not None:
|
if self.entity is not None:
|
||||||
entityIds[self.entity.uuid] = self.entity.entityId
|
#entityIds[self.entity.uuid] = self.entity.entityId
|
||||||
|
entityIds.setdefault(self.entity.uuid, []).append(self.entity.entityId)
|
||||||
if self.entity.status is not None:
|
if self.entity.status is not None:
|
||||||
entityIds[self.entity.uuid] = self.entity.status
|
#entityIds[self.entity.uuid] = self.entity.status
|
||||||
|
entityIds.setdefault(self.entity.uuid, []).append(self.entity.status)
|
||||||
for e in self.entities:
|
for e in self.entities:
|
||||||
entityIds[e.uuid] = e.entityId
|
#entityIds[e.uuid] = e.entityId
|
||||||
|
entityIds.setdefault(e.uuid, []).append(e.entityId)
|
||||||
if e.status is not None:
|
if e.status is not None:
|
||||||
entityIds[e.uuid] = e.status
|
#entityIds[e.uuid] = e.status
|
||||||
|
entityIds.setdefault(e.uuid, []).append(e.status)
|
||||||
|
|
||||||
# additional keys to check
|
# additional keys to check
|
||||||
add_ent_keys = ['statusIcon1', 'statusIcon2', 'alarmControl']
|
add_ent_keys = ['statusIcon1', 'statusIcon2', 'alarmControl']
|
||||||
for ent_key in add_ent_keys:
|
for ent_key in add_ent_keys:
|
||||||
val = self.raw_config.get(ent_key)
|
val = self.raw_config.get(ent_key)
|
||||||
if val is not None:
|
if val is not None:
|
||||||
entityIds[f"{ent_key}."] = val.get("entity")
|
#entityIds[f"{ent_key}."] = val.get("entity")
|
||||||
|
ntityIds.setdefault(self.entity.uuid, []).append(val.get("entity"))
|
||||||
if uuid:
|
if uuid:
|
||||||
return entityIds
|
return entityIds
|
||||||
else:
|
else:
|
||||||
return entityIds.values()
|
out = []
|
||||||
|
for l in entityIds.values():
|
||||||
|
out.extend(l)
|
||||||
|
return out
|
||||||
|
|
||||||
def get_entity_list(self):
|
def get_entity_list(self):
|
||||||
entitys = []
|
entitys = []
|
||||||
|
|||||||
@@ -144,6 +144,7 @@ class LuiController(object):
|
|||||||
apis.ha_api.listen_state(self.update_screensaver_brightness_state_callback, entity_id=screen_brightness_config)
|
apis.ha_api.listen_state(self.update_screensaver_brightness_state_callback, entity_id=screen_brightness_config)
|
||||||
|
|
||||||
items = self._config.get_all_entity_names()
|
items = self._config.get_all_entity_names()
|
||||||
|
apis.ha_api.log(f"gtest123: {items}")
|
||||||
prefixes = ("navigate.")
|
prefixes = ("navigate.")
|
||||||
items = [x for x in items if not x.startswith(prefixes)]
|
items = [x for x in items if not x.startswith(prefixes)]
|
||||||
apis.ha_api.log(f"Registering callbacks for the following items: {items}")
|
apis.ha_api.log(f"Registering callbacks for the following items: {items}")
|
||||||
@@ -152,18 +153,18 @@ class LuiController(object):
|
|||||||
apis.ha_api.listen_state(self.state_change_callback, entity_id=item, attribute="all")
|
apis.ha_api.listen_state(self.state_change_callback, entity_id=item, attribute="all")
|
||||||
|
|
||||||
def state_change_callback(self, entity, attribute, old, new, kwargs):
|
def state_change_callback(self, entity, attribute, old, new, kwargs):
|
||||||
apis.ha_api.log(f"Got callback for: {entity}", level="DEBUG")
|
#apis.ha_api.log(f"Got callback for: {entity}")
|
||||||
apis.ha_api.log(f"Current page has the following items: {self._current_card.get_entity_names()}", level="DEBUG")
|
#apis.ha_api.log(f"Current page has the following items: {self._current_card.get_entity_names(uuid=True)}")
|
||||||
entities_on_card = self._current_card.get_entity_names(uuid=True)
|
entities_on_card = self._current_card.get_entity_names(uuid=True)
|
||||||
|
|
||||||
# lookup uuid for enity on current card
|
|
||||||
res_uuid = "uuid.notfound"
|
res_uuid = "uuid.notfound"
|
||||||
if entity in entities_on_card.values():
|
if entity in sum(entities_on_card.values(), []):
|
||||||
for uuid, name in entities_on_card.items():
|
for uuid, names in entities_on_card.items():
|
||||||
if entity == name:
|
apis.ha_api.log(f"test124 items: {entities_on_card.items()} names: {names}")
|
||||||
|
if entity in names:
|
||||||
res_uuid = uuid
|
res_uuid = uuid
|
||||||
|
|
||||||
apis.ha_api.log(f"Callback Entity is on current page: {entity}", level="DEBUG")
|
#apis.ha_api.log(f"Callback Entity is on current page: {entity}")
|
||||||
self._pages_gen.render_card(self._current_card, send_page_type=False)
|
self._pages_gen.render_card(self._current_card, send_page_type=False)
|
||||||
# send detail page update, just in case
|
# send detail page update, just in case
|
||||||
if self._current_card.cardType in ["cardGrid", "cardEntities", "cardMedia"]:
|
if self._current_card.cardType in ["cardGrid", "cardEntities", "cardMedia"]:
|
||||||
|
|||||||
Reference in New Issue
Block a user