aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Zinoviev <me@ch1p.io>2023-06-06 19:02:16 +0300
committerEvgeny Zinoviev <me@ch1p.io>2023-06-06 19:02:16 +0300
commit5e3605327510f9221d71554291aed4819e8371aa (patch)
tree907704f0bd74aeb666f70f639a8309acda2d22e1
parentc4190e7ceb14be41f6232157d059175cddae31f8 (diff)
parentea5cc50729acfd306a9b025fd7ca8e621facdfae (diff)
Merge branch 'mqtt-refactoring' of ch1p.io:homekit into mqtt-refactoring
-rw-r--r--src/home/mqtt/_module.py3
-rw-r--r--src/home/mqtt/_node.py5
2 files changed, 8 insertions, 0 deletions
diff --git a/src/home/mqtt/_module.py b/src/home/mqtt/_module.py
index ef50e70..840534e 100644
--- a/src/home/mqtt/_module.py
+++ b/src/home/mqtt/_module.py
@@ -27,6 +27,9 @@ class MqttModule(abc.ABC):
def set_initialized(self):
self._initialized = True
+ def unset_initialized(self):
+ self._initialized = False
+
def tick(self, mqtt: MqttNode):
pass
diff --git a/src/home/mqtt/_node.py b/src/home/mqtt/_node.py
index 688b30b..9e39911 100644
--- a/src/home/mqtt/_node.py
+++ b/src/home/mqtt/_node.py
@@ -38,6 +38,11 @@ class MqttNode(MqttBase):
module.init(self)
module.set_initialized()
+ def on_disconnect(self, client: mqtt.Client, userdata, rc):
+ super().on_disconnect(client, userdata, rc)
+ for module in self._modules:
+ module.unset_initialized()
+
def on_publish(self, client: mqtt.Client, userdata, mid):
pass # FIXME
# if self._ota_mid is not None and mid == self._ota_mid and self._ota_publish_callback: