Zigbee2mqtt : Image docker de test basée Gladys v4

Mais rien a faire, même modifié avec ttyUSB0 à chaque fois que j’active le bouton “Activer Zigbee2Mqtt”.
J’ai même utilisé une nouvelle base de données.

Dommage, j’étais super impatient d’ajouter mes détecteurs de mouvement + fenêtre :sob:

Merci énormément pour tes réponses @VonOx !

J’ai finalement trouvé le fichier qui permet de créer le conteneur fautif :tada:

Dans le conteneur : /src/server/services/zigbee2mqtt/docker/zigbee2mqtt-container.json

{
  "name": "zigbee2mqtt",
  "Image": "koenkk/zigbee2mqtt:latest",
  "ExposedPorts": {},
  "HostConfig": {
    "Binds": ["/var/lib/gladysassistant/zigbee2mqtt/z2m:/app/data"],
    "PortBindings": {},
    "RestartPolicy": {
      "Name": "always"
    },
    "NetworkMode": "host",
    "Dns": [],
    "DnsOptions": [],
    "DnsSearch": [],
    "BlkioWeightDevice": [],
    "Devices": [
      {
        "PathOnHost": "/dev/ttyACM0",
        "PathInContainer": "/dev/ttyACM0",
        "CgroupPermissions": "rwm"
      }
    ]
  },
  "NetworkDisabled": false,
  "AttachStdin": false,
  "AttachStdout": false,
  "AttachStderr": false,
  "Tty": false
}

J’ai supprimé le conteneur zigbee2mqtt et relancé le conteneur Gladys et tada !



En revanche, maintenant j’ai un problème dans le conteneur lui-même. ça semble relatif à mon adaptateur :

> node index.js

