Parlons Zigbee

Un article pour essayer de rendre plus clair ce lourd sujet qu’est le Zigbee, je vais essayer ici de répondre aux questions les plus fréquentes que je reçois ou vois sur le Community.

Zigbee quel plugin ?

Première difficulté le nombre de plugins pour faire du Zigbee, il y a :

  • Deconz : plugin officiel Jeedom SAS. Il se base sur le logiciel du même nom édité par Dresden et ne marche qu’avec une clef Conbee (1 ou 2). Il permet de déporter une ou plusieurs gateway avec un rpi où il y a juste Deconz d’installé dessus. Le logiciel Deconz n’étant développé par Jeedom SAS, il ne nous est pas possible d’ajouter le support de nouveaux modules nous-mêmes. Cependant rassurez-vous, il en supporte déjà énormément par défaut. Bien que certains disent le contraire, le plugin est toujours maintenu par l’équipe Jeedom SAS (même si le gros des efforts se porte désormais sur le plugin Zigbee). Attention dernièrement une mise à jour énormément demandée par les utilisateurs ajoute le support des groupes et des scènes. Le développement de ces fonctionnalités a été fait par un développeur de la communauté et non par Jeedom SAS, il nous est donc compliqué d’assurer un suivi de cette partie.
  • Zigbee : second plugin officiel Zigbee (et celui recommandé par Jeedom SAS). Il se base sur le projet opensource Zigpy (projet aussi utilisé par défaut pour le Zigbee chez Home Assistant). Dans ce plugin nous pouvons quand c’est possible ajouter le support de nouveaux modules. La condition est que le fabricant respecte le standard Zigbee ou fournisse la documentation de son implémentation du protocole (ce qui est malheureusement rarement le cas). Ce plugin est compatible avec la plupart des clefs Zigbee. Officiellement nous ne supportons que Conbee et Elelaps (Popp) sur lesquelles nous faisons nos tests.
  • ZigbeeLinker : plugin non officiel se basant sous Zigbee2Mqtt, projet opensource qui semble supporté plus de modules que le projet opensource Zigpy et semble aussi plus réactif sur les intégrations
  • Abeille : plugin non officiel pour Zigate seulement

Il est donc compliqué de vous dire lequel choisir, chacun a ses avantages/inconvénients. Le choix dépendra surtout de votre clef Zigbee ainsi que des modules que vous avez.

Les modules Zigbee, comment choisir ?

Question qui ne trouvera jamais de réponse ! Clairement pour ceux qui connaissent le Z-wave où c’est plutôt structuré comme protocole, le Zigbee c’est la jungle.

Le protocole n’est pas strict. Chaque fabricant peut gérer comme il veut la transmission des informations. Bien sûr le protocole définit un standard pour rendre les objets interconnectables entre eux mais rien n’oblige le fabricant à le suivre. C’est donc là que c’est compliqué ! Certains jouent bien le jeu, et d’autres pas du tout et font tout pour n’être compatible qu’avec leur propre solution.

Pour rendre ça encore plus compliqué, certains fabricants vendent sous une même référence des modules identiques à l’extérieur mais complètement différents à l’intérieur. Chez Xiaomi récemment une de leur nombreuse prise connectée a vu un changement hardware (enfin je pense car évidemment aucune information de la part du fabricant) et celle-ci ne remonte plus sa puissance ou consommation (pour le coup j’en avais acheté deux, je suis un peu dégoûté…).

Encore pire certains fabricants jouent au jeu du chat et de la souris en mettant à jour le firmware pour que le module qui était compatible avec une solution tierce avant ne le soit plus et ainsi garder la compatibilité qu’avec sa solution. Dans ce cas, il faut attendre que quelqu’un fasse du reverse engineering sur le module pour retrouver la compatibilité. Malheureusement nous n’avons pas les compétences chez Jeedom pour faire cela (quelque soit le plugin).

Tout cela pour vous dire que malheureusement, on ne peut jamais garantir qu’un module donné est bien compatible Jeedom et sera pleinement supporté (par exemple on peut ne supporter que le on/off sur une ampoule et le changement de couleur peut ne pas fonctionner).

Le site compatibility.jeedom.com essaye de vous donner un maximum d’informations en particulier la colonne « type » qui vous donne une idée des commandes implémentées sur le module (attention comme dit juste précédemment, suite à une mise à jour firmware de la part du fabricant il est possible que certaines fonctions ou tout le module ne soit plus compatible Jeedom)

Comment marche le maillage en zigbee ?

Clairement c’est un des grands mystères de l’univers…

Ce qu’on peut vous dire : le maillage en zigbee est statique (à l’inverse de celui en Z-wave qui est dynamique). En gros le module va décider toutes les X minutes/heures/jours de regarder ses voisins et peut décider (ou non) de faire passer les messages par un noeud routeur (module alimenté) voisin. C’est le fabricant qui décide quand faire cette analyse des noeuds voisins et si il passe par un noeud routeur ou pas. Par exemple certaines marques n’autorisent pas à passer par un module routeur d’un autre fabricant qu’eux. Les modules routeur peuvent eux aussi décider de refuser le maillage. Par exemple les modules Legrand n’aime pas trop participer au maillage d’autres modules que ceux de la marque Legrand…

A noter que vu que le maillage est statique, la perte d’un noeud routeur (prise Zigbee que vous débranchez pour passer l’aspirateur par exemple) peut entraîner la perte de toute une partie de votre réseau Zigbee (tous les modules qui utilisent ce noeud comme routeur).

Pourquoi mon module s’auto-exclu ?

