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

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.

I’ve tried several of this model of dongle and the behavior was the same on each, so presumably “switching radios” would mean switching to a different brand. Is the NVM really inter-compatible between different models/brands of radio? (I.e., can I backup NVM from this Zooz and then restore it to some other brand of Z-wave controller?)

A while ago I had tried to restore NVM from a ZST-39 to a ZAC93 (both 800LR), and it didn’t work. If I recall, the error said something about different NVM sizes…

At the moment, my only hope is that magically the 1.4 firmware for the ZST39 gets released and actually solves this problem…

Zooz emailed me a few days ago, new firmware had been released for the ZAC93 that “testing it has resolved 99% of the reported lockup issues.” Looks like ZST39 has an update, too.

  • ZAC93 fw 1.40 (sdk 7.22.0)
  • ZST39 fw 1.50 (sdk 7.22.1)

Woohoo! Thanks for letting me know!

Now if only I can update the firmware without bricking the zst39. (I tried doing an upgrade previously via OTW in home assistant and it bricked it. Zooz support said I should only update using the Silicon Labs software, but neglected to mention that that requires a windows PC (which I do not have).) I guess I have to roll the dice?

With any luck it’s only “soft bricked” and you can place it in bootloader mode and try again (if you haven’t already).

All ZWave stuff uses the same silicon labs chipps. Yes.