MQTT Last Will + publish retain sur agents/status/{name}

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-07 21:24:26 +00:00
parent 01f0cf99a6
commit 39d8537d1a
+12
View File
@@ -110,10 +110,22 @@ def start_mqtt_listener():
global mqtt_publish_client global mqtt_publish_client
# Client dédié à la publication # 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, mqtt_publish_client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2,
client_id=MQTT_CLIENT + "_pub") 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.connect(MQTT_HOST, MQTT_PORT)
mqtt_publish_client.loop_start() mqtt_publish_client.loop_start()
mqtt_publish_client.publish(_status_topic, _online_payload, retain=True)
register_to_agent1() register_to_agent1()
# Client dédié à la souscription # Client dédié à la souscription