Protocole IoT Standard

Qu'est-ce que MQTT ? Le protocole IoT expliqué de A à Z

MQTT (Message Queuing Telemetry Transport) est un protocole de messagerie léger basé sur le modèle Publish/Subscribe. Découvrez en détail le fonctionnement des clients, des topics, des payloads et des garanties de livraison.

schedule 10 min de lecture
lightbulb

MQTT en une phrase

MQTT est un protocole de communication réseau ultra-léger et asynchrone, basé sur le modèle Publish/Subscribe (Publication / Abonnement), conçu pour échanger des messages en temps réel entre des appareils et des applications avec un minimum d'énergie et de bande passante.
01

Pourquoi MQTT est devenu le standard mondial de l'IoT

Créé en 1999 par Andy Stanford-Clark (IBM) et Arlen Nipper pour surveiller des pipelines pétroliers par satellite, MQTT est aujourd'hui une norme internationale (OASIS & ISO/IEC 20922). Contrairement au protocole HTTP qui nécessite une requête pour chaque réponse, MQTT maintient une connexion TCP légère et pousse instantanément les données dès qu'elles sont produites.

En-tête de 2 octets

Là où une requête HTTP envoie 500 à 1000 octets d'en-tête (headers), MQTT ne consomme que 2 octets pour acheminer un paquet.

Découplage Asynchrone

L'émetteur n'a pas besoin de savoir qui reçoit le message, ni si le récepteur est en ligne au moment exact de la transmission.

Connexion permanente

Une connexion TCP persistante avec Keep-Alive permet au broker de pousser (Push) des données en direct avec une latence quasi nulle.

02

Architecture & Flux de données en direct

Découvrez le découplage MQTT : observez les liaisons physiques TCP entre les appareils à gauche et le Broker à droite. Cliquez sur un émetteur pour voir le paquet circuler le long du câble vers le Broker, puis être redistribué aux abonnés ciblés.

Capteur Température PUB
salon/temperature
22.4 °C
Interrupteur Salon PUB
salon/lumiere
ON
App Mobile SUB
Filtre : salon/#
Reçu :En attente...
Écran Domotique SUB
Filtre : salon/temperature
Reçu :En attente...

Broker MQTT

MQpanel
Message reçu :
En attente d'un message...
Statut d'acheminement :
Prêt pour le prochain paquet
03

C'est quoi un Topic MQTT ?

Un topic (ou sujet) est une chaîne de caractères textuelle, sensible à la casse, organisée de manière hiérarchique avec des barres obliques (/). C'est l'adresse de routage du message. Contrairement à une boîte mail ou une file d'attente classique, un topic n'a pas besoin d'être configuré à l'avance sur le broker : il existe dès qu'un message y est publié.

Anatomie d'une hiérarchie de Topic :

maison/salon/temperature
• Niveau 1 : Domaine général (maison)
• Niveau 2 : Emplacement (salon)
• Niveau 3 : Mesure spécifique (temperature)

