From b84dc95c1e8bcf0c8093d3c2e5d051262f4b7be8 Mon Sep 17 00:00:00 2001 From: Jeff Culverhouse Date: Wed, 26 Feb 2025 22:34:20 -0500 Subject: [PATCH] set broker offline when exiting --- amcrest2mqtt.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/amcrest2mqtt.py b/amcrest2mqtt.py index edb9177..3adfda8 100644 --- a/amcrest2mqtt.py +++ b/amcrest2mqtt.py @@ -122,8 +122,13 @@ def exit_gracefully(rc, skip_mqtt=False): log("Exiting app...") if mqtt_client is not None and mqtt_client.is_connected() and skip_mqtt == False: + # set cameras offline for host in config['amcrest']['hosts']: mqtt_publish(devices[host]["topics"]["status"], "offline", exit_on_error=False) + # set broker offline + mqtt_publish(f'{config["mqtt"]["prefix"]}/{via_device}/availability', "offline") + mqtt_publish(f'{config["mqtt"]["prefix"]}/{via_device}/status', "offline") + mqtt_client.disconnect() # Use os._exit instead of sys.exit to ensure an MQTT disconnect event causes the program to exit correctly as they @@ -426,7 +431,6 @@ def camera_online(device): "host": device["config"]["amcrest_host"], }, json=True) - # cmd-line args argparser = argparse.ArgumentParser() argparser.add_argument(