Zwave unresponsive... afeter few days or few hours

Hi,
And thanks to all of you that may read me, and/or help me,

I have a Home Assistant setup,
On top of Promox VE, on a mini PC (8Gb RAM, … 4 dedicated to HA)
using a Zooz 800 Zwave Stick.

Current Home Assistant version : 2025.5.2
Zwave-js : 0.13.1
14 Zwave devices (shutters, smoke detectors, smart implant, 1 home energy meter, multi fibaro switches).

Everything seemed to be quite fine since the begining… but more and more, I have “Attempting to recover unresponsive controller by reopening the serial port…”
which block everything on Zwave, until I physicall remove the USB stick, and plug it back in.
(tried, multiple way… restarting Zwave add on… usually does not fix… I even tried to restart HAClient).

I tried to disable Soft Reset, … seemed to be worth (as the unresponsive appeared less than 1 hour after).
I set the log level to debug, so that you can gave a look and propose some solution… to be honnest, … I’m wondering if the issue comes from hardware or my software configuration.

Thanks for your help,

Pierre

Blockquote

2025-05-28T10:10:00.986Z SERIAL » 0x011800a901050c600d00016c01a404260100ff25000000009f85              (26 bytes)
2025-05-28T10:10:01.987Z CNTRLR   The controller is unresponsive
2025-05-28T10:10:01.987Z DRIVER   Attempting to recover unresponsive controller by restarting it...
2025-05-28T10:10:01.988Z CNTRLR   Performing soft reset...
2025-05-28T10:10:01.988Z DRIVER » [REQ] [SoftReset]
2025-05-28T10:10:01.988Z SERIAL » 0x01030008f4                                                         (5 bytes)
2025-05-28T10:10:02.990Z CNTRLR   Soft reset failed: Timeout while waiting for an ACK from the controller (ZW020
                                  0)
