Enable sleepOverride

This commit is contained in:
illuzn
2022-05-30 14:22:38 +09:30
parent 9d34caaca6
commit 52205e8c11
2 changed files with 12 additions and 0 deletions

View File

@@ -68,6 +68,7 @@ class LuiBackendConfig(object):
'sleepTimeout': 20, 'sleepTimeout': 20,
'sleepBrightness': 20, 'sleepBrightness': 20,
'sleepTracking': None, 'sleepTracking': None,
'sleepOverride': None,
'locale': "en_US", 'locale': "en_US",
'timeFormat': "%H:%M", 'timeFormat': "%H:%M",
'dateFormatBabel': "full", 'dateFormatBabel': "full",

View File

@@ -43,6 +43,11 @@ class LuiController(object):
if bst is not None and self._ha_api.entity_exists(bst): 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) 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 # register callback for state changes on tracked value
sleep_brightness_config = self._config.get("sleepBrightness") sleep_brightness_config = self._config.get("sleepBrightness")
if type(sleep_brightness_config) == str and self._ha_api.entity_exists(sleep_brightness_config): if type(sleep_brightness_config) == str and self._ha_api.entity_exists(sleep_brightness_config):
@@ -72,9 +77,15 @@ class LuiController(object):
def update_screensaver_brightness(self, kwargs): def update_screensaver_brightness(self, kwargs):
bst = self._config.get("sleepTracking") bst = self._config.get("sleepTracking")
sleepOverride = self._config.get("sleepOverride")
brightness = 0 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"]: 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 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: else:
self.current_screensaver_brightness = kwargs['value'] self.current_screensaver_brightness = kwargs['value']
brightness = kwargs['value'] brightness = kwargs['value']