Description
Restarting (aka. soft-resetting) a Z-Wave controller is automatically done at startup of Z-Wave JS to start from a clean state where the controller isn't doing anything weird. This is also necessary in certain situations, e.g. to apply configuration changes, or to work around firmware bugs.
Simply put, for 700 and 800 series controllers, restarting is required from time to time.
For 500 series and older, it is strongly recommended. Unfortunately, 500 series controllers may reconnect to USB when restarted, which can cause issues in certain setups. This is especially true in VMs, where the USB passthrough stops working unless the VM is configured correctly.
Until the update to v12, Z-Wave JS would detect these situations where the controller stayed unavailable after restarting and would disable soft-reset going forward. However this feature caused false negatives that could be nearly impossible to recover from, aside from manually editing a file that can be hard to get to. As a result, it was removed and the burden is now on the user to ensure their environment is set up correctly.
There are a few known solutions to this:
- Prefer
/dev/serial/by-id/...
paths over/dev/tty...
in case the path changes after reconnecting - When using the Aeotec Gen5 or Gen5+, updating the firmware to 1.2 can help, plus you get SmartStart support for free. Warning: A failed update can brick the controller, proceed at your own risk or look at other options first.
- If you're using ESXi, updating to 7.0u1 can help.
- For some other VMs, this document contains instructions for properly setting up USB passthrough.
- Expose the serial port via TCP, either from the host or a different device.
- As a last measure, soft-reset can be disabled in the Z-Wave JS UI settings. The stick may need to be re-plugged, or the VM may need a restart before it starts working again. It is preferable to try the other solutions first, since being able to restart the stick has the aforementioned upsides.