|

Smart Doorbell Firmware Update Stuck Home Assistant: Common Issues & Solutions

If your smart doorbell firmware update appears stuck in Home Assistant, the update might actually be retrying silently after a brief connection hiccup. Most doorbells retry the download automatically if the signal drops—rebooting early can corrupt the firmware. Check power levels, signal strength, and coordinator health before assuming the update has failed. This guide gives you a quick checklist, ordered fixes, and clear signs that it’s time to escalate.

Quick Checks – Rule Out the Obvious First

Run through this checklist. If any item fails, address it before moving to the ordered fixes.

  • Battery above 20%? (for battery-powered models) – Low voltage interrupts the flash process. A battery below 3.5V under load will often cause the firmware write to abort mid-stream.
  • Wi‑Fi or Zigbee RSSI better than -70 dBm? – Weak signals drop packets mid-update. Use Home Assistant’s built-in signal diagnostics or the manufacturer’s app to check. On a 2.4 GHz Wi‑Fi doorbell like the Tapo 2K Wireless Smart Video Doorbell with Chime, open the Tapo app → Device Settings → Device Info to see RSSI. If it’s -75 dBm or worse, the update will stall.
  • Coordinator (Conbee II, Sonoff ZBDongle-P, etc.) powered on and LED solid? – A rebooted or flaky coordinator halts the update. Check the coordinator’s USB connection—loose cables can cause intermittent power loss.
  • Home Assistant not running a backup or full system restart? – Backups pause device communications and can lock the firmware-update thread. If a backup is active, wait until it finishes before retrying.
  • Waited at least 15–20 minutes before assuming “stuck”? – Many updates retry silently; interrupting too early can corrupt the firmware. Set a timer and let the device sit undisturbed.

Start With the Surprising Truth: It Might Not Be Stuck

Most smart doorbell firmware updates take 5–10 minutes on a healthy connection. But if your Zigbee or Wi‑Fi signal dips below -80 dBm during the download, the doorbell stops, waits, and retries. This loop can stretch the process to 30 minutes or more. Home Assistant often shows “firmware update in progress…” with no progress bar movement, making you think it hung. In reality, the device is still trying.

The counter‑intuitive fix: wait longer. If after 30 minutes the status hasn’t changed, then move to the interventions below. Many users reboot their coordinator or reset the doorbell during this window, which forces the update to restart from scratch and sometimes corrupts the flash memory.

Early Checks That Rule Out the Obvious

Power Levels

  • Battery models: Use Home Assistant’s device diagnostics or the manufacturer’s app to check voltage. For Zigbee doorbells in Zigbee2MQTT, query the `battery` attribute under the device’s exposed values. If it’s below 3.5V (or shows a numeric level lower than 30% of the range), the update will fail silently. Recharge or replace the battery before retrying. A lithium-ion cell at 3.2V under load may still report a reasonable percentage in the app, so rely on voltage diagnostics when available.
  • Wired models: Ensure the transformer supplies at least 16V AC. Low voltage (12V) can cause brownouts during the energy‑intensive flash phase. Measure at the doorbell terminals with a multimeter while the chime is idle. If you see less than 14V AC under load, upgrade the transformer to a 16–24V AC unit.

Signal Quality

  • In Zigbee2MQTT, query the doorbell’s `linkquality` attribute. Values below 70 (out of 255) indicate a weak link. Move the coordinator closer or add a Zigbee router (like a plugged-in smart plug that extends the mesh) between the coordinator and the doorbell. The router doesn’t need to be the same brand—any mains-powered Zigbee device works.
  • For Wi‑Fi doorbells, use the manufacturer’s app to check RSSI. If RSSI > -70 dBm, Wi‑Fi is fine. If it’s borderline, consider moving the Wi‑Fi access point closer or switching to the 2.4 GHz band (many smart doorbells don’t support 5 GHz). A Wi‑Fi repeater with the same SSID can also help, but ensure it uses the same channel to avoid handoff delays.

Coordinator Health

  • In ZHA, verify the radio (Elelabs Zigbee USB, SkyConnect) is listed as “online” in the integration panel. If it shows “unavailable,” unplug the dongle, wait 30 seconds, and plug it back in. Watch the Home Assistant log for “ZHA: radio connection established” before retrying the update.
  • In deCONZ, check the REST API `/api//config` for `”websocketport”: null` – that means the WebSocket connection dropped, which can cause update commands to time out. Restart the deCONZ add-on to reestablish the WebSocket.
  • In Zigbee2MQTT, check the MQTT broker connection. If the coordinator’s topic `zigbee2mqtt/bridge/log` shows repeated `”type”: “disconnected”` messages, your MQTT server may have restarted. Restart the Zigbee2MQTT add-on after ensuring the broker is stable.

Integration Type

The stuck behavior varies by how you’ve connected the doorbell:

  • ZHA sometimes holds firmware updates in a pending state if the coordinator is overloaded with too many devices (50+). Try removing one or two rarely-used battery sensors before retrying.
  • Zigbee2MQTT logs the exact error in `config/zigbee2mqtt/log` on the file system. Look for `”error”: “updatefailed”` or `”status”: “timeout”` with a timestamp. If you see `”error”: “noresponse”`, the doorbell stopped acknowledging commands—likely a signal or battery issue.
  • deCONZ v2.x has a known issue where large firmware blobs (>64KB) stall on older Conbee IIs. Check the community forum for that model. If you’re on a Conbee II with deCONZ v2.19+, you may need to downgrade to v2.12 or switch to ZHA.

Ordered Quick Fixes to Try

1. Reboot the coordinator – Unplug its USB cable or hub, wait 30 seconds, plug it back in. This clears stuck transactions on the radio. After reboot, check the integration log—if the doorbell reconnects but the update status remains “pending,” proceed to step 2.

2. Restart Home Assistant Core – Go to Settings → System → Restart (not just the web UI reload). A full restart reinitializes all integrations and clears any stale firmware-update threads. This is a safer option than rebooting the coordinator because it doesn’t disrupt the Zigbee mesh.

3. Force-close the update and retry – In the device panel, click “Cancel update.” Wait 5 minutes for the doorbell to fully recover. Then initiate the update again from the manufacturer’s app (if available) or from the integration. For Zigbee doorbells, the OTA update manager in ZHA may need a manual trigger: click “Check for updates” to refresh the OTA index.

4. Remove and re-pair the doorbell – Last software step. Delete the device in Home Assistant, factory‑reset the doorbell (hold the button 10 seconds until the LED rapidly blinks), and re-add it. Use the same coordinator and channel. This is only recommended if steps 1–3 failed because it requires reconfiguring any automations linked to the doorbell.

5. Change the Zigbee channel – If interference is suspected (e.g., Wi‑Fi networks on channels 1, 6, or 11 overlap with Zigbee 11–26), switch the coordinator’s channel via the integration settings. For example, move from channel 15 to channel 20. You’ll need to re‑pair the doorbell after the channel change. This often resolves silent retries caused by 802.15.4 packet collisions.

How to Verify a Fix Worked (Don’t Guess)

After each fix, wait 5–10 minutes and confirm the update actually finished:

  • In Zigbee2MQTT, watch the log for `”updatecomplete”` or `”success”`. Also check the device’s `firmwareversion` attribute in the MQTT topic. – In ZHA, open the device’s info panel. If the firmware version listed there matches the latest OTA file, the update succeeded. If the status still says “updating,” move to the next fix. – For Wi‑Fi doorbells, open the manufacturer’s app.

The firmware version listed in device settings should equal the update’s target. If it didn’t change, try the update again after a full power cycle (pull the doorbell’s battery or remove power for 10 seconds). – If the status still says “in progress” after the wait, move to the next fix. Don’t rely on the progress bar alone—it sometimes gets stuck on 100% even after the update is complete.

When to Escalate – Stop Troubleshooting

If none of the above works, stop and consider these red flags:

  • Coordinator LED is completely off – The radio itself may be dead. Try a different USB port on your Home Assistant device, or try a different USB cable. If still off, you may need a replacement coordinator. A Sonoff ZBDongle-P has a known issue where it can overheat and shut down—let it cool for 10 minutes before retrying.
  • Doorbell powers up but fails to pair – Firmware may be partially corrupted. Contact the manufacturer for a recovery tool or RMA. Some doorbells have a dedicated USB recovery port hidden behind the faceplate—check the manual.
  • Multiple doorbells on the same coordinator fail updates – Indicates a coordinator hardware bug or integration issue. Update the coordinator’s own firmware first (e.g., for Conbee II, use the Phoscon app to check for updates). If the coordinator is on the latest firmware, consider switching integrations (try ZHA instead of Zigbee2MQTT, or vice versa).

Branch: What to Do Based on Your Early Check

Let’s say you check battery voltage and find it at 3.2V.

Branch A (low battery): Stop troubleshooting immediately. Recharge or replace the battery. Do not attempt a firmware update on a weak battery – it can corrupt the flash memory. After charging, wait 15 minutes and retry the update. For wired models, if the transformer measures 12V AC, replace it with a 16V AC 30VA transformer—available at most hardware stores for under $20.

Now suppose battery is fine, but signal quality is 50 (out of 255).

Branch B (weak signal): Don’t reboot anything yet. Move the coordinator closer to the doorbell or add a Zigbee router in between (use a mains-powered smart plug or a dedicated repeater). Then wait 15 minutes – the update may resume automatically once the link improves. Only after that should you attempt the ordered fixes. If you have a Wi‑Fi doorbell, try moving the access point closer or adding a range extender on the same network.

If neither power nor signal is the issue, go straight to the ordered fixes starting with step 1.


If you’ve gone through the checklist, the ordered fixes, and the branch checks without progress, the safest move is to contact the doorbell maker’s support with the exact error message from your Home Assistant logs. They can provide a factory‑reset routine specific to your model or a replacement under warranty. For Zigbee doorbells, you can also post the error line in the Home Assistant community forum—many integrators have seen similar patterns and can offer a targeted workaround.

Explore This Topic

Related guides in this cluster:

Similar Posts