← Richard Demongeot Blog

Un réseau Zigbee qui tient : routeurs, Wi-Fi et mises à jour

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

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 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.

Leçon : fixer le coordinateur, idéalement au bout d'une courte rallonge USB. La rallonge l'éloigne aussi du bruit radio des ports USB 3 du serveur.

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

La clé coordinatrice reste l'une des limites de ma domotique : Home Assistant ne la relance pas seul.

🏠 La série domotique :