diff --git a/apps/nspanel-lovelace-ui/luibackend/helper.py b/apps/nspanel-lovelace-ui/luibackend/helper.py index da52489b..64f3a8f4 100644 --- a/apps/nspanel-lovelace-ui/luibackend/helper.py +++ b/apps/nspanel-lovelace-ui/luibackend/helper.py @@ -1,5 +1,6 @@ import colorsys import math +import apis def scale(val, src, dst): """ @@ -37,6 +38,8 @@ def rgb_brightness(rgb_color, brightness): return [int(red), int(green), int(blue)] def rgb_dec565(rgb_color): + if type(rgb_color) is str: + rgb_color = apis.ha_api.render_template(rgb_color) red = rgb_color[0] green = rgb_color[1] blue = rgb_color[2] diff --git a/apps/nspanel-lovelace-ui/luibackend/pages.py b/apps/nspanel-lovelace-ui/luibackend/pages.py index 3805454a..74bdedb8 100644 --- a/apps/nspanel-lovelace-ui/luibackend/pages.py +++ b/apps/nspanel-lovelace-ui/luibackend/pages.py @@ -25,7 +25,7 @@ class LuiPagesGen(object): def get_entity_color(self, entity, ha_type=None, overwrite=None): if overwrite is not None: - if type(overwrite) is list: + if type(overwrite) in [str, list]: return rgb_dec565(overwrite) if type(overwrite) is dict: state = entity.state diff --git a/docs/entities.md b/docs/entities.md index ea826167..2e6519be 100644 --- a/docs/entities.md +++ b/docs/entities.md @@ -45,6 +45,11 @@ It is also possible to configure different color overwrites per state: "on": [255,0,0] "off": [0,0,255] ``` +Dynamic color overwrites using homeassistant templates: + +```yaml + color: '{{iif(states("binary_sensor.test")=="on", "[0,255,0]", "[255,165,0]")}}' +``` It is also possible to use text instead of icons with `text:X`