Migrating from Z-Net to USB Z-Wave stick

I have been running HS V3 using a Z-Net, but now want to switch to HA. While HA could connect to the Z-Net and recognize all the devices, it was totally unreliable. Sometimes it would work, most of the time it would timeout. So, I decided to get a USB Z-Wave stick and use it instead.

My question is, is there any way to get the node configuration from the Z-Net and import it into JS UI without having to re-add every device. Right now (I’ve only done this with a few nodes) is that I have to remove the device from HS, then add it to JS UI, then edit the name. I’ve got 30+ Z-Wave devices, so doing this for each and every one is going to be a pain.

Is there an easier way to do this? Or does anyone have any idea why the Z-Net is unreliable (it works flawlessly on HS)??

Without more information than

It would be hard for anyone to provide useful help. Timeout how? Can you show examples of the timeout message? How did you have it physically connected and what add-on did you use to connect Z-wave to Home Assistant? Are all your Z-wave devices supported by your choice of add-on? Did you leave your Z-net in the same physical location when you switched automation software?

I have 2 Z-Nets that I migrated from HomeSeer to Home Assistant without issue. In fact, I made no changes to the Z-wave hardware or network.

The Z-Net is connected via Ethernet to my router. I used JS UI to connect. All the devices show up, and work some of the time. How are your Z-Nets connected? Here is the log showing the timeouts:

Logger: homeassistant.components.websocket_api.http.connection
Source: components/websocket_api/commands.py:245
integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 11:52:39 AM (1 occurrences)
Last logged: 11:52:39 AM

