Improve mqtt lwt on reconnect
This commit is contained in:
@@ -61,7 +61,14 @@ class MqttClient:
|
|||||||
def mqttc(self):
|
def mqttc(self):
|
||||||
return self._mqttc
|
return self._mqttc
|
||||||
|
|
||||||
|
def on_connect(self, client, userdata, flags, rc):
|
||||||
|
if self.availability_topic:
|
||||||
|
self.publish([MqttMessage(topic=self.availability_topic, payload=LWT_ONLINE, retain=True)])
|
||||||
|
|
||||||
|
|
||||||
def callbacks_subscription(self, callbacks):
|
def callbacks_subscription(self, callbacks):
|
||||||
|
self.mqttc.on_connect = self.on_connect
|
||||||
|
|
||||||
self.mqttc.connect(self.hostname, port=self.port)
|
self.mqttc.connect(self.hostname, port=self.port)
|
||||||
|
|
||||||
for topic, callback in callbacks:
|
for topic, callback in callbacks:
|
||||||
@@ -72,9 +79,6 @@ class MqttClient:
|
|||||||
|
|
||||||
self.mqttc.loop_start()
|
self.mqttc.loop_start()
|
||||||
|
|
||||||
if self.availability_topic:
|
|
||||||
self.publish([MqttMessage(topic=self.availability_topic, payload=LWT_ONLINE, retain=True)])
|
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
if self.availability_topic:
|
if self.availability_topic:
|
||||||
self.publish([MqttMessage(topic=self.availability_topic, payload=LWT_OFFLINE, retain=True)])
|
self.publish([MqttMessage(topic=self.availability_topic, payload=LWT_OFFLINE, retain=True)])
|
||||||
|
|||||||
Reference in New Issue
Block a user