En bref. Au moment de la migration, mon réseau Zigbee comptait 35 appareils. Après le passage à Home Assistant (pourquoi j'ai quitté Jeedom pour Home Assistant), trois choses le faisaient flancher : deux bornes Wi-Fi posées sur un canal qui recouvre celui du Zigbee, des prises relais trop chargées pour faire passer une mise à jour, et une clé coordinatrice qu'un simple frôlement suffit à bloquer.
Aucune de ces pannes ne venait de la marque des appareils. Toutes venaient de la radio, et de la charge qu'on lui demande.
1. Le réseau
- 35 appareils Zigbee, dont des détecteurs de fumée, des thermomètres et un détecteur de fuite d'eau.
- 12 routeurs au départ, c'est-à-dire des appareils branchés sur le secteur qui relaient le trafic des autres : 8 prises Tuya et 4 modules Sonoff ZBMINI. Deux routeurs dédiés s'y sont ajoutés le 30 octobre.
- Une clé coordinatrice USB, pilotée par Zigbee2MQTT. Pour corriger des erreurs de routage après la migration, je l'ai reflashée (EmberZNet 6.10.3 vers 8.0.3) et j'ai changé de pilote (
ezspversember), sans réappairer aucun appareil.
2. Le Wi-Fi écrasait le Zigbee
Le Zigbee et le Wi-Fi partagent la même bande de 2,4 GHz. Deux de mes bornes Wi-Fi intérieures étaient sur le canal Wi-Fi 1, qui recouvre le canal Zigbee 11, celui de mon réseau.
Je les ai déplacées sur les canaux 5 et 9, les bornes extérieures sur le 13, toutes en largeur de 20 MHz. Pour comparer : la nuit précédant le changement, j'avais relevé 38 erreurs de route en 4 heures.
Les erreurs ont nettement baissé, sans disparaître. Mais j'ai aussi ajouté des routeurs dédiés entre-temps (voir plus bas) : je ne peux pas attribuer l'amélioration au seul changement de canaux.
3. La mise à jour qui échouait dix fois
La mise à jour sans fil (OTA) d'un détecteur de fumée a échoué une dizaine de fois. Il passait par une prise Tuya pour joindre la clé. Deux comportements rendaient chaque échec coûteux :
- une mise à jour interrompue repart de zéro ;
- après un échec, le détecteur ne répondait plus aux demandes tant que je ne retirais pas sa pile.
Une fois le détecteur posé contre la clé, sans relais, avec une qualité de lien de 253 sur 255, la mise à jour a réussi : environ 1 h 55 pour 197 Ko.
Les détecteurs du salon et du garage, eux, se sont mis à jour sans problème en passant par des prises Tuya peu chargées. Le problème n'était donc pas la marque de la prise, mais sa charge : une prise qui alimente un appareil gourmand et relaie beaucoup de trafic perd des paquets.
4. La solution : des routeurs dédiés
Plutôt que de remplacer toutes les prises, j'ai installé deux clés Sonoff Zigbee USB Dongle Plus (ZBDongle-E) reflashées en routeurs dédiés, aux endroits centraux de la maison. Elles ne font que relayer : aucun appareil branché dessus, aucune charge à côté. Pas besoin de PC : une clé USB se contente d'un simple chargeur sur une prise murale. L'une a pris la place d'une ancienne prise de téléphone, dans un placard.
Ce que je n'avais pas prévu : les appareils sur pile ne changent pas de routeur d'eux-mêmes. Ils restent attachés à leur ancien parent, même médiocre. J'ai dû relancer les thermomètres et les détecteurs de fumée un par un, en retirant la pile. Deux thermomètres ne retrouvaient plus le réseau au redémarrage : il a fallu le rouvrir à l'appairage pour qu'ils le rejoignent. Un troisième a perdu le signal juste après, et je l'ai forcé à rechercher le réseau.
Au passage, la carte du réseau montrait une prise Tuya qui n'est pas à moi : un appareil voisin, entré sans doute du temps où l'appairage restait ouvert en permanence. Je l'ai bloquée dans Zigbee2MQTT, mais bloquer ne suffit pas à l'expulser : elle relaie toujours. La seule façon de la sortir serait de changer la clé du réseau et de tout réappairer, y compris les modules encastrés. Je vis avec.
Leçon : un appairage se ferme. Laissé ouvert, il laisse entrer n'importe quel appareil à portée.
Le résultat : un meilleur maillage, et le thermomètre du séjour passe par la clé du salon avec une qualité de lien de 255 sur 255. Les erreurs de route ont baissé, sans disparaître : dans les heures qui ont suivi, les rares erreurs restantes venaient toutes de deux prises Tuya chargées, celle de la télé et celle de la VMC. C'est exactement la leçon de la section précédente.
5. La clé qu'un frôlement bloque
Le 29 octobre, à 17 h 40, j'ai touché la clé coordinatrice en la montrant à un enfant. Deux déconnexions USB en trois secondes : la puce s'est bloquée, et tout le réseau Zigbee s'est arrêté. Il est resté arrêté jusqu'à ce que je débranche la clé et la rebranche.
Chez moi, la clé reste branchée directement sur le serveur. Ce serveur est un hyperviseur Proxmox : la clé est passée en USB
à la machine virtuelle Home Assistant, où Zigbee2MQTT la pilote. Je la passe par son identifiant fabricant/produit
(qm set 104 -usb0 host=1a86:55d4) et non par son port : la VM la retrouve quel que soit le port où on la rebranche.
Le 29 octobre, la débrancher et la rebrancher a suffi, sans rien toucher sur l'hyperviseur. Un piège : cet identifiant est celui
du pont USB-série de la clé, partagé par d'autres clés et adaptateurs. Avec deux appareils identiques sur l'hôte, il faut passer par le port.
Le détail de la manipulation est dans mon guide du passthrough USB, PCI et GPU sous Proxmox.
6. Ce que j'en retiens
- Vérifier les canaux Wi-Fi avant d'accuser le Zigbee.
- Un routeur Zigbee se juge à sa charge, pas à sa marque.
- Après l'ajout d'un routeur, relancer les appareils sur pile : ils ne changent pas de parent seuls.
- Pour une mise à jour difficile, rapprocher l'appareil de la clé plutôt que de relancer dix fois.
- Le coordinateur est le point unique de tout le réseau : il mérite d'être fixé.
La clé coordinatrice reste l'une des limites de ma domotique : Home Assistant ne la relance pas seul.
- Le point de départ de la série : pourquoi j'ai quitté Jeedom pour Home Assistant
- Article suivant : Les alertes qui réveillent, et celles qui ne doivent pas