ZWaveJS avec daemon docker distant

salut

C’est corrigé il y en a moins :wink:

root@jeedom-dev> git diff upstream/beta|grep 'diff '
diff --git a/.gitignore b/.gitignore
diff --git a/README.html b/README.html
diff --git a/README.md b/README.md
diff --git a/core/ajax/zwavejs.ajax.php b/core/ajax/zwavejs.ajax.php
diff --git a/core/class/zwavejs.class.php b/core/class/zwavejs.class.php
diff --git a/core/config/zwavejs.config.ini b/core/config/zwavejs.config.ini
diff --git a/desktop/js/zwavejs.js b/desktop/js/zwavejs.js
diff --git a/desktop/modal/health.php b/desktop/modal/health.php
diff --git a/desktop/modal/network.php b/desktop/modal/network.php
diff --git a/desktop/php/zwavejs.php b/desktop/php/zwavejs.php
diff --git a/docs/images/jeedom.png b/docs/images/jeedom.png
diff --git a/docs/images/zwavejs.png b/docs/images/zwavejs.png
diff --git a/docs/images/zwavejs1.png b/docs/images/zwavejs1.png
diff --git a/docs/images/zwavejs2.png b/docs/images/zwavejs2.png
diff --git a/docs/images/zwavejs3.png b/docs/images/zwavejs3.png
diff --git a/docs/images/zwavejs4.png b/docs/images/zwavejs4.png
diff --git a/plugin_info/configuration.php b/plugin_info/configuration.php
diff --git a/plugin_info/install.php b/plugin_info/install.php
diff --git a/plugin_info/packages.json b/plugin_info/packages.json
diff --git a/resources/zwavejs b/resources/zwavejs

Nickel.
Bon, j’espère que ta PR sera tout de même validé un jour ou l’autre.
Pas parce que j’en ai besoin. Mais si j’avais eu cette option il y a un moment, je n’aurais pas entamé ma migration vers Zigbee.
Et je n’aurais pas utilisé jMqtt, plugin très puissant, mais tout de même complexe à mettre en œuvre.

1 « J'aime »

Bonjour,

Je découvre ce forum, un peu tard. Je suis parti du même constat que bcp d’entre vous, jeedom est déja bien chargé avec toutes le couches logicielles empilées, en sortir quelques unes ne serait pas mal. dans mon setup, mysql est un conteneur, mqtt2 est un conteneur, zwavejs est un conteneur, jeedom est un conteneur (image perso).
A l’époque j’avais bataillé un peu pour modifier (saccager) le plugin ZwaveJS-ui pour qu’il n’installe rien n’ai aucune dépendance, ne lance pas démon et soit détecté tout le temps lancé. J’ai fait un script qui automatise ces actions.
D’après ce que je comprends, ici il est question d’ajouter le mode « remote zwave » (entre autres) dans le plugin. c’est un sacré travail qui a été fait.
J’ai regardé le code et j’ai quelques questions, sûrement parce que j’ai lu trop vite: elles concernent toute le monde remoteZwave.

  • aucune dépendance n’est installée ?
  • le plugin officiel en démarrant via yarn, le démon envoie les différentes clés S0/S1/S2; ici cela ne semble pas etre le cas. y a t il un message l’indiquant ? je n’ai pas vu dans la doc de l’image de zwavejs-ui un moyen d’injecter ces variables et valeurs au démarrage.
  • Actuellement la taille du dossier du plugin est a 17M, bien loin des 300Mb du plugin officiel. quel est la taille prise avec ce plugin en mode remoteZwaveJs ?

Bonjour

  1. non aucune sauf volontairement si vous utilisez le mode local et le bouton « installer ZWaveJS »
  2. comme je l’ai dit pour l’instant je ne gere pas le docker distant, par contre je crée une archive avec toutes les dépendances qu’il faut copier sur la VM qui hoste docker. Celli ci contient entre autres les clés mais pas que (ex configs custom des équipements ajoutées par la team jeedom). cf la doc
  3. je n’ai pas fait le test mais on ne doit pas être loin de la taille sans lesd épendances

Je vous engage à le tester à me me faire un retour

Salut,

J’ai installé le plugin et configuré mqtt et zwavejs. j’ai bien les infos et le réseau qui s’affichent sans les pages informations de la conf du plugin. C’est super.
La synchronisation me fait bien remonter tous mes appareils zwave.
Comme je le disais , le mqtt est distant (conteneur sur un autre rpi), tout comme le conteneur zwavejs.
Je ferais un peu plus de tests pour valider.un rebase des 29 fichiers et tout sera a jour :slight_smile:
Par contre en relisant, je vois que tu annonces prendre en compte les personnalisations de l’équipe jeedom. je vais regarder ça de près. je pense que j’ai du passer a coté.
En tout cas, merci pour cette amélioration attendu de longue date.

Pour le merge de pr, je crois que ça prendra du temps, vu l’activité sur les branche beta et v4_stable, il y a bcp de correctifs en cours sans parler du passage a debian 12 et sa gestion différente des modules python.
le support Debian 11 s’arrêtant dans un mois (Debian | endoflife.date), je pense que la pression est la.

Salut

Merci pour ton feedback.
Une précision: j’ai pris en compte les personnalisations Jeedom a la date du fork, je n’ai pas fait de merge depuis et ca n’est pas a moi de le faire…
Ceci dit elles sont dans un répertoire séparé et je n’y ai pas touché donc ca devrait pas etre trop dur

Oui je me doute qu’ils ont quelques trucs a regler.
A ta dispo si nécessaire

Bonjour, je viens de découvrir ce topic.

