[RTEX] plugins basés sur MQTT

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 Client : exemple : « MQTT Explorer » :
Permet de tester le broker Mosquitto

Z-Wave-JS-UI :
Passerelle Z-Wave vers MQTT
(son ancien nom était Zwavejs2mqtt)

Zigbee2MQTT (appelé parfois pour aller plus vite Z2M) :
Pont Zigbee vers MQTT

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 :

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 :slight_smile:

13 « J'aime »

Question de noob, il y aurait moyen d’avoir un schéma explicatif et les bases de fonctionnement de MQTT.
J’ai compris (du moins je crois) qu’il s’agit de broadcast mais je ne comprends pas comment les identifiants (sûrement pas le bon mot) se positionnent entre MQTT et zwavejs ou bien d’autre protocoles par exemple.
Je dois dire de grosses bêtises mais ce que j’ai pu en lire ne m’a pas vraiment éclairé.
Merci d’avance

Bonjour mich,

Voir mes premiers liens.

akenad :slight_smile:

1 « J'aime »

Et la lumière fut.
Thx a lot

1 « J'aime »

Encore merci Akenad; je suis certain que ce sera utile à beaucoup d’utilisateurs. Je suis plongé dans tout cela depuis hier soir et, si je ne comprends pas encore tout, j’arrive maintenant à bien définir ce que j’ai encore besoin d’approfondir.
Une question : dans les 6 « chainages » que tu indiques, tu spécifies que certains sont plus complexes mais avec plus de possibilités. Peux-tu spécifier par exemple ce qu’apportent en plus le 3 et le 5 par rapport au 2 ( donc si je comprends bien les plugins JMQTT et Zigbeelinker par rapport à JeeZigbee).
Luc

1 « J'aime »

Le plugin jMQTT est plus généraliste donc adaptable potentiellement à d’autres « xxx2MQTT » mais nécessite en contre partie du paramétrage.
Les plugins JeeZigbee (officiel Jeedom SAS, à ce jour uniquement en beta) et Zigbeelinker (tiers) sont spécifiques à zigbee et donc préparamétrés.
Je ne rentrerais pas dans les détails des différences de possibilités entre ces 2 plugins.

akenad :slight_smile:

OK. Je vais donc me lancer dans la migration de zwave vers le module officiel puis je ferai la même chose avec le module JeeZigbee en espérant que d’ici là il ne soit plus en Beta.
Merci encore de toutes ces infos qui m’ont permis de bien avancer.
Luc

1 « J'aime »

Pour Akenad, juste une remarque.
A mon avis le premier message de ce fil est beaucoup plus qu’un retour d’expérience ( ce qui est le cas de ton autre fil: [RTEX] Box Jeedom Atlas - plugin MQTT Manager (mqtt2) Mode Broker local - avec plugins abonnés Z-Wave JS (zwavejs) et JeeZigbee (z2m) ) et sera utile à beaucoup d’utilisateurs à la recherche d’explications. Tu devrais changer le titre en quelque chose du genre " Plugins basés sur MQTT; principes et organisation". Cela faciliterait la recherche et séparerait bien la partie retour d’expérience de la partie principes de fonctionnement.
Luc

1 « J'aime »

Pas besoin de chercher, je fais des « RTEX » et des « Flash » depuis 2017, tout est la ! : [Présentation] akenad

akenad :slight_smile:

1 « J'aime »

OK. J’avais pas tout suivi ou tout exploré !!!

il y en a d’autre aussi comme mqttlinky avec mqtt manager

Et enfin liste impressionnante sur xxx2MQTT : GitHub - hobbyquaker/awesome-mqtt: A curated list of MQTT related stuff.

Un bel avenir en perpective :wink:

Bonjour akenad, merci pour toute ces explications qui clarifient grandement ma vision des choses avant d essayer de faire la bascule sur ma future nouvelle installation via Proxmox.
qu entends tu par là quand tu dis préférer broker local "surtout avec le plugin Zwav JS

Bonjour,

Un broker Mosquitto distant ça fonctionne aussi.
C’est juste une question de niveau de complexité de mise en oeuvre de la configuration.

akenad :slight_smile:

1 « J'aime »