This commit is contained in:
Johannes
2022-06-06 15:15:24 +02:00
parent c3d2741c23
commit fc245e71e3
2 changed files with 11 additions and 7 deletions

View File

@@ -457,9 +457,10 @@ key | optional | type | default | description
`entity` | False | string | `None` | name of ha entity `entity` | False | string | `None` | name of ha entity
`name` | True | string | `None` | Used to override names `name` | True | string | `None` | Used to override names
`icon` | True | string | `None` | Used to override icons `icon` | True | string | `None` | Used to override icons
`color` | True | array | `None` | Overwrite color of entity `color: [255, 0, 0]`
`state` | True | string | `None` | Only displayed if Entity state is equal to this value `state` | True | string | `None` | Only displayed if Entity state is equal to this value
`state_not` | True | string | `None` | Only displayed if Entity state is unequal to this value `state_not` | True | string | `None` | Only displayed if Entity state is unequal to this value
`status` | True | string | `None` | Only valid for navigate items, adds a entity to track state for the color of the icon `status` | True | string | `None` | Only valid for navigate items, adds a entity to track state for the icon
##### Override Icons or Names ##### Override Icons or Names

View File

@@ -22,7 +22,9 @@ class LuiPagesGen(object):
self._locale = config.get("locale") self._locale = config.get("locale")
self._send_mqtt_msg = send_mqtt_msg self._send_mqtt_msg = send_mqtt_msg
def get_entity_color(self, entity): def get_entity_color(self, entity, overwrite=None):
if overwrite is not None:
return rgb_dec565(overwrite)
attr = entity.attributes attr = entity.attributes
default_color_on = rgb_dec565([253, 216, 53]) default_color_on = rgb_dec565([253, 216, 53])
default_color_off = rgb_dec565([68, 115, 158]) default_color_off = rgb_dec565([68, 115, 158])
@@ -149,6 +151,7 @@ class LuiPagesGen(object):
def generate_entities_item(self, item, cardType): def generate_entities_item(self, item, cardType):
entityId = item.entityId entityId = item.entityId
icon = item.iconOverride icon = item.iconOverride
colorOverride = item.colorOverride
name = item.nameOverride name = item.nameOverride
# type of the item is the string before the "." in the entityId # type of the item is the string before the "." in the entityId
entityType = entityId.split(".")[0] entityType = entityId.split(".")[0]
@@ -216,12 +219,12 @@ class LuiPagesGen(object):
return f"~shutter~{entityId}~{icon_id}~17299~{name}~{icon_up}|{icon_stop}|{icon_down}|{status}" return f"~shutter~{entityId}~{icon_id}~17299~{name}~{icon_up}|{icon_stop}|{icon_down}|{status}"
if entityType in "light": if entityType in "light":
switch_val = 1 if entity.state == "on" else 0 switch_val = 1 if entity.state == "on" else 0
icon_color = self.get_entity_color(entity) icon_color = self.get_entity_color(entity, overwrite=colorOverride)
icon_id = get_icon_id_ha("light", overwrite=icon) icon_id = get_icon_id_ha("light", overwrite=icon)
return f"~{entityType}~{entityId}~{icon_id}~{icon_color}~{name}~{switch_val}" return f"~{entityType}~{entityId}~{icon_id}~{icon_color}~{name}~{switch_val}"
if entityType in ["switch", "input_boolean", "automation"]: if entityType in ["switch", "input_boolean", "automation"]:
switch_val = 1 if entity.state == "on" else 0 switch_val = 1 if entity.state == "on" else 0
icon_color = self.get_entity_color(entity) icon_color = self.get_entity_color(entity, overwrite=colorOverride)
icon_id = get_icon_id_ha(entityType, state=entity.state, overwrite=icon) icon_id = get_icon_id_ha(entityType, state=entity.state, overwrite=icon)
return f"~switch~{entityId}~{icon_id}~{icon_color}~{name}~{switch_val}" return f"~switch~{entityId}~{icon_id}~{icon_color}~{name}~{switch_val}"
if entityType in ["sensor", "binary_sensor"]: if entityType in ["sensor", "binary_sensor"]:
@@ -234,7 +237,7 @@ class LuiPagesGen(object):
icon_id = icon_id[:-1] icon_id = icon_id[:-1]
else: else:
icon_id = get_icon_id_ha("sensor", state=entity.state, device_class=device_class, overwrite=icon) icon_id = get_icon_id_ha("sensor", state=entity.state, device_class=device_class, overwrite=icon)
icon_color = self.get_entity_color(entity) icon_color = self.get_entity_color(entity, overwrite=colorOverride)
return f"~text~{entityId}~{icon_id}~{icon_color}~{name}~{value}" return f"~text~{entityId}~{icon_id}~{icon_color}~{name}~{value}"
if entityType in ["button", "input_button"]: if entityType in ["button", "input_button"]:
icon_id = get_icon_id_ha("button", overwrite=icon) icon_id = get_icon_id_ha("button", overwrite=icon)
@@ -250,7 +253,7 @@ class LuiPagesGen(object):
return f"~button~{entityId}~{icon_id}~17299~{name}~{text}" return f"~button~{entityId}~{icon_id}~17299~{name}~{text}"
if entityType == "lock": if entityType == "lock":
icon_id = get_icon_id_ha("lock", state=entity.state, overwrite=icon) icon_id = get_icon_id_ha("lock", state=entity.state, overwrite=icon)
icon_color = self.get_entity_color(entity) icon_color = self.get_entity_color(entity, overwrite=colorOverride)
text = get_translation(self._locale, "frontend.ui.card.lock.lock") if entity.state == "unlocked" else get_translation(self._locale, "frontend.ui.card.lock.unlock") text = get_translation(self._locale, "frontend.ui.card.lock.lock") if entity.state == "unlocked" else get_translation(self._locale, "frontend.ui.card.lock.unlock")
return f"~button~{entityId}~{icon_id}~{icon_color}~{name}~{text}" return f"~button~{entityId}~{icon_id}~{icon_color}~{name}~{text}"
if entityType == "number": if entityType == "number":
@@ -260,7 +263,7 @@ class LuiPagesGen(object):
return f"~number~{entityId}~{icon_id}~17299~{name}~{entity.state}|{min_v}|{max_v}" return f"~number~{entityId}~{icon_id}~17299~{name}~{entity.state}|{min_v}|{max_v}"
if entityType == "fan": if entityType == "fan":
icon_id = get_icon_id_ha("fan", overwrite=icon) icon_id = get_icon_id_ha("fan", overwrite=icon)
icon_color = self.get_entity_color(entity) icon_color = self.get_entity_color(entity, overwrite=colorOverride)
return f"~number~{entityId}~{icon_id}~{icon_color}~{name}~{entity.attributes.percentage}|0|100" return f"~number~{entityId}~{icon_id}~{icon_color}~{name}~{entity.attributes.percentage}|0|100"
if entityType == "input_text": if entityType == "input_text":
icon_id = get_icon_id_ha("input_text", overwrite=icon) icon_id = get_icon_id_ha("input_text", overwrite=icon)