Je viens de la parcourir et je voudrais une confirmation.

J’utilise actuellement dans un des dockers distant un broker MQTT, zwaveJS, Z2M…
Je récupère les topics MQTT via jMQTT.

D’après ce que j’ai compris, pas le choix il va falloir installer MQTT MANAGER. Je vais pouvoir me connecter à mon broker distant avec MQTT MANAGER ?
Concernant ZWAVE JS, est ce que je vais pouvoir reprendre tous les devices déjà détectés (reprendre la base de donnée sur mon docker actuel ZWAVE JS et sa config ?)

Merci pour vos lumières.

Bonjour
Oui et oui :wink:
MQTT Manager ne sert qu’a lire les messages entrants et a poster les actions dans le topic zwave. Il est parfaitement compatible avec jMQTT rien a changer et pas besoin d’installer de broker supplémentaire non plus. Ne pas oublier de le parametrer pour lire ton topic zwave.

Par contre pour l’instant rien n’est automatisé c’est a faire a la main.
Pour récupérer ton parametrage docker distant il te faut faire la manip inverse de celle que j’ai indiquée.
Concrètement il s’agit du contenu du fichier de settings monté dans ton container:

store_docker/config/config.json

A copier sur la machine Jeedom dans:

zwavejs/data/store

Tu ne risques rien a faire un test zwavejs-ui reste maitre, tes devices devraient apparaître automatiquement comme pour la migration depuis OpenZwave

J’avais pas vu ce post :face_with_peeking_eye:

J’ai migré aussi sur docker distant il n’y pas si longtemps , et cela serait bien que l’equipe Jeedom accepte ton PR, cela est utile . En, plus c’est dispo sur jeezigbee et cela ma bien facilité la vie lors de la bascule, j’ai rien eu a refaire

J’ai du mettre mqttdiscovery pour récupérer les modules mais j’attend cette solution aussi

Bravo pour ta modification et le temps que tu as passé , a vous jeedom maintenant :sweat_smile:

1 « J'aime »

Bon je me suis lancé, cependant, config.json n’existe pas sur ma version de zwavejs, j’ai par contre settings.json sur mon docker zwave. Mais si je le copie dans le plugin sous jeedom il est écrasé.

Communication zwavejs est OK sur le plugin mais pas de remontée de version.

Sur mon docker le dossier store/zwavejs/config/ est vide

Je viens également de remarquer que le topic de publication n’est pas bon, chez moi ce n’est pas Jeedom ici mais zwavejs2mqtt : : Publish message on topic : zwave/_CLIENTS/ZWAVE_GATEWAY-Jeedom/api/getNodes/set => {"type":"sync"} with options : {}

J’ai modifié dans le code pour avoir le bon topic mais rien n’apparaît pour autant dans les pages réseau Zwave ou autre. Si tu as une idée sur ce que j’ai loupé. Merci

Salut

As tu renseigné les bons paramètres dans la page config du plugin?

config.json c’est le fichier le plus important, les autres sont régénérés au startup du container. Il est généré par le plugin a partir de la page config. Il devrait aussi exister sur le volume de ton docker remote, de memoire il contient les settings zwavejsui que tu peux modifier via l’IHM de la lib: Topic, cles, host, port… tous les parametres ont de l’importance

Le topic que tu cites est celui du publish pas celui du subscribe. Je me suis calé sur ceux du plugin d’origine donc pas étonnant qu’ils soient différents du tien

Je n’ai jamais testé dans ce sens la mais ca devrait marcher aussi.
Tu peux faire un backup de ton volume et tenter dans l’autre sens en suivant ma doc pour voir les differences.

Je suis pas chez moi cette semaine je pourrai t’aider semaine prochaine si tu bloques tjs

je n’ai pas réussi, par contre c’est peut être dû aux versions que j’utilise :
image

Fait moi signe quand tu as de la dispo pour que je comprenne et qu’on regarde comment faire, merci et bonne vacances

Edit, je vois bien le plugin zwavejs envoyer par le biais de mqtt manager le getNodes par exemple, je le vois bien passé sur le broker, mais Jeedom ne récupère jamais la réponse.

C’est là que ça coince je pense.

J’ai réussi, tout fonctionne bien, j’avais un pb avec mon broker mqtt et les identifiants déjà utilisé pour jMQTT. Du coup tout est déporté au dernières versions publiée de zwave-js-ui et server et ça remonte bien sur jeedom. Plus qu’à tester.

Ah top!
De mon côté je n’ai tjs pas de nouvelles de mon PR
@Loic il me semblait que l’équipe Jeedom devait l’examiner a la rentrée ? Des news?

1 « J'aime »

Bonjour
Non j’en ai pas et vu que c’est vraiment pas mon sujet le zwavejs je ne peux pas te dire où ça en ai malheureusement. Ouvre un ticket peut être pour savoir

Ca fait + de 4 mois donc je veux bien croire qu’ils ont d’autres priorités mais si c’est pas maintenant ca sera jamais…d’autant plus que plus ils attendent plus ca va diverger.

Je peux pas ouvrir de ticket j’utilise la version communautaire
Il y a un autre moyen de les contacter?
EDIT
Je viens d’ajouter un commentaire

1 « J'aime »

JE vais suivre cela de pret, merci pour le PR

Hello,

J’ai aussi mis un commentaire. Ton PR est juste indispensable.

Merci à toi.

Merci pour votre soutien :wink:

Bonjour,
Je ne suis qu’un utilisateur lambda mais je trouve l’idée séduisante. Aussi ai-je également ajouté mon petit commentaire.

1 « J'aime »