MQTT : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(Principaux concepts de MQTT)
(Deployer un serveur MQTT pour les POCL)
 
(4 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 43 : 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