Why is Z-wave inclusion so @#$* hard?

Also, just want to call out that:

  • Updating firmware OTW on the Zooz stick apparently requires using Silicon Labs’ PC Controller. (Updating via Home Assistant risks bricking your controller.)
  • To get PC Controller you need to go through a pretty significant and non-straightfoward registration/installation process for Simplicity Labs. The legal terms you must agree to for this are extensive and they require permission to “monitor” your use of the program.
  • At the end of all of this, you will be told that the controller is only available for Windows computers. (I currently don’t have one – at least not one that isn’t corporate-managed and forbids installing things like this.)

So even if Silicon Labs were to issue a fix, it’s not even clear how I would go about applying that fix. There are a TON of hidden catches here that I wish had been clearly called out alongside the many positive claims about Z-Wave’s capabilities…

2 Likes

I am having the same issues with inclusion using a ZAC93 800 series Long Range controller and 2x kwikset home connect 620 locks. The issues were present on controller firmware version 1.00, 1.10 and 1.20. no idea what the locks firmware version is as I can’t get it to connect to the controller, ever. So the zooz excuse of it being sdk 7.19.x’ fault is incorrect as it happens in 7.18 and lower.

Trying to look up detailed device specs on the zwave alliance products page doesn’t work. When I search kwikset it returns nothing (and takes a good 2 mins to load the page or execute a search). Trying to look up literature for how s2 works resulted me in nothing official, just troubleshooting pages from alarm companies.

This is my first attempt at anything z wave and I have to say, I am completely unimpressed. Controller firmware issues is not something I would expect to see in a controlled system like zwave. As an example, I have never had much issues with wifi/eth, zigbee and Bluetooth IoT devices. I am on day 5 of trying to add 1 lock to the zwave network without success.

I have excluded and factory reset the devices. Factory reset the controller and nuked and reinstalled zwavejs UI container, no bueno.

I can’t really debug the logs because I have no reference to what a proper s2 inclusion looks like and I can’t seem to find any literature on how S2 works. S0 also does not work. Without s0 or s2 encryption, the locks will not expose any lock/unlock entities to HASS.

So,I now have almost $400 worth of z wave locks that I can’t use and are doing nothing but frustrating me.

I understand that maybe my situation isn’t typical, but this is ridiculous. I left smart start running overnight and woke up to 20+ dead nodes with all of them having the same issue (no encryption, unknown product/manufacturer).

All my debug logs error out at the same point in the s2 negotiation, regardless of if it’s smart start or manual inclusion. “S2 security bootstrapping failed due to an elapsed timer”.

I really hope my zwave experience gets better because as of this moment, i don’t want to work with zwave as it is incredibly unreliable in my experiences with it thus far.

@baudneo I feel your pain :frowning:

My situation has generally stabilized with the following characteristics:

  1. Several Z-wave devices (mostly light switches, plus a few temperature/humidity/occupancy sensors) have simply never successfully included (despite being installed an inch or two from another device that did include…) and are basically paperweights at this point.
  2. Z-wave command latency is high and messages sometimes never arrive at all. If I click to turn on a light in a dashboard, it can take 30-60 sec to turn on… and sometimes it doesn’t turn on at all
  3. OTA firmware updates do not work (at least for the devices on my network that have available firmware updates – mostly Aotec multi-sensors).
  4. When I open Z-wave JS UI, it typically lists “no nodes found” for a couple of minutes before the nodes appear. I frequently see a red warning at the top that “controller is unable to transmit” (though it comes and goes), and the top-right “connected” icon often blinks between red and green …

My only hope at this point is that Zooz issues an update that fixes these bugs… which, in turn apparently depends on Silicon Labs issuing an update… which has no ETA or even any indication that it is being worked on/prioritized. And, even if a fix does come, I’m a little scared about how to update the dongle, given that the last attempt to do so via Z-Wave JS UI bricked the (previous) dongle (Zooz afterwards told me that I should instead use Silicon Labs’ software as Z-Wave JS UI’s is not reliable)… but Silicon Labs’ software apparently only runs on windows machines and I don’t have one in the house…

Definitely not feeling the warm fuzzies with Z-wave…

I now have my HA/Docker setup with three (3) instances of Z-Wave JS UI running each within it’s own container. One instance is using a Zooz ZST39 stick with the 1.4 firmware that is plugged into the NUC running Umbutu and Docker. The other two instances are linked to HomeSeer Z-NETs that are plugged into my home network at different locations in the home.

Results so far:

-The original single Z-wave network with the ZST39 firmware 1.1 included 120 nodes and had latencies that were regularly up to 5sec and a lot of dropped commands (10%). The new setup with less that 50 nodes on each network has average latencies between 10-50ms with no dropped commands. :sunglasses:

-Network wide inclusions on the original setup were very problematic with many failed attempts and most inclusions ending up without security. With the new setup, inclusions are near instant and 100% with security setup correctly.

-I have not had any controller lockups on the new setup, even on the ZST39. I contribute the improvement on the ZST39 to the latest firmware update.

After fighting Z-wave gremlins for 4 months, I am happy to be passed all that and on to happy automating.

1 Like

Oh wow! That’s really encouraging! Last I had checked, v1.4 of the firmware was not out yet and v1.3 was recommended against by Zooz.

