Bonjour,
Aujourd’hui un petit retour d’expérience sur certains plugins basés sur MQTT, suite à : Besoin d’explications sur le fonctionnement des plugins basés sur MQTT
Quelques liens :
MQTT Serveur (appelé aussi Broker) :
- MQTT, un protocole pour tous les rassembler - Partie 1 : le broker
- MQTT, un protocole pour tous les rassembler - Partie 2 : publier et souscrire
- MQTT, un protocole pour tous les rassembler - Partie 3 : interactions avec la domotique
Plus avancé, en anglais : - What is MQTT and How It Works | Random Nerd Tutorials
- MQTT Essentials - All Core Concepts Explained
MQTT Client : exemple : « MQTT Explorer » :
Permet de tester le broker Mosquitto
- https://mqtt-explorer.com
- GitHub - thomasnordquist/MQTT-Explorer: An all-round MQTT client that provides a structured topic overview
Z-Wave-JS-UI :
Passerelle Z-Wave vers MQTT
(son ancien nom était Zwavejs2mqtt)
- Z-Wave JS UI
- GitHub - zwave-js/zwave-js-ui: Full featured Z-Wave Control Panel UI and MQTT gateway. Built using Nodejs, and Vue/Vuetify
Zigbee2MQTT (appelé parfois pour aller plus vite Z2M) :
Pont Zigbee vers MQTT
- https://www.zigbee2mqtt.io
- GitHub - Koenkk/zigbee2mqtt: Zigbee 🐝 to MQTT bridge 🌉, get rid of your proprietary Zigbee bridges 🔨
Z-Wave-JS-UI et Zigbee2MQTT sont codés en NodeJS.
Un plugin a un name et un id, ils peuvent être identique ou différents.
En général on retrouve le name sur le market Jeedom.
L’id apparait dans le Centre de mise à jour et est le nom du répertoire du plugin dans jeedom.
Quelques plugins Jeedom s’appuyant sur du MQTT :
name------------------id
jMQTT----------------jMQTT : permet d’interfacer Jeedom à un ou plusieurs Broker
ZigbeeLinker-------zigbee2mqtt : permet d’interfacer Jeedom à un pont Zigbee2MQTT via un broker Mosquitto
MQTT Manager—mqtt2 : sert de « base » pour certains plugins (qui s’y abonnent) utilisant MQTT
Z-Wave JS----------zwavejs : permet d’interfacer Jeedom à une passerelle Z-Wave-JS-UI via un broker Mosquitto
JeeZigbee-----------z2m : permet d’interfacer Jeedom à un pont Zigbee2MQTT via un broker Mosquitto
mqtt2 sert de base par exemple à JeeZigbee et Z-Wave JS.
ZigbeeLinker et JeeZigbee s’appuient tous deux sur un broker Mosquitto et sur un pont Zigbee2MQTT cité plus haut, à ne pas confondre avec leur id, respectivement zigbee2mqtt et z2m !!!
Pour les utilisateurs non avertis, je déconseillerais de mettre les 2 sur un même Jeedom.
/!\ ATTENTION : Le plugin « ZIGBEE2MQTT » qui existait il y a environ 1 an a en fait depuis été renommé « ZigbeeLinker » par son développeur, mais l’id est resté « zigbee2mqtt ».
Quelques exemples de « chaînages » possibles de la forme :
plugin Jeedom <> Mosquitto <> xxx2MQTT <> Equipements type xxx
(le plugin Jeedom est un client MQTT et s’interface avec Jeedom)
Les plus simples :
- plugin Z-Wave JS <> plugin MQTT Manager (<>Mosquitto) <> Z-Wave JS UI <> Equipements ZWave
- plugin JeeZigbee <> plugin MQTT Manager (<>Mosquitto) <> Zigbee2MQTT <> Equipements Zigbee
Voir ici : [RTEX] Box Jeedom Atlas - plugin MQTT Manager (mqtt2) Mode Broker local - avec plugins abonnés Z-Wave JS (zwavejs) et JeeZigbee (z2m)
Plus complexes mais avec plus de possibilités :
- plugin ZigbeeLinker <> Mosquitto <> Zigbee2MQTT <> Equipements Zigbee
- plugin jMQTT <> Mosquitto <> Z-Wave JS UI <> Equipements ZWave (mise en oeuvre documenté ici : [Tuto] jMQTT + Mosquitto + ZWave-JS-UI (anciennement ZWaveJS2MQTT))
- plugin jMQTT <> Mosquitto <> Zigbee2MQTT <> Equipements Zigbee
- plugin jMQTT <> Mosquitto <> Equipements natifs MQTT (ex : certains Equipements Wi-Fi Shelly)
Mosquitto peut être le même ou différents, local ou distant.
-jmqtt s’appuie sur un mosquitto local ou distant.
-zigbeelinker s’appuie sur un mosquitto local ou distant, et un zigbee2mqtt local ou distant.
-jeezigbee s’appuie sur un mosquitto local ou distant (via mqtt manager), et s’appuie sur un zigbee2mqtt local ou distant.
Après l’installation du plugin Z-Wave JS, l’IHM Web de la passerelle Z-Wave-JS-UI est accessible par défaut sur le port TCP 8091 :
http://ipjeedom:8091
Username/Password (défaut) : admin/zwave
Après l’installation du plugin JeeZigbee l’IHM Web du pont Zigbee2MQTT est accessible par défaut sur le port TCP 8080 :
http://ipjeedom:8080
« z2m admin token » = Identifiant dans la configuration du plugin JeeZigbee
Il est fortement conseillé de n’installer qu’un Mosquitto et qu’un zigbee2mqtt en local (sur la box jeedom), ceci pour éviter les conflits.
Les plugins MQTT Manager, ZigbeeLinker et jMQTT ont chacun la possibilité d’installer un broker Mosquitto en local. Donc si dans un des plugins est configuré un broker Mosquitto en local les autres doivent être configurés avec un broker Mosquitto distant.
Il est fortement conseillé de privilégier l’installation du broker Mosquitto en local avec MQTT Manager. (en particulier si vous utilisez aussi le plugin Z-Wave JS), mais attention la configuration du broker Mosquitto avec MQTT Manager nécessite une authentification par nom-utilisateur:mot-de-passe (username:password).
Astuce :
Si vous configurez un broker Mosquitto en local avec MQTT Manager, alors vous pouvez configurer les autres plugins qui nécessitent un broker Mosquitto (serveur MQTT), en mode distant avec 127.0.0.1 comme IP (qui est l’adresse IP local de la box jeedom !)
Et enfin liste impressionnante sur xxx2MQTT : GitHub - hobbyquaker/awesome-mqtt: A curated list of MQTT related stuff. ✨
Voila j’espère que ce retour d’expérience sera utile aux membres Jeedom.
akenad