2025-05-28T10:10:02.990Z DRIVER   Attempting to recover unresponsive controller by reopening the serial port...
Z-Wave error ZWaveError: Timeout while waiting for an ACK from the controller (ZW0200)
    at Driver.sendMessage (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:6965:23)
    at Driver.sendCommandInternal (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7161:28)
    at Driver.sendSupervisedCommand (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7207:27)
    at Driver.sendCommand (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7262:30)
    at Proxy.set (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC.ts:246:20)
    at Proxy.set (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC._validateArgs.ts:13:30)
    at Proxy.<anonymous> (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC.ts:323:17)
    at ZWaveNode.setValue (file:///usr/src/node_modules/zwave-js/src/lib/node/Node.ts:555:39)
    at NodeMessageHandler.handle (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/node/message_handler.js:23:43)
    at Client.receiveMessage (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/server.js:134:100) {
  code: 200,
  context: 'ACK',
  transactionSource: '    at Driver.sendMessage (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:6965:23)\n' +
    '    at Driver.sendCommandInternal (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7161:28)\n' +
    '    at Driver.sendSupervisedCommand (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7207:27)\n' +
    '    at Driver.sendCommand (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7262:30)\n' +
    '    at Proxy.set (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC.ts:246:20)\n' +
    '    at Proxy.set (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC._validateArgs.ts:13:30)\n' +
    '    at Proxy.<anonymous> (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC.ts:323:17)\n' +
    '    at ZWaveNode.setValue (file:///usr/src/node_modules/zwave-js/src/lib/node/Node.ts:555:39)\n' +
    '    at NodeMessageHandler.handle (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/node/message_handler.js:23:43)\n' +
    '    at Client.receiveMessage (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/server.js:134:100)'
}
2025-05-28T10:10:02.992Z DRIVER   all queues idle
2025-05-28T10:10:04.244Z DRIVER   Serial port reopened. Returning to normal operation and hoping for the best...
2025-05-28T10:10:04.244Z CNTRLR   The controller is no longer unresponsive
2025-05-28T10:10:04.245Z DRIVER   one or more queues busy
2025-05-28T10:10:04.245Z DRIVER » [Node 013] [REQ] [SendDataBridge]
                                  │ source node id:   1
                                  │ transmit options: 0x25
                                  │ callback id:      161
                                  └─[MultiChannelCCCommandEncapsulation]
                                    │ source:      0
                                    │ destination: 1
                                    └─[SupervisionCCGet]
                                      │ session id:      2
                                      │ request updates: true
                                      └─[MultilevelSwitchCCSet]
                                          target value: 0
2025-05-28T10:10:04.245Z SERIAL » 0x011800a9010d0c600d00016c018204260100ff2500000000a195              (26 bytes)
2025-05-28T10:10:05.247Z CNTRLR   The controller is unresponsive
2025-05-28T10:10:05.248Z DRIVER   Attempting to recover unresponsive controller by restarting it...
2025-05-28T10:10:05.248Z CNTRLR   Performing soft reset...
2025-05-28T10:10:05.248Z DRIVER » [REQ] [SoftReset]
2025-05-28T10:10:05.248Z SERIAL » 0x01030008f4                                                         (5 bytes)
2025-05-28T10:10:06.249Z CNTRLR   Soft reset failed: Timeout while waiting for an ACK from the controller (ZW020
                                  0)
2025-05-28T10:10:06.249Z DRIVER   Attempting to recover unresponsive controller by reopening the serial port...
Z-Wave error ZWaveError: Timeout while waiting for an ACK from the controller (ZW0200)
    at Driver.sendMessage (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:6965:23)
    at Driver.sendCommandInternal (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7161:28)
    at Driver.sendSupervisedCommand (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7207:27)
    at Driver.sendCommand (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7262:30)
    at Proxy.set (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC.ts:246:20)
    at Proxy.set (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC._validateArgs.ts:13:30)
    at Proxy.<anonymous> (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC.ts:323:17)
    at ZWaveNode.setValue (file:///usr/src/node_modules/zwave-js/src/lib/node/Node.ts:555:39)
    at NodeMessageHandler.handle (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/node/message_handler.js:23:43)
    at Client.receiveMessage (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/server.js:134:100) {
  code: 200,
  context: 'ACK',
  transactionSource: '    at Driver.sendMessage (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:6965:23)\n' +
    '    at Driver.sendCommandInternal (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7161:28)\n' +
    '    at Driver.sendSupervisedCommand (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7207:27)\n' +
    '    at Driver.sendCommand (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7262:30)\n' +
    '    at Proxy.set (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC.ts:246:20)\n' +
    '    at Proxy.set (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC._validateArgs.ts:13:30)\n' +
    '    at Proxy.<anonymous> (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC.ts:323:17)\n' +
    '    at ZWaveNode.setValue (file:///usr/src/node_modules/zwave-js/src/lib/node/Node.ts:555:39)\n' +
    '    at NodeMessageHandler.handle (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/node/message_handler.js:23:43)\n' +
    '    at Client.receiveMessage (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/server.js:134:100)'
}
2025-05-28T10:10:06.253Z DRIVER   all queues idle
2025-05-28T10:10:07.505Z DRIVER   Serial port reopened. Returning to normal operation and hoping for the best...
2025-05-28T10:10:07.505Z CNTRLR   The controller is no longer unresponsive
2025-05-28T10:10:07.505Z DRIVER   one or more queues busy
2025-05-28T10:10:07.506Z DRIVER » [Node 006] [REQ] [SendDataBridge]
                                  │ source node id:   1
                                  │ transmit options: 0x25
                                  │ callback id:      163
                                  └─[MultiChannelCCCommandEncapsulation]
                                    │ source:      0
                                    │ destination: 1
                                    └─[SupervisionCCGet]
                                      │ session id:      37
                                      │ request updates: true
                                      └─[MultilevelSwitchCCSet]
                                          target value: 0
2025-05-28T10:10:07.506Z SERIAL » 0x011800a901060c600d00016c01a504260100ff2500000000a3bb              (26 bytes)
2025-05-28T10:10:08.507Z CNTRLR   The controller is unresponsive
2025-05-28T10:10:08.507Z DRIVER   Attempting to recover unresponsive controller by restarting it...
2025-05-28T10:10:08.507Z CNTRLR   Performing soft reset...
2025-05-28T10:10:08.508Z DRIVER » [REQ] [SoftReset]
2025-05-28T10:10:08.508Z SERIAL » 0x01030008f4                                                         (5 bytes)
2025-05-28T10:10:09.510Z CNTRLR   Soft reset failed: Timeout while waiting for an ACK from the controller (ZW020
                                  0)
2025-05-28T10:10:09.510Z DRIVER   Attempting to recover unresponsive controller by reopening the serial port...
Z-Wave error ZWaveError: Timeout while waiting for an ACK from the controller (ZW0200)
    at Driver.sendMessage (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:6965:23)
    at Driver.sendCommandInternal (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7161:28)
    at Driver.sendSupervisedCommand (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7207:27)
    at Driver.sendCommand (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7262:30)
    at Proxy.set (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC.ts:246:20)
    at Proxy.set (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC._validateArgs.ts:13:30)
    at Proxy.<anonymous> (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC.ts:323:17)
    at ZWaveNode.setValue (file:///usr/src/node_modules/zwave-js/src/lib/node/Node.ts:555:39)
    at NodeMessageHandler.handle (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/node/message_handler.js:23:43)
    at Client.receiveMessage (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/server.js:134:100) {
  code: 200,
  context: 'ACK',
  transactionSource: '    at Driver.sendMessage (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:6965:23)\n' +
    '    at Driver.sendCommandInternal (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7161:28)\n' +
    '    at Driver.sendSupervisedCommand (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7207:27)\n' +
    '    at Driver.sendCommand (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7262:30)\n' +
    '    at Proxy.set (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC.ts:246:20)\n' +
    '    at Proxy.set (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC._validateArgs.ts:13:30)\n' +
    '    at Proxy.<anonymous> (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC.ts:323:17)\n' +
    '    at ZWaveNode.setValue (file:///usr/src/node_modules/zwave-js/src/lib/node/Node.ts:555:39)\n' +
    '    at NodeMessageHandler.handle (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/node/message_handler.js:23:43)\n' +
    '    at Client.receiveMessage (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/server.js:134:100)'
}
2025-05-28T10:10:09.512Z DRIVER   all queues idle
2025-05-28T10:10:10.763Z DRIVER   Serial port reopened. Returning to normal operation and hoping for the best...
2025-05-28T10:10:10.763Z CNTRLR   The controller is no longer unresponsive
2025-05-28T10:10:10.764Z DRIVER   one or more queues busy
2025-05-28T10:10:10.764Z DRIVER » [Node 004] [REQ] [SendDataBridge]
                                  │ source node id:   1
                                  │ transmit options: 0x25
                                  │ callback id:      165
                                  └─[MultiChannelCCCommandEncapsulation]
                                    │ source:      0
                                    │ destination: 1
                                    └─[SupervisionCCGet]
                                      │ session id:      50
                                      │ request updates: true
                                      └─[MultilevelSwitchCCSet]
                                          target value: 0
2025-05-28T10:10:10.765Z SERIAL » 0x011800a901040c600d00016c01b204260100ff2500000000a5a8              (26 bytes)
2025-05-28T10:10:11.766Z CNTRLR   The controller is unresponsive
2025-05-28T10:10:11.767Z DRIVER   Attempting to recover unresponsive controller by restarting it...
2025-05-28T10:10:11.767Z CNTRLR   Performing soft reset...
2025-05-28T10:10:11.767Z DRIVER » [REQ] [SoftReset]
2025-05-28T10:10:11.767Z SERIAL » 0x01030008f4                                                         (5 bytes)
2025-05-28T10:10:12.769Z CNTRLR   Soft reset failed: Timeout while waiting for an ACK from the controller (ZW020
                                  0)
2025-05-28T10:10:12.769Z DRIVER   Attempting to recover unresponsive controller by reopening the serial port...
Z-Wave error ZWaveError: Timeout while waiting for an ACK from the controller (ZW0200)
    at Driver.sendMessage (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:6965:23)
    at Driver.sendCommandInternal (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7161:28)
    at Driver.sendSupervisedCommand (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7207:27)
2025-05-28T10:10:12.772Z DRIVER   all queues idle
    at Driver.sendCommand (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7262:30)
    at Proxy.set (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC.ts:246:20)
    at Proxy.set (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC._validateArgs.ts:13:30)
    at Proxy.<anonymous> (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC.ts:323:17)
    at ZWaveNode.setValue (file:///usr/src/node_modules/zwave-js/src/lib/node/Node.ts:555:39)
    at NodeMessageHandler.handle (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/node/message_handler.js:23:43)
    at Client.receiveMessage (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/server.js:134:100) {
  code: 200,
  context: 'ACK',
  transactionSource: '    at Driver.sendMessage (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:6965:23)\n' +
    '    at Driver.sendCommandInternal (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7161:28)\n' +
    '    at Driver.sendSupervisedCommand (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7207:27)\n' +
    '    at Driver.sendCommand (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:7262:30)\n' +
    '    at Proxy.set (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC.ts:246:20)\n' +
    '    at Proxy.set (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC._validateArgs.ts:13:30)\n' +
    '    at Proxy.<anonymous> (file:///usr/src/node_modules/@zwave-js/cc/src/cc/MultilevelSwitchCC.ts:323:17)\n' +
    '    at ZWaveNode.setValue (file:///usr/src/node_modules/zwave-js/src/lib/node/Node.ts:555:39)\n' +
    '    at NodeMessageHandler.handle (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/node/message_handler.js:23:43)\n' +
    '    at Client.receiveMessage (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/server.js:134:100)'
}
2025-05-28T10:10:14.024Z DRIVER   Serial port reopened. Returning to normal operation and hoping for the best...
2025-05-28T10:10:14.024Z CNTRLR   The controller is no longer unresponsive
2025-05-28T10:10:17.773Z DRIVER   one or more queues busy
2025-05-28T10:10:17.773Z DRIVER » [REQ] [GetBackgroundRSSI]
2025-05-28T10:10:17.774Z SERIAL » 0x0103003bc7                                                         (5 bytes)
2025-05-28T10:10:18.775Z CNTRLR   The controller is unresponsive
2025-05-28T10:10:18.775Z DRIVER   Attempting to recover unresponsive controller by restarting it...
2025-05-28T10:10:18.775Z CNTRLR   Performing soft reset...
2025-05-28T10:10:18.776Z DRIVER » [REQ] [SoftReset]
2025-05-28T10:10:18.776Z SERIAL » 0x01030008f4                                                         (5 bytes)
2025-05-28T10:10:19.777Z CNTRLR   Soft reset failed: Timeout while waiting for an ACK from the controller (ZW020
                                  0)
2025-05-28T10:10:19.778Z DRIVER   Attempting to recover unresponsive controller by reopening the serial port...
2025-05-28T10:10:19.779Z DRIVER   all queues idle
2025-05-28T10:10:21.032Z DRIVER   Serial port reopened. Returning to normal operation and hoping for the best...
2025-05-28T10:10:21.032Z CNTRLR   The controller is no longer unresponsive
2025-05-28T10:10:47.774Z DRIVER   one or more queues busy
2025-05-28T10:10:47.774Z DRIVER » [REQ] [GetBackgroundRSSI]
2025-05-28T10:10:47.775Z SERIAL » 0x0103003bc7                                                         (5 bytes)
2025-05-28T10:10:48.775Z CNTRLR   The controller is unresponsive
2025-05-28T10:10:48.775Z DRIVER   Attempting to recover unresponsive controller by restarting it...
2025-05-28T10:10:48.776Z CNTRLR   Performing soft reset...
2025-05-28T10:10:48.777Z DRIVER » [REQ] [SoftReset]
2025-05-28T10:10:48.777Z SERIAL » 0x01030008f4                                                         (5 bytes)
2025-05-28T10:10:49.778Z CNTRLR   Soft reset failed: Timeout while waiting for an ACK from the controller (ZW020
                                  0)
2025-05-28T10:10:49.779Z DRIVER   Attempting to recover unresponsive controller by reopening the serial port...
2025-05-28T10:10:49.782Z DRIVER   all queues idle
2025-05-28T10:10:51.035Z DRIVER   Serial port reopened. Returning to normal operation and hoping for the best...
2025-05-28T10:10:51.035Z CNTRLR   The controller is no longer unresponsive
2025-05-28T10:11:17.774Z DRIVER   one or more queues busy
2025-05-28T10:11:17.775Z DRIVER » [REQ] [GetBackgroundRSSI]
2025-05-28T10:11:17.775Z SERIAL » 0x0103003bc7                                                         (5 bytes)
2025-05-28T10:11:18.775Z CNTRLR   The controller is unresponsive
2025-05-28T10:11:18.776Z DRIVER   Attempting to recover unresponsive controller by restarting it...
2025-05-28T10:11:18.777Z CNTRLR   Performing soft reset...
2025-05-28T10:11:18.777Z DRIVER » [REQ] [SoftReset]
2025-05-28T10:11:18.777Z SERIAL » 0x01030008f4                                                         (5 bytes)
2025-05-28T10:11:19.778Z CNTRLR   Soft reset failed: Timeout while waiting for an ACK from the controller (ZW020
                                  0)
2025-05-28T10:11:19.778Z DRIVER   Attempting to recover unresponsive controller by reopening the serial port...
2025-05-28T10:11:19.779Z DRIVER   all queues idle
2025-05-28T10:11:21.033Z DRIVER   Serial port reopened. Returning to normal operation and hoping for the best...
2025-05-28T10:11:21.033Z CNTRLR   The controller is no longer unresponsive
2025-05-28T10:11:31.275Z DRIVER   The serial port closed unexpectedly! (ZW0100)
Error in driver ZWaveError: The serial port closed unexpectedly! (ZW0100)
    at Driver.destroyWithMessage (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:3691:17)
    at Driver.handleSerialData (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:3860:15) {
  code: 100,
  context: undefined,
  transactionSource: undefined
}
Shutting down

Serial connection will stop if usb removed.

Maybe the usb dongle disconnects intermittently. Power? Connectivity?

Is another device trying to make connection to USB dongle possibly?

I would look for hardware issue first.

I have the same issue. My setup had been stable for years.
The issues started when upgrading to version 0.13.x of the Z-wave JS Add-On.
I tried all the standard stuff, upgraded firmware on my controller, tried rediscovering devices, etc… After a reboot things would work for a bit and then a handful of devices would go offline again.

All that being said, I believe the issue will be fixed in a future add-on update. Currently the add-on version 0.13.1 contains Z-Wave JS version 15.3.2.
Z-Wave JS is up to version 15.6.0
Version 15.4.2 contains this bugfix that I hope fixes the issue:

  • Fixed a regression from v15 where Z-Wave JS would immediately soft-reset the controller instead of retrying after an ACK timeout.