start status heartbeat thread upon successful connection preventing race con

This commit is contained in:
Lloyd
2025-11-25 09:07:20 +00:00
parent ae68bc92c1
commit 74f185ce7b
@@ -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