Graceful way to migrate nodes from standard to LR?

I have a number of 800 nodes on my Z-wave network that are capable of either standard or LR Z-Wave. I had originally included them as standard in order to increase mesh density and ensure coverage but I’ve now got enough devices on the network now that that is no longer necessary… and I see MUCH better performance from the nodes that connect via LR than the standard nodes. So I’d like to migrate some of these both-capable nodes to LR.

My question is: is there any graceful way to do that? Many of these nodes are for devices that have entities in dashboards and automations, and I have history data as well. I would like to switch the Z-wave protocol for these nodes without losing all that configuration and history. Is there any way to do this?

Thanks!

If you always used entity ids in automations it is as simple as renaming the entity id to be the same. If you used device actions, etc your only hope is to use the replace function in ZwaveJS-UI feature but I have never tried that using the same device. And even so I cannot be sure it keeps the device id and entry id the same.

If you do go about it, fix it one at a time because once a device is gone, device actions are both broken and unrecognizable.

Do realize that devices using the LR devices as router will need a new route.

I find the trick is to use the provisioning data in z-wave js, and specifically, the name and area. I always use SmartStart to include.

Since the device name then comes from z-wave js, I just exclude the device and when I re-include with LR I get the same entities, so nothing needs changing on the HA side.

Or at least that’s how I remember it working…
Update: yep, I just excluded a device, changed to LR and the device re-included itself via SmartStart with same entity ids.

Unfortunately SmartStart now says all of my DSKs are invalid so that’s not an option…

They were valid at one point?

I haven’t done a manual include in a long time, but If I remember correctly you can add a name when including. Not perfect, but might save you the step of renaming the entities in HA.

I made a note when I converted to ZUI that I wrote a script to create the provisioning data from data in nodes.json and the jsonl files. But I just now looked and I’m not clear the DSK would have really been there. You might look in the [homeid].jsonl just in case.

Yeah, I left the SmartStart provisioning entries in Z-Wave JS UI for all applicable nodes. I also kept the DSKs in a separate spreadsheet (because it’s a pain to remove faceplates from every light switch/outlet/etc.). They seemed to work ok. Then I had a bit of a disaster on my Home Assistant thanks to the dumpster fire that is OS 16 (see HERE for what restoration took).

When I finally got Home Assistant back, I had to reinstall Z-Wave JS UI, and my SmartStart list was empty. Now whenever I paste any DSK in, it says that it is invalid. (Tried for ~10 different devices…)

It sure is. I’m sure I didn’t have all my DSKs when creating my provisioning because I remember spending a few evenings pulling faceplates and scanning codes. I think it was worth it in the end.

SmartStart QR codes and DSKs are not the same thing (QR code embeds the DSK). Are you sure you’re entering in the correct one?

@freshcoast No I’m not sure. What is the difference between the number from the QR code and the DSK?

(However, the codes that I have stored in my spreadsheet – whether they are DSKs or QRs – previously worked for Smart Start. I copied/pasted them in to initially include the devices. And now when I try to paste them in, Z Wave JS UI tells me that they are invalid.)

You can dissect and build QR codes at:

https://zwave-js.github.io/qr/

I just tested importing a QR code via text into Z-Wave JS UI (11.9.1) and had no issue.