Both Zigbee2MQTT and ZHA can update device firmware over the Zigbee network. Useful, but plan for it.
What to expect
| Zigbee2MQTT | ZHA | |
|---|---|---|
| Update checks | devices ask periodically (limited to once a day by default) or on request | enabled by default |
| Image source | Koenkk/zigbee-OTA repository (mirror of manufacturer images) by default |
see the ZHA documentation |
| Duration | 10–100 minutes depending on device, settings and network | varies |
Procedure
- Read before updating. Both projects warn that firmware updates can change device behavior or break features you use. Check release notes and community reports for your exact device.
- Battery devices: at least 70% charge (Zigbee2MQTT). OTA is very power-consuming; a battery dying mid-update is the classic way to brick a sensor.
- Update one device at a time, with a stable mesh (good router nearby). The transfer runs over the normal Zigbee network and competes with regular traffic.
- Trigger in Zigbee2MQTT via the frontend or
zigbee2mqtt/bridge/request/device/ota_update/update. - Verify afterwards that the device still exposes the features you rely on.
Downgrades
Zigbee2MQTT's default repository keeps only the latest two versions, so you can go back at most one version, and some devices refuse older firmware entirely. Treat updates as one-way.