Z-Wave JS: Cannot get zwavejs2mqtt control panel to connect

I’m having issue with getting the control panel from zwavejs2mqtt to connect to my ZWave JS . The control panel keeps reporting “Driver: Failed to initialize the driver: Timeout while waiting for an ACK from the controller”.

  • I’m running HA in a Virtual Machine (VM), and passing through my Aeotec ZWave Stick through to the VM. My entire setup was previously working fine with the Zwave Legacy integration.
  • I do NOT have the legacy integration running. I deleted it.
  • I’ve tried using device ID of /dev/ttyACM0 and /dev/serial/by-id/usb-0658_0200-if00. Neither work. Previously I was using /dev/ttyACM0 with my Zwave Legacy but recently was given a tip that using the serial ID was better in case I ever pass through more USB devices there’s no risk of incorrect mapping.
  • I’ve restarted HA several times, tried restarting the ZJS integration and the zwavejs2mqtt addon too. No change.

Here’s a screenshot showing the ZJS running:

Zwavejs2mqtt control panel showing the error msg:

My HA reported devices:

My control panel settings:


Maybe stupid question but I cant think of anything else. If you start the VM without your Z stick plugged in and take a screenshot of your hardware, and compare it to the screenshot you posted in your original post, is it different?

And you only have ZWAVEJS2MQTT add on running, correct? You do NOT have Z Wave JS add-on running as well?

1 Like

I ended up solving this thanks to a very length conversation in discord. Hoping this helps someone else as this totally was not intuitive to me.

  • My problem was rooted in having both the ZWave JS Add-on and ZwaveJS2MQTT Add-on (in addition to the ZWave JS Integration). This happened because when you install the Integration, youre prompted to install the Add-on.
  • However, since a lot of people will want to have a Control Panel UI with more features than what’s offered in the Integration, then you need to uncheck the supervisor addon option.
  • So before installing ZWaveJS integration, go install the ZwaveJS2MQTT Add-on manually. Specify the serial device ID and network key. For me, I also had to go into the add-on network configuration and fill in 3000 for the Host port. This was blank for me for some reason. After you fill this in, tap Save and make sure you restart the add-on.
  • After this, then go install the ZWaveJS integration and make sure you uncheck the supervisor addon option. You’ll then be prompted for the URL of the ZWaveJS server, which should work as-is as ws://localhost:3000 if you did the last step for that network config. Your mileage may vary based on your setup. I’m running this in a VM so in supervisor and this worked for me.

After this, everything worked.



The documentation straight for ZWaveJS2MQTT says to use the following address. Which I did and works fine. I wonder what different is using the default address as you did?



That did not work for me. I tried it.

in your network config for the integration, what does it say for the host port? is it empty (and say “disabled” or is it filled in?)

The ZJS integration not the addon.

Dont try to edit your post! lol. What are you looking for? THis?

I edited because I realized my mistake :slight_smile:

I did this same thing. It wasn’t clear in the docs at the time that you can only have one or the other.

thank you so much for this!!!

Sorry for re-pinging an old thread, but I found this so helpful.
When I came to setting zwave2mqtt up, there seemed to be a big lack of documentation to me (as I didn’t have the community repo set up at the time).
All the forum entries and the one or two “zwavejs” pages in the HA site mentioned not requiring mqtt and being able to perform HA integration… I seem to remember seeing a page that seemed to be zwave2mqtt owned and it linking back to the HA page and mentioning the built-in zwaveJS integration.

So - I just set up the zwave stick using the official plug-in, selecting the supervisor plug-in, etc.
Then installing zwave2mqtt, and running into the endless problems with 2 instances trying to open the same device.
What confused me more was when I uninstalled the zwavejs plug-in, and it kept re-installing, or when I switched the “on boot” plug, and the fact starting zwave2mqtt also started the zwavejs plugin - leading to the same conflicts.

Wasn’t until I found this post that it became clear:
Remove the plug-in, but also remove the integrations… It was the integrations that kept re-installing the official “zwavejs” plug-in.
Then when the zwave integration is “re-added”, follow what tmchow says above - untick the plug-in box and set the hostname (to “a0d7b954-zwavejsmqtt”) and it will pick up the devices from the config within its database/config.

Just an idea - maybe HA could allow for plug-in “conflicts”… Refusing to install a plug in if it conflicts with another one. That way it would be a bit more obvious?

Anyway, thanks again, hope anyone else caught with this issue finds this too.


Thank you! Thank you! Thank you!