Plusieurs jeedom avec un broker mqtt commun?

Bonjour,

Suite à un premier post ici,, j’ai fini par comprendre d’où venait le souci : j’avais deux instances jeedom qui utilisaient le meme broker mosquitto sur le lan et il y avait conflit sur le topic zwave.
En effet j’avais mal interprété le paramétrage de mqtt, je pensais que le « topic racine » chapeautait tous les topics mqtt de l’instance jeedom (donc avec « jeedom1 » comme topic racine d’une instance et « jeedom2 » comme topic racine de l’autre instance, je pensais pouvoir mettre « zwave » comme préfixe mqtt, mais je me suis aperçu avec mqtt Explorer que tous les éléments zwave transmis via mqtt de mes deux instances allaient dans un meme topic « zwave » directement à la racine du broker. Je pensais naïvement que j’aurais un « jeedom1/zwave » et un « jeedom2/zwave ».
J’ai donc tenté de configurer zwavejs avec un prefix mqtt directement (« jeedom1/zwave » et « jeedom2/zwave ») et après m’être assuré dans le plugin mqtt de chaque instance que zwavejs est bien abonné correctement, et bien zwavejs ne fonctionne pas correctement. En effet, cf post en lien, un autre membre de la communauté m’avait recommandé de laisser le préfixe par défaut. Ce qui contournait le problème rencontré sans le résoudre.
Concrètement, est-ce que quelqu’un a déjà réussi à faire fonctionner deux instances jeedom sur un broker mqtt distant (hébergé par un nas ou autre device sur le LAN) ? Je suis intéressé pour connaitre la configuration, puisqu’il y a peut-être quelque chose que je ne fais pas correctement ?

Bonjour,

Pas exactement, mais jeedom et home assistant avec le même broker hébergé sur jeedom.ca fonctionne parfaitement

Tu peux sans problème utiliser la même instance MQTT, du moment que les topics ne rentrent pas en collision si tu veux utiliser 2 instances Jeedom indépendantes. Tu as 2 contrôleurs Zwave ? Si oui, alors tes topics racine zwave/ doivent être redéfinis au niveau de zwavejs2mqttt ET de Jeedom, ça ne devrait pas poser de problème ensuite.

Bonjour,

la question est ambiguë: tag plugin-zwavejs mais le sujet dit « plusieurs jeedom »

vous voulez plusieurs jeedom sur le même broker ou plusieurs zwavejs?

  • plusieurs jeedom => il n’y a rien à faire de particulier excepté les configurer pour se connecter à votre broker;
  • plusieurs zwavejs => chaque instance doit être séparée donc si même broker, le topic doit être différent

selon moi, une seule config à toucher, nullement besoin d’ouvrir zwavejs-ui (zwavejs2mqttt ca n’existe pas :wink:):
image
=> sauvegarder et relancer le démon.

je suis d’accord… mais en pratique modifier le prefixe mqtt induit des erreurs de fonctionnement.

je suis preneur d’un feedback si quelqu’un se sent de modifier le prefixe mqtt, juste pour tester , relancer le demon et voir si ca tourne correctement, sans erreur.

Pourquoi pas dans l’autre sens?
Faites la modif et dites tout ce qui bloque avec exemple et log :wink:

1 « J'aime »

Parce que ça nécessite très peu d’actions utilisateurs pour un profil dev à tester (le champ préfixe mqtt à changer + redémarrer le démon) contre… beaucoup plus à les faire et rapporter ici mes observations sans garantie que je donne les bonnes billes car je ne vais pas forcément savoir où chercher. Enfin bref je vais tenter.
Pour commencer je suis à jour sous jeedom 4.4 sur un rpi 5 (même bug sous le rpi 3).
Avec le rpi5, voici ce que j’ai :


Le démon démarre quand même mais driver non intialisé.

> zwave-js-ui@9.20.0 start
> node --preserve-symlinks server/bin/www.js
e[90m2025-01-09 22:49:20.921e[39m e[32mINFOe[39m e[1mAPPe[22m: Version: 9.20.0.bf3bdc3
e[90m2025-01-09 22:49:20.924e[39m e[32mINFOe[39m e[1mAPPe[22m: Application path:/var/www/html/plugins/zwavejs/resources/zwave-js-ui
______  __          __                      _  _____     _    _ _____
|___  /  \ \        / /                     | |/ ____|   | |  | |_   _|
/ /____\ \  /\  / /_ ___   _____         | | (___     | |  | | | |
/ /______\ \/  \/ / _' \ \ / / _ \    _   | |\___ \    | |  | | | |
/ /__      \  /\  / (_| |\ V /  __/   | |__| |____) |   | |__| |_| |_
/_____|      \/  \/ \__,_| \_/ \___|    \____/|_____/     \____/|_____|
e[90m2025-01-09 22:49:20.934e[39m e[33mWARNe[39m e[1mSTOREe[22m: scenes.json not found
> zwave-js-ui@9.20.0 start
> node --preserve-symlinks server/bin/www.js
e[90m2025-01-09 22:50:36.548e[39m e[32mINFOe[39m e[1mAPPe[22m: Version: 9.20.0.bf3bdc3
e[90m2025-01-09 22:50:36.551e[39m e[32mINFOe[39m e[1mAPPe[22m: Application path:/var/www/html/plugins/zwavejs/resources/zwave-js-ui
______  __          __                      _  _____     _    _ _____
|___  /  \ \        / /                     | |/ ____|   | |  | |_   _|
/ /____\ \  /\  / /_ ___   _____         | | (___     | |  | | | |
/ /______\ \/  \/ / _' \ \ / / _ \    _   | |\___ \    | |  | | | |
/ /__      \  /\  / (_| |\ V /  __/   | |__| |____) |   | |__| |_| |_
/_____|      \/  \/ \__,_| \_/ \___|    \____/|_____/     \____/|_____|
e[90m2025-01-09 22:50:36.560e[39m e[33mWARNe[39m e[1mSTOREe[22m: scenes.json not found

Si j’essaie d’allumer et d’éteindre une prise cela semble envoyer toujours la meme requête sur le broker mqtt.

[2025-01-09 22:50:30] INFO  : Arrêt du démon ZwaveJS
[2025-01-09 22:50:35] INFO  : Arrêt du démon ZwaveJS
[2025-01-09 22:50:35] DEBUG  : [configureSettings] Informations reçues de MQTT Manager : {"ip":"192.168.1.128","port":"1883","protocol":"mqtt","user":"pouet","password":"Pouet"}
[2025-01-09 22:50:35] INFO  : Démarrage du démon ZwaveJS : STORE_DIR=/var/www/html/plugins/zwavejs/data/store KEY_S0_Legacy=XXXXXXXXXXXXXXXXXXXXX
KEY_S2_Unauthenticated=XXXXXXXXXXXXXXXXXXXXX
KEY_S2_Authenticated=XXXXXXXXXXXXXXXXXXXXX
KEY_S2_AccessControl=XXXXXXXXXXXXXXXXXXXXX
SESSION_SECRET=jeedomSession npm start
[2025-01-09 22:51:50] DEBUG  : [refreshIfNeeded] 37/0/targetValue true
[2025-01-09 22:51:55] DEBUG  : [refreshIfNeeded] 37/0/targetValue true
[2025-01-09 23:00:29] DEBUG  : [refreshIfNeeded] 37/0/targetValue true
[2025-01-09 23:00:34] DEBUG  : [refreshIfNeeded] 37/0/targetValue false

Rien ne se passe lorsque j’essaie d’afficher les infos du réseau zwave

Je vois dans les logs mqtt:

0270|[2025-01-09 23:07:41] DEBUG  : Message reçu sans prise en charge par un plugin : {"jeedom-pi5":{"zwave":{"3":{"50":[{"value

La conf du plugin mqtt :


Dites-moi s’il vous faut autre chose, je ferai au mieux

A noter : j’ai également personnalisé le topic racine sur le plugin z2m, aucun souci de cette nature, tout fonctionne avec la prise zigbee que j’utilise pour mon test. Il me semble donc que le problème soit localisé au plugin zwavejs.

Et pour info, même si ça parait évident, je l’indique tout de même pour être le plus exhaustif possible : en remettant le préfixe zwave à sa valeur par défaut « zwave », je redémarre le démon et hop, tout remarche nickel, plus de message comme quoi le driver n’est pas initialisé, les infos des noeuds zwave remontent bien. C’est à se demander s’il n’y a pas en dur dans le code quelque part le chemin « zwave » attendu avec mqtt. Serait-ce inenvisageable qu’il s’agisse d’un bug ?

Je viens de faire le test et cela fonctionne sans problème.

pour le préfixe: ne mettre qu’un seul mot, pas de path; donc zwavepi5 par exemple

1 « J'aime »

Je commence par te remercier pour ton test, c’est sympa de ta part, j’apprécie :slight_smile:
D’accord, donc ça fonctionne sans problème… avec une contrainte non documentée toutefois. Je vérifie ce soir ou demain ; ça vaudrait le coup de pousser à la team jeedom de spécifier les limites du préfixe.

C’est plutôt une contrainte zwavejs-ui à mon avis
Et pour moi c’est implicite lorsque le champ s’appelle « préfixe », c’est pas un chemin.
En français c’est pareil je pense: un mot peut avoir un préfixe… personne ne comprend qu’il peut en mettre deux :wink:

On est d’accord pour un mot en français, mais rien a voir ici :wink:
Pour Mqtt on l’interprète différemment c’est manifeste. Dans l’idée vu que Mqtt repose sur la notion de topic hiérarchisé, rien ne semble contraindre un prefixe à un trunk de chemin. Perso j’aurais aimé avoir justement les topics zwave et zigbee hierarchisés sous le « préfixe » correspondant à l’instance jeedom, ce que ne permet manifestement pas jeedom. Pas grave, je ferai avec cette limite maintenant que je la connais, merci de me l’avoir fait découvrir

Cela doit être une limitation du plugin-zwavejs (que je n’utilise pas) car côté Z-Wave JS UI, il n’y a pas cette limitation.

Capture d’écran du 2025-01-17 23-28-23

Capture d’écran du 2025-01-17 23-27-41

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.