[281472166705568] Unexpected exception
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/zwave_js/entity.py", line 333, in _async_set_value
    return await self.info.node.async_set_value(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/zwave_js_server/model/node/__init__.py", line 564, in async_set_value
    result = await self.async_send_command(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/zwave_js_server/model/node/__init__.py", line 522, in async_send_command
    return result_task.result()
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/zwave_js_server/client.py", line 131, in async_send_command
    return await future
           ^^^^^^^^^^^^
zwave_js_server.exceptions.FailedZWaveCommand: zwave_error: Z-Wave error 200 - Timeout while waiting for an ACK from the controller (ZW0200)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 245, in handle_call_service
    response = await hass.services.async_call(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2761, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2804, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 996, in entity_service_call
    single_response = await _handle_entity_call(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1068, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/light/__init__.py", line 628, in async_handle_light_on_service
    await light.async_turn_on(**filter_turn_on_params(light, params))
  File "/usr/src/homeassistant/homeassistant/components/zwave_js/light.py", line 306, in async_turn_on
    await self._async_set_brightness(kwargs.get(ATTR_BRIGHTNESS), transition)
  File "/usr/src/homeassistant/homeassistant/components/zwave_js/light.py", line 364, in _async_set_brightness
    await self._async_set_value(
  File "/usr/src/homeassistant/homeassistant/components/zwave_js/entity.py", line 337, in _async_set_value
    raise HomeAssistantError(
homeassistant.exceptions.HomeAssistantError: Unable to set value 11-38-0-targetValue: zwave_error: Z-Wave error 200 - Timeout while waiting for an ACK from the controller (ZW0200)

My Z-Nets are also ethernet connected to a switch. What version of Z-Net do you have, or better yet what is the controller board? Is it 500/700 or 800 series chip set?

What Z-wave activity was taking place when that timeout error occurred?

Are you using the official Z-wave-JS-UI add-on? What version is it?

It’s a pretty old z-net. when I look in HS for information, it tells me API Version 5, lib version 4.05 and ic zw050x. The time outs happen when I’m trying to control a device. I am using the official Z-wave JS Ui add, I got it from the store inside HA. Version is 3.16.1.

Mine’s a pretty old 500 series controller as well. Under Z-wave Setting in JS-UI do you have soft-recovery and controller recovery enabled?

You said, “trying to control a device”. How? automation? clicking a button in Home Assistant? Standard on/off type control or something more complex?

What does it say in the fw column of Z-Wave JS UI?

FW column for controller: FW: v4.31 SDK: v6.51.6
Turning on/off in HA
I found this in the JS log, does it shed any light? Not sure how HS accesses the Z-Net, maybe it doesn’t use the serial interface?

Subscribed to Z-Wave JS log messages…
2024-10-28T16:11:26.105Z CNTRLR   The controller is unresponsive
2024-10-28T16:11:26.112Z DRIVER   Controller missed Send Data callback. Attempting to recover...
2024-10-28T16:11:26.114Z CNTRLR   Performing soft reset...
2024-10-28T16:11:27.130Z CNTRLR   Failed to execute controller command after 1/3 attempts. Scheduling next try i
                                  n 100 ms.
2024-10-28T16:11:28.239Z CNTRLR   Failed to execute controller command after 2/3 attempts. Scheduling next try i
                                  n 1100 ms.
2024-10-28T16:11:30.348Z CNTRLR   Soft reset failed: Timeout while waiting for an ACK from the controller (ZW020
                                  0)
2024-10-28T16:11:30.351Z DRIVER   Automatic controller recovery failed. Returning to normal operation and hoping
                                   for the best.
2024-10-28T16:11:30.354Z CNTRLR   The controller is no longer unresponsive
2024-10-28T16:11:30.360Z CNTRLR   [Node 021] ping failed: Timeout while waiting for a callback from the controll
                                  er (ZW0200)
2024-10-28T16:11:30.363Z CNTRLR   [Node 021] Interview attempt 1/5 failed, retrying in 5000 ms...
2024-10-28T16:11:31.380Z CNTRLR   Failed to execute controller command after 1/3 attempts. Scheduling next try i
                                  n 100 ms.
2024-10-28T16:11:32.490Z CNTRLR   Failed to execute controller command after 2/3 attempts. Scheduling next try i
                                  n 1100 ms.
2024-10-28T16:11:34.598Z CNTRLR   The controller is unresponsive
2024-10-28T16:11:34.603Z DRIVER   Attempting to recover unresponsive controller by restarting it...
2024-10-28T16:11:34.605Z CNTRLR   Performing soft reset...
2024-10-28T16:11:35.373Z CNTRLR   [Node 021] Beginning interview - last completed stage: ProtocolInfo
2024-10-28T16:11:35.376Z CNTRLR » [Node 021] pinging the node...
2024-10-28T16:11:35.621Z CNTRLR   Failed to execute controller command after 1/3 attempts. Scheduling next try i
                                  n 100 ms.
2024-10-28T16:11:36.729Z CNTRLR   Failed to execute controller command after 2/3 attempts. Scheduling next try i
                                  n 1100 ms.
2024-10-28T16:11:38.838Z CNTRLR   Soft reset failed: Timeout while waiting for an ACK from the controller (ZW020
                                  0)
2024-10-28T16:11:38.841Z DRIVER   Attempting to recover unresponsive controller by reopening the serial port...
2024-10-28T16:11:38.844Z CNTRLR   [Node 033] ping failed: Timeout while waiting for an ACK from the controller (
                                  ZW0200)
2024-10-28T16:11:38.847Z CNTRLR   [Node 033] Interview attempt 1/5 failed, retrying in 5000 ms...
2024-10-28T16:11:39.861Z DRIVER   Serial port reopened. Returning to normal operation and hoping for the best...
2024-10-28T16:11:39.863Z CNTRLR   The controller is no longer unresponsive
2024-10-28T16:11:40.877Z CNTRLR   Failed to execute controller command after 1/3 attempts. Scheduling next try i
                                  n 100 ms.
2024-10-28T16:11:41.985Z CNTRLR   Failed to execute controller command after 2/3 attempts. Scheduling next try i
                                  n 1100 ms.
2024-10-28T16:11:43.857Z CNTRLR   [Node 033] Beginning interview - last completed stage: ProtocolInfo
2024-10-28T16:11:43.860Z CNTRLR » [Node 033] pinging the node...
2024-10-28T16:11:44.094Z CNTRLR   The controller is unresponsive
2024-10-28T16:11:44.098Z DRIVER   Attempting to recover unresponsive controller by restarting it...
2024-10-28T16:11:44.101Z CNTRLR   Performing soft reset...
2024-10-28T16:11:45.012Z DRIVER   unexpected response, discarding...
2024-10-28T16:11:45.018Z CNTRLR   Failed to execute controller command after 1/3 attempts. Scheduling next try i
                                  n 100 ms.
2024-10-28T16:11:45.125Z CNTRLR   Failed to execute controller command after 2/3 attempts. Scheduling next try i
                                  n 1100 ms.
2024-10-28T16:11:46.236Z CNTRLR   Soft reset failed: Failed to send the message after 3 attempts (ZW0202)
2024-10-28T16:11:46.239Z CNTRLR   Waiting for the controller to reconnect...
2024-10-28T16:11:46.504Z DRIVER   unexpected response, discarding...
2024-10-28T16:11:47.742Z CNTRLR   Waiting for the Serial API to start...
2024-10-28T16:11:49.168Z DRIVER     no handlers registered!
2024-10-28T16:11:52.745Z CNTRLR   Did not receive notification that Serial API has started, checking if it respo
                                  nds...
2024-10-28T16:11:52.763Z CNTRLR   Serial API responded
2024-10-28T16:11:52.766Z CNTRLR   The controller is no longer unresponsive
2024-10-28T16:11:56.909Z CNTRLR   [Node 038] The node did not respond after 1 attempts, it is presumed dead
2024-10-28T16:11:56.915Z CNTRLR   [Node 038] The node is dead.
2024-10-28T16:11:56.920Z CNTRLR   [Node 038] ping failed: The node did not acknowledge the command (ZW0204)
2024-10-28T16:11:56.923Z CNTRLR   [Node 038] Interview attempt (1/5) failed, node is dead.

You’re not accessing the Z-net with HomeSeer and Home Assistant at the same time, right?

No, I shut down homeseer before starting HA.

And note that it works some of the time, and even when it times out it usually seems to get the Z-Net serial port working again.

From the Z-wave JS add-on UI, post a screen shot of your Z-wave tab configuration without the keys

And a screenshot of the controller details:


Do you know how to SSH into the Z-net?

And you say you can switch to HomeSeer on the same Z-Net and none of these errors occur?

Yes, I can SSH into the Z-Net. Correct, HS V3 works without error on the Z-Net.

Can you post the ser2net config from the Z-net?

What OS and Hardware are you running Home Assistant on?

I’m running on Homeassistant Green ( Home Assistant Green - Home Assistant with HA installed on it. My ser2net.conf is:


#
# This is the configuration file for ser2net.  It has the following format:
#  <TCP port>:<state>:<timeout>:<device>:<options>
#     TCP port
#            Name   or  number of the TCP/IP port to accept con-
#            nections from for this device.  A port number may
#            be of the form [host,]port, such as 127.0.0.1,2000
#            or localhost,2000.  If this is specified, it will
#            only bind to the IP address specified. Otherwise
#            it will bind to all the ports on the machine.
#
#     state  Either raw or rawlp or telnet or off.  off disables
#            the  port  from  accepting  connections.  It can be
#            turned on later from the control port.  raw enables
#            the port and  transfers  all data as-is between the
#            port  and  the long.  rawlp  enables  the port  and
#            transfers  all input data to device, device is open
#            without  any  termios  setting.  It  allow  to  use
#            /dev/lpX  devices  and  printers connected to them.
#            telnet enables the port and runs the telnet  proto-
#            col  on the port to set up telnet parameters.  This
#            is most useful for using telnet.
#
#     timeout
#            The time (in seconds) before the port will be  dis-
#            connected  if  there  is no activity on it.  A zero
#            value disables this funciton.
#
#     device The  name  of  the  device   to  connect  to.  This
#            must be in the form of /dev/<device>.
#
#     options
#            Sets  operational  parameters  for the serial port.
#            Options 300, 1200, 2400, 4800, 9600, 19200, 38400,
#            57600, 115200 set the various baud rates.  EVEN,
#            ODD, NONE set the parity.  1STOPBIT, 2STOPBITS set
#            the number of stop bits.  7DATABITS, 8DATABITS set
#            the number of data bits.  [-]XONXOFF turns on (-
#            off) XON/XOFF support.  [-]RTSCTS turns on (- off)
#            hardware flow control, [-]LOCAL turns off (- on)
#            monitoring of the modem lines, and
#            [-]HANGUP_WHEN_DONE turns on (- off) lowering the
#            modem control lines when the connextion is done. 
#	     NOBREAK disables automatic setting of the break
#	     setting of the serial port.
#            The "remctl" option allow remote control (ala RFC
#            2217) of serial-port configuration.  A banner name
#            may also be specified, that banner will be printed
#            for the line.  If no banner is given, then no
#            banner is printed.
#
# or...

#  BANNER:<banner name>:banner
#    This will create a banner, if the banner name is given in the
#    options of a line, that banner will be printed.  This takes the
#    standard "C" \x characters (\r is carraige return, \n is newline,
#    etc.).  It also accepts \d, which prints the device name, \p,
#    which prints the TCP port number, and \s which prints the serial
#    parameters (eg 9600N81).  Banners can span lines if the last
#    character on a line is '\'.  Note that you *must* use \r\n to
#    start a new line.
#
# Note that the same device can be listed multiple times under different
# ports, this allows the same serial port to have both telnet and raw
# protocols.

# The original config file shipped with the upstream sources can be
# found in /usr/share/doc/ser2net/examples

BANNER:banner:\r\nser2net port \p device \d [\s] (Debian GNU/Linux)\r\n\r\n

#2000:telnet:600:/dev/ttyS0:9600 8DATABITS NONE 1STOPBIT banner
2001:raw:60:/dev/ttyAMA0:115200 8DATABITS NONE 1STOPBIT -XONXOFF -RTSCTS
2002:raw:60:/dev/ttyUSB0:19200 8DATABITS NONE 1STOPBIT -XONXOFF -RTSCTS
#3000:telnet:600:/dev/ttyS0:19200 8DATABITS NONE 1STOPBIT banner
#3001:telnet:600:/dev/ttyS1:19200 8DATABITS NONE 1STOPBIT banner

I have the same Z-wave setup as you and the same Z-net controller. The only difference is the ser2net timeout value. You have 60, I have 0 which means never timeout. I had problems with the 60 seconds timeoout in this thread here Need Help with Z-wave JS Troubleshooting - Configuration / Z-Wave - Home Assistant Community (home-assistant.io).

You can try setting the third parameter 60 to 0 to see if that helps. You can always set it back.

2001:raw:60: <-change this to 0

Changed it to 0, but doesn’t seem to matter:

2024-10-29T16:03:04.025Z CNTRLR   The controller is unresponsive
2024-10-29 09:03:04.027 INFO STORE: Controller status: Controller is unresponsive
2024-10-29T16:03:04.030Z DRIVER   Controller missed Send Data callback. Attempting to recover...
2024-10-29T16:03:04.031Z CNTRLR   Performing soft reset...
2024-10-29T16:03:05.044Z CNTRLR   Failed to execute controller command after 1/3 attempts. Scheduling next try i
                                  n 100 ms.
2024-10-29T16:03:06.152Z CNTRLR   Failed to execute controller command after 2/3 attempts. Scheduling next try i
                                  n 1100 ms.
2024-10-29 09:03:06.881 INFO STORE: GET /health/zwave 301 1.975 ms - 162
2024-10-29T16:03:08.264Z CNTRLR   Soft reset failed: Timeout while waiting for an ACK from the controller (ZW020
                                  0)
2024-10-29T16:03:08.265Z DRIVER   Automatic controller recovery failed. Returning to normal operation and hoping
                                   for the best.
2024-10-29T16:03:08.267Z CNTRLR   The controller is no longer unresponsive
2024-10-29 09:03:08.268 INFO STORE: Controller status: Controller is Ready
2024-10-29T16:03:08.271Z CNTRLR   [Node 021] ping failed: Timeout while waiting for a callback from the controll
                                  er (ZW0200)
2024-10-29T16:03:08.273Z CNTRLR   [Node 021] Interview attempt 3/5 failed, retrying in 15000 ms...
2024-10-29 09:03:08.275 ERROR STORE: [Node 021] Interview FAILED: Attempt 3/5 failed
2024-10-29T16:03:09.286Z CNTRLR   Failed to execute controller command after 1/3 attempts. Scheduling next try i
                                  n 100 ms.
2024-10-29T16:03:10.394Z CNTRLR   Failed to execute controller command after 2/3 attempts. Scheduling next try i
                                  n 1100 ms.
2024-10-29T16:03:12.502Z CNTRLR   The controller is unresponsive
2024-10-29 09:03:12.503 INFO STORE: Controller status: Controller is unresponsive
2024-10-29T16:03:12.506Z DRIVER   Attempting to recover unresponsive controller by restarting it...
2024-10-29T16:03:12.508Z CNTRLR   Performing soft reset...
2024-10-29T16:03:13.521Z CNTRLR   Failed to execute controller command after 1/3 attempts. Scheduling next try i
                                  n 100 ms.
2024-10-29T16:03:14.629Z CNTRLR   Failed to execute controller command after 2/3 attempts. Scheduling next try i
                                  n 1100 ms.
2024-10-29T16:03:16.737Z CNTRLR   Soft reset failed: Timeout while waiting for an ACK from the controller (ZW020
                                  0)
2024-10-29T16:03:16.739Z DRIVER   Attempting to recover unresponsive controller by reopening the serial port...
2024-10-29T16:03:16.741Z CNTRLR   [Node 033] ping failed: Timeout while waiting for an ACK from the controller (
                                  ZW0200)
2024-10-29T16:03:16.743Z CNTRLR   [Node 033] Interview attempt 3/5 failed, retrying in 15000 ms...
2024-10-29 09:03:16.744 ERROR STORE: [Node 033] Interview FAILED: Attempt 3/5 failed
2024-10-29T16:03:17.752Z DRIVER   Serial port reopened. Returning to normal operation and hoping for the best...
2024-10-29T16:03:17.754Z CNTRLR   The controller is no longer unresponsive
2024-10-29 09:03:17.755 INFO STORE: Controller status: Controller is Ready
2024-10-29T16:03:18.766Z CNTRLR   Failed to execute controller command after 1/3 attempts. Scheduling next try i
                                  n 100 ms.
2024-10-29T16:03:19.873Z CNTRLR   Failed to execute controller command after 2/3 attempts. Scheduling next try i
                                  n 1100 ms.
2024-10-29T16:03:21.985Z CNTRLR   The controller is unresponsive
2024-10-29 09:03:21.988 INFO STORE: Controller status: Controller is unresponsive
2024-10-29T16:03:21.990Z DRIVER   Attempting to recover unresponsive controller by restarting it...
2024-10-29T16:03:21.993Z CNTRLR   Performing soft reset...
2024-10-29T16:03:22.935Z DRIVER   unexpected response, discarding...
2024-10-29T16:03:22.940Z CNTRLR   Failed to execute controller command after 1/3 attempts. Scheduling next try i
                                  n 100 ms.
2024-10-29T16:03:23.046Z CNTRLR   Failed to execute controller command after 2/3 attempts. Scheduling next try i
                                  n 1100 ms.
2024-10-29T16:03:23.278Z CNTRLR   [Node 021] Beginning interview - last completed stage: ProtocolInfo
2024-10-29T16:03:23.280Z CNTRLR » [Node 021] pinging the node...
2024-10-29T16:03:24.157Z CNTRLR   Soft reset failed: Failed to send the message after 3 attempts (ZW0202)
2024-10-29T16:03:24.158Z CNTRLR   Waiting for the controller to reconnect...
2024-10-29T16:03:24.425Z DRIVER   unexpected response, discarding...
2024-10-29T16:03:25.659Z CNTRLR   Waiting for the Serial API to start...
2024-10-29T16:03:27.061Z DRIVER     no handlers registered!
2024-10-29T16:03:30.662Z CNTRLR   Did not receive notification that Serial API has started, checking if it respo
                                  nds...
2024-10-29T16:03:30.681Z CNTRLR   Serial API responded
2024-10-29T16:03:30.684Z CNTRLR   The controller is no longer unresponsive
2024-10-29 09:03:30.686 INFO STORE: Controller status: Controller is Ready
2024-10-29T16:03:31.748Z CNTRLR   [Node 033] Beginning interview - last completed stage: ProtocolInfo
2024-10-29T16:03:31.750Z CNTRLR » [Node 033] pinging the node...
2024-10-29 09:03:37.000 INFO STORE: GET /health/zwave 301 1.862 ms - 162
2024-10-29 09:04:07.150 INFO STORE: GET /health/zwave 301 1.854 ms - 162
2024-10-29T16:04:10.727Z CNTRLR   The controller is unresponsive
2024-10-29 09:04:10.729 INFO STORE: Controller status: Controller is unresponsive
2024-10-29T16:04:10.731Z DRIVER   Controller missed Send Data callback. Attempting to recover...
2024-10-29T16:04:10.733Z CNTRLR   Performing soft reset...
2024-10-29T16:04:11.749Z CNTRLR   Failed to execute controller command after 1/3 attempts. Scheduling next try i
                                  n 100 ms.
2024-10-29T16:04:12.858Z CNTRLR   Failed to execute controller command after 2/3 attempts. Scheduling next try i
                                  n 1100 ms.
2024-10-29T16:04:14.966Z CNTRLR   Soft reset failed: Timeout while waiting for an ACK from the controller (ZW020
                                  0)
2024-10-29T16:04:14.968Z DRIVER   Automatic controller recovery failed. Returning to normal operation and hoping
                                   for the best.
2024-10-29T16:04:14.969Z CNTRLR   The controller is no longer unresponsive
2024-10-29 09:04:14.971 INFO STORE: Controller status: Controller is Ready
2024-10-29T16:04:14.973Z CNTRLR   [Node 008] ping failed: Timeout while waiting for a callback from the controll
                                  er (ZW0200)
2024-10-29T16:04:14.975Z CNTRLR   [Node 008] Interview attempt 4/5 failed, retrying in 20000 ms...
2024-10-29 09:04:14.977 ERROR STORE: [Node 008] Interview FAILED: Attempt 4/5 failed
2024-10-29T16:04:15.989Z CNTRLR   Failed to execute controller command after 1/3 attempts. Scheduling next try i
                                  n 100 ms.
2024-10-29T16:04:17.095Z CNTRLR   Failed to execute controller command after 2/3 attempts. Scheduling next try i
                                  n 1100 ms.
2024-10-29T16:04:19.204Z CNTRLR   The controller is unresponsive
2024-10-29 09:04:19.206 INFO STORE: Controller status: Controller is unresponsive
2024-10-29T16:04:19.208Z DRIVER   Attempting to recover unresponsive controller by restarting it...
2024-10-29T16:04:19.210Z CNTRLR   Performing soft reset...
2024-10-29T16:04:20.226Z CNTRLR   Failed to execute controller command after 1/3 attempts. Scheduling next try i
                                  n 100 ms.
2024-10-29T16:04:21.332Z CNTRLR   Failed to execute controller command after 2/3 attempts. Scheduling next try i
                                  n 1100 ms.

How did you create your security keys? I just clicked on the icon to the right and it generated them. Could this be the problem?