I have several Blue Series products (1 - VZM30-SN (Firmware: 0x01100101), 2 - ZVM31-SN (Firmware: 0x04010101) , 2- VZM-36 Firmware: 0x04010101) which continually drop from the Zigbee network after successfully pairing. All of which were new in box before installation and are currently only connected to mains power (Line and Neutral). Trying to flash them to current code fails either immediately or anywhere up to 25% of the firmware upload process. I am using Home Assistant w/ZHA:
Installation methodHome Assistant OS
Core2026.8.3
Supervisor2026.07.5
Operating System18.2
Frontend20260729.7
Zigbee Radio is the ZBT-2
There is a working VZM36 which was installed over a year ago with is functioning correctly.
Working:
Connected via Home Assistant Connect ZBT-2
VZM36 - LR Canopy
Firmware: 0x04010102
Zigbee info
Nwk: 0xec9e
Device Type: Router
LQI: 160
RSSI: -60
Last seen: 2026-08-24T16:23:00
Power source: Mains
Quirk: zhaquirks.inovelli.VZM36:(Inovelli / VZM36)
Distance from the Zigbee coordinator does not effect the results.
The issue comes down to a firmware-level Zigbee stack discrepancy. Your working VZM36 is running 0x04010102 (v1.02, using the newer Zigbee 3.0 stack), while your failing units are running 0x01100101 (v1.01) and 0x04010101 (v1.01). The older Inovelli Blue Series firmware (v1.01) has a known bug causing Zigbee stack crashes under heavy traffic or when pairing with modern coordinators like the ZBT-2. Furthermore, ZHA OTA updates routinely fail or stall out under 25% when attempting to jump directly across major firmware generations over the air.
Step 1: Perform an Air-Gap Power Cycle
Before attempting to re-pair or flash, force an internal reset on the switch MCU:
Pull the Air-Gap tab located at the bottom left of the switch faceplate out to cut mains power
Wait 10 seconds, then push it back in.
Step 2: Adjust ZHA Config to Throttle OTA Updates
Switches on v1.01 often drop off during OTA updates because ZHA floods the device with firmware blocks faster than the switch’s buffer can handle. Lowering the block rate resolves early aborts (0–25 %) .
Add the following to your configuration.yaml in Home Assistant and restart HA:
YAML
zha:
custom_configuration:
# Slow down OTA transmission so the old stack doesn't drop
zha_ota_update_max_retry_count: 5
zha_ota_update_request_interval: 10
Step 3: Update One Device at a Time
Bring one switch into pairing mode.
Pair it via ZHA, but do not trigger a network re-scan or pair other devices while updatin g.
Go to Settings > Devices & Services > ZHA, click on the single device, and trigger the firmware up da te.
Do not operate any other Zigbee devices while the green light sequence on the switch is flashing to prevent network congest ion.
Step 4: Alternative Method (Targeted Step-Up Flash)
If ZHA’s native UI update continues to abort around 25%:
Download the intermediate v2.18 firmware binary (.gbl) manually from Inovelli’s firmware repository instead of jumping directly to v3.x.
Place the file inside your local config/zigpy_ota/ folder.
Flash to v2.18 first to stabilize the Zigbee stack, re-pair the device, and then perform the final update to v3.0 4 / 1.02+.
(Note: If a VZM31-SN manufactured in 2022 loops or aborts repeatedly at the exact same percentage even after an air-gap reset, it may have a early production bootloader lock requiring a manual flasher from support.)
Thanks for your guidance. It appears that "Step 2: Adjust ZHA Config to Throttle OTA Updates" is helping. One of the VZM31-SN’s appears to be taking the update so far. I will proceed with the rest if this corrects the issue.