mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2025-12-20 14:37:01 +01:00
implement #254
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user