Maladie connue des modules Xiaomi, cela se produit si pendant un certain laps de temps le module n’arrive pas à parler à la gateway ou à son nœud routeur voisin. En fait, dans ce cas le module se dit qu’il y a un souci et s’auto-reset d’où le fait qu’il faille le ré-inclure. C’est pour cela que l’ajout nœud routeur permet en général de diminuer le problème.

Autre cas possible, une incompatibilité entre 2 modules du réseau Zigbee (nous n’avons malheureusement pas de liste à vous fournir pour vous aider), cela engendre souvent une auto-exclusion du module.

Pourquoi je n’arrive pas à inclure un module ?

Question qui revient souvent, cela peut être dû à plusieurs choses :

  • vous n’avez pas fait un reset du module avant (même neuf il faut OBLIGATOIREMENT faire un reset du module en suivant la procédure sur la documentation de celui-ci)
  • votre module n’a plus de pile, même neuf cela arrive souvent (quand on voit le prix de certains modules ça se comprend). Essayez de changer les piles (et si vous mettez des piles neuves regardez si celle-ci sont correctement chargées)
  • vous avez un souci d’interférence, le Zigbee est en 2.4ghz soit la même chose que le Wifi il faut donc vérifier le canal des 2 pour ne pas être sur le même (attention si vous avez des voisins leur wifi peut aussi poser souci)
  • vous n’êtes pas sur un canal compatible avec votre module. Certains fabricants ont des modules compatibles qu’avec un seul canal zigbee, nous vous invitons à consulter la documentation du module pour vérifier cela.
  • votre firmware de clef Zigbee n’est pas à jour. La mise à jour du firmware des clefs est très importante, il permet de supporter de nouveaux modules. Sur les clefs Elelabs/Popps, il faut obligatoirement mettre à jour le firmware lors du 1er démarrage.
  • Vous utilisez des ports USB3 (pour la clef Zigbee ou d’autres périphériques comme un SSD), soucis souvent vu sur les RPI4, pour une raison inconnue les ports USB3 perturbent le Zigbee
  • Vous n’utilisez pas un hub alimenté. Plus rare mais il arrive des fois que sans un hub USB alimenté, l’alimentation de la clef Zigbee ne soit pas assez stable et empêche toute inclusion.

Comment peut on régler la fréquence de remontée des valeurs ?

Dans 90% des cas ce n’est pas possible. C’est un paramètre configuré par le fabricant dans le firmware et vous ne pouvez pas y toucher. Pour les autres 10% de modules, si le plugin le permet vous le faire (le plugin Zigbee le permet par exemple). Attention cela a un impact non négligeable sur la consommation des piles, nous recommandons de ne jamais toucher à cela.

Mon module consomme toute sa batterie

Ça arrive quand il y a un souci de réglage dans le « pool control » (si le module l’utilise). C’est ce qui règle la fréquence des réveils du module pour demander à la clef s’il y a une information pour lui. Le plugin Zigbee officiel envoie pour la plupart des modules les valeurs du standard Zigbee. Malheureusement pour certains modules ce n’est pas bon (cas des télécommandes Ikea par exemple), il faut donc mettre en place des valeurs spécifiques pour ces modules. On le fait quand le fabricant nous communique les valeurs à mettre (cas pour les vannes Danfoss par exemple), pour les autres malheureusement on ne sait pas quoi faire…

Note : le plugin Zigbee ne crée jamais de commande de batterie mais remonte l’information dans le système de gestion global des batteries de Jeedom. C’est normal et voulu, ce système a été étudié exprès pour la gestion des batteries et permet donc un traitement bien plus rapide et moins consommateur que la remontée à travers une commande.

J’ai l’impression que la remontée de l’usure des piles n’est pas bonne

C’est uniquement le module qui donne ces informations. Les modules peuvent :

  • remonter l’information en mode %. Dans ce cas le plugin vous la transmet directement. Attention certains fabricants ont des piles qui dépassent les 100% car ils partent du principe qu’une pile neuve sort par exemple 3.3 V alors que souvent le voltage est plus fort au début. La décroissance peut aussi être bizarre, cela dépend du seuil bas réglé par le fabricant.
  • donner l’information de la tension. Dans ce cas dans, Jeedom enregistre la valeur la plus haute jamais vue et en déduit un pourcentage. C’est pas des plus précis mais c’est mieux que rien.
  • ne rien renvoyer, le fabricant n’ayant aucune obligation de l’implémenter.

J’ai du mal avec le binding (association directe)

Un peu comme avec le maillage, le fabricant peut volontairement limiter le binding à certaines marques de modules (souvent les siens) ce qui rend les associations directes très compliquée à faire. Il y a aussi des modules (c’est même très fréquent) qui n’autorisent le binding qu’à travers des groupes. Il faut donc faire un groupe des modules que vous voulez piloter et mettre en place un binding entre votre télécommande et le groupe.

Par contre nous voyons bien qu’il y a quelques soucis avec le plugin Zigbee au niveau du binding (qu’il n’y a pas avec d’autres plugins). Pour l’instant nous ne comprenons pas pourquoi car nous collons parfaitement au standard, mais c’est un sujet sur lequel nous travaillons activement.

Conclusion

Je pense avoir traité les questions les plus fréquentes (s’ils en manquent, je mettrais à jour l’article). J’espère que cet article vous aidera à mieux comprendre le Zigbee. Même s’il semble un peu « pessimiste » dans l’ensemble le Zigbee est un protocole qui marche bien et s’améliore de jour en jour (surtout car les fabricants se plient petit à petit à la norme Zigbee). J’ai personnellement environ 40 modules Zigbee et je n’ai jamais eu de souci (et pourtant j’ai beaucoup de modules Xiaomi qui semblent être des modules capricieux).

Vous aimerez aussi...