Bases

MQTT (Message Queue Telemetry Transport) est un protocole de message simple basé sur TCP/IP qui permet de transférer les messages des appareils au serveur. Une distinction est faite entre le serveur MQTT (« broker ») et les clients MQTT. MQTT est particulièrement adapté aux solutions d’automatisation.

Exemple schématique simple pour l’illustration :

Client MQTT

Le client se connecte via TCP/IP à un serveur MQTT, qui nécessite généralement un nom d’utilisateur et un mot de passe. Le client peut facilement envoyer des messages avec un topic au serveur MQTT. Le contenu des messages n’est pas spécifié, il peut donc s’agir, par exemple, d’un simple message texte ou d’un message structuré composé de plusieurs champs.

Le client peut également recevoir des messages en s’inscrivant pour des topics enregistrés. Le Broker achemine ensuite les messages des topics enregistrés aux clients actuels du MQTT, à condition qu’ils soient connectés au moment de l’envoi du message. Fondamentalement, le client peut être un simple appareil ou même un serveur qui veut recevoir et envoyer des messages.

Serveur MQTT (« broker »)

Le broker MQTT est un serveur qui peut être considéré comme un centre d’échange de messages pour tous les participants du MQTT. Les utilisateurs et les droits d’accès sont également gérés dans le broker MQTT. Le broker n’établit pas activement de connexions avec d’autres appareils MQTT, mais les clients MQTT doivent se connecter au broker. Tant que la connexion est établie, le broker peut envoyer et recevoir des messages au client. Une connexion TCP/IP est utilisée pour transporter les données. Selon les brokers et les clients, la connexion peut être cryptée en SSL.

MQTT fonctionne même si les clients installés derrière un routeur DSL dans des réseaux privés se connectent au broker.

MQTT Topics, Subscribe et Publish

Topics

Les topics peuvent être considérés comme une sorte de subdivision des sujets des messages. Il s’agit généralement d’une ligne de texte qui est souvent divisée par un « / ». Ce n’est que si un client s’est inscrit à un ou plusieurs topics que les messages relatifs à ces topics sont également transmis par le broker aux clients enregistrés.
Voici un exemple de différents topics :

  • /Bâtiment 1/Cellar/Température
  • /Bâtiment 1/Jardin/Mouvement
  • /Bâtiment 1/Chambre à coucher/Détecteur de fumée

Subscribe

Les clients du MQTT peuvent s’inscrire pour un ou plusieurs topics. Ce processus s’appelle subscribe.

Publish

Les clients du MQTT peuvent envoyer un message avec un topic au broker. Ce processus s’appelle publish. On ne peut s’assurer que le broker est connecté et qu’il reçoit le message. Toutefois, on ne sait pas encore si le broker transmet ce message à d’autres clients.

Références