diff --git a/repeater/data_acquisition/letsmesh_handler.py b/repeater/data_acquisition/letsmesh_handler.py index a86ef89..208ef34 100644 --- a/repeater/data_acquisition/letsmesh_handler.py +++ b/repeater/data_acquisition/letsmesh_handler.py @@ -138,6 +138,13 @@ class MeshCoreToMqttJwtPusher: self.publish_status( state="online", origin=self.node_name, radio_config=self.radio_config ) + + # connected start heartbeat thread + if self.status_interval > 0 and not self._status_task: + import threading + self._status_task = threading.Thread(target=self._status_heartbeat_loop, daemon=True) + self._status_task.start() + logging.info(f"Started status heartbeat (interval: {self.status_interval}s)") else: logging.error(f"Failed with code {rc}") @@ -172,14 +179,6 @@ class MeshCoreToMqttJwtPusher: self.client.loop_start() self._connect_time = datetime.now(UTC) - # Start status heartbeat if interval is set - if self.status_interval > 0: - import threading - - self._status_task = threading.Thread(target=self._status_heartbeat_loop, daemon=True) - self._status_task.start() - logging.info(f"Started status heartbeat (interval: {self.status_interval}s)") - def disconnect(self): self._running = False # Publish offline status before disconnecting