Is this normal? Z-wave JS very slow to include new devices, usually times out or fails

I’m running a Blue, Home Assistant OS 2021.12.8, ZwaveJS Driver Version 8.9.2 and Server Version: 1.14.0. I’ve been keeping it all up to date. This is a greenfield install, with all new devices. I’ve been in the process of installing brand new Zooz 700 series lightswitches everywhere in my house.

Including each switch started out difficult, and has gotten harder for each one. I have to restart the hassio, factory reset the zooz, try to include it, watch the UI spin the spinner for several minutes, and then usually just time out. sometimes say “the device cannot be included, check logs for details”, but with nothing shows up on the logs page. Sometimes the zooz includes, but with a name like “Node 56” with no manufacturer, no model, and no device specific configuration parameters. Factory reset the switch again, removed the “failed device”, restart hassio again, pray again, and after enough tries, it finally includes.

Is this normal?

Is everyone else also suffering through this, and just not mentioning it?

Have you run a repair on your network? When I built out my house, I started with the switches that were the closest to my controller. From there I branched out and every day when I finished installing new switches I ran a repair of the network. I used the Leviton switches and they have a setting for doing a network inclusion. Not sure how similar they are.

I did an install of a few zooz 700 switches this week, and also found it unbelievably painful. Much worse than any other zwave experience that I’ve had before.

It eventually worked, but each seemed to involve many frustrating iterations.

1 Like

Me too. I try everything about 3 times, reset the device, try again while hopping on one foot.

I sort of wish I’d never gone into Z-wave. Initially I liked the idea of not loading my wifi router and not needing 7 different buggy phone apps, and cloud logons, to connect the devices. But Z-wave has been a lot of frustration. Besides the range problems, I’ve found inclusion typically fails if the device isn’t very, very close to the controller - the device is found, but the interview never completes - and if the device is a wired-in switch or outlet, that’s a PITA because I have to power it somehow.

Sometimes it seems to be included, but only works part of the time, and healing doesn’t help.

Also, the Z-wave support in HA is thin and fragmented. The relationship between ZwaveJS and ZwaveJSMQTT totally confuses me. I use just ZWaveJS which gives us very little information or control.

2 Likes

Did you ever figure out a solution? I have a Zooz ZST10 USB stick plugged into a Pi and a Zooz
ZEN77 S2 dimmer. I can exclude the switch easily, and the include seems to work OK (now that I put the stick on a USB extender), but the interview process either takes forever (been going 20 mins with only one switch) or fails. It would be great to have a solution that consistently works.

I’ve been using Zwave for 10 years with a VeraPlus controller. It’s been great. However, it’s not supporting the latest 700 series gear, so I am building out my new HA system.
I am completely baffled by the forked position users are face with: Zwave or Zwave JS, and the confusing relationship with zwavejs2mqtt.
I THINK I’m using Zwave JS WITH zwavejs2mqtt, but I still don’t know.

Yeah the situation is very confusing.

The new way of doing zwave on HA is separated into two parts, mostly due to the fact that the ZWave JS project was originally developed by a team unrelated to Home Assistant. It was later added to HA, but it kept this two part aspect. This might seems complicated, but it actually has a number of interesting advantages.

  • First, there’s the driver. It connects to your zwave stick hardware, manages the network and your devices on a low level. There’s no user interface to the driver, it’s purely an invisible backend thing that connects to your zwave network and exposes this as a websocket. The driver is ZWave JS.

  • That driver, ZWave JS, originated as a project unrelated to Home Assistant. Being a pure technical backend and having no user interface, someone decided to write a nice management UI around it. That same team also decided to add MQTT support to it, so that home automation platforms could use it easier. That project is called zwavejs2mqtt. It includes the ZWave JS driver. So you can use either ZWave JS or zwavejs2mqtt, since the latter contains the former. You can’t use both at the same time. I suggest using zwavejs2mqtt, because it contains a very nice UI to manage your zwave network and devices.

  • So you chose one of the two driver options above and your zwave network is now available through a websocket or optionally through MQTT. It’s not yet in HA. That’s why you need an integration to make it visible in HA. You have two choices. The easiest way is to use the zwavejs integration. It will connect to either ZWave JS or zwavejs2mqtt (depends on which you chose above) through the websocket connection and make all your devices available in HA. It also includes a basic UI to manage zwave from within HA. But the UI provided by zwavejs2mqtt is better.

  • Another option to connect the driver to HA is through MQTT. You do not need the zwavejs integration for this. This is an advanced and technically more challenging setup aimed at special use cases. If you need it, you will know. Otherwise, just ignore this option.

