From 728c878de6774606d80346f203b537beb70e999c Mon Sep 17 00:00:00 2001 From: sylvain Date: Sat, 7 Mar 2026 21:24:26 +0000 Subject: [PATCH] MQTT Last Will + publish retain sur agents/status/{name} Co-Authored-By: Claude Sonnet 4.6 --- agent2_ansible.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/agent2_ansible.py b/agent2_ansible.py index 1b9e384..f924398 100644 --- a/agent2_ansible.py +++ b/agent2_ansible.py @@ -110,10 +110,22 @@ def start_mqtt_listener(): global mqtt_publish_client # Client dédié à la publication + import json as _json + _status_topic = "agents/status/{}".format(MQTT_CLIENT) + _offline_payload = _json.dumps({"status": "offline", "agent": MQTT_CLIENT}) + _online_payload = _json.dumps({ + "status" : "online", + "agent" : MQTT_CLIENT, + "jid" : XMPP_JID, + "mqtt_inbox": MQTT_INBOX, + }) + mqtt_publish_client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id=MQTT_CLIENT + "_pub") + mqtt_publish_client.will_set(_status_topic, _offline_payload, retain=True) mqtt_publish_client.connect(MQTT_HOST, MQTT_PORT) mqtt_publish_client.loop_start() + mqtt_publish_client.publish(_status_topic, _online_payload, retain=True) register_to_agent1() # Client dédié à la souscription