Mosquitto server dockerisé sur NAS Synology

Bonjour à tous,

J’héberge Jeedom ainsi que les différents services sur mon NAS Synology sur des container dockers.
Anciennement sur le plugin Zwave classique, j’essaie de migrer sur ZwaveJS avec le protocole MQTT.
J’ai monté un container docker Mosquitto et créé l’utilisateur « jeedom » avec lequel j’arrive à me connecter avec un client de type MQTT Explorer.

Cependant en configurant le plugin MQTT Manager de Jeedom j’ai des erreurs.


Je ne sais pas comment m’y prendre à partir de là, auriez-vous quelques conseils à me donner ?

Merci pour votre aide

Manu

Salut
Une raison pour ne pas utiliser le plugin zwavejs officiel?

Sinon, je passerais plutôt par jmqtt, qui peut utiliser le mosquitto de mqtt2, à la place de mqtt2, qui n’est pas super adapté ici, à mon avis. Mqtt2 est plutôt une passerellle pour les plugins officiels à base de mqtt, et pas un client mqtt generaliste.

Antoine
PS: mais je suis pas sur d’avoir bien compris ce que tu voulais faire comme installation zwavejs.

1 « J'aime »

Effectivement si la question concerne un plugin il faut ajouter l’étiquette correspondante sur le post, ça enlèverait le doute.

Je n’ai pas trouvé l’étiquette pour MQTT Manager (plugin standard)

Avant j’utilisais Abeille pour le protocole Zigbee et Zwave (module historique) mais standard pour le Zwave.

J’ai vu que le plugin Zwave historique est déprécié et qu’on nous encourage à passer sur ZwaveJS ce que j’essaie de faire. Mais il s’appuie lui-même sur le plugin MQTT Manager que je n’arrive pas à faire fonctionner en local. J’ai donc tenté de construire un broker Mosquitto dockerisé sur mon NAS et de brancher le plugin dessus. Pas mieux. Je suis un peu dépassé.

Par ailleurs en parallele je vais tenter de passer pour le zigbee sur le plugin standard Jeezigbee et pareil…MQTT…

Il y a quelques posts dans lequel j’explique que l’étiquette d’un plugin c’est son id et que l’id d’un plugin est visible dans la page de config entre parenthèse (en haut à gauche) => plugin-mqtt2

Je te remercie, c’est modifié

Oui je sais, je viens de le faire :wink:

Revenons au problème: tu veux garder mosquitto en docker et t’y connecter à distance (ce qui est possible mais là je ne vois pas l’erreur perso, il faudra plus de logs et d’info) ou l’installer en local?

Je n’ai pas de religion sur la méthode.
Tu as raison je vais repartir du début, j’ai tout d’abord tenté le plus simple avec l’option broker local du plugin et l’installation par le bouton d’install Mosquitto.
Le daemon ne démarre pas.
Un netstat me confirme que le port 8883 n’est pas utilisé.

