MQTT : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(Page créée avec « MQTT, d'après [https://fr.wikipedia.org/wiki/MQTT Wikipédia] (le 1er avril 2021) : C'est un protocole de message. Il est conçu pour les connexions avec des sites dist... »)
 
(Deployer un serveur MQTT pour les POCL)
 
(5 révisions intermédiaires par le même utilisateur non affichées)
Ligne 12 : Ligne 12 :
 
Par exemple :
 
Par exemple :
 
* Camille est abonnée à la catégorie "Température".  
 
* Camille est abonnée à la catégorie "Température".  
* Robert envoie le message 32°C à la catégorie "Température".
+
* Robert envoie le message "32°C" à la catégorie "Température".
* Elsa envoie le message 27°C à la même catégorie.
+
* Elsa envoie le message "27°C" à la même catégorie.
* Camille reàoit donc les messages "32°C" et "27°C"
+
* Camille reçoit donc les messages "32°C" et "27°C"
  
  
Ligne 26 : Ligne 26 :
  
 
1 – publish/subscribe
 
1 – publish/subscribe
 +
 
un client peut publier et tous les client qui ont souscrit recevrons la publication.
 
un client peut publier et tous les client qui ont souscrit recevrons la publication.
 +
 
2 - Topics représentés par des suites de caractères séparés par des slash : Home/office/lamp
 
2 - Topics représentés par des suites de caractères séparés par des slash : Home/office/lamp
 +
 
Home et office sont des « topics »
 
Home et office sont des « topics »
 +
 
Attention c'est sensible à la casse !! (ça tient compte des majuscules et minuscules).
 
Attention c'est sensible à la casse !! (ça tient compte des majuscules et minuscules).
 +
 
3 – Broker : le logiciel MQTT
 
3 – Broker : le logiciel MQTT
 
* il reçoit les messages
 
* il reçoit les messages
Ligne 38 : Ligne 43 :
  
 
Il est possible d'installer un broker MQTT sur un serveur : par exemple https://mosquitto.org/
 
Il est possible d'installer un broker MQTT sur un serveur : par exemple https://mosquitto.org/
 +
 +
==Faisons un Test==
 +
ouvrez la page suivante pour l'observer : https://public.cloud.shiftr.io/
 +
 +
Ensuite cliquez sur ce bouton (en observant la page ouverte précédemment) :
 +
<html>
 +
<!DOCTYPE html>
 +
<html>
 +
  <head>
 +
    <meta charset="utf-8" />
 +
    <title>Example</title>
 +
    <script src="https://unpkg.com/mqtt/dist/mqtt.min.js"></script>
 +
  </head>
 +
  <body>
 +
    <button id="button">Clicke Moi</button>
 +
 +
    <script>
 +
      const client = mqtt.connect('wss://public:public@public.cloud.shiftr.io', {
 +
        clientId: 'TestFabriquesDuPonant'
 +
      });
 +
 +
      client.on('connect', function() {
 +
        console.log('connected!');
 +
        client.subscribe('Coucou');
 +
      });
 +
 +
      client.on('message', function(topic, message) {
 +
        console.log(topic + ': ' + message.toString());
 +
      });
 +
 +
      document.querySelector('button').addEventListener('click', function() {
 +
        client.publish('Coucou', 'Le monde !');
 +
      });
 +
    </script>
 +
  </body>
 +
</html>
 +
==Deployer un serveur MQTT pour les POCL==
 +
Pistes : installer node-red sur un serveur (raspberry pi ou VPS) et installer MQTT dessus
 +
 +
===Quelques Tutos===
 +
https://peyanski.com/mqtt-home-assistant-and-node-red-integration/
 +
 +
http://stevesnoderedguide.com/configuring-the-mqtt-publish-node
 +
 +
https://flows.nodered.org/node/node-red-contrib-mqtt-broker
 +
 +
https://nodered.org/docs/
 +
 +
==Un client MQTT==
 +
Multiplateforme : https://mqttx.app/
 +
 +
Permet de s'abonner à un serveur, de recevoir et émettre.
 +
 +
idéal pour voir ce qui se passe

Version actuelle datée du 15 décembre 2021 à 00:07

MQTT, d'après Wikipédia (le 1er avril 2021) :

C'est un protocole de message.

Il est conçu pour les connexions avec des sites distants où la bande passante du réseau est limitée.

Ce protocole est dit "publier-s’abonner" : c'est un mécanisme de publication de messages et d’abonnement à ces derniers.

  • Les diffuseurs ne destinent pas a priori les messages à des destinataires.
  • À la place, une catégorie est associée aux messages émis (sans savoir s’il y a des destinataires).
  • Des destinataires s’abonnent aux catégories les intéressant (sans savoir s’il y a des diffuseurs).

Par exemple :

  • Camille est abonnée à la catégorie "Température".
  • Robert envoie le message "32°C" à la catégorie "Température".
  • Elsa envoie le message "27°C" à la même catégorie.
  • Camille reçoit donc les messages "32°C" et "27°C"


MQTT signifie : Message Queuing Telemetry Transport (Transport de télémétrie par file d'attente de messages). est un protocole de messagerie publish-subscribe basé sur le protocole TCP/IP (Transfert Control Protocol/Internet Protocol).

Principaux concepts de MQTT

Il y en a 3 :

  1. publish/subscribe
  2. topic : La catégorie
  3. Broker : le logiciel MQTT

1 – publish/subscribe

un client peut publier et tous les client qui ont souscrit recevrons la publication.

2 - Topics représentés par des suites de caractères séparés par des slash : Home/office/lamp

Home et office sont des « topics »

Attention c'est sensible à la casse !! (ça tient compte des majuscules et minuscules).

3 – Broker : le logiciel MQTT

  • il reçoit les messages
  • les filtres
  • publie les messages à tous les clients qui ont souscrits.

Un broker en ligne libre et gratuit : https://www.shiftr.io/try

Il est possible d'installer un broker MQTT sur un serveur : par exemple https://mosquitto.org/

Faisons un Test

ouvrez la page suivante pour l'observer : https://public.cloud.shiftr.io/

Ensuite cliquez sur ce bouton (en observant la page ouverte précédemment) : Example

Deployer un serveur MQTT pour les POCL

Pistes : installer node-red sur un serveur (raspberry pi ou VPS) et installer MQTT dessus

Quelques Tutos

https://peyanski.com/mqtt-home-assistant-and-node-red-integration/

http://stevesnoderedguide.com/configuring-the-mqtt-publish-node

https://flows.nodered.org/node/node-red-contrib-mqtt-broker

https://nodered.org/docs/

Un client MQTT

Multiplateforme : https://mqttx.app/

Permet de s'abonner à un serveur, de recevoir et émettre.

idéal pour voir ce qui se passe