Page 1 sur 1

[Résolu} zwavejs2mqtt ne communique pas avec Mosquitto

Publié : 14 nov. 2022, 17:19
par Georges Orwell
Bonjour,

Openzwave étant déprécié, je suis en train de migrer vers zwave js et mqtt.

Pour ce faire, j'ai, sur mon Rpi 4:

-Installer Mosquitto
-Installer Docker
-installer MQTT auto discovery client dans Domoticz
-installer MQTT client Gateway dans Domoticz
-installer zwavejs2mqtt sous Docker avec la commande:

docker run --rm -it -p 8091:8091 -p 3000:3000 -e TZ=Europe/Paris --device=/dev/serial/by-id/usb-0658_0200-if00:/dev/zwave \
--mount source=zwavejs2mqtt,target=/usr/src/app/store zwavejs/zwavejs2mqtt:latest

Avec MQTT explorer j'ai vérifié que Domoticz communiquait bien avec Mosquitto à l'adresse du RPI 192.168.0.101:1883
A l'adresse 192.168.0.101:8191 j’accède j'ai bien aux settings de zwavejs2mqtt et je vois tous mes devices zwave.

Je ne vois malheureusement pas les devices dans Domoticz.

Lorsque je lance le Docker zwavejs2mqtt, je reçois le message cannot connect to 127.0.0.1:1883
Je suppose que c'est normal car c'est l'adresse loopback du container.

J'ai alors modifié les settings de zwavejs2mqtt et mis comme host 192.168.0.101 et sauvegarder.

Si je redémarre le container j'ai a nouveau l'erreur cannot connect to 127.0.0.1:1883.
La config n'est donc semble t-il pas sauvegardée.

Je soupçonne donc un problème avec ma commande pour lancer le container et/ou un problème du fichier de sauvegarde que, au demeurant, je ne trouve pas ;-)

Quelqu'un peut-il m'aider ?

Merci.

Georges

Re: zwavejs2mqtt ne communique pas avec Mosquitto

Publié : 14 nov. 2022, 18:00
par Filnet
Je pense que le paramètrage de zwave2mqtt n'est pas adapté. J'ai pas mal tâtonné aussi. Voici le mémo que je me suis rédigé et çà fonctionne. Si çà peut aider:

Onglet "Setting/MQTT":
▪ Rechercher l'IP (car avec docker, publisher et broker ne sont pas dans le même container et ont donc chacun leur IP. Pour voir apparaître les connexions, il faut que le module MQTT-AutoDiscover soit activé dans domoticz. Puis. dans le terminal:
pi@user:~ $ sudo tail -f docker/mqtt/log/mosquitto.log
0: Opening websockets listen socket on port 9001.
0: mosquitto version 2.0.14 running
0: Saving in-memory database to /mosquitto/data//mosquitto.db.
0: New connection from 172.19.0.1:37216 on port 1883.
0: New connection from 172.19.0.1:37220 on port 1883.
0: New client connected from 172.19.0.1:37220 as Domoticz-MQTT-AutoDiscoverc61de3ee-f8aa-4076-a7f9-720a81509db236 (p2, c1, k40, u'Phil').


On voit que la connexion a pour IP 172.19.0.1, valeur à mettre à la place de localhost dans l'onglet "Setting/MQTT"

Re: zwavejs2mqtt ne communique pas avec Mosquitto

Publié : 14 nov. 2022, 18:08
par boum
A priori, les fichiers sont qq part dans /var/lib/docker/volumes/ vu que la commande ressemble à celle de https://zwave-js.github.io/zwave-js-ui/ ... ng-volumes

Je ne connais pas beaucoup docker et donc, j'ai opté pour la version docker-compose avec volume en répertoire local pour pouvoir sauvegarder plus facilement (cf dans le lien plus haut les paragraphes suivants).

Re: zwavejs2mqtt ne communique pas avec Mosquitto