[2023-09-12 16:56:07][INFO] : Start mqtt2d
[2023-09-12 16:56:07][INFO] : Log level on  : debug
[2023-09-12 16:56:07][INFO] : Socket port : 55035
[2023-09-12 16:56:07][INFO] : MQTT : mqtts://127.0.0.1:8883
[2023-09-12 16:56:07][INFO] : Username : jeedom
[2023-09-12 16:56:07][INFO] : Password : XXXXXXX
[2023-09-12 16:56:07][INFO] : PID file : /tmp/jeedom/mqtt2/deamon.pid
[2023-09-12 16:56:07][INFO] : Apikey : XXXXXXXXX
[2023-09-12 16:56:07][INFO] : Callback : http://127.0.0.1:80/plugins/mqtt2/core/php/jeeMqtt2.php
[2023-09-12 16:56:07][INFO] : Cycle : 0.3
[2023-09-12 16:56:07][INFO] : Client key : /var/www/html/plugins/mqtt2/data/ssl/client.key
[2023-09-12 16:56:07][INFO] : Client crt : /var/www/html/plugins/mqtt2/data/ssl/client.crt
[2023-09-12 16:56:07][INFO] : CA : /var/www/html/plugins/mqtt2/data/ssl/ca.crt
[2023-09-12 16:56:08][INFO] : Connect to mqtt server
Tue, 12 Sep 2023 16:56:08 GMT body-parser deprecated undefined extended: provide extended option at jeedom/jeedom.js:165:31
[2023-09-12 16:56:08][DEBUG] : HTTP listen on 127.0.0.1 port : 55035 started
[2023-09-12 16:56:08][ERROR] : Error on connection to mqtt server : Error: connect ECONNREFUSED 127.0.0.1:8883`

On peut voir la config dans ce mode là du coup?
Et la page santé jeedom aussi

C’est quoi comme box? Pi, officielle, vm…?

C’est un Jeedom version 4.3.17 dockerisé sur mon NAS Synology.

La conf du plugin

La page santé

J’ai tenté une suppression du plugin MQTT Manager puis une réinstallation complète sans effet positif. Même erreur.

Hello
Pas de religion non plus ni de solution mais une piste :
Je suis aussi sur un NAS et je cherche toujours à délester mon container Jeedom.
J’ai donc un container mosquitto à part et d’autres zwave-js-ui, zigbee2mqtt,…
Une différence possible : les réseaux docker (ou container manager si DSM7.2).
Jeedom et mosquitto sont en macvlan avec leurs ip dédiées, tous les autres sont en bridge.

Bonjour,
Pour avoir la meme configuration mosquitto en docker sur synology et jeedom en docker aussi sur synology et aucun soucis ca marche parfaitement. A mon avis tu as un soucis de configuration quelques part ou d’accès depuis jeedom a ton conteneur mosquitto.

Salut,

Merci pour ton retour je suis moi aussi en 7.2 avec container manager. A la base j’ai la même stratégie que toi, j’essaie de dédier un container à chaque service pour éviter trop de dépendances dans le même container et simplifier la maintenance et les montées de version.
A la différence de toi, mon Jeedom est dans un container de type bridge là où par contre j’ai construit Mosquitto dans un macvlan (et oui, j’ai appris docker sur le tas, et donc découvert Macvlan tardivement).
J’ai pour projet de déplacer mon jeedom sur mon réseau macvlan pour avoir une IP dédiée et un modèle plus homogène.

Je profite du coup de ton expérience:

  • Lorsque tu as déployé Mosquitto dans le container et créé l’utilisateur pour l’interconnection avec Jeedom, quelles autres actions as-tu effectué côté Mosquitto ?
  • J’ai une clé Conbee2 à installer en remplacement d’une vieille Zigate, que me conseilles-tu de containeriser ? J’ai construit un container Deconz sur mon macvlan, il fonctionne mais n’ai pas lié à Jeedom encore.

Aucune autre action sur mosquitto et pas d’utilisateur (pas bien mais c’est pas la NASA :grin:).

yaml mosquitto
version: '3.4'
networks:
    network:
        external:
            name: macvlan0
services:
    mosquitto:
        container_name: mosquitto
        tty: true
        hostname: mosquitto
        restart: unless-stopped
        mac_address: 02:42:c0:a8:00:ce
        networks:
            network:
                ipv4_address: 192.168.0.206
        environment:
            - TZ=Europe/Paris
        volumes:
            - "/volume1/docker/mosquitto/data:/mosquitto/data"
            - "/volume1/docker/mosquitto/log:/mosquitto/log"
            - "/volume1/docker/mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf"
        image: "eclipse-mosquitto"

Pour le zigbee, avec une Conbee2 sans Deconz.

yaml zigbee2mqtt
version: '3.4'
services:
    zigbee2mqtt:
        container_name: zigbee2mqtt
        tty: true
        hostname: zigbee2mqtt
        restart: unless-stopped
        devices:
            - /dev/ttyACM1
        ports:
            - "6080:6080"
        environment:
            - TZ=Europe/Paris
        volumes:
            - "/volume1/docker/zigbee2mqtt/data:/app/data"
            - "/run/udev:/run/udev:ro"
        image: "koenkk/zigbee2mqtt"

Et pour le sujet zwave, avec une clé sigma :

yaml zwave2mqtt
version: '3.4'
services:
    zwave2mqtt:
        container_name: zwave2mqtt
        tty: true
        hostname: zwave2mqtt
        restart: unless-stopped
        devices:
            - /dev/ttyACM0
        ports:
            - "8091:8091"
            - "3000:3000"
        environment:
            - TZ=Europe/Paris
        volumes:
            - "/volume1/docker/zwave2mqtt/store:/usr/src/app/store"
        image: "zwavejs/zwave-js-ui"
1 « J'aime »

J’ai sans doute un soucis avec ma conf réseau…
Je vais tout remettre au propre en macvlan etc…

Merci beaucoup pour tout ce détail.

Même config que toi pour Mosquitto.
Je vais construire mes container zgbee2mqtt et zwave2mqtt et migrer mon jeedom sur le macvlan.

Pour la construction de mon nouveau container Jeedom, un import de la config depuis mon container actuel + les quelques fichiers spécifiques hébergés te semble suffisant ? Tu t’y prendrais comment ? (ça m’inquiète un peu)

L’outil de backup/restore de Jeedom est redoutable.
Ca remonte cette migration pour moi mais j’ai surement utilisé cette merveille.
Il ne te restera plus qu’a recabler les plugins sur la nouvelle ip et idem dans Reglages / Système / Configuration / Réseaux.
Dans le doute met de coté les dossiers mapé, le tarball de sauvegarde et le yaml en mode bridge :wink:

1 « J'aime »

Redoutable je confirme !!!

Pas de bol :grin:

Install propre sur mon macvlan et restauration du backup pris de mon ancien jeedom (version équivalente). Caches navigateur vidés/cookies aussi.