I am using Z-Wave in Home Assistant with the Aeotec 700 stick and the ZWaveJS UI.
However, I am encountering the well-known issue of the controller becoming jammed, which makes the Z-Wave network highly unreliable.
I’ve noticed that scheduling a nightly restart of the ZWaveJS UI significantly improves the situation. However, I see this as an aggressive workaround since the root cause doesn’t appear to be the ZWaveJS UI Add-on itself.
From my research, I understand it’s possible to perform a Soft Reset of the Z-Wave controller through the mqtt integration, but I am unclear on how to configure and execute this.
If anyone could provide clear guidelines or instructions for setting up a Soft Reset via mqtt, it would be greatly appreciated!
In case you didn’t know, there is a setting in the ZWaveJS-UI that allows ZWaveJS to soft-reset the ZStick when ZWaveJS detects a problem. If you haven’t already, maybe try that.
ZWaveJS does have an API to call for soft resetting the controller (See here).
Before HA came out with a websocket to connect to ZWaveJS, HA used MQTT to talk to ZWaveJS-UI (back then was called ZWaveJS-MQTT). Today, ZWaveJS-UI still has a way to enable MQTT, but I am actually unsure how the system will behave if you enable both the websocket and MQTT. You might actually try it out and see, but if you do, for sure turn off MQTT auto-discovery.
There is a way to use MQTT to send a command to ZWaveJS-UI by having HA publish an MQTT message with a Topic that ZWaveJS-UI understands. Here is an example. What the exact topic and payload look like for the softreset api, I’m not sure, but taking a guess it might look something like:
z2mqtt/_CLIENTS/ZWAVE_GATEWAY-name/api/softreset/set` without any payload
As an FYI, there is a way to send commands from HA over the websocket, but these appear to all be CC related, so I don’t think there is a way to send a soft_reset command this way.
That option allows ZWaveJS to make an autonomous decision at some point in time whether to soft reset the ZStick or not based on some kind of condition like being stuck. It is not an “on-demand” thing, so it can’t be automated.
Yes you can automate the controller soft reset using mqtt. Here is the documentation explaining the different actions you can perform using mqtt Z-Wave JS UI.
I verified this works by doing the following.
I setup the mqtt addon and intergration using default values
I enabled mqtt in Z-Wave JS UI using default values
In my automation I used the mqtt publish action
The documentation provided an example that looked like this: zwave/_CLIENTS/ZWAVE_GATEWAY-<mqtt_name>/api/softReset/set
You simply replace zwave with the prefix value you have setup in the Z-Wave JS UI mqtt settings.
You then replace <mqtt_name> with the value you have setup in the Z-Wave JS UI mqtt settings
Since I used the default values for everything I ended up with the following zwave/_CLIENTS/ZWAVE_GATEWAY-zwave/api/softReset/set
I just pasted that into the topic to publish to field and click ran
Z-Wave JS UI didn’t display any visual indication that it worked so I had to verify by trying other commands like the exclusion and looking at the logs.