I've completed the bulk of the migration and hoping to complete the last few items this week if all goes well. While I had a few days of major z-wave network instabilities, everything has been working fine for the past couple days.
As promised, a summary of my experience moving from SmartThings (ST) to Hubitat Elevation (HE) in case that can help others make an informed decision and/or perform a migration.
Migration experience:
- The HE community has been impressively responsive. If it wasn't for the community I'd have returned the hub after a couple days. For most of my issues I had a working solution in place in a matter of hours.
- Removing a device from ST does not remove it from Alexa. Had to manually delete a large number of devices. Don't know if ST or Alexa bug. Thankfully:
- If a device with the same name is created in HE and exposed to Alexa, it overwrites the ST ghost device (no dupes)
- Remaining device entries in Alexa can be removed from the web UI alexa.amazon.com & lingering ST devices were marked SmartThings (could do a search on the devices page). Makes it much faster than using the Alexa companion app.
- Same goes with ST scenes. They stay here, even when removing the ST skill from Alexa. Here again alexa.amazon.com came to the rescue
- moving z-wave devices from one hub to the other was a major PITA. Took me 2 days.
- need to be really careful on which order the devices are moved since devices need to be close enough to nodes (= powered devices) of both mesh networks at the time of move.
- need to physically touch and sometimes open each device, which in my case was not always practical: moving furniture, climbing ladders, etc.
- Once you have physical access to device, the time spent to move the device varies a lot (for both removing from ST and adding to HE)
- I was not able to determine what impacts the duration variability: same brand, device type, room can take from a few magical seconds to 15 minutes of cursing.
- On average, spent 6 minutes per device. YMMV.
- Z-wave mesh was very unstable after the move. Was getting busy messages in logs and the switch/dimmer devices were not responding to commands. I wasn't able to figure out why. Z-wave repair wasn't helping, same with stopping polling (more on this later). Rebooting the hub was only giving a short respite. It cleared itself after a couple days, possibly when I removed and added back some of the devices that appeared to have issues even after hub reboots.
- GE z-wave regular (not plus) switches/dimmers don't report their physical state changes (paddle presses), while GE z-wave plus switches/dimmers do. Other devices, including battery powered ones (contact switches, motion sensors) don't appear to have the same issue. For ST this was transparent , they appear to do polling behind the scenes automatically to mask the difference. Not the case with HE: you end up with incorrect device statuses, such as light showing as on when it's off and vice-versa. Workarounds:
- replace the devices. In my case impractical (over $600)
- install the poller app. It's an app that polls the problematic devices every 10s. It could have been what rendered my mesh unstable, even after I stopped the poller. So I'm reluctant to try and turn it back on again.
- Poll in your automation when needed. For example in webcore "if motion switches to active and light is on then ..." became "if motion is active, then poll light, then wait 10s, then if light is on, then ..."
- I haven't yet solved "if light stays on more then x minutes then ...". Maybe I'll create recurring tasks to do it.
- WebCORE works the same for ST and HE. I considered converting my pistons to Rules Machine but it appeared to not be straightforward (different logic) and there were a lot to migrate, so stayed in WebCORE. If you take anonymized snapshots of the pistons before removing the devices from ST and use the restore option, migration is much simpler. I found out about it late in the game.
- IFTTT: now that they've moved to a subscription model, can't add new applets. And can't edit my existing applets to target HE devices instead of ST ones. For example I had applets to change status of virtual devices for Wyze on camera detection and MyQ for opening/closing garage doors. Undecided what I'll do about these yet. Move to another platform, create additional IFTTT accounts, use hubconnect?
- The rest of the migration was uneventful. Pretty much every cloud integration worked right away, concepts are somewhat similar, etc.
Post migration pros:
- Got back life360 and echo speaks. Both were no longer working for me in ST.
- Everything that doesn't depend on knowing the state of GE z-wave non-plus switches or dimmers just works. Every automation I could do before I can do now. That includes WebCORE, Sonos, etc.
- All devices that I tried to migrate got migrated successfully. I only have a few left, because I didn't try to migrate them yet.
- The same device can appear in multiple dashboards (vs. limited to one room in ST). For example I have my motion devices in security dashboard, then in their associated room's dashboard, then in the weather dashboard (they report temperature). That's awesome.
- Can customize to some extent how a device appears in a dashboard: color, background pic and template. This is something I missed when ST did its forced migration to the new app and removed support for custom icons.
- No more duplicates & garbage imported in Alexa. Can choose what to export. That was a big plus. Ended up cleaning up a lot of cruft.
- Web UI support means one can have multiple tabs/windows when setting up stuff. Something cannot do in an app unless you have multiple phones or emulators. Although the couple days of z-wave instability were not enjoyable, I really appreciated being able to have tabs on devices, z-wave status, settings (to reboot), dashboard opened at the same time.
- family members no longer need to install an app to access the automation. Also, can create custom dashboards for some members, such as kids, and they don't have to know other dashboards exist.
- (The same may also exist in ST, in which case I just didn't know about it). The Hubitat package manager is awesome. Similar to apt on Linux or chocolatey on windows. Installing and upgrading MyQ, echo speaks, WebCORE with it.
- The Web UI for apps and drivers is better than ST's web UI for the same. Also it's nice to have it all in one place vs. ST that had some as web UI and some as mobile app.
- Having it local has a number of pros:
- more control on when to update firmware (didn't have a chance to try it yet)
- should make some automated tasks run faster due to fewer roundtrips. I haven't been able to observe yet.
- privacy/security. For example can make some dashboards local only. That pretty cool.
Post migration cons: (some could be because I haven't figured out yet the solution)
- z-wave non-plus GE dimmers/switches don't report status, meaning these need to be polled. This happened automatically in ST and is not happening by default in HE. Tried the z-wave poller app (polls every 10s), but stopped as it may have been responsible for my z-wave woes. Don't have a working solution for this yet. If you have those, then think twice before migrating.
- dashboards
- Tiles don't auto-resize based on screen size. So tiles on phone are huge. My phone screen fits 1.5x2.5 tiles (6 tiles, with 4/6 of the tiles half truncated). In the old ST UI the same phone fits 9 devices on a screen. In the new one it's 6. In both cases with no truncation.
- Tile templates are limited to a small (IMHO) non-customizable list. So people can create custom drivers & apps but cannot have custom templates for their custom devices. I don't understand why there's such a limitation yet.
- The tile functions are limited. For example, can't
see device history orcustomize device from dashboard. Need to go on the devices page for this. This may be intentional but I still miss it regardless. - Dashboards are slow to load, which is surprising since it's all local. E.g. it takes 3 seconds to load a dashboard with 5 dashboard tiles (therefore no device statuses to load). Same load time on a beefy PC on the same LAN as the hub.
- Tiles aren't nice looking by default. They are ways to hack the CSS to improve them that I haven't tried yet.
- There no built-in support for differentiating local vs. cloud dashboards. E.g. if you want to change the picture that gets loaded in a tile depending on local or remote dashboard, need to create the same dashboard twice or play some DNS games.
- Didn't find an equivalent of ST "room history", that is the history of a group of devices, which is something I used often. Can only see history per device (click on device, go to events).
- Other issues are minor/trivial. Such as no "Alexa scenes" integration (Hubitat scenes are something else), therefore have to manually create virtual switches and plumb them to change modes. Not a huge deal, but still a little more work.