Lastly, there is the old zwave integration, which is now deprecated. It was a combined driver-integration using the obsolete OpenZWave project. It’s not used anymore.

1 Like

Thanks for the explanation. I think I’m using ZWave JS, at least that’s what I’ve been using to add devices.

How do I switch…can I switch… to zwavejs2mqtt?

zwavejs2mqtt is installed and running in Add-ons. When I click on Open Web UI, it takes me to the Control Panel of what looks like ZWave JS . So, that’s adding to my confusion.

It’s complicated :wink: Technically both use the same configuration data, because both use the same driver behind the scenes. But HA somehow handles them differently and you need to move around config files. There are several threads talking the procedure, search around.

That means you’re actually using zwavejs2mqtt then. You can’t use both addons at the same time, they would end up fighting for the Zstick hardware.

Yeah it’s all very confusing. I don’t know how the UI thing in HA is done, I never used it (I run zwavejs2mqtt manually and I’m one of these MQTT special use cases :wink: ). The fact that confusing terminology is thrown around left and right doesn’t help either. Even the official zwavejs2mqtt project calls itself ZWave JS server with respect to HA ! They’re referring to the ZWave JS driver included in their own package of course, but this adds to the confusion.

The whole zwave deal in HA is a good example of blatant communication failure and developer bias. It sounds all so easy and logical when you know the technical inside outs. But as a new user, you’re lost. While technically zwave support is sound now and some of the confusion came from an unplanned ‘forced’ migration from OpenZWave (the developer abandoned the project out of the blue), the situation is still way too confusing with ambiguous information everywhere - and not only in the HA documentation.

If you’re on zwavejs2mqtt, you can open the control panel in your browser by navigating to YOUR_LOCAL_IP:8091. You can use this UI to add / remove your devices. I never had any major issue with adding devices there, except once when I tried to add a device through a repeater at the very edge of the mesh. I just added it closer to the controller, then healed it at its final location.

Here’s a thread on how to make the switch. I did it, it worked.

ZWave JS to ZWaveJSMQTT - #103 by firstof9

My big reason for wanting the MQTT version was the UI - it shows you the configuration (routing) of the nodes, and some other useful diagnostic information. But as soon as I’d made the switch, some other people warned me that the routing diagram may not be correct so I shouldn’t rely on it.

The UI shows me the status of all the nodes at a glance, which turned out to be handy - because a day later some things stopped working, and I could see that was because several ZWave devices were offline. And I found out that if restarted the ZWaveJS-MQTT they came right back. 2 days later, same thing. So a new problem has been introduced.

At that point I was just about ready to put all my ZWave devices on Ebay and replace them with wifi equivalents. But it’s been over a week now and things have been stable - maybe ZWaveJS-MQTT sorted itself out somehow.

ZWaveJS-MQTT does let me make a backup of the controller’s NVRAM data, which might (might) let me restore my network if I had to replace the controller. And it does over-the-air firmware updates to devices.

ZWave in HA is a mess and I would not recommend it to new users at this time. So far I’m hanging in and hoping the future is better.

You mean your zwave hardware sorted itself out. That information comes from your controller. Zwave JS just uses the information the controller gives it.

I couldn’t disagree with you more. Zwave is in the best state it’s ever been, and that’s speaking from 6+ years of experience with Zwave 1.4, OpenZwave, and the new Zwave JS.

  • The most devices are supported and new devices are added each release separately from home assistant.
  • It’s actively being developed with a clear roadmap for all aspects: The driver, the server, both addons, and the integration.
  • Users don’t have to modify cache files to enable any functionality. Previously, you had to go into the machine files to add hardware that Zwave1.4 or OpenZwave was unfamiliar with.
  • S2 security, making inclusion a simple process. Scan a QR code and you’re done.
  • Multicast to devices is supported. (Turn on all lights at the EXACT same time, not a waterfall affect).
  • Central Scenes are supported. You had to modify cache files to get this to work before.
  • Obscure command classes are supported. You had to modify cache files to get this to work before.

