MQTT : Différence entre versions
(→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 | + | * 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 14 décembre 2021 à 23: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).
Sommaire
Principaux concepts de MQTT
Il y en a 3 :
- publish/subscribe
- topic : La catégorie
- 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) :
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
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