Experience Migrating 35+ Z-Wave devices from SmartThings to Z-Wave_JS

This weekend I decided to take the plunge and migrate all of my Z-Wave devices from SmartThings to a new instance of Home Assistant (HassOS running on RPi4 with a Nortek-branded HUSBZB-1 Z-Wave USB stick). The devices included Homeseer dimmers and switches (WS-100+, WD-100, WD-200+), Inovelli switches (LZW30), a Yale Lock, and a handful of sensors. All devices were working correctly in SmartThings prior to migration. I thought I’d share my experience so far, and ask a few questions of the experts.

I was careful to make sure to go through the exclusion process for each device in SmartThings prior to including it into Home Assistant. I was worried this would be difficult, but it was actually very easy in SmartThings.

I found the “add node” inclusion process in the Z-Wave JS integration to be very temperamental. After hitting Start Inclusion and hitting the button on the device, the UI would return to the “Start Inclusion” screen as soon at the inclusion process began. If I hit “Start Inclusion” again, it would fail and the “Start Inclusion” button would then fail to function until I restarted the Z-Wave JS Add On. I ultimately found I could track the progress by looking at the Z-Wave JS Add-On logs, and keep reloading until I saw “Node ready for use”. Then I could move on to the next one.

Despite the fragile nature, I was able to get almost everything to include. My Yale Assure lock took by far the most effort, it didn’t work in HA after the first 5 attempts to include, but on the 6th attempt it came in and worked correctly. I also have a Ecolink Garage Tilt Sensor that has yet to integrate correctly, but I’ll keep trying (this one is cumbersome to include as the battery has to be removed).

First impression: Responsiveness is so much faster than SmartThings. Hitting the entity switch in HA instantly actives the switch, where it could be five or six seconds in SmartThings to respond (and even longer when piping those to HA via the SmartThings integration). Also, not needing any custom device handlers or special setup was great. Thanks to to the Blueprints here, I was able to easily use multi-tap actions on the switches and even change the switch LED color based on device state. While possible in SmartThings, this is already so much easier in HA.

I do have some issues. I have seven Homeseer WD-100 switches in my house, and none of these are working now in Home Assistant. All of them appear to be added without issue (all properties appear in the device page), but none of them are functional, or report status in HA. I have tried excluding and re-adding them, and even factory resetting the switches themselves, and rebooting HA, but no luck. Some of these switches are within 5 feet of the USB stick, so I don’t believe it is a signal issue (other devices far away are working fine). I also have other switches from Homeseer, WD-200+ dimmers, and some WS-100+ on/off switches. These are all working fine, only the WD-100 is failing.

The verdict: I’m not going back to SmartThings. I’m hopeful that my WD-100 switch issue can be solved, and I fully expect inclusion will become more robust over time as the platform continues to evolve.

I have also opened a GitHub issue for my challenges here: Zwave JS+HUSBZB-1 issue with Homeseer WD-100 dimmer switches · Issue #49397 · home-assistant/core (github.com)

Questions I have:

  • Should I have used the ZWaveJS2MQTT Add-On instead of ZWaveJS? Any chance this would work better for inclusion? I wanted to bet on the platform that looked like it would be official in the long run to avoid any future migrations if possible.
  • If ZWaveJS2MQTT would solve my issues, can I switch to it without rebuilding my zwave network? This seems unlikely.
  • Is there anyway to diagnose whether my challenges are related to my USB Zwave stick rather than the ZWave JS services?

Thanks for reading!

Cool journey :-). 1 question, did you include these 7 switches “secure”? If so, try insecure.

No, I used insecure mode for all inclusions (I did try secure once with the Yale lock, but when I couldn’t get it to work I went back to insecure).

I thought all locks needed to be included securely to get them to function correctly?

Thanks for sharing your experience here. Has your experience with Z-Wave JS gotten better since you migrated your network over in April? Do your Ecolink sensor and HomeSeer switches work with Z-Wave JS now? Have you been able to figure out whether you can “hotswap” between Z-Wave JS and ZWaveJS2MQTT?


I’m just going through the same process now and starting with my Yale Assure zwave lock. On SmartThings, I was using RBoy Apps to automate the addition of user codes and the open/close status of the door for automations with locking/unlocking and also controlling interior/exterior lights based on the time of day. The lock added with no problem on the first shot, which I was happy with, however I’m now just trying to find if there’s a blueprint similar to RBoy Apps for SmartThings of if I need to start doing some homework on how to write this up myself?

You can use the keymaster HACS add on, it has very similar features. If you don’t already have HACS (the home assistant community add on store) already installed you’ll have to install HACS first.

I just setup Keymaster this morning and am trying to sort out a few kinks, which I had expected. I have everything all setup and working seemingly correctly but the auto lock timer starts as soon as I open my door regardless of the state of the open close sensor. Most times of the year that wouldn’t be a problem, but when the weather is nice enough, I leave the door open to get some air in and I hate to have the lock engage when it is open.