I’m sure there’s other things I’m missing but the transition to Zwave JS and the current state of Zwave in home assistant is better than it has ever been, by a landslide. Many of the developers wish we completely skipped the OpenZwave (beta) 2 years ago in favor of Zwave JS, but that driver was unknown to us at the time.

1 Like

Wait a minute. My ZWave network and devices had been stable for months - no problems. I install ZWaveJSMQTT and literally the next day, a bunch of devices show Status of red angry face. I reload the add-on and BING they’re back. 2 days later, same thing.

Ok, coincidence. But I harbor doubts.

If so - I’m happy!

Their wifi equivalents have their very own set of issues too :wink:

Zwave itself is extremely stable (unless you were hit by the 700 series bug, but there’s a firmware fix for that now). And petro is right saying that from a technological point view, zwave support in HA is better than ever before. But it still has issues, both from the technical side as well as from a documentation side. The communication around this whole driver vs server vs MQTT or not vs integration or not thing is catastrophic. Again, from a tech standpoint I love the flexibility the setup provides me as a software engineer. But for new users, especially those who are not necessarily as deep in the tech field as we are, this must be a major turn off. There must be a better way to communicate this to users. Don’t ask me how, I don’t know. As a developer working on commercial software myself, I’m being actively held back by my colleagues at work from ever touching user facing documentation :grin:

But even if we disregard the documentation aspect, there are some serious technical issues with certain versions of ZWave JS / zwavejs2mqtt. Some releases are known to be highly problematic, others are known to be very stable. So it isn’t as straightfoward as it sounds.

I’m still building out my new system. Everything Zwave works fine until it doesn’t. At times, I’ll open the control panel and no Zwave devices are listed. I end of having to pull the Zooz stick and reboot. It’s been stable about two days now. However, something is wrong and I have have no clue how to correct it. There are hundreds of errors like this:

Container addon_core_zwave_js is not running.

The system seems to function; I simply can’t trust it.

I can’t access the panel using that port. Like you, I’m having the most difficulty adding new devices on the edge of the mesh (I’m trying to make the leap from first to second floor, but nothing will join the network yet). I don’t yet feel confident putting my door locks on this fragile network.

Until I figure out what’s causing those errors (and occasional Zwave crashes), I’m not confident this is a good replacement yet for Vera. As old and out-of-date as Vera is, at least it works.

I’m not above starting over with HA to make it work. I just don’t know where I went wrong.

Two things come to mind on the hardware side of things. You mentioned 700 series devices. Do you have a 700 series stick ? If so, did you update to the latest firmware ? There was a major bug in the 700 series, it’s very important to update your firmware to the latest release. Second, you did not mention the hardware you’re using. But regardless, you should always connect your zwave stick to your SBC / NUC / whatever using a short USB extension cable to avoid interferences with the USB3 driver circuits. The RPI4 is affected really badly by this.

My solution was to switch entirely to ZWaveJS2MQTT, factory reset my stick, and factory reset and reinclude every single device. Zooz told me they have an integration lab, and do integration tests with every automation hub company that will send them hardware and work with them, but the hassio zwavejs developers are not ones that do. Which is understandable, the developer of the pure zwavejs project is working on it in spare time.

I know your comment was a few months ago, but to make a slight correctiion here. Zooz will work with a Hub. In Z-Wave the Hub is the Z-Wave stick, not the software server or drivers. Zwave JS and Home Assistant do not produce ZWave hardware.
I read all this thread and saw 1 common theme. Zooz. Other Z-wave devices seem to work fine. I’ve used Z-WaveJS using the Home Assistant Integration since it was first introduced, My devices are AEOTEC and Remotec primarily, and none have ever failed to work. Even the Remotec AC Master 600 which OpenZWave could never configure right works right out of the box perfectly.
ZwaveJS2MQTT uses exactly the same server/client as the integrated ZWaveJS (Now just ZWAVE) integration, but has a better control panel. That said, in the months since this thread was opened and last answered, ZwaveJS integration has a lot more functionality within the HA UI.

If one particular brand doesn’t play nice, and there is a theme of that brand not playing nice, that smells like an issue with that brand, not with an integration in HA