Testeur interactif de Jokers MQTT (+ et #)

Simulez la publication d'un message et vérifiez quels filtres d'abonnement le reçoivent.

Simulateur en direct
+
Joker Mono-niveau (+)Remplace l'ID d'un équipement ou une pièce (ex : maison/+/temperature pour écouter tous les capteurs d'un coup).
#
Joker Multi-niveaux (#)Placé à la fin, il englobe tous les sous-niveaux (ex : maison/# pour recevoir l'intégralité des flux de la maison).
3 niveaux
Exemples :
Structure :maison/salon/temperature

2. Distribution aux abonnés (Subscribers) :

3 / 4 clients reçoivent le flux
Souscription Exactemaison/salon/temperature
Reçu

Capte uniquement la température du salon.

Verdict : Correspondance exacte niveau par niveau.
Joker Mono-niveau (+)maison/+/temperature
Reçu

Capte la température de toutes les pièces.

Verdict : Correspondance validée grâce au joker mono-niveau "+".
Joker Multi-niveaux (#)maison/#
Reçu

Capte tous les capteurs et sous-dossiers de la maison.

Verdict : Le joker "#" englobe tous les niveaux restants (« salon/temperature »).
Autre Domaine (Non distribué)usine/#
Ignoré

Ne capte que les équipements du domaine "usine".

Verdict : Divergence au niveau 1 : attendu « usine », reçu « maison ».

3. Tester un filtre d'abonnement sur mesure :

Reçu
Match valide

Explication : Correspondance validée grâce au joker mono-niveau "+".

Astuce MQpanel : Grâce aux jokers MQTT (+ et #), vous pouvez configurer une seule Règle de Stockage MQpanel (ex : usine/+/temperature) pour historiser automatiquement les données de vos capteurs.
04

C'est quoi un Payload MQTT ?

Le payload (charge utile) est le contenu réel de la donnée transportée par le message. MQTT est agnostique au format de données : pour le broker, le payload n'est qu'une suite d'octets bruts (bytes). Le broker ne modifie jamais le payload, il le transmet tel quel aux abonnés.

Topic :maison/salon/temperatureTaille : 42 octets
{
  "valeur": 22.4,
  "unite": "°C",
  "batterie": 95
}

Comment le client traite ce Payload :

Le format le plus populaire en IoT. Permet d'associer des clés/valeurs explicites et d'envoyer plusieurs mesures dans une seule trame.

Exemple de code d'envoi :client.publish("maison/salon/temperature", JSON.stringify({ valeur: 22.4, unite: "°C", batterie: 95 }))

Récapitulatif fondamental : Topic vs Payload

CaractéristiqueTopic MQTTPayload MQTT
RôleAdresse de routage du messageContenu des données transportées
Analysé par le Broker ?Oui (pour router aux abonnés)Non (opaque, transmis tel quel)
Format imposéTexte UTF-8 avec slashes (/)Aucun (binaire brut, JSON, texte...)
Décodage automatique MQpanel : Les Tableaux de bord MQpanel analysent automatiquement vos payloads (clés JSON, valeurs numériques, états ON/OFF) et actualisent instantanément vos widgets, jauges et graphiques en direct via WebSockets.
05

Qualité de Service (QoS) : quelle garantie de livraison ?

MQTT propose 3 niveaux de Qualité de Service (QoS) définis à chaque message entre le client et le broker :

QoS 1 : Au moins une fois (At least once)

1 acquittement (PUBACK)

Le broker valide la réception par un accusé PUBACK. En l'absence de réponse (timeout), l'émetteur renvoie le message.

Cas d'usage recommandé : Recommandé par défaut : alertes critiques, commandes domotiques, détection d'intrusion.

Diagramme de Séquence Réseau
2 échange(s) réseau
Émetteur
Client MQTT
Broker MQTT
MQpanel Hub
PUBLISH(Packet ID: 42)
1. Envoi du paquet avec identifiant unique de suivi.
PUBACK(Packet ID: 42)
2. Accusé de réception (Publish Acknowledge) validant la réception.
Client prêt
MQpanel en écoute
06

Mécanismes avancés : Retain, Testament (LWT) & Keep-Alive

Message Retenu (Retain Flag)

Quand un message est publié avec le flag Retain = true, le broker le conserve en mémoire comme dernière valeur connue de ce topic. Tout nouveau client qui s'abonne à ce topic reçoit immédiatement cette valeur sans devoir attendre la prochaine publication.

Le Testament (Last Will and Testament - LWT)

À la connexion, un client confie au broker un message « testament » avec un topic et un payload. Si la connexion TCP du client se coupe brutalement (panne électrique, coupure internet), le broker publie automatiquement ce message aux autres abonnés.

Keep-Alive & Ping

Un intervalle de temps (ex: 60s) convenu entre le client et le broker. Si aucun message n'est échangé pendant ce délai, le client envoie un paquet PINGREQ (2 octets) et attend un PINGRESP pour confirmer que la liaison est toujours vivante.

07

MQTT face à HTTP et WebSockets

Pourquoi l'Internet des Objets et le temps réel ont fait de MQTT la référence :

CritèreMQTTHTTP (REST)
Modèle d'échangePublish / Subscribe (Asynchrone)Requête / Réponse (Synchrone)
Taille minimale d'en-tête2 octetsPlusieurs centaines d'octets (headers)
Consommation réseau / batterieUltra faible (optimisé microcontrôleurs)Élevée (overhead à chaque requête)
Communication Push serveur → clientNatif et temps réelNon (nécessite Polling ou SSE)
Détection de perte réseauNatif (Last Will & Testament)Aucune (attente de timeout requête)
Support des wildcardsOui (+ et #)Non
08

Sécurité dans l'écosystème MQTT

Dans un environnement de production, les échanges MQTT sont systématiquement sécurisés par : le chiffrement TLS/SSL (port standard 8883) pour protéger les données en transit, l'authentification par identifiant/mot de passe ou certificat client X.509, et le contrôle d'accès (ACL) restreignant les topics autorisés pour chaque client.

09

Comment MQpanel propulse votre infrastructure MQTT

MQpanel combine la puissance d'un Broker MQTT managé haute performance avec une plateforme complète de visualisation, stockage et automatisation :

Prêt à démarrer avec MQpanel ?

Connectez votre premier appareil, publiez vos données de télémétrie et créez votre premier tableau de bord en moins de 5 minutes grâce à MQpanel !

Foire Aux Questions (FAQ)

MQpanel intègre un Broker MQTT ultra-rapide et conforme aux standards. Vos appareils (ESP32, Raspberry Pi, capteurs industriels) s'y connectent exactement comme à n'importe quel broker standard, tout en bénéficiant directement des fonctionnalités cloud MQpanel (dashboards, archivage automatique et IA).