Migration to Z-wave JS failed, can I use 2 sticks?

(TLDR at bottom)
So today I planned to migrate everything to Z-wave JS. Sadly it failed (but thanks to a backup I was back up and running the old way in 2 minutes so that was great!).
The one’s it migrated also only got the name Node1 - Node 43, not really usefull to know what they do (the names showed correctly in the list “this will be migrated” though).

Currently I am still using the first Z-wave implementation with the Aeotec Gen5 stick and it works fine and stable for years now. But I recently bought 2 extra sensors (Aeotec Multisensor 7 and and Aeotec Tri-sensor).

For some reason these don’t seem to work with the old integration. At least I can’t get them to work. They link just fine, but the tri-sensor doesn’t report anything correctly and the Multi-sensor is linked but device type unknown. The other values it reports are also incorrect.

I was holding off to migrate to Z-wave JS because I have 85 devices and 456 entities on Z-wave. Compatibility should be fine I think as the devices are all visible in the device database of Z wave JS (Fibaro Dimmer 2, RGBW and blind controllers, Aeotec power meters, a tri- and multisensor, nothing exotic)

Now I figured, the Multisensor 7 probably doesn’t fully work with the Gen5+ stick anyway.
Can I buy a Aeotec Gen7 stick (compatible according to the documentation), link that to Z-wave JS and use my new sensors on Z-wave JS. Meanwhile keeping the Gen5 stick in the old integration and keep using that.
That would give me a lot more room to migrate everything piece by piece over time instead of needing to get it done in one day.
Anyone that performed this type of migration? I’ve already red some posts of people trying to get a backup of the Gen5 stick on the Gen7 stick but that’s not possible so I’m not even going try that (same with the backup-stick changing to main stick method).

Migration to Z-wave JS failed. Restore went fine so no issue. Can I use a Gen7 stick in Z-wave JS while keeping to use my Gen5 stick in the old integration, to migrate everything slowly over time?

Yes, you can use as many zwavejs servers and integrations talking to those servers as you want (within reasonable limits) but a zwavejs server can only talk to one zwavejs integration at a time. And the old zwave will happily work alongside zwavejs as long as they both use different sticks.

In your case you would just set up the new stick with a zwavejs server and then set up the zwavejs integration to talk to that and leave your old zwave system completely intact.

I did that for months testing zwavejs until I felt comfortable enough with it to switch my production zwave to zwavejs.

1 Like

Thanks! I’ll give that a try then. Also apparently there is a bug/issue with Z-wave 7 sticks, so it’s good that I don’t have to migrate them all imediately then.

Hi, which bug/issue you mean? I am about to buy a Zwave stick and the Aeotec Gen7 is on the top of my list now…

Sorry for the late reply. I’m talking about the following issue:

Should only happen when there are more than 20 devices linked, so for my usecase that could cause issues.

Thanks! I have to go through this - since my device count is also quite high it also might apply to me.

So, just found out the hard way that 2 Gen5 sticks won’t work. I bought a Gen5+ stick to run next to my Gen5 stick. I was in contact with support and they explained that a Gen7 stick isn’t needed to use Gen7 products, only if you need more range.
The problem is, they both get the same address, so both the deprecated Zwave integration and Zwave-JS want to talk to the same stick.

Personally I would just bite the bullet and do the full migration, (do it manually if necessary), instead of running two sticks. You wouldn’t have needed to purchase a 2nd Gen 5 stick either.

Otherwise, if you want to stick with using two USB controllers, your options are:

  1. Use /dev/ttyACM0 and /dev/ttyACM1 paths. These have the risk of changing (e.g. to /dev/ttyACM2, /dev/ttyACM3, etc.) if you pull or re-insert the sticks, or z-wave js does a soft reset.
  2. Use /dev/serial/by-path paths instead, e.g. /dev/serial/by-path/pci-0000:00:14.0-usb-0:2:1.0-port0. I think these should persist based on which USB port the stick is plugged into.
  3. Use the 2nd stick with an entirely different host (Raspberry Pi, laptop, etc.) and run zwavejs2mqtt remotely.

If you are using HAOS and add-ons, you have the second problem of not being able to install two copies of the same add-on. For one stick you’ll have to run zwavejs2qtt, and the other you’ll have to run the z-wave js addon. If not using HAOS, you can use two copies of zwavejs2mqtt on the same host.

No, I tried with the separate paths but it won’t work. ZwaveJS has a problem communicating with the stick. And currently I still have the issue that the ZwaveJS plugin starts correctly, listens to port 3000 but Home Assistant won’t connect to it.

I have the deprecated Zwave disabled at the moment and only the new stick connected. The ZwaveJS plugin has no issues according to the logs, so I currently have no idea. I am at the moment rebooting the whole system in the hope that fixes it permanently.

If adding the 400+ entities will be as big of a PITA as setting it up that promises to be a painfull day…