From 6df63ea67ef7fe9f2486a2a80de9fc3be19436e4 Mon Sep 17 00:00:00 2001 From: joBr99 <29555657+joBr99@users.noreply.github.com> Date: Sun, 19 Nov 2023 18:50:48 +0100 Subject: [PATCH] fix callback --- nspanel-lovelace-ui/rootfs/usr/bin/mqtt-manager/main.py | 6 ++++-- nspanel-lovelace-ui/rootfs/usr/bin/mqtt-manager/panel.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/nspanel-lovelace-ui/rootfs/usr/bin/mqtt-manager/main.py b/nspanel-lovelace-ui/rootfs/usr/bin/mqtt-manager/main.py index d2c5c1e8..f4d84c7e 100644 --- a/nspanel-lovelace-ui/rootfs/usr/bin/mqtt-manager/main.py +++ b/nspanel-lovelace-ui/rootfs/usr/bin/mqtt-manager/main.py @@ -22,6 +22,7 @@ logging.basicConfig(level=logging.DEBUG) def on_connect(client, userdata, flags, rc): + global panels # global settings logging.info("Connected to MQTT Server") # for panel in settings["nspanels"].values(): @@ -30,10 +31,11 @@ def on_connect(client, userdata, flags, rc): client.subscribe("tele/tasmota_nspdev2/RESULT") def on_ha_update(entity_id): - for panel in panels: + for panel in panels.values(): panel.ha_event_callback(entity_id) def on_message(client, userdata, msg): + global panels try: if msg.payload.decode() == "": return @@ -87,7 +89,7 @@ def get_config(): def connect_and_loop(): - global settings, home_assistant + global settings, home_assistant, panels client.on_connect = on_connect client.on_message = on_message client.username_pw_set( diff --git a/nspanel-lovelace-ui/rootfs/usr/bin/mqtt-manager/panel.py b/nspanel-lovelace-ui/rootfs/usr/bin/mqtt-manager/panel.py index 7366dc83..cdb91d98 100644 --- a/nspanel-lovelace-ui/rootfs/usr/bin/mqtt-manager/panel.py +++ b/nspanel-lovelace-ui/rootfs/usr/bin/mqtt-manager/panel.py @@ -91,7 +91,7 @@ class LovelaceUIPanel: if iid in self.hidden_cards: return self.hidden_cards[iid] - def on_ha_update(entity_id): + def ha_event_callback(self, entity_id): logging.debug(f"{entity_id} updated/state changed") # TODO: Check if entity is on current card libs.panel_cmd.entityUpd(self.sendTopic, self.current_card.render())