#Z-Wave JS issues (Controller not ready?)

1 messages · Page 1 of 1 (latest)

last shale
#

Over the past few weeks I've noticed issues with my Z-Wave, but really haven't had the time to troubleshoot it. I've been using an Aeotec Z-Stick 7 for a few years now without any issues. Z-wave has normally been rock solid for me and not sure what is up.

I'm hoping this is the first place I can start to look for help to see if any experts can quickly see what my problem is. I've attached the Z-Wave JS log files which keeps saying "The controller is not yet ready!" and I also see some suspicious messages like:

  • "controller is jammed"
  • "controller is no longer response"
  • "Soft reset failed: Timeout while waiting for an ACK from the controller (ZW0200)
  • "Starting the hardware watchdog failed: driver instance destroyed (ZW0102)"

I've also attached a screenshot from the mobile app showing how Z-Wave JS cannot connect to host. I'm also getting the following in the log:
Z-Wave error ZWaveError: The controller is not yet ready! (ZW0103)
at Driver.get controller [as controller] (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:1043:10)
at NodeMessageHandler.handle (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/node/message_handler.js:17:34)
at Client.receiveMessage (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/server.js:134:100)
at WebSocket.<anonymous> (file:///usr/src/node_modules/@zwave-js/server/dist-esm/lib/server.js:55:45)
at WebSocket.emit (node:events:524:28)
at Receiver.receiverOnMessage (/usr/src/node_modules/ws/lib/websocket.js:1220:20)
at Receiver.emit (node:events:524:28)
at Receiver.dataMessage (/usr/src/node_modules/ws/lib/receiver.js:596:14)
at /usr/src/node_modules/ws/lib/receiver.js:530:12
at /usr/src/node_modules/ws/lib/permessage-deflate.js:309:9 {
code: 103,
context: undefined,
transactionSource: undefined
}

Is all this a software problem or is this a hardware problem? I'm running everything on a 1 year old Beelink and everything's been good. Any thoughts?

blazing bear
deep pond
#

Did you try updating your add-on?

#

Your log shows driver version 15.3.0 but the latest core add-on use 15.3.2

last shale
deep pond
#

I think your issue was fixed in that version.

blazing bear
#

I tried the latest add-on, and also built a local one based on the latest zwave-js 15.6, but in both cases it continued to crash within minutes of starting.

deep pond
#

With the same error?

#

Ah, there are quite a few more errors than I noticed initially.

#

Have you tried physically unplugging and re-plugging your USB stick?

blazing bear
#

Sadly no - will try re-plugging the stick (Aeotec z-stick 7) next weekend. I updated the firmware to 7.21.6 as that is now supported, but the driver still crashes with the current zwave-js add-on. The exact error varies, but is most often ZW0202.

deep pond
#

I would set debug log level in the meantime, especially if you end up needing to submit an issue

blazing bear
#

I just switched to Z-Wave-JS UI and found this in the logs:

2025-06-10 08:53:02.032 ERROR APP: Unhandled Rejection, reason: ZWaveError: The node did not acknowledge the command (ZW0204) ZWaveError: The node did not acknowledge the command (ZW0204) at Driver.sendMessage (/opt/node_modules/zwave-js/src/lib/driver/Driver.ts:7057:23) at Driver.sendCommandInternal (/opt/node_modules/zwave-js/src/lib/driver/Driver.ts:7253:28) at Driver.sendCommand (/opt/node_modules/zwave-js/src/lib/driver/Driver.ts:7371:29) at advanceTransportServiceSession (/opt/node_modules/zwave-js/src/lib/driver/Driver.ts:5054:17) at Timeout._onTimeout (/opt/node_modules/zwave-js/src/lib/driver/Driver.ts:5108:10) at listOnTimeout (node:internal/timers:588:17)

Seems exceptions that were once caught by the driver are rising up to the application. Z-Wave JS UI catches, logs the error and continues, but the official add-on does not. This basically forces everyone to switch to the community add-on. The only question is whether the issue should be fixed or official add-on deprecated.

deep pond
#

How did you confirm that?

#

Deprecate the official add-on? Getting a little ahead there.

#

How about submitting an issue to the official add-on if you believe that's what's happening?

deep pond
#

I looked at the ZUI code where the message comes from, it's a handler for uncaughtException so seems likely your assessment is correct. However, simply ignoring exceptions is not necessarily the correct action. The core add-on (or perhaps zwave-js-server) should at least log it. Anyways, it seems possible this is a driver bug, that kind of error shouldn't bubble up to the application as an exception. Submitting an issue (with driver debug logs) will let the devs figure out the correct steps to fix it.

blazing bear
#

Haven't confirmed TBH (I assume you're referring to point about exception handling), just my initial assessment based on what I've seen. I'm not seriously suggesting the official add-on needs to be deprecated, but recent (15.x) changes to the driver make it unusable for the users with z-wave networks that cause certain exceptions to be raised.
Since I'm not familiar with the stack, and just debugging the issues I've encountered, it's not very clear where the problem lies and where to report it (add-on, driver, or server). From looking at the add-on, it seems to bundle the server and driver as stand-alone process, so I don't see any exception handling as there is with Z-Wave JS UI.
I'd definitely like to get this raised to in the appropriate place, appreciate your input @deep pond.

deep pond
#

I the exception handler in ZUI was added (or modified) for this issue: https://github.com/zwave-js/zwave-js-ui/issues/4098. It sounds like it was more of a debugging step to find the cause of an unknown exception and the cause was never actually found. Ignoring exceptions can keep the application in a bad state, so it's not always the best idea. Your log is pretty clear with the error captured though so that would help find a solution.

#

Do you have any experience with typescript/javascript projects? Seems you're able to create your own local add-on, you could try adding the top-level exception handler to the zwave-js-server server application to log the error.

blazing bear
#

I'm more of a pythonista than ts/js, but maybe Claude can help me with this 😄

deep pond
#

Totally optional of course, depends on how much time you have to debug it on your own.

blazing bear