diff --git a/apps/nspanel-lovelance-ui/nspanel-lovelance-ui.py b/apps/nspanel-lovelance-ui/nspanel-lovelance-ui.py index e99ba5c2..9fde0d49 100644 --- a/apps/nspanel-lovelance-ui/nspanel-lovelance-ui.py +++ b/apps/nspanel-lovelance-ui/nspanel-lovelance-ui.py @@ -35,8 +35,20 @@ class NsPanelLovelanceUI: if type(self.config["brightnessScreensaver"]) == int: self.current_screensaver_brightness = self.config["brightnessScreensaver"] elif type(self.config["brightnessScreensaver"]) == list: - for timeset in self.config["brightnessScreensaver"]: + sorted_timesets = sorted(self.config["brightnessScreensaver"], key=lambda d: self.api.parse_time(d['time'])) + found_current_dim_value = False + for timeset in sorted_timesets: self.api.run_daily(self.update_screensaver_brightness, timeset["time"], value=timeset["value"]) + if self.api.parse_time(timeset["time"]) > self.api.get_now().time() and not found_current_dim_value: + # first time after current time, set dim value + self.current_screensaver_brightness = timeset["value"] + found_current_dim_value = True + # send screensaver brightness in case config has changed + self.update_screensaver_brightness(kwargs={"value": self.current_screensaver_brightness}) + + # send date update in case config has been changed + self.update_date("") + # register callbacks self.register_callbacks() @@ -288,8 +300,8 @@ class NsPanelLovelanceUI: value = entity.state + " " + entity.attributes.unit_of_measurement return "entityUpd,{0},{1},{2},{3},{4},{5}".format(item_nr, "text", item, icon_id, name, value) - if item_type == "button" or item_type == "input_button": - return "entityUpd,{0},{1},{2},{3},{4},{5}".format(item_nr, "button", item, 3, name, "PRESS") + if item_type == "button": + return "entityUpd,{0},{1},{2},{3},{4},{5}".format(item_nr, item_type, item, 3, name, "PRESS") def generate_thermo_page(self, item): entity = self.api.get_entity(item)