implement sleeptimeout

This commit is contained in:
joBr99
2023-11-20 18:41:09 +01:00
parent 3dcb91b276
commit c0ebe4a397
3 changed files with 30 additions and 11 deletions

View File

@@ -1,6 +1,5 @@
import logging import logging
def init(mqtt_client_from_manager): def init(mqtt_client_from_manager):
global mqtt_client global mqtt_client
mqtt_client = mqtt_client_from_manager mqtt_client = mqtt_client_from_manager
@@ -31,3 +30,9 @@ def entityUpd(topic, data):
def weatherUpdate(topic, data): def weatherUpdate(topic, data):
custom_send(topic, f"weatherUpdate~{data}") custom_send(topic, f"weatherUpdate~{data}")
def timeout(topic, timeout):
custom_send(topic, f"timeout~{timeout}")
def dimmode(topic, dimValue, dimValueNormal, backgroundColor, fontColor, featExperimentalSliders):
custom_send(topic, f"dimmode~{dimValue}~{dimValueNormal}~{backgroundColor}~{fontColor}~{featExperimentalSliders}")

View File

@@ -97,7 +97,25 @@ class LovelaceUIPanel:
def ha_event_callback(self, entity_id): def ha_event_callback(self, entity_id):
#logging.debug(f"{entity_id} updated/state changed") #logging.debug(f"{entity_id} updated/state changed")
if entity_id in self.current_card.get_entities(): if entity_id in self.current_card.get_entities():
self.render_current_page()
def render_current_page(self, switchPages=False):
if switchPages:
libs.panel_cmd.page_type(self.sendTopic, self.current_card.type)
if self.current_card.type in ["screensaver", "screensaver2"]:
libs.panel_cmd.weatherUpdate(self.sendTopic, self.current_card.render())
else:
libs.panel_cmd.entityUpd(self.sendTopic, self.current_card.render()) libs.panel_cmd.entityUpd(self.sendTopic, self.current_card.render())
# send sleepTimeout
sleepTimeout = self.settings.get("sleepTimeout", 20)
if self.current_card.config.get("sleepTimeout"):
sleepTimeout = self.current_card.config.get("sleepTimeout")
libs.panel_cmd.timeout(self.sendTopic, sleepTimeout)
# send dimmode
#libs.panel_cmd.dimmode(self.sendTopic, 10, 100, )
def customrecv_event_callback(self, msg): def customrecv_event_callback(self, msg):
logging.debug("Recv Message from NsPanel: %s", msg) logging.debug("Recv Message from NsPanel: %s", msg)
@@ -113,13 +131,11 @@ class LovelaceUIPanel:
ha_control.wait_for_ha_cache() ha_control.wait_for_ha_cache()
self.current_card = Screensaver(self.settings["locale"], self.settings["screensaver"], self) self.current_card = Screensaver(self.settings["locale"], self.settings["screensaver"], self)
libs.panel_cmd.page_type(self.sendTopic, self.current_card.type) self.render_current_page(switchPages=True)
libs.panel_cmd.weatherUpdate(self.sendTopic, self.current_card.render())
if msg[1] == "sleepReached": if msg[1] == "sleepReached":
self.privious_cards.append(self.current_card) self.privious_cards.append(self.current_card)
self.current_card = Screensaver(self.settings["locale"], self.settings["screensaver"], self) self.current_card = Screensaver(self.settings["locale"], self.settings["screensaver"], self)
libs.panel_cmd.page_type(self.sendTopic, self.current_card.type) self.render_current_page(switchPages=True)
libs.panel_cmd.weatherUpdate(self.sendTopic, self.current_card.render())
if msg[1] == "buttonPress2": if msg[1] == "buttonPress2":
entity_id = msg[2] entity_id = msg[2]
btype = msg[3] btype = msg[3]
@@ -133,8 +149,7 @@ class LovelaceUIPanel:
self.privious_cards.append( self.privious_cards.append(
list(self.cards.values())[0]) # TODO: Impelement default card config list(self.cards.values())[0]) # TODO: Impelement default card config
self.current_card = self.privious_cards.pop() self.current_card = self.privious_cards.pop()
libs.panel_cmd.page_type(self.sendTopic, self.current_card.type) self.render_current_page(switchPages=True)
libs.panel_cmd.entityUpd(self.sendTopic, self.current_card.render())
return return
# replace iid with real entity id # replace iid with real entity id
@@ -151,10 +166,8 @@ class LovelaceUIPanel:
iid = entity_id.split(".")[1] iid = entity_id.split(".")[1]
self.privious_cards.append(self.current_card) self.privious_cards.append(self.current_card)
self.current_card = self.searchCard(iid) self.current_card = self.searchCard(iid)
libs.panel_cmd.page_type( self.render_current_page(switchPages=True)
self.sendTopic, self.current_card.type)
libs.panel_cmd.entityUpd(
self.sendTopic, self.current_card.render())
# send ha stuff to ha # send ha stuff to ha
case _: case _:
ha_control.handle_buttons(entity_id, btype, value) ha_control.handle_buttons(entity_id, btype, value)

View File

@@ -12,6 +12,7 @@ class Card:
self.locale = locale self.locale = locale
self.title = config.get("title", "") self.title = config.get("title", "")
self.type = config.get("type", "") self.type = config.get("type", "")
self.config = config
self.panel = panel self.panel = panel
def render(self): def render(self):