Zigbee2MQTT:info  2021-01-04 17:01:49: Logging to console and directory: '/app/data/log/2021-01-04.17-01-48' filename: log.txt
Zigbee2MQTT:info  2021-01-04 17:01:49: Starting Zigbee2MQTT version 1.17.0 (commit #07cdc9d)
Zigbee2MQTT:info  2021-01-04 17:01:49: Starting zigbee-herdsman (0.13.46)

Zigbee2MQTT:info  2021-01-04 17:02:00: zigbee-herdsman started
Zigbee2MQTT:info  2021-01-04 17:02:00: Coordinator firmware version: '{"meta":{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20201026,"transportrev":2},"type":"zStack3x0"}'
Zigbee2MQTT:error 2021-01-04 17:02:00: Failed to start zigbee
Zigbee2MQTT:error 2021-01-04 17:02:00: Exiting...
Zigbee2MQTT:error 2021-01-04 17:02:00: Error: Adapter doesn't support LED
    at Controller.<anonymous> (/app/node_modules/zigbee-herdsman/dist/controller/controller.js:315:23)
    at Generator.next (<anonymous>)
    at fulfilled (/app/node_modules/zigbee-herdsman/dist/controller/controller.js:24:58)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! zigbee2mqtt@1.17.0 start: `node index.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the zigbee2mqtt@1.17.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-01-04T17_02_00_501Z-debug.log

En fait fallait simplement redémarrer le conteneur pour qu’il prenne en compte le changement de config ( ça ne se fait pas à chaud )

Oui, c’est quoi le dongle que tu as acheté ? ( comme tu as effacé ton message plus haut j’ai plus l’info )

Ma clé est la suivante : CC2652R stick - slae.sh
Pas besoin de flasher zigbee2mqtt ni de matériel pour le faire.

J’ai ouvert une issue sur le projet sur github et la réponse est la suivante :

Remove disabled_led from your configuration.yaml (for this adapter we don’t support controlling the LED)

Salut à tous,

Petit retour d’expérience sur la partie Zigbee pour aider à résoudre les quelques bugs que j’ai rencontré et qui m’empêchent d’utiliser cette partie pour le moment.

  • Les nouveaux conteneurs sont bien lancés
  • Ma clé Zigbee est bien détectée dans Gladys
  • [BUG] J’ai beau indiquer ma clé (ttyUSB0), le conteneur Zigbee est lancé avec ttyACM0
  • [BUG] La configuration par défaut de Zigbee2mqtt contient une ligne qui le fait planter car ma clé n’est pas compatible avec l’option disabled_led

Je n’ai pas trouvé le repo GitHub pour ouvrir des issues. Dommage, j’aurais peut être pu créer un commit pour aider :slight_smile:

T’as pas beaucoup cherché :sweat_smile:

Reno a fait une PR tu retrouvera son fork.

Je cherchais un repo dédié au service zigbee2mqtt.
Mais je crois pas qu’il y en ai un ?

Non tu dois confondre avec les modules en v3

Gladys 4 n’a plus de modules, ce sont des services ( dans le core)

J’ai finalement compris que c’était une autre branche sur le fork de @reno.
Je pense que j’ai confondu avec la v3, n’ayant jamais encore mis les mains dedans.

Merci pour tes éclaircissements !

Salut @Reno

J’ai voulu ouvrir une issue sur ton repo GitHub, mais tu as dû retirer l’option car aucun menu n’est dispo.

Dès que j’ai un peu de temps libre, je cherche une solution aux problèmes évoqués plus haut. Mais debugger du code qui n’est pas le sien c’est ni simple ni rapide :sweat_smile:

Pour le moment le problème principal, c’est que le custom_device est toujours /dev/ttyACM0 malgré ce que je sélectionne dans l’interface web.
Aussi, l’image docker contient du code dans /src/server et dans /var/lib/gladysassistant/, j’ai l’impression que je dois modifier le code DANS le conteneur (/src/server) et redémarrer le conteneur pour que ça soit pris en compte.

Enfin, lorsque j’arrive à faire créer les deux conteneurs correctement, j’ai des erreurs de type :

Zigbee2MQTT:error 2021-01-11 10:54:05: Not connected to MQTT server!

Et pour z2m-mqtt:

New connection from 127.0.0.1 on port 1884.
Socket error on client , disconnecting.

Quelqu’un a déjà eu ces erreurs ?

Salut @Reno

J’ai isolé et compris quel était le problème, je suis en train de chercher une solution :tada:

:warning: La source de l’erreur est un problème d’ordre dans l’exécution du code (récurrent avec JS).
Les fichiers de configuration par défaut sont utilisés “en l’état” pour créer et lancer les conteneurs, puis sont modifiés avec ce qu’a indiqué l’utilisateur via l’interface web.
[EDIT] La ligne fautive est le require en haut du fichier, qui lit les données du fichier de configuration avant même qu’il soit modifié dans la même fonction.

Il en résulte que dans mon cas, les conteneurs sont créés avec/dev/ttyACM0 au lieu de ce que je sélectionne via l’interface web /dev/ttyUSB0.

Si je :

  1. modifie à la main /var/lib/gladysassistant/zigbee2mqtt/z2m/configuration.yaml et /src/server/services/zigbee2mqtt/docker/zigbee2mqtt-container.json (dans le conteneur)
  2. Supprimer les conteneurs z2m-mqtt et zigbee2mqtt
  3. Relance Gladys

Alors seulement, les deux conteneurs sont correctement créé et tout fonctionne parfaitement.

[EDIT 2]
Voilà, j’ai créé deux pull requests sur GitHub pour corriger le problème.
C’est de ton côté maintenant @Reno :slight_smile:

https://github.com/R6n0/Gladys/pull/1
https://github.com/R6n0/Gladys/pull/2

Salut et merci à tous les contributeurs de ce service zigbee, c’est le service que j’attendais pour me lancer dans Gladys !

J’ai un raspberry pi avec Gladys 4 officiel installé via docker. J’ai ensuite installé l’image docker de Reno avec les modifications expliquées par VonOx. Si je comprends bien, je me retrouve avec 2 images de Gladys sur mon rpi. Mais quand je souhaite accéder à mon dashboard, je ne vois pas le service zigbee2mqtt dans les intégrations. Est-ce que je rate quelque chose?
Aussi je n’ai pas de dossier /var/lib/gladysassistant/zigbee2mqtt, seulement /var/lib/gladysassistant/ avec des fichiers en référence à zigbee2mqtt
Dites moi si il manque des informations pour résoudre ce problème.

Merci de votre aide!

As tu changer le port dans l’url ?

Effectivement ça marche mieux en changeant le port!

Pour ceux qui comme moi ne savaient pas, il suffit d’ajouter “:1080” à la suite de l’URL de Gladys (si le port utilisé est 1080)

Merci @VonOx :slight_smile:

Ah oui désolé :sweat_smile:

J’aurai du préciser

Je met le lien du commentaire qui “listait” les bugs/améliorations ( pas à jour )

https://github.com/GladysAssistant/Gladys/pull/688#issuecomment-729796269

PS: Je viens de me rendre compte qu’il y’a 2 PR

image

La 1ère contient des tests ( mais n’a plus la branche de Reno )
La 2ème non mais contient ce qui a été testé sur l’image docker, + problème de synchro depuis master.

J’avais fait 2 PR sur le repo de Reno, mais peut être fallait-il les faire ailleurs ?
J’avoue que je n’ai pas fait souvent de PR sur des repos publiques pour le moment ^_^’

Non non t’inquiète pas tes PR sont ok. :wink:

Pour faire simple il faut refaire une PR en reprenant le code de Reno + le tiens.
@pierre-gilles et @cicoub13 , c’était hier soir mais je ne me rappel plus , on a dit qu’on ferai une branche sur le repo principal pour faciliter les contributions ?

1 « J'aime »

J’avoue que ça serait plus simple, compréhensible et moins dépendant d’une tiers-personne.
J’ai pas mal hésité à faire une PR sur le repo de Reno, car je ne savais pas si c’était le bon endroit. En tout cas, je le redis, beau boulot @Reno !!