mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2025-12-21 06:54:24 +01:00
implement sleeptimeout
This commit is contained in:
@@ -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}")
|
||||||
@@ -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)
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
Reference in New Issue
Block a user