Publié : 14 nov. 2022, 18:54
par Georges Orwell
@Filnet

Voici la réponse à la commande proposée....

sudo tail -f docker/mqtt/log/mosquitto.log
tail: impossible d'ouvrir 'docker/mqtt/log/mosquitto.log' en lecture: Aucun fichier ou dossier de ce type
tail: aucun fichier restant

Ton Mosquitto est installé sous Docker ?

@Boum

Je ne connais pas Docker-compose mais je suis prêt à essayer ;-)

Le fichier YML, on le crée dans quel répertoire ?
On lance après la commande de démarrage à partir du même répertoire ?

Désolé pour la question de noob :-)

Georges

Re: zwavejs2mqtt ne communique pas avec Mosquitto

Publié : 14 nov. 2022, 21:10
par boum
pour docker-compose, 1 fichier yml par répertoire. Le fichier docker-compose.yml peut définir plusieurs conteneurs pour plusieurs services (la doc zigbee2mqtt lance un conteneur mqtt et un 2e pour le zigbee2mqtt par exemple).

Perso, je suis parti sur 1 répertoire + 1 fichier par conteneur pour simplifier et potentiellement les mettre dans des git locaux indépendants.

Une fois le fichier éditer pour régler les ports et répertoires des volumes, le conteneur se lance avec `docker-compose up -d` lancé dans le répertoire, le -d est pour daemon, lancement en arrière plan.

Re: zwavejs2mqtt ne communique pas avec Mosquitto

Publié : 14 nov. 2022, 21:27
par Keros
Tu peux aussi regarder Portainer. C'est un container Docker qui permet de gérer les autres. En gros, c'est comme si tu avais un WebUI pour gérer les fichiers Docker-compose (qui sont appelés stack) et tous les containers Docker. Une fois installé, plus besoin de faire des lignes de commandes :mrgreen:

@boum, les stacks peuvent récupérer via git ;)

Re: zwavejs2mqtt ne communique pas avec Mosquitto

Publié : 15 nov. 2022, 19:29
par Georges Orwell
Bonjour à tous,

Le problème est résolu.
C'était effectivement la commande Docker qui n'était pas bonne.
J'ai donc utilisé le fichier docker-compose.yml de Filnet, à savoir:

Code : Tout sélectionner

version: '3.7'

services:

  zwavejs2mqtt:

    container_name: zwavejs2mqtt

    image: zwavejs/zwavejs2mqtt:latest

    restart: always

    tty: true

    stop_signal: SIGINT

    environment:

      - SESSION_SECRET=mysupersecretkey

      - ZWAVEJS_EXTERNAL_CONFIG=/usr/src/app/store/.config-db

      # Uncomment if you want logs time and dates to match your timezone instead of UTC

      # Available at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

      - TZ=Europe/Paris

    networks:

      - zwave

    devices:

      # Do not use /dev/ttyUSBX serial devices, as those mappings can change over time.

      # Instead, use the /dev/serial/by-id/X serial device for your Z-Wave stick.

#      - '/dev/serial/by-id/usb-0658_0200-if00:/dev/zwave'

       - '/dev/ttyUSB-ZStick-5G'

    volumes:

      - zwave-config:/usr/src/app/store

    ports:

      - '8091:8091' # port for web interface

      - '3000:3000' # port for Z-Wave JS websocket server

networks:

  zwave:

volumes:

  zwave-config:

    name: zwave-config
Merci à lui.

J'ai seulement changé le stick.
Pour info, la commande qu'il m'a demandé d'utiliser -sudo tail -f docker/mqtt/log/mosquitto.log- a généré une erreur car lui, contrairement à moi a utilisé Docker pour zwavejs2mqtt ET Mosquitto.
Son adresse IP 172.19.0.1 est typiquement une adresse Docker.
J'ai donc, comme dit dans mon premier post bien utilisé 192.168.0.101 dans les settings MQTT

Merci à vous tous pour votre aide.

Georges