Mettre Ă jour une quarantaine d’appareils Zigbee dans Home Assistant : 15 heures, 51 coupures et un four Ă micro-ondes
Prises en dix minutes, capteurs à piles en une nuit : la méthode testée par le journal pour mettre à jour un réseau Zigbee sous Home Assistant (ZHA).

English version below.
Home Assistant annonce 37 mises Ă jour de micrologiciel Zigbee. On clique. Les prises s’exĂ©cutent ; les capteurs Ă piles rĂ©pondent tous TimeoutError. Le Bien Heureux a passĂ© les 7 et 8 octobre 2026 Ă comprendre pourquoi, sur sa propre installation. Voici la mĂ©thode qui a fini par fonctionner, et ce qu’elle coĂ»te.
Le terrain d’essai
Home Assistant avec l’intĂ©gration ZHA, un dongle Sonoff ZBDongle-E (puce EFR32MG21) sur le canal 20, et des appareils frient : 20 prises, 13 capteurs de fenĂȘtre, 4 dĂ©tecteurs de mouvement. Les principes valent ailleurs ; les chiffres sont ceux de ce rĂ©seau.
Les prises : le cas facile
Une prise est alimentĂ©e par le secteur et Ă©coute en permanence. L’action update.install fonctionne telle quelle, une prise Ă la fois, en 5 Ă 10 minutes. Le relais coupe une Ă deux secondes au redĂ©marrage, et peut revenir dans l’autre Ă©tat : noter marche ou arrĂȘt avant, vĂ©rifier aprĂšs. PrĂ©venir avant de toucher au congĂ©lateur.
Les capteurs à piles : il faut les attraper
Un capteur Ă piles dort presque tout le temps. La mise Ă jour commence par un message qu’il doit recevoir, et que la prise qui lui sert de relais ne garde qu’environ 7,7 secondes. S’il ne se rĂ©veille pas Ă cet instant, c’est l’Ă©chec.
La parade : un petit script, branchĂ© sur l’API WebSocket de Home Assistant, relance update.install en continu, sans attendre la rĂ©ponse, sur un ou deux capteurs Ă la fois. DĂšs que l’un d’eux se rĂ©veille, le transfert dĂ©marre et se poursuit tout seul. Compter ensuite environ 2 heures par capteur de fenĂȘtre.
Le goulot caché : deux blocs à la fois pour tout le réseau
MĂȘme attrapĂ©s, les capteurs dĂ©crochaient dĂšs qu’on en lançait plus de trois. La cause se lit dans le code de zigpy, la bibliothĂšque sous ZHA : avec ce dongle, elle n’autorise par dĂ©faut que 2 blocs de mise Ă jour en vol pour l’ensemble du rĂ©seau. Ce rĂ©glage, placĂ© dans la configuration de Home Assistant puis appliquĂ© par un redĂ©marrage, lĂšve la limite :
zha:
zigpy_config:
max_concurrent_requests: 24
experimental:
concurrency:
high: 0.25
normal: 0.25
low: 0.5
On est ainsi montĂ© de 3 Ă 8 ou 9 transferts simultanĂ©s. D’aprĂšs les mesures, 16 requĂȘtes auraient suffi. La clĂ© s’appelle « experimental » : elle peut changer d’une version Ă l’autre, et se retire en supprimant le fichier.
Ce qui tue un transfert
Toute coupure de plus de 30 secondes fait repartir le capteur de zéro. Quatre coupables identifiés :
- Le four à micro-ondes. Il émet vers 2,45 GHz, pile sur le canal Zigbee 20. Chaque utilisation a tué tous les transferts en cours, dans toute la maison.
- Un redémarrage de Home Assistant ou de ZHA : tout est perdu, et les capteurs restent sourds 15 à 20 minutes.
- Trop de capteurs sous la mĂȘme prise relais : deux au plus.
- Le dongle lui-mĂȘme, dont la table de routage ne compte que 16 entrĂ©es, et dont le micrologiciel a plantĂ© une fois, Ă 99 % de deux capteurs.
Le bilan, sans fard
Pour 15 capteurs : 15 heures, et 51 transferts coupés sur 77 lancés. Avant de commencer : sauvegarder Home Assistant et le réseau Zigbee (le fichier contient la clé du réseau, à protéger), choisir la nuit, et interdire la soupe réchauffée. Home Assistant 2026.10 est sorti entre-temps (on en a parlé ICI) ; il ne change rien à ce mécanisme.
The test bench
Home Assistant with the ZHA integration, a Sonoff ZBDongle-E (EFR32MG21 chip) on channel 20, and frient devices: 20 plugs, 13 window sensors, 4 motion detectors. The principles apply elsewhere; the figures are those of this network.
Plugs: the easy case
A plug is mains-powered and always listening. The update.install action works as is, one plug at a time, in 5 to 10 minutes. The relay cuts for a second or two on reboot and may come back in the other state: note on or off before, check after. Warn the household before touching the freezer.
Battery sensors: you have to catch them
A battery sensor sleeps almost all the time. The update starts with a message it must receive, which its relay plug holds for only about 7.7 seconds. If the sensor does not wake up in that window, the update fails.
The workaround: a small script on Home Assistant’s WebSocket API calls update.install back to back, without waiting for the answer, on one or two sensors at a time. As soon as one wakes up, the transfer starts and carries on by itself. Then allow about 2 hours per window sensor.
The hidden bottleneck: two blocks at a time for the whole network
Even once caught, sensors dropped out as soon as more than three ran together. The cause is in the code of zigpy, the library under ZHA: with this dongle it allows, by default, only 2 update blocks in flight for the entire network. This setting, placed in Home Assistant’s configuration and applied by a restart, lifts the cap:
zha:
zigpy_config:
max_concurrent_requests: 24
experimental:
concurrency:
high: 0.25
normal: 0.25
low: 0.5
That took us from 3 to 8 or 9 simultaneous transfers. According to our measurements, 16 requests would have been enough. The key is called « experimental »: it may change between versions, and is undone by deleting the file.
What kills a transfer
Any outage longer than 30 seconds sends the sensor back to zero. Four culprits were identified:
- The microwave oven. It radiates around 2.45 GHz, right on Zigbee channel 20. Every use killed all transfers in progress, throughout the house.
- Restarting Home Assistant or ZHA: everything is lost, and sensors stay deaf for 15 to 20 minutes.
- Too many sensors under the same relay plug: two at most.
- The dongle itself, whose routing table holds only 16 entries, and whose firmware crashed once, at 99% of two sensors.
The honest tally
For 15 sensors: 15 hours, with 51 of 77 transfers cut. Before you start: back up Home Assistant and the Zigbee network (the file contains the network key, keep it safe), work at night, and ban reheated soup.
Sources : mesures et journaux relevés par Le Bien Heureux les 7 et 8 octobre 2026 sur sa propre installation (Home Assistant, ZHA, zigpy).
Le Bien Heureux · RĂ©daction Capibara · Jeudi 8 octobre 2026