Z-wave re-inclusion and keeping persistent names per device

I’m using HA with Zwave JS to MQTT (running in a separate container). Because I’m getting started and experimenting, I’ve ended up resetting the stick and all my devices and re-pairing a couple of times.

But… it seems that zwavejs2mqtt keeps track of node number to name / location mappings, which depends on the order in which devices are added. That isn’t something I want to have to make sure I follow in the same order every time. Is there some way I can tell it to map the DSK, or serial number, or something else unique?

Is there a way to extract (and later, of course, provide) a list of Provisioning Entities from a running system?

That’s just how Zwave works

For what purpose?
You may backup the Zwave stick/effectively the network.

It’s my understanding that that only works between similar models of Zwave stick, right? Or can you do that between arbitrary older and newer models?

I’m not really understanding “that’s just how it works”, because I’m being asked for the pin and shown the rest of the key every time I’m doing an S2 inclusion. Why not just… have the software remember that, and map to the same name the next time?

What it seems to be doing now is mapping name and location (and what else?) to whatever device happened to be added in that same order the previous time. That’s the opposite of helpful!

What am I missing here?

You can backup and restore to and from any controller (with a recent enough SDK).

If you’re inputting a PIN, you’re not using SmartStart. You scan the QR code and optionally enter a name and location. When you power on the device, assuming it supports SmartStart, it will be added automatically. PIN input is only required using classic inclusion.

I’m going from a device that doesn’t support Smart Start to one that does. But, in testing that, it seems that once the smart start devices are paired, they eventually vanish from the list. That seems to defeat he purpose. I’d like to enter each device just once ever.

The provisioning entries are only removed if you exclude the device. Otherwise, they’ll indicate the node number if the node is included. I have several in this state.

Your using docker?

Just to be sure, you have mapped drive and data is persistent between restarts of container? Just wanna make sure you not loading ever when you restart?

That’s what I expected — and they were there for a while, but then seemed to go away… possibly I did something. I have been messing around a lot. :slight_smile:

I’m using podman, but effectively the same. I’m mapping ~/hass/zwave on my system to /usr/src/app/store in the container — that should be all I need, right?

This is “NVM Mangement: Backup”, right?

The “Backup: Export” option just gives me a copy of nodes.json, which I already have backups of from the filesystem — and which has the problem of being entirely order-dependent.

But when I press “NVM Management: Backup”, I get:

Error while calling api backupNVMRaw: Unknown NVM size - cannot backup! (ZW0207)

This is with a Nortek HUSBZB-1 device — I want to switch to a new Zooz 700 series — I’d tried that before, and then switched back because it seemed flaky, but want to try again now that I have the firmware updated).

You’ll have to upgrade the firmware on the Nortek to use the backup in zwavejs2mqtt. The original is too old.

That seems to defeat the point of replacing it. :slight_smile: As I understand from HUSBZB-1 Z-Wave firmware portion update, updating the Zwave firmware involves cracking the stick open and shorting some pins.

I guess I’ll just go and re-do everything with the news Zooz controller, and as I do that, record the DSKs. I guess I should have saved all of the boxes with QR codes in a scrapbook or something, but I didn’t, so I’ll have to go to each on anyway. I’m finding the QR code reader in HA to be pretty flaky — it annoyingly wants to use the front camera every time, and I can’t use the one in zwave2mqtt in a phone browser because I don’t have that set up wtih SSL.

Plus when I tried SmartStart before, a few nodes never showed up, and another showed up without encryption even though they supports that. I’m hoping the updated firmware fixes that.

So all of this is to say… I guess what I’ll do is reset everything and re-include with the new stick. But, it does look like the DSKs can actually be read from the controller, which will at least save me needing to record those manually — . I do find it kind of strange that zwave2mqtt doesn’t just store that “naturally”.

1 Like

You can go take a picture of them now and use that.
Might make setup easier for you

That works, or use a QR code reader app and save the text strings. Neither of the z2m nor HA QR scanners work with my phone, so I use a 3rd party app (Binary Eye), which works flawlessly, and just save the text strings into a text document. You can then import the text strings instead of scanning or using images.

1 Like

The Nortek uses a very old Z-Wave SDK and the NVM format is not convertible between other NVM formats (more likely, the format is undocumented and no conversion routine has been written to support it). Upgrading the firmware installs a new SDK, which supports the necessary functionality Z-Wave JS requires to convert it to other formats, like for the 700-series.

Plus when I tried SmartStart before, a few nodes never showed up, and another showed up without encryption even though they supports that. I’m hoping the updated firmware fixes that.

S2 is implemented by the software driver, so a firmware update won’t do anything, unless the purpose of the update was to improve device communications somehow. If there is an error during the security bootstrapping phase of the interview (e.g. a timeout), the driver is required to abort and include in-securely. You’d have to go through the debug driver logs to confirm if that’s what happened.