diff --git a/apps/nspanel-lovelace-ui/luibackend/config.py b/apps/nspanel-lovelace-ui/luibackend/config.py index 9a6f5482..186d438a 100644 --- a/apps/nspanel-lovelace-ui/luibackend/config.py +++ b/apps/nspanel-lovelace-ui/luibackend/config.py @@ -68,6 +68,7 @@ class LuiBackendConfig(object): 'sleepTimeout': 20, 'sleepBrightness': 20, 'sleepTracking': None, + 'sleepOverride': None, 'locale': "en_US", 'timeFormat': "%H:%M", 'dateFormatBabel': "full", diff --git a/apps/nspanel-lovelace-ui/luibackend/controller.py b/apps/nspanel-lovelace-ui/luibackend/controller.py index 6025451a..dedf0346 100644 --- a/apps/nspanel-lovelace-ui/luibackend/controller.py +++ b/apps/nspanel-lovelace-ui/luibackend/controller.py @@ -42,6 +42,11 @@ class LuiController(object): bst = self._config.get("sleepTracking") if bst is not None and self._ha_api.entity_exists(bst): self._ha_api.listen_state(self.update_screensaver_brightness_state_callback, entity_id=bst) + + # call update_screensaver_brightness on entity configured in sleepOverride + sleepOverride = self._config.get("sleepOverride") + if sleepOverride is not None and sleepOverride["entity"] is not None and sleepOverride["brightness"] is not None and self._ha_api.entity_exists(sleepOverride["entity"]): + self._ha_api.listen_state(self.update_screensaver_brightness_state_callback, entity_id=sleepOverride["entity"]) # register callback for state changes on tracked value sleep_brightness_config = self._config.get("sleepBrightness") @@ -72,9 +77,15 @@ class LuiController(object): def update_screensaver_brightness(self, kwargs): bst = self._config.get("sleepTracking") + sleepOverride = self._config.get("sleepOverride") + brightness = 0 if bst is not None and self._ha_api.entity_exists(bst) and self._ha_api.get_entity(bst).state in ["not_home", "off"]: brightness = 0 + + elif sleepOverride is not None and sleepOverride["entity"] is not None and sleepOverride["brightness"] is not None and self._ha_api.entity_exists(sleepOverride["entity"]) and self._ha_api.get_entity(sleepOverride["entity"]) in ["on", "true", "home"]: + brightness = sleepOverride["brightness"] + else: self.current_screensaver_brightness = kwargs['value'] brightness = kwargs['value']