Is there any way to update to update the dongle to v1.4 without a windows computer? (I have a Mac, the Home Assistant Yellow that the controller is plugged into, Raspberry PI’s, …)

Thanks!

Mike15,

I looked far and wide for ways to upgrade without using SL PC controller running on a PC and have not had any luck yet.

I had to borrow my sons gaming laptop because all my personal machines are Macs.

I am planning to eventually convert my old NUC back to a Windows machine to use as an “engineering” workstation.

I really love the docker / container setup because it is “clean”. It also allows me to upgrade, start/stop, and/or reboot each container separately which really speeds things up.

So far, I have containers setup for:

-Portainer - container manager
-Home Assistant
-Z-Wave JS UI (3 instances)
-ESPHome

Have a look at node-zwave-js/packages/flash/README.md at 72b84f67647691d7d20a8f76464c996fcdc63284 · zwave-js/node-zwave-js · GitHub

You can update the firmware in either HA (controller’s Device page → Update) or Z-Wave JS UI (Control Panel → … → Advanced actions → Firmware update OTW).

@freshcoast Is that safe now? The last time I tried updating the dongle using Z-wave JS UI (1.2->1.3), it bricked the dongle and Zooz support said that Z-Wave JS UI (and possibly Home Assistant generally?) was not reliable for updates…

That was a bug in Z-Wave JS because of a change in the bootloader prompt. I personally disagree with their assessment.

There is still a possible issue, it will be fixed but is not yet (the driver re-enabling smart start mode during an update). The sticks are not bricked though, just stuck in bootloader mode. They can be safely flashed using the command line tool I linked too.

Forgot about that one. Not sure how common that issue actually is.

I think most people were running into OTW update of Zooz ZST39 800-series controller stick completed successfully with timeout error. · Issue #5356 · zwave-js/node-zwave-js · GitHub. That issue was fixed. Very rarely has a 700/800 actually been “bricked”. Usually it’s a misunderstanding.

If you want to use the command line tool in HAOS, then I posted this over a year ago:

Success rate seems to be 100%. That’s based on my non-scientific internal polling. :wink:

Par for the course. I reported a bug in their device (that still exists in their latest firmware) that they refused to fix because I use Zwave JS.

That attitude might have changed. They didn’t seem to have a problem with Z-Wave JS when I contacted them for the pre-release 1.40 firmware for the ZST39. In fact they even supplied instructions and screenshots how to do the OTW update with it (which I did not need, but the thought counts for something here).

1 Like

@mike15 I’ve had all these same problems and your thread helped me a lot.

I recently discovered the Smart Start tab which I think might help you. I realize you’ve already found the SmartStart QR codes through inclusion. This is different so hear me out.

On the Z-Wave JS UI, there’s a Smart Start tab. Click it. It will show “Provisioning Entries”. If you don’t see that, you’re in the wrong spot.

  1. Ideally, do this before the device is powered on. I don’t think is required but it’s the instruction I use.

  2. On Android use the photo app and point the camera at the QR code. You don’t need a photo but when it pops up the QR code text, click it. Get that text copied to the clipboard.

  3. In Android Home Assistant, on the Z-Wave Smart Start tab, click Hamburger → Scan → Text and paste in the QR code text. That will create a new Smart Start entry. At this point, I switch to my desktop computer because the screen is bigger but I think you could continue to do all this on your phone.

  4. The new entry is not yet active. Optionally, under the Protocol column, click Z-Wave to make it Z-Wave Long Range if you device/controller supports that. This can’t be changed after the device becomes active.

  5. Edit the new entry to give it a name.

  6. Ensure only S2 Authenticated is enabled.

  7. Power up the device.

  8. In Smart Start, set it to active. It will automatically add to the Control Panel tab with a new Node ID. You’re done.

I’ve only done this three times so not much experience yet. It worked flawlessly every time. Once with a mesh and twice with 800-LR Long Range. It seems to circumvent all the timeouts, handshakes and S2-security problems that plague the network-wide inclusion technique you’ve been using.

I hope that helps you! Again, I appreciated your post.

Thanks @HA-Dino but I’ve actually been doing it the way you described already!

I have 44 devices on an Aeotec gen5 and have not had these problems. (Inclusion with no security or S2 works quickly and devices do drop off, but very infrequently.) Given how frustrating this has clearly been, it might be worth switching radios. Giving up LR would be a small price to pay for a working network. :slight_smile:
-David

Happy to hear it @mike15 ! Has it been working better, then?

I’m also using ZST39LR and mostly Zooz 800-series devices with S2 security so I think we have fairly similar setups with much the same pain points. I also think we’re a little ahead of the curve, with several posts here from people who aren’t using S2-authenticated or aren’t using 800-series.

I’m interested in moving to Long Range because the latency with the mesh is rather slow. I use a bunch of z-wave associations and, iiuc, LR doesn’t support associations so that’s a problem for me. Just to share where I’m going with my network.

Hi,

Nothing has improved. Z-wave is still totally unreliable. A dozen of my devices still fail to pair and the rest are not reliable. I’d be happy to switch dongles if it didn’t mean resetting and re-pairing (if it even is ever possible!) about 75 devices…

-Mike

You don’t need to repair anything just perform a NVM Backup and Repair.