MQTT Last Will + publish retain sur agents/status/{name}
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user