Aller au contenu principal

Domotique — MQTT

MQTT est le bus de messages local de la domotique leukOS. Il relie les controllers, les devices exposes par ces controllers, le broker Mosquitto local et le hub domotique.

Positionnement dans l'architecture​

Dans la domotique, MQTT sert a transporter les etats, evenements et commandes entre les elements terrain et le hub.

Le pilotage central de flotte (Saturn -> node) reste principalement en gRPC/HTTP avec persistance SQLite cote daemon C++ ; MQTT n'est pas le canal principal de commande distante inter-sites.

Comment les devices communiquent via MQTT​

Le device ne parle pas directement a la Web IHM. Le flux typique est:

  1. Le controller (ESP32/MCU) lit un capteur ou recoit une commande locale.
  2. Il publie l'etat sur un topic MQTT de la box.
  3. Le hub consomme l'evenement, met a jour l'entite et applique les automatisations.
  4. En cas d'action, le hub publie une commande MQTT vers le controller cible.
  5. Le controller execute et republie l'etat confirme.

Topics utilises​

Le prefixe historique est openautomation (configurable).

TopicSensRole
openautomation/<node_id>/statuscontroller/node -> hubPresence (online/offline, LWT).
openautomation/<node_id>/statecontroller/node -> hubEtat JSON periodique des entites.
openautomation/<node_id>/cmd/relay/<id>hub -> controller/nodeCommande relais.
openautomation/<node_id>/cmd/valve/<id>hub -> controller/nodeCommande vanne.

LWT et robustesse​

Chaque client declare un Last Will and Testament. Si la connexion tombe, le broker publie offline sur le topic de statut, ce qui permet au hub de marquer immediatement l'entite comme indisponible.

Exemple d'echanges​

Publication d'etat par un controller:

{
"node_id": "node-01",
"relay": {"1": "on"},
"valve": {"3": "closed"},
"updated_at": "2026-09-06T12:00:00Z"
}

Commande publiee par le hub:

topic: openautomation/node-01/cmd/relay/1
payload: on

Frontieres avec le daemon C++​

  • MQTT: transport des messages domotiques dans le LAN.
  • Daemon C++: execution locale, API HTTP/gRPC, persistance SQLite.
  • Les deux coexistent: MQTT pour l'evenementiel domotique, SQLite/API pour la source de verite et la commande systeme.

Voir aussi​