Zigbee2mqtt - Debug

Sur cette partie, je ne suis pas au courant d’autres bugs liés aux évolutions.
Je suis plutôt serein.

(J’ai l’impression que quelqu’un veut clôturer une 10aine de ticket Github sur le sujet :stuck_out_tongue: )

Sinon je saurais me rendre disponible.

1 « J'aime »

Top! Aha c’est pas pour moi, c’est pour les gens qui demandent ces compatibilités :slight_smile:

ça va vraiment être cool une fois qu’on aura cette auto-détection en prod.

Alors je suis entrain de tester mes nouveaux joujoux, pour l’instant pas trop de problèmes bravo pour votre boulot sur ce service :clap:
J’ai juste une question sur ce genre d’appareil Philips 929002398602 control via MQTT | Zigbee2MQTT c’est une sorte de télécommande/interrupteur. Si je comprend bien la bonne manière de faire pour allumer/éteindre une ampoule à partir de ce type d’appareil, c’est de passer par les scènes. Mais il semble que ce ne soit pas possible. Dans les déclencheurs, j’ai mis Changement d'état de l'appareil, j’ai choisi ma télécommande puis égale et là je mets la valeur on_press (la doc zigbee2mqtt indique la liste des valeurs possible) malheureusement lors de l’enregistrement erreur avec "[0].value" must be a number comme message dans l’onglet développeur Network. N’est ce juste pas encore implémenté ou bien ma solution n’est pas la bonne ?

Désolé, mais en effet, ce genre d’appareil (télécommande / cubes…) ne sont pas entièrement gérés.
Les valeurs sont des actions non numériques, et nous n’avons pas encore étudié (à ma connaissance) la manière adaptée de gérer ce genre de valeur dans le core de Gladys.

Et sur zigbee2mqtt, les valeurs sous forme de chaîne de caractère sont presque uniques à chaque device.

Il faut faire du cas par cas et faire un composant spécifique dans l’UI pour gérer les valeurs :slight_smile:

Plusieurs possibilités:

  • Soit on fait un mapping avec des valeurs numériques (ce qui permet d’avoir l’historique). Genre « click » = 1, « double-click » = 2, etc… et ensuite il faut dans l’UI afficher un composant spécifique qui affiche une valeur traduite.
  • Soit on ne fait pas de mapping et on utilise les états « string » de Gladys 4 (oui ça existe :slight_smile: ), par contre du coup on perd l’historique des valeurs. Et pareil il faut faire un composant spécifique dans l’UI pour traduire les valeurs :slight_smile:

Pour info, la nouvelle version de Gladys intègre le Zigbee2mqtt avec détection automatique :fire::fire:

Merci à @AlexTrovato !

2 « J'aime »

Il semble que la lib qu’utilise zigbee2mqtt fournisse une liste de status pour chaque action zigbee-herdsman-converters/devices/philips.js at 05f0795cbf3742a17d59152bbe2186ec6bc8a48e · Koenkk/zigbee-herdsman-converters · GitHub

Surement que cette deuxième solution est plus simple non ? Il me semble que le seul endroit où on a besoins de ces états c’est dans les scènes donc garder les string peut être une bonne solution et sachant qu’on peut avoir la liste automatiquement (donc un select pour les conditions des déclencheurs scènes).

Pour info on voit que les états sont bien détectés par Gladys, voilà ce que ça donne sur le dashboard.
Enregistrement de l’écran 2021-11-26 à 19.49.48

1 « J'aime »

Pour revenir sur l’histoire des devices avec valeur en “string”,

  1. Il faut pouvoir intégrer ça dans les scènes, car un double clique pourrait permettre de déclencher une scène (je pense que ce serait top)
  2. en effet, les états “string” existent, mais la gestion de ceux-ci assez pour le moment très limitée (selon pour les caméras), donc non exploitable en l’état

Maintenant, cela risque d’être “compliqué” (pas impossible) de réussir à faire un mapping exhaustif et cohérent entre tous les états possibles des devices et intégrations et Gladys.

Pour moi le plus simple serait vraiment de faire un mapping en valeur numérique, mais niveau UI, l’affichage risque de s’avérer complexe vu la nombre d’états et leur variantes.

@Tolkyen
Je te ping ici, en rapport à la multi-prise Zigbee2Mqtt.

Si tu es motivé par une phase de test, j’ai créé une nouvelle image docker qui doit géré ton device : atrovato/gladys:zigbee2mqtt

Si tu n’es pas “habitué” à installer des images de test, je ne te recommande pas d’essayer.

PS : pour tous, cette image contient une mise à jour sur le contrôle des devices, une correction sur le changement d’état des actionneurs

@AlexTrovato Par rapport aux multi-prises, tu pense il y aura moyen de faire le fonctionnement dont on avait parlé à un moment avec le split des multi prises en plusieurs device (nativement) ?

L’idée c’est de permettre à l’utilisateur de répartir les différentes prises dans différentes pièces, de permettre le contrôle de chaque prise individuels dans les scènes, et que ces prises fonctionnent avec les assistants vocaux :slight_smile:

Yes 100%, c’est pas codé, après ce que je voulais dire c’est que c’était pas quelque chose d’impossible, et que niveau modèle de donnée/DB on avait déjà le fonctionnement avec les caméras.

Après du coup oui il faut adapter les scènes / et un peu le core pour propager ces états proprement.

C’est un peu le problème du double mapping effectivement, ça peut vite être n’importe quoi ^^

Motivé pour les tests, j’ai essayé de suivre les consignes de la rubrique Lancer une image Gladys de test? via la commande suivante :

docker run -d
–log-opt max-size=10m
–restart=always
–privileged
–network=host
–name gladys-test-atrovato
-e NODE_ENV=production
-e SERVER_PORT=8001
-e TZ=Europe/Paris
-e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-production.db
-v /var/run/docker.sock:/var/run/docker.sock
-v /var/lib/gladysassistant_test_atrovato:/var/lib/gladysassistant
-v /dev:/dev
-v /run/udev:/run/udev:ro
atrovato/gladys:zigbee2mqtt

C’est après que je bloque pour le test (accès par IP_RASPBERRY_PI:8001), y-a-t-il un préalable que j’ai manqué ?
Faut-il copier le contenu de /var/lib/gladysassistant/ dans /var/lib/gladysassistant_test_atrovato ?

Je ne pense pas, si tu as suivi mon petit tutoriel normalement il n’y a rien de plus à faire.

Quand tu fais docker ps, tu vois bien le container tourner ? Sans erreurs (il n’est pas en permanence en train de redémarrer?)

Voila les containers qui sont en fonction :
image

J’arrive bien à me connecter au container de test. J’ai re saisie les identifiants de mqtt comme celui du container gladys.

Une fois zigbee2mqtt activé les liaisons ne semblent pas fonctionner
image

Et du coup, impossible d’activer “Autoriser l’association” dans la découverte Zigbee.

Ah, tu essaie de lancer un container Zigbee2mqtt + MQTT en plus de ton installation classique existante?

Je sais pas si c’est possible ça. @AlexTrovato corrige moi si je me trompe, il me semble que le nom de ces containers est fixe et donc c’est une installation Zigbee2mqtt par machine?

Je n’avais pas le contexte, je pensais que tu n’arrivais pas à lancer un container de test, mais ça visiblement ça marche!

Oui les nom sont fix, eclipse-mosquito c’est l’intégration mqtt, pas le même port.

De fait lancer l’intégration depuis une image test sur la même machine c’est pas possible.

1 « J'aime »

Salut à tous !

Je cherche un dongle USB Zigbee, vous me conseillez quoi ?

Je cherche le plus “consumer friendly” possible: USB, dans un boitier, pas de firmware à flasher, il faut que ce soit plug en play. Et si possible avec un prix abordable :slight_smile:

J’ai trouvé pour l’instant :

Les deux semblent compatible Zigbee2mqtt après je suis preneur de feedback :slight_smile:

J’utilise celui-ci principalement pour deux raisons :

  1. Il est flashé d’usine
  2. Il peut être mis à jour directement depuis le Rpi, pas besoin de matériel spécifique

https://slae.sh/projects/cc2652/

J’ai déjà 42 équipements zigbee et je n’ai encore eu aucuns soucis de stabilité.

Pour info, voici comment je flash les mises à jour de firmware Zigbee2mqtt, c’est super simple et rapide, et pourrait être automatisé par Gladys en soit.

Script
!/bin/sh

#echo "Installing pip3 and dependencies"
#pip3 install pyserial intelhex --upgrade

echo "Updating USB Firmware"
cd /home/pi/flash-usb/Z-Stack-firmware
git pull
cd ..

echo "Unzip Z stack firmware"
rm /home/pi/flash-usb/CC2652RB_coordinator_*.hex
unzip Z-Stack-firmware/coordinator/Z-Stack_3.x.0/bin/CC2652RB_coordinator_*.zip

echo "Updating cc2538-bsl git repo"
cd /home/pi/flash-usb/cc2538-bsl
git pull
cd ..

echo "Shutting down Gladys"
docker stop gladys-z2m-zigbee2mqtt

version=$(ls | grep *.hex)

echo "Flashing new version: ${version}"
/home/pi/flash-usb/cc2538-bsl/cc2538-bsl.py -p "/dev/serial/by-id/usb-Silicon_Labs_slae.sh_cc2652rb_stick_-_slaesh_s_iot_stuff_00_12_4B_00_21_CC_41_DF-if00-port0" -evw "${version}"

echo "Starting again Gladys"
1 « J'aime »

Merci @lmilcent ! Après je cherche quelque chose de plus “grand public”, je veux faire une vidéo où je montre comment utiliser le Zigbee dans Gladys, et je veux utiliser du matos de marque le plus grand public possible pour que ce soit facile à reproduire et que le tuto soit pérenne dans le temps :slight_smile:

Ok je vois l’idée. Tu as des stats du nombre d’utilisateur de zigbee sur Gladys ?