Zigbee2mqtt : Image docker de test basée Gladys v4

Oui, j’avais oublié d’exclure les Coordinators et les Routers. Je viens de faire le fix et l’image devrait être OK dans 1 heure…

J’ai d’ailleurs ajouté ta prise TuYa :wink: Dis-moi si ça marche

C’est ce que je viens de te montrer et d’écrire oui :wink:
Pour le moment quand je clique sur ajouter, j’ai une erreur : “Une erreur s’est produite lors de la sauvegarde”.

Et rien côté logs Gladys.

Salut,

Ce matin, impossible d’intégrer ou de voir la prise (image mise à jour) et donc de l’ajouter :

Côté logs j’ai quelques erreurs.

1. Tous les capteurs de présence RTCGQ11LM

Ces capteurs sont pourtant bien fonctionnels et configurés dans Gladys.

Zigbee2Mqtt :

Zigbee2MQTT:info  2021-02-09 08:02:33: MQTT publish: topic 'zigbee2mqtt/0x00158d0004843eb4', payload '{"battery":100,"illuminance":0,"illuminance_lux":0,"linkquality":141,"occupancy":false,"temperature":24,"voltage":3005}'

Gladys :

2021-02-09T09:02:33+0100 <warn> handleMqttMessage.js:87 () Zigbee2mqtt device 0x00158d0004843eb4, feature illuminance_lux not configured in Gladys.
2021-02-09T09:02:33+0100 <warn> handleMqttMessage.js:87 () Zigbee2mqtt device 0x00158d0004843eb4, feature linkquality not configured in Gladys.
2021-02-09T09:02:33+0100 <warn> handleMqttMessage.js:87 () Zigbee2mqtt device 0x00158d0004843eb4, feature temperature not configured in Gladys.
2021-02-09T09:02:33+0100 <warn> handleMqttMessage.js:87 () Zigbee2mqtt device 0x00158d0004843eb4, feature voltage not configured in Gladys.

2. Prise TuYa TS0121_plug

Zigbee2Mqtt :

Zigbee2MQTT:info  2021-02-09 08:03:08: MQTT publish: topic 'zigbee2mqtt/0x60a423fffe685063', payload '{"current":0.53,"energy":5.33,"linkquality":114,"power":81,"state":"ON","voltage":211}'

Gladys :

2021-02-09T09:03:08+0100 <warn> handleMqttMessage.js:87 () Zigbee2mqtt device 0x60a423fffe685063, feature current not configured in Gladys.
2021-02-09T09:03:08+0100 <warn> handleMqttMessage.js:87 () Zigbee2mqtt device 0x60a423fffe685063, feature energy not configured in Gladys.
2021-02-09T09:03:08+0100 <warn> handleMqttMessage.js:87 () Zigbee2mqtt device 0x60a423fffe685063, feature linkquality not configured in Gladys.
2021-02-09T09:03:08+0100 <warn> handleMqttMessage.js:87 () Zigbee2mqtt device 0x60a423fffe685063, feature power not configured in Gladys.
2021-02-09T09:03:08+0100 <warn> handleMqttMessage.js:87 () Zigbee2mqtt device 0x60a423fffe685063, feature state not configured in Gladys.
2021-02-09T09:03:08+0100 <warn> handleMqttMessage.js:87 () Zigbee2mqtt device 0x60a423fffe685063, feature voltage not configured in Gladys.

[EDIT]
Entre temps, j’ai tout supprimé (base de données et dossier Gladys) pour relancer proprement.
Toujours impossible de faire un scan depuis Gladys (erreur), mais dans le conteneur zigbee2mqtt tout est fonctionnel :

Zigbee2MQTT:info  2021-02-09 08:59:16: MQTT publish: topic 'zigbee2mqtt/bridge/config/devices', payload '[{"dateCode":"20201026","friendly_name":"Coordinator","ieeeAddr":"0x00124b0021cc41df","lastSeen":1612861156786,"networkAddress":0,"softwareBuildID":"zStack3x0","type":"Coordinator"},{"dateCode":"","description":"10A UK or 16A EU smart plug","friendly_name":"0x60a423fffe685063","hardwareVersion":1,"ieeeAddr":"0x60a423fffe685063","lastSeen":1612861101843,"manufacturerID":4098,"manufacturerName":"_TZ3000_rdtixbnu","model":"TS0121_plug","modelID":"TS0121","networkAddress":13318,"powerSource":"Mains (single phase)","type":"Router","vendor":"TuYa"}]'
Zigbee2MQTT:info  2021-02-09 08:59:16: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":[{"dateCode":"20201026","friendly_name":"Coordinator","ieeeAddr":"0x00124b0021cc41df","lastSeen":1612861156834,"networkAddress":0,"softwareBuildID":"zStack3x0","type":"Coordinator"},{"dateCode":"","description":"10A UK or 16A EU smart plug","friendly_name":"0x60a423fffe685063","hardwareVersion":1,"ieeeAddr":"0x60a423fffe685063","lastSeen":1612861101843,"manufacturerID":4098,"manufacturerName":"_TZ3000_rdtixbnu","model":"TS0121_plug","modelID":"TS0121","networkAddress":13318,"powerSource":"Mains (single phase)","type":"Router","vendor":"TuYa"}],"type":"devices"}'



Ajuster les valeurs

Dans la doc du projet Zigbee2Mqtt, ils expliquent comment ajuster les valeurs des capteurs. J’ai remarqué que la nuit, lumière éteinte, certains capteurs renvoie 0 Lx et d’autres 7 Lx.
Ce sera envisageable / difficile à mettre en place dans Gladys ?

Je viens de faire une correction. Tu peux pull et tester à nouveau :pray:

Je ne me suis pas encore penché sur le scan et la gestion des erreurs. Je pense que si aucun event (lié à la découverte d’un appareil) ne remonte dans les 5 secondes, il y a une erreur.
Je vais regarder.

Il faut que je jette aussi un coup d’œil sur le souci où les appareils déjà configurés réapparaissent dans la découverte.

Là, je pense qu’on rentre dans de la configuration fine et que ça dépasse le service Zigbee2Mqtt. Libre à toi d’installer un container zigbee2mqtt, d’ajouter de la configuration spécifique et de balancer tous les messages dans MQTT. Gladys pourra gérer les messages associés aux features disponibles. Je crois que @VonOx a fait quelque chose comme ça.

Toujours rien dans le résultat du scan de Gladys, alors que Zigbee2Mqtt renvoie bien mes devices…

C’est vrai que ça a beaucoup plus de sens de faire ça dans Gladys, car c’est général à tous les équipements, zigbee ou non.

Je vous avoue que je n’ai pas bien compris cette histoire de configuration. De mon côté à part de la configuration ( fichier de conf z2m ) rien de spéciale.

Vous parlez de ça ? => MQTT topics and message structure | zigbee2mqtt.io

Si tu parles de ça :

L’idée est d’indiquer à Gladys qu’un capteur est mal configuré. Par exemple il mesure 20°C au lieu de 17°C.
Dans ce cas Gladys pourrait appliquer un filtre « -3°C » sur ce capteur spécifique.

Ah un offset ! Ouai ça peut être utile de façon générale.

Ouai je le faisais sur des sensors diy ( arduino / esp ). Vue que dans ce cas on peut maitriser ce que l’on envoi.

Ajout des équipements

Le scan fonctionne désormais, mais impossible de cliquer sur ajouter (“Une erreur s’est produite lors de la sauvegarde”) pour ma prise TuYa.

Logs Gladys :

2021-02-10T16:49:30+0100 <warn> handleMqttMessage.js:87 () Zigbee2mqtt device 0x60a423fffe685063, feature current not configured in Gladys.
2021-02-10T16:49:30+0100 <warn> handleMqttMessage.js:87 () Zigbee2mqtt device 0x60a423fffe685063, feature energy not configured in Gladys.
2021-02-10T16:49:30+0100 <warn> handleMqttMessage.js:87 () Zigbee2mqtt device 0x60a423fffe685063, feature linkquality not configured in Gladys.
2021-02-10T16:49:30+0100 <warn> handleMqttMessage.js:87 () Zigbee2mqtt device 0x60a423fffe685063, feature power not configured in Gladys.
2021-02-10T16:49:30+0100 <warn> handleMqttMessage.js:87 () Zigbee2mqtt device 0x60a423fffe685063, feature state not configured in Gladys.
2021-02-10T16:49:30+0100 <warn> handleMqttMessage.js:87 () Zigbee2mqtt device 0x60a423fffe685063, feature voltage not configured in Gladys.

Logs navigateur (même erreur pour mes autres équipements) :
image

Modèles

Concernant les modèles : je me suis rendu compte par hasard (via l’interface Zigbee2Mqtt sur le port 8080) que pas mal de modèles sont pas complets.
J’ai découvert que mes capteurs de mouvement font aussi capteur de température et peuvent envoyer leur niveau de batterie (avec la ligne suivante, j’ai 2x la partie batterie dans l’interface).

Fichier Xiaomi.js :

RTCGQ11LM: [features.motion, features.illuminance, features.battery, features.temperature],

Pour ma prise connectée TuYa :
image

On peut configurer l’option “power outage memory”. Comment faire ça via Gladys (je pense que c’est pas encore géré) ?

Pour ton souci de sauvegarde impossible, c’est parce que tu l’as déjà dans tes appareils configurés => j’ai ajouté une vérification pour ne pas montrer dans l’onglet Discovery les appareils déjà configurés.

Pour les modèles non complets, n’hésites pas à les ajouter dans les fichiers du dossier model.

Pour la batterie en double, je viens de voir dans le code le souci. Je ferai une correction.

Je ne pense pas que le power outage memory soit une feature de Gladys actuellement.

Justement je ne comprend pas car j’ai supprimé tout le dossier Gladys assistant sur le Raspberry Pi pour recommencer proprement.

[EDIT] Le scan ne fonctionne plus avec l’image de ce matin. Impossible de voir mon capteur de mouvement ni ma prise TuYa dans Gladys, mais je la vois dans Zigbee2Mqtt.

Salut @cicoub13

Pendant mon dernier test il était de nouveau possible de connecter mes équipements zigbee.
Mais toujours impossible d’ajouter la prise TuYa (erreur lors de l’ajout).

Une idée de la source du problème ?
N’hésite pas si tu veux que je fasse quelques tests ou modifications du code Gladys pour avoir plus de visibilité sur ce soucis.

Il faut aussi se poser la question plus généralement de comment traiter ce problème lorsque le service sera en place et qu’un utilisateur rencontre un soucis du style.
Un bouton pour récupérer les logs du conteneur par exemple ? Ou un message d’erreur simple dans l’interface web, avec une option erreur “étendue” pour ouvrir une issue sur GitHub ?

@pierre-gilles c’est peut être une idée pour Gladys en général ?

Salut. J’ai ajouté plein de logs mais pour les voir, il faut que la variable NODE_ENV soit à development. Et même en changeant dans la commande pour lancer docker, ça ne fonctionne pas…

La commande lancée est npm run start:prod et donc cross-env NODE_ENV=production node index.js

Est-ce que quelqu’un sait si ça marchait avant et c’est une régression de la dernière image Raspbian ?

Le package.json indique que npm run start suffit à lancer en mode dev. Mais l’image docker utilise en plus le marqueur prod par défaut, ce qui doit prendre la main sur les variables d’environnement je pense.

Hello, est-ce que c’est compatible avec la Zigate ?

D’après le projet sur lequel on se base, oui mais de manière encore expérimentale.

Salut @cicoub13

Les recherches ont toujours du mal à de faire, ça échoue souvent.

Propositions :

  • dans ton image docker de test, peux tu remplacer la variable d’environnement NODE_ENV pour gagner en visibilité ?

  • j’ai un périphérique non supporté, mais je ne vais pas ouvrir une issue github vu que zigbee n’est pas encore officiel dans Gladys.

{
  "name": "0x842e14fffe19ef0c",
  "external_id": "zigbee2mqtt:0x842e14fffe19ef0c",
  "model": "QS-Zigbee-D02-TRIAC-L",
  "features": [],
  "should_poll": false,
  "service_id": "563f6636-a817-48cc-8a3f-1e36078129f8",
  "supported": false
}

Bonsoir,

J’ai remarqué quelque chose : Lorsque la connexion websocket est défaillante, la remontée des appareils ne fonctionne pas. Essaye de rafraîchir la page avant de lancer la Détection.

Je viens de pousser une image (juste pour développer/tester) qui autorise le mode DEBUG. Les logs sont très intéressants avec les commandes Zigbee lancées, les devices détectés par Gladys et ceux gérés / non gérés.

La commande de lancement a un peu changé :

docker run -d \
--log-opt max-size=10m \
--restart=always \
--privileged \
--network=host \
--name gladys-dev-zigbee2mqtt \
-e NODE_ENV=development \
-e SERVE_FRONT=true \
-e SERVER_PORT=1080 \
-e TZ=Europe/Paris \
-e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-zigbee2mqtt.db \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/gladysassistant:/var/lib/gladysassistant \
-v /dev:/dev \
-v /run/udev:/run/udev:ro \
cicoub13/gladys:dev-zigbee2mqtt

J’ai aussi ajouté ton interrupteur Lonsonho. Dis-moi si ça te permet d’avoir plus d’infos dans les logs.

1 « J'aime »

Merci c’est top, je te tiens au courant.

Pour info sur le contexte, j’utilise beaucoup Gladys depuis mon téléphone. L’onglet reste ouvert sur mon téléphone mais se recharge lorsque j’y accède.

Une idée de pourquoi l’interrupteur n’est pas actionnable ?
Il est pourtant bien vu comme tel dans les périphériques.

Édit : pour je ne sais quelle raison il n’est pas reconnu comme interrupteur et n’est pas actionnable. La partie “éteindre les lumières” dans une scène est vide, malgré la présence de cet interrupteur. C’est un bug d’après toi @pierre-gilles ?

2021-02-22T08:50:12+0100 <warn> handleMqttMessage.js:97 () Zigbee2mqtt device InterrupteurCuisine, feature state not configured in Gladys.

Édit 2 : @cicoub13 la prise connectée n’est toujours pas acceptée par Gladys. Des que j’ai du temps je regarde les logs.

Edit 3 : Pour que le scan fonctionne, je dois forcément rafraichir la page totalement. Si je suis dans l’onglet “Mes appareils” par exemple, il faut quand meme rafraichir et ça refonctionne.