add screen brightness

This commit is contained in:
Johannes
2022-05-30 19:50:09 +02:00
parent 8e631c7587
commit 6fbbc2f12e

View File

@@ -36,17 +36,22 @@ class LuiController(object):
self._ha_api.run_daily(self.update_screensaver_brightness, timeset["time"], value=timeset["value"]) self._ha_api.run_daily(self.update_screensaver_brightness, timeset["time"], value=timeset["value"])
# calculate current brightness # calculate current brightness
self.current_screensaver_brightness = self.calc_current_screensaver_brightness() self.current_screensaver_brightness = self.calc_current_brightness(self._config.get("sleepBrightness"))
self.current_screen_brightness = self.calc_current_brightness(self._config.get("screenBrightness"))
# call update_screensaver_brightness on changes of entity configured in brightnessScreensaverTracking # call update_screensaver_brightness on changes of entity configured in sleepTracking
bst = self._config.get("sleepTracking") bst = self._config.get("sleepTracking")
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)
# register callback for state changes on tracked value # register callback for state changes on tracked value (for input_number) - sleepBrightness
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):
self._ha_api.listen_state(self.update_screensaver_brightness_state_callback, entity_id=sleep_brightness_config) self._ha_api.listen_state(self.update_screensaver_brightness_state_callback, entity_id=sleep_brightness_config)
# register callback for state changes on tracked value (for input_number) - screenBrightness
screen_brightness_config = self._config.get("screenBrightness")
if type(screen_brightness_config) == str and self._ha_api.entity_exists(screen_brightness_config):
self._ha_api.listen_state(self.update_screensaver_brightness_state_callback, entity_id=screen_brightness_config)
def startup(self): def startup(self):
self._ha_api.log(f"Startup Event") self._ha_api.log(f"Startup Event")
@@ -59,7 +64,7 @@ class LuiController(object):
self._send_mqtt_msg(f"timeout~{timeout}") self._send_mqtt_msg(f"timeout~{timeout}")
# set current screensaver brightness # set current screensaver brightness
self.update_screensaver_brightness(kwargs={"value": self.current_screensaver_brightness}) self.update_screensaver_brightness(kwargs={"ssbr": self.current_screensaver_brightness, "sbr": self.current_screen_brightness})
# send panel to screensaver # send panel to screensaver
self._pages_gen.render_card(self._current_card) self._pages_gen.render_card(self._current_card)
@@ -67,22 +72,25 @@ class LuiController(object):
def update_screensaver_brightness_state_callback(self, entity, attribute, old, new, kwargs): def update_screensaver_brightness_state_callback(self, entity, attribute, old, new, kwargs):
if type(self._config.get("sleepBrightness")) == str: if type(self._config.get("sleepBrightness")) == str:
self.current_screensaver_brightness = self.calc_current_screensaver_brightness() self.current_screensaver_brightness = self.calc_current_brightness(self._config.get("sleepBrightness"))
self.update_screensaver_brightness(kwargs={"value": self.current_screensaver_brightness}) self.current_screen_brightness = self.calc_current_brightness(self._config.get("screenBrightness"))
self.update_screensaver_brightness(kwargs={"ssbr": self.current_screensaver_brightness, "sbr": self.current_screen_brightness})
def update_screensaver_brightness(self, kwargs): def update_screensaver_brightness(self, kwargs):
bst = self._config.get("sleepTracking") bst = self._config.get("sleepTracking")
brightness = 0 sleepBrightness = 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 sleepBrightness = 0
else: else:
self.current_screensaver_brightness = kwargs['value'] self.current_screensaver_brightness = kwargs['ssbr']
brightness = kwargs['value'] sleepBrightness = self.current_screensaver_brightness
self._send_mqtt_msg(f"dimmode~{brightness}") self.current_screen_brightness = kwargs['sbr']
brightness = self.current_screen_brightness
self._send_mqtt_msg(f"dimmode~{sleepBrightness}~{brightness}")
def calc_current_screensaver_brightness(self): def calc_current_brightness(self, sleep_brightness_config):
current_screensaver_brightness = 20 current_screensaver_brightness = 20
sleep_brightness_config = self._config.get("sleepBrightness") #sleep_brightness_config = self._config.get("sleepBrightness")
# set brightness of screensaver # set brightness of screensaver
if type(sleep_brightness_config) == int: if type(sleep_brightness_config) == int:
current_screensaver_brightness = sleep_brightness_config current_screensaver_brightness = sleep_brightness_config