Définition simple
Avec MQTT, un équipement publie un message sur un sujet, appelé topic. D’autres clients s’abonnent aux sujets qui les intéressent. Un serveur intermédiaire, le broker, distribue les messages. Le capteur n’a donc pas besoin de connaître tous les destinataires ni d’ouvrir une connexion distincte vers chacun d’eux.
Définition technique
Les clients échangent avec le broker à travers des connexions persistantes, généralement sur TCP. Les ports usuels sont 1883 et 8883 pour une connexion protégée par TLS ; ils sont configurables. Les droits de publication et d’abonnement doivent être définis par sujet, en tenant compte des caractères génériques utilisés dans les abonnements.
Les niveaux QoS 0, 1 et 2 définissent des garanties de livraison sur un échange MQTT. Ils ne prouvent pas qu’une action métier a été exécutée une seule fois dans tous les systèmes. Un message retained peut fournir une dernière valeur connue à un nouvel abonné ; cette valeur n’est pas forcément une mesure récente.
À quoi cela sert ?
MQTT convient aux remontées de télémétrie, à la domotique et aux communications où la légèreté du client compte. Le format du contenu reste à définir par l’application : MQTT n’impose pas à lui seul un schéma universel de température, d’unité ou d’horodatage. Les producteurs et consommateurs doivent partager cette convention.
Exemple concret
Une sonde publie une température sur batiment/etage1/temperature. La supervision reçoit ce sujet et affiche la valeur avec son heure de mesure. Si l’application utilise un message retained, elle doit distinguer un dernier état connu d’une sonde actuellement connectée. Une valeur apparemment normale peut être trop ancienne pour être exploitable.
Repères essentiels
| Élément | Rôle |
|---|---|
| QoS 0 | Livraison au plus une fois sur l’échange |
| QoS 1 | Livraison au moins une fois ; doublons possibles |
| QoS 2 | Livraison exactement une fois au niveau de l’échange MQTT |
| Retained | Dernier message conservé pour un sujet, selon ses paramètres |
Problèmes fréquents
- Aucun message reçu : vérifier connexion au broker, sujet exact, abonnement et droits.
- Déconnexion TLS : contrôler le nom du serveur, la chaîne de certificats et l’horloge du client.
- Valeurs répétées ou anciennes : examiner QoS, reprise de session, horodatage et message retained.
Bonnes pratiques et limites
Choisissez la version MQTT, la gestion des sessions et le niveau QoS selon le besoin réel. Testez une reconnexion et la perte du broker. Surveillez les clients, les refus d’accès et la fraîcheur des données ; une connexion ouverte ne garantit pas la disponibilité du capteur ni la réussite du traitement final.