ZWA-2 Factory Reset — a one-click add-on (and CLI) for wiping a Connect ZWA-2 when the normal reset won't take

If you’ve tried to factory-reset a Home Assistant Connect ZWA-2 and it says it worked but the old network is still there — you’re not imagining it, and right now there’s no built-in way to actually complete the reset. Here’s why:

  • :prohibited: Home Assistant’s “Factory reset” button sends the firmware’s SetDefault command. On the ZWA-2 firmware I tested (v1.2 / SDK 8.0) the stick acknowledges it and even reports “reset complete” — but wipes nothing, even after a power cycle.
  • :prohibited: The one official tool with a working method — Nabu Casa’s zwa2-toolbox (Home Assistant Connect ZWA-2 Toolbox) — has the correct low-level erase in its code, but that “Erase NVM” wizard is disabled in the hosted version, so end users can’t run it.

So until that changes, there’s no click-path through HA’s own tools for this bug. I got stuck on exactly this and built a tool to fill the gap.

How it works: instead of the firmware’s reset, it reboots the Z-Wave chip into its Gecko bootloader and runs the bootloader’s own erase nvm command — wiping the flash directly, so the buggy firmware path is never touched. It’s the same technique that’s sitting (disabled) in the zwa2-toolbox source, automated via Z-Wave JS (GitHub - zwave-js/zwave-js: Modern and standards-compliant Z-Wave device driver that runs almost anywhere · GitHub) and reduced to one click.

Two ways to use it:

  • :house: Home Assistant add-on (HA OS / Supervised): add the repo, install, click Open Web UI, and you get one page with big buttons — Check adapter, Factory reset, Restore a backup. It stops Z-Wave JS for you, backs up first, wipes, and restarts everything. No YAML to configure.
  • :desktop_computer: Standalone CLI (macOS/Linux; Windows should work too): npm install, then node cli.mjs. Handy when HA itself is the thing misbehaving, or you just want to wipe a stick on a laptop.

What it does for you, safely:

  • :floppy_disk: Always backs up the full network (Home ID, nodes, security keys) before wiping — so it’s reversible with one click.
  • :white_check_mark: Verifies the wipe (new Home ID, empty node list) rather than trusting a “success” message.
  • :globe_showing_europe_africa: Lets you pick your RF region (or keep the current one) — USA, USA Long Range, Europe, and more.
  • :broom: Optional: removes only that network’s old devices from Home Assistant (scoped by Home ID, so any other Z-Wave sticks are left untouched).

Add-on install: Settings → Add-ons → Add-on Store → ⋮ → Repositories → add

Repo / full docs: GitHub - leoashcraft/zwa2-factory-reset: Factory-reset a Home Assistant Connect ZWA-2 via the Gecko bootloader — works around the firmware SetDefault bug. NVM backup/restore, RF region preservation. · GitHub

Fair warning: I’ve tested this thoroughly on my own ZWA-2, but the add-on packaging is new — treat it as community/experimental, and make sure you’ve got that backup (it makes one automatically). On HA OS the adapter’s USB re-enumerates when it restarts after the wipe, so the tool finishes by asking you to click “Check adapter” once more to confirm the empty network and set your region — the UI walks you through it. Feedback, issues, and PRs welcome.

The use of the deprecated term Add-on has been causing confusion to new users and will like lead you to need to provide more support. I suggest to scrub your project and use the term Apps instead.
In addition several of your installation references can no longer work using the old terms and links. I would personally suggest a full test of the installation documentation.
Here: https://github.com/leoashcraft/Nabu-Casa-ZWA-2-Factory-Reset#option-b--home-assistant-add-on
and:

are a couple of examples I spotted.