I’ve been testing the ZWA2 for a couple of weeks now, and overall it’s a good device with excellent range. The Z‑Wave network feels very solid, and after removing a couple of non‑standard devices the log looks really clean. However, I’ve noticed some odd behavior. Some of this probably just has to be accepted since this is the Portable version, but I’ll still write it here in case there are others with similar experiences.
- When the WLAN connection drops (e.g. during a controlled network update), the ZWA2 gets stuck and is unable to recover on its own. The first line in the log,
"Attempting to recover unresponsive controller by restarting it...",
marks the moment when the ZWA2 lost its network connection. In the log at 09:25 I restart the Z‑Wave JS service, which brings the ZWA2 back to life. While it is stuck, the entire Z‑Wave network is down and no devices respond. When the device is stuck and the antenna is disconnected, the device shows dim green LEDs, but nothing else happens.
2026-03-23 09:07:01.333 DRIVER Attempting to recover unresponsive controller by restarting it...
2026-03-23 09:07:01.333 CNTRLR Performing soft reset...
2026-03-23 09:07:06.137 CNTRLR Soft reset failed: Timeout while waiting for an ACK from the controller (ZW020
0)
2026-03-23 09:07:06.137 DRIVER Attempting to recover unresponsive controller by reopening the serial port...
2026-03-23 09:07:56.359 DRIVER Failed to open the serial port: Connection timed out after 5000ms (ZW0112)
s6-rc: info: service legacy-services: stopping
[07:24:55] INFO: Service restart after closing
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/config.sh
[09:25:25] INFO: Both 'network_key' and 's0_legacy_key' are set and match. All ok.
[09:25:26] INFO: RF region set to Automatic: Europe
[09:25:26] INFO: Setting RF region to (Europe)
[09:25:26] INFO: Soft-reset set to automatic
[09:25:26] INFO: Virtual Machine detected, disabling soft-reset
cont-init: info: /etc/cont-init.d/config.sh exited 0
cont-init: info: running /etc/cont-init.d/structure.sh
cont-init: info: /etc/cont-init.d/structure.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun zwave_js (no readiness notification)
[09:25:26] INFO: Using socket: esphome://192.168.86.13:6053
s6-rc: info: service legacy-services successfully started
[09:25:26] INFO: Successfully send discovery information to Home Assistant.
2026-03-23 09:25:28.406 INFO APP: Version: 11.12.0
2026-03-23 09:25:28.411 INFO APP: Application path:/usr/local/lib/node_modules/zwave-js-ui
2026-03-23 09:25:28.411 INFO APP: Store path:/config
______ __ __ _ _____ _ _ _____
|___ / \ \ / / | |/ ____| | | | |_ _|
/ /____\ \ /\ / /_ ___ _____ | | (___ | | | | | |
/ /______\ \/ \/ / _' \ \ / / _ \ _ | |\___ \ | | | | | |
/ /__ \ /\ / (_| |\ V / __/ | |__| |____) | | |__| |_| |_
/_____| \/ \/ \__,_| \_/ \___| \____/|_____/ \____/|_____|
2026-03-23 09:25:28.423 WARN STORE: scenes.json not found
2026-03-23 09:25:28.431 INFO EXTERNALSETTINGS: Loaded external Z-Wave settings from: /etc/zwave_config.json
2026-03-23 09:25:28.524 DRIVER ███████╗ ██╗ ██╗ █████╗ ██╗ ██╗ ███████╗ ██╗ ███████╗
╚══███╔╝ ██║ ██║ ██╔══██╗ ██║ ██║ ██╔════╝ ██║ ██╔════╝
███╔╝ █████╗ ██║ █╗ ██║ ███████║ ██║ ██║ █████╗ ██║ ███████╗
███╔╝ ╚════╝ ██║███╗██║ ██╔══██║ ╚██╗ ██╔╝ ██╔══╝ ██ ██║ ╚════██║
███████╗ ╚███╔███╔╝ ██║ ██║ ╚████╔╝ ███████╗ ╚█████╔╝ ███████║
╚══════╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═══╝ ╚══════╝ ╚════╝ ╚══════╝
2026-03-23 09:25:28.526 DRIVER version 15.21.0
- When the USB cable is disconnected from the ZWA2, the device does not return to normal operating condition in about 50% of attempts. I’ve tried to figure out the root cause, but I can’t see what exactly is happening. The end result is that the log fills with entries stating that port 6053 is not responding. Restarting the Z‑Wave service does not fix the situation. Again, when the device is stuck and the antenna is disconnected, the device only shows dim green LEDs and nothing else.
I’ve found a couple of more aggressive ways to recover the ZWA2 without breaking the existing Z‑Wave network:
a) Use the ZWA2 toolbox (Home Assistant Connect ZWA-2 Toolbox).
With the Portable version, the only thing you can do in the toolbox is an ESP update. Before updating, remove the non‑responsive Z‑Wave integration from Home Assistant. Then run the ESP update in the toolbox (select portable) and let the update run for about 1 minute. Power off the ZWA2 and then power it back on. Once powered up, add the Z‑Wave integration again, and the device may start responding normally. If this doesn’t help, option b has worked.
b) Perform the steps from option a, but additionally go to the Z‑Wave JS configuration and update the Socket field to:
esphome://ipaddress
Do this regardless of whether the same value is already there, or even if it currently says esphome://ipaddress:6053.
If neither helps, repeating options a and b multiple times has eventually revived the device for me. Throughout all these attempts, my device has remained properly connected to the network and its IP address responds to ping. The issue therefore seems to boil down to a power outage and the port not functioning afterward.
After a successful recovery, the Z‑Wave network—depending on its size—is back up and running within a few minutes.
Are the ZWA2 developers aware of this? Have others noticed the same behavior?
