From 6fbbc2f12ea99d7ca6f21e677dd714c4a3f5927f Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 30 May 2022 19:50:09 +0200 Subject: [PATCH] add screen brightness --- .../luibackend/controller.py | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/apps/nspanel-lovelace-ui/luibackend/controller.py b/apps/nspanel-lovelace-ui/luibackend/controller.py index bb1597d8..f23b0bae 100644 --- a/apps/nspanel-lovelace-ui/luibackend/controller.py +++ b/apps/nspanel-lovelace-ui/luibackend/controller.py @@ -36,17 +36,22 @@ class LuiController(object): self._ha_api.run_daily(self.update_screensaver_brightness, timeset["time"], value=timeset["value"]) # 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") 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) - # 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") 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) + # 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): self._ha_api.log(f"Startup Event") @@ -59,7 +64,7 @@ class LuiController(object): self._send_mqtt_msg(f"timeout~{timeout}") # 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 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): if type(self._config.get("sleepBrightness")) == str: - self.current_screensaver_brightness = self.calc_current_screensaver_brightness() - self.update_screensaver_brightness(kwargs={"value": self.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")) + self.update_screensaver_brightness(kwargs={"ssbr": self.current_screensaver_brightness, "sbr": self.current_screen_brightness}) def update_screensaver_brightness(self, kwargs): 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"]: - brightness = 0 + sleepBrightness = 0 else: - self.current_screensaver_brightness = kwargs['value'] - brightness = kwargs['value'] - self._send_mqtt_msg(f"dimmode~{brightness}") + self.current_screensaver_brightness = kwargs['ssbr'] + sleepBrightness = self.current_screensaver_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 - sleep_brightness_config = self._config.get("sleepBrightness") + #sleep_brightness_config = self._config.get("sleepBrightness") # set brightness of screensaver if type(sleep_brightness_config) == int: current_screensaver_brightness = sleep_brightness_config