From 3e8553b84805d930c5f2e0003094b12f5cb90557 Mon Sep 17 00:00:00 2001 From: Camerin Figueroa Date: Fri, 7 Nov 2025 23:05:17 -0500 Subject: [PATCH] Handle radio connection loss I added a flag and function to handle when the connection to the node is lost. This will now close the script and docker should detect this and restart the container --- server.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/server.py b/server.py index 177f82f..c7b4c2d 100644 --- a/server.py +++ b/server.py @@ -37,6 +37,8 @@ js8call_formatter = logging.Formatter('%(asctime)s - JS8Call - %(levelname)s - % js8call_handler.setFormatter(js8call_formatter) js8call_logger.addHandler(js8call_handler) +continue_running = True + def display_banner(): banner = """ ████████╗ ██████╗██████╗ ██████╗ ██████╗ ███████╗ @@ -70,7 +72,13 @@ def main(): def receive_packet(packet, interface): on_receive(packet, interface) + def on_connection_loss(interface): + logging.error("Connection to Meshtastic device lost.") + global continue_running + continue_running = False + pub.subscribe(receive_packet, system_config['mqtt_topic']) + pub.subscribe(on_connection_loss, 'meshtastic.connection.lost') # Initialize and start JS8Call Client if configured js8call_client = JS8CallClient(interface) @@ -80,7 +88,7 @@ def main(): js8call_client.connect() try: - while True: + while continue_running: time.sleep(1) except KeyboardInterrupt: