From a0e25d5163abd616463309084152c9e491426176 Mon Sep 17 00:00:00 2001 From: Thomas Dietrich Date: Fri, 9 Sep 2022 23:15:06 +0200 Subject: [PATCH 1/5] Add LWT to mqtt connection --- bin/user/mqtt.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/user/mqtt.py b/bin/user/mqtt.py index cb673fa..7177b90 100644 --- a/bin/user/mqtt.py +++ b/bin/user/mqtt.py @@ -442,6 +442,7 @@ def get_mqtt_client(self): pad = "%032x" % random.getrandbits(128) client_id = 'weewx_%s' % pad[:8] mc = mqtt.Client(client_id=client_id) + mc.will_set(self.topic + '/lwt', payload='offline', retain=True) url = urlparse(self.server_url) if url.username is not None and url.password is not None: mc.username_pw_set(url.username, url.password) @@ -456,6 +457,7 @@ def get_mqtt_client(self): (_obfuscate_password(self.server_url), str(e))) self.mc = None return + mc.publish(self.topic + '/lwt', payload='online', retain=True) mc.loop_start() loginf('client established for %s' % _obfuscate_password(self.server_url)) From d58fc6ebf885d85ad78e206f43f3c32ccd513505 Mon Sep 17 00:00:00 2001 From: Thomas Dietrich Date: Sun, 18 Sep 2022 20:40:19 +0200 Subject: [PATCH 2/5] Update mqtt.py --- bin/user/mqtt.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/user/mqtt.py b/bin/user/mqtt.py index 7177b90..5146c3d 100644 --- a/bin/user/mqtt.py +++ b/bin/user/mqtt.py @@ -442,7 +442,7 @@ def get_mqtt_client(self): pad = "%032x" % random.getrandbits(128) client_id = 'weewx_%s' % pad[:8] mc = mqtt.Client(client_id=client_id) - mc.will_set(self.topic + '/lwt', payload='offline', retain=True) + mc.will_set(self.topic + '/available', payload='offline', retain=True) url = urlparse(self.server_url) if url.username is not None and url.password is not None: mc.username_pw_set(url.username, url.password) @@ -457,7 +457,7 @@ def get_mqtt_client(self): (_obfuscate_password(self.server_url), str(e))) self.mc = None return - mc.publish(self.topic + '/lwt', payload='online', retain=True) + mc.publish(self.topic + '/available', payload='online', retain=True) mc.loop_start() loginf('client established for %s' % _obfuscate_password(self.server_url)) From 0c6110badf304d6346a5d71d5dc122d972767501 Mon Sep 17 00:00:00 2001 From: Thomas Dietrich Date: Sun, 18 Sep 2022 20:41:19 +0200 Subject: [PATCH 3/5] Update mqtt.py --- bin/user/mqtt.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/user/mqtt.py b/bin/user/mqtt.py index 5146c3d..2fc321b 100644 --- a/bin/user/mqtt.py +++ b/bin/user/mqtt.py @@ -442,7 +442,7 @@ def get_mqtt_client(self): pad = "%032x" % random.getrandbits(128) client_id = 'weewx_%s' % pad[:8] mc = mqtt.Client(client_id=client_id) - mc.will_set(self.topic + '/available', payload='offline', retain=True) + mc.will_set(self.topic + '/availability', payload='offline', retain=True) url = urlparse(self.server_url) if url.username is not None and url.password is not None: mc.username_pw_set(url.username, url.password) @@ -457,7 +457,7 @@ def get_mqtt_client(self): (_obfuscate_password(self.server_url), str(e))) self.mc = None return - mc.publish(self.topic + '/available', payload='online', retain=True) + mc.publish(self.topic + '/availability', payload='online', retain=True) mc.loop_start() loginf('client established for %s' % _obfuscate_password(self.server_url)) From fa34b2568b1d663f50cf2a9ced04e0ef2700a021 Mon Sep 17 00:00:00 2001 From: Thomas Dietrich Date: Sun, 2 Oct 2022 11:09:43 +0200 Subject: [PATCH 4/5] Update mqtt.py --- bin/user/mqtt.py | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/user/mqtt.py b/bin/user/mqtt.py index 2fc321b..ede7676 100644 --- a/bin/user/mqtt.py +++ b/bin/user/mqtt.py @@ -434,6 +434,7 @@ def __init__(self, queue, server_url, def get_mqtt_client(self): if self.mc: + mc.publish(self.topic + '/availability', payload='online', retain=True) return if time.time() - self.mc_try_time < self.retry_wait: return From 4e87c4c5c4edca31b76dc92d1cdac981323b903d Mon Sep 17 00:00:00 2001 From: Thomas Dietrich Date: Sun, 2 Oct 2022 11:15:16 +0200 Subject: [PATCH 5/5] Update mqtt.py --- bin/user/mqtt.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/user/mqtt.py b/bin/user/mqtt.py index ede7676..79395e3 100644 --- a/bin/user/mqtt.py +++ b/bin/user/mqtt.py @@ -434,7 +434,7 @@ def __init__(self, queue, server_url, def get_mqtt_client(self): if self.mc: - mc.publish(self.topic + '/availability', payload='online', retain=True) + self.mc.publish(self.topic + '/availability', payload='online', retain=True) return if time.time() - self.mc_try_time < self.retry_wait: return