From 7321cf88b3af861e808a2796cb77fce400a0e0cc Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Tue, 30 Jan 2024 23:32:43 +0100 Subject: [PATCH] mqtt keepalive loop --- owrx/reporting/mqtt.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/owrx/reporting/mqtt.py b/owrx/reporting/mqtt.py index c365e3c9..4ef759bb 100644 --- a/owrx/reporting/mqtt.py +++ b/owrx/reporting/mqtt.py @@ -3,6 +3,8 @@ from owrx.reporting.reporter import Reporter from owrx.config import Config from owrx.property import PropertyDeleted import json +import threading +import time import logging @@ -20,6 +22,14 @@ class MqttReporter(Reporter): pm.wireProperty("mqtt_host", self._setHost), pm.wireProperty("mqtt_topic", self._setTopic), ] + self.run = True + threading.Thread(target=self._loop).start() + + def _loop(self): + # basic keepalive loop + while self.run: + self.client.loop() + time.sleep(5) def _setHost(self, host): logger.debug("setting host to %s", host) @@ -36,6 +46,7 @@ class MqttReporter(Reporter): self.topic = topic def stop(self): + self.run = False self.client.disconnect() while self.subscriptions: self.subscriptions.pop().cancel()