Improved MQTT error handling

This commit is contained in:
Mark Qvist 2025-01-25 14:57:11 +01:00
parent 94809b0ec4
commit 17d4de36c4

View File

@ -38,8 +38,8 @@ class MQTT():
try: try:
if len(self.waiting_msgs) > 0: if len(self.waiting_msgs) > 0:
RNS.log(f"Processing {len(self.waiting_msgs)} MQTT messages", RNS.LOG_DEBUG) RNS.log(f"Processing {len(self.waiting_msgs)} MQTT messages", RNS.LOG_DEBUG)
self.process_queue() if self.process_queue():
RNS.log("All MQTT messages processed", RNS.LOG_DEBUG) RNS.log("All MQTT messages processed", RNS.LOG_DEBUG)
except Exception as e: except Exception as e:
RNS.log("An error occurred while running MQTT scheduler jobs: {e}", RNS.LOG_ERROR) RNS.log("An error occurred while running MQTT scheduler jobs: {e}", RNS.LOG_ERROR)
@ -82,7 +82,11 @@ class MQTT():
def process_queue(self): def process_queue(self):
with self.queue_lock: with self.queue_lock:
self.connect() try:
self.connect()
except Exception as e:
RNS.log(f"An error occurred while connecting to MQTT server: {e}", RNS.LOG_ERROR)
return False
try: try:
while len(self.waiting_msgs) > 0: while len(self.waiting_msgs) > 0:
@ -100,6 +104,7 @@ class MQTT():
RNS.trace_exception(e) RNS.trace_exception(e)
self.disconnect() self.disconnect()
return True
def handle(self, context_dest, telemetry): def handle(self, context_dest, telemetry):
remote_telemeter = Telemeter.from_packed(telemetry) remote_telemeter = Telemeter.from_packed(telemetry)