So, it was time for me to move from Vera to something modern. It served me well, but I have new devices I want to add and old that I want to fully use. I have 3 weeks off in August, so plenty of times to tweak things.
Long story short, I moved and turned off my two Veras (one prod, one dev).
Hardware:
- Zwave.me controller, updated to FW 5.39, SDK 6.28.1 (it is necessary, since my Veras have the latest FW available). I opted for a 500 controller because of all the drama with 700/800 and the need to stay on something stable.
I have 60 Zwave devices, so starting from scratch was a big no for me.
I started from this famous guide, after taking a backup from the Vera Prod to the Vera Dev:
But it was not working. So, the route I went is:
- Go the Vera UI and go under Settings/Z-wave settings, take a screenshot (HouseId in particular).
- take a backup from the prod system
- extract the file
/etc/cmh/user_data.json.lzo
from the backup
- move the file to the /tmp directory of your dev system
- execute
pluto-lzo d /tmp/user_data.json.lzo /tmp/user_data.json
- open and edit the file, looking for a port node with something like
/dev..
and put /dev/ttyACM0
inside. save the file.
- run
pluto-lzo c /tmp/user_data.json /tmp/user_data.json.lzo
- copy the .lzo file to the backup, in the same position
- insert the Zwave key into the USB of your dev Vera
- reboot the dev Vera
- wait a lot for it to finish ️
- it will probably say that it cannot start ZWave, don't worry
- Go the Vera UI and go under Settings/Z-wave settings, you should see the old HouseId. Anyway, double check with the screenshot you took previously: if it matches, you've moved your Zwave Network to the new controller!
Shutdown the Veras, take the USB Key with your ZWave network and move it to ZwaveJS!
I've installed it via Docker, very easy. Go for ZwaveJS UI, so you got the UI as well.
Interview the nodes, have patience. Some battery nodes will need wake-ups, others will complete automatically. I had to re-pair a couple of devices because of incorrect pairing with Vera (security and non-security mixed together). In this case, pro tip: reset the device, and then use the replace function from ZWave JS, to have the same node id.
Now, if you're already running under Reactor, you'll need to rewrite all your logic. I asked ChatGPT to write me a Powershell script to get the device from the Veras and build the new naming convention. The logic is that AltId in Vera is in fact the ZWave Node ID, and on Reactor you'll get device like zwavejs>nodeid-endpoint
(ie: 95-0, 95-1, etc). So, I built a script that replaced all the occurrences from the storage of Reactor (did I mentioned to do a lot of backups?) and set the name via ZwaveJS MQTT apis. Then, I build an Excel file (thanks ChatGPT!) and renamed all the endpoints in Reactor (manually, no APIs to do so). It took me about an hour.
Now, no more trip/untrip lost along the radios, and a blazing fast ZWave network to enjoy.
Since a couple of devices are recognized in a different way, I had to re-write a couple of rules (and wait a couple of fix here and there by @toggledbits for devices not properly recognized, thanks!), but I was OK in a couple of days, and ready to run by the first afternoon, so I maintained an high WAF.
Now, I could experiment the joy of SmartStart and proprietary commands.
Thanks to the people that moved before me, inspired me and to @toggledbits for the incredible platform that has built in the latest years! Feel free to ask question if you need help.