All Politics (and Automation) is Local
As I have written about previously, I’ve been working on a smart home / automation solution in my house for about 12-18 months now. My initial buildout was heavily based on the Samsung SmartThings ecosystem, which at the time was probably the best available for the investment (time and money). There are certainly professional grade solutions out there like Creston but they are crazy expensive and closed systems… and I am … er … “frugal” (read: cheap) and love to tinker with stuff 🙂
One of the major drawbacks of the SmartThings platform for me is the near-complete reliance on Cloud connectivity. While some things may run locally, the majority of the automation is Cloud based which raises some issues for privacy, security and availability. Also if (when?) SmartThings has platform issues, you’re out of luck, if your internet connection is down for whatever reason, you’re out of luck again … if the moon is full on a day ending in “Y” you are potentially out of luck. Looking over the platform status page SmartThings has been having 11 or so incidents a month, and platform outages regularly. This greatly impacted my automations, as well as the WAF (Wife Acceptability Factor) of the solution.
A few months ago a group of likewise frustrated folks started Hubitat a Home Automation system and ecosystem that does not rely on connectivity to the internet for functionality. The core functionality of the solution all runs locally on the Hubitat Elevation Hub, yet is extensible to support cloud based APIs and solutions – if you want to do so.
The migration took a bit more thought than I originally thought. I really lost track of how dependent my automations and tools were on cloud solutions, so I broke things down into phases.
Phase One – a.k.a. Move Lights
I had originally deployed a Lutron Caseta solution in most of the home’s rooms. This is a great solution, but I found one drawback – it was entirely cloud dependent. Lutron also sells a Caseta Pro solution that allows for local processing, so I removed the old Caseta Bridge and re-paired all of the switches and Pico remotes to a new Caseta Pro bridge. An interesting side effect is that these Pico remotes are now available to be used to control other lights and each of the buttons can be bound to different devices or automations. This opens up a whole new set of possibilities that I need to exploit 🙂
Once I got everything moved over to the Caseta Pro, I used the Hubitat built in integration application, simply enter the IP address of the bridge and it takes care of everything… except for one ‘gotcha’ in the Lutron mobile app (Apple | Android), you need to enable ‘telnet integration’ in the settings. (Yes telnet I can hear the groans from my security friends … it’s actually fairly secure but that’s another post).
The bulk of the other lights in the home are connected to a Philips Hue Bridge. You can pair most other Zigbee lights to the Hue and control them through it. I have a bunch of Cree Connected Bulbs connected to the Hue because Zigbee lights are notorious for screwing up your mesh. SmartThings required a cloud based integration, but Hue has a local API endpoint which Hubitat uses for its integration application. I got this set up in seconds and it pulled in all of the lights and groups seamlessly.
This leaves me with a handful of Zigbee bulbs that are paired directly to the SmartThings hub – they will be moved either to the Hue bridge or the Hubitat directly sooner than later, depending on Hue support.
I also enabled the Hubitat Amazon Alexa integration at this point and let Alexa discover Hubitat connected devices. Wait I thought you wanted to get rid of cloud dependencies? Hubitat uses Local Network connections to Alexa for voice control! Yes, Alexa still needs the cloud for voice processing, but the rest of the solutions will work locally! This is the easiest to set up – just install it from the Apps tab and it works – no configuration (or Amazon Skill) necessary!
Phase One-Point-Five – a.k.a. Link the Hubs
So, most of my lights are on Hubitat, but all of the contacts, sensors, etc. were still over on SmartThings – how do we automate? I installed and configured the Hubitat HubLink application. This required the installation of a SmartApp on SmartThings and some configuration on the Hubitat. For instructions on this, read this post on the Hubitat Community Forum. Once installed and configured to communicate, you select the sensors/devices that you want SmartThings to send events to Hubitat with. This does not (yet) get me to full Local automation, but is a waypoint on the trip… and sets me up for Phase Two.
Phase Two – Moving Devices to Hubitat and learning not all can be moved
Now I can start moving devices over to Hubitat and remove them from SmartThings. I decided I would do this in small chunks room by room. I started with my Home Office for two reasons – firstly the Hubitat Hub is in the office, so it will help to build strong Z-Wave and Zigbee meshes, but just as importantly if I screwed it up, I would not impact the rest of my home and piss off family members 🙂
Moving my Iris door contact sensor and wall power plug posed no issues, just remember that you need to remove them properly from SmartThings and then put them into pairing mode to include them on the Hubitat. While in this process, one of the apps I rely on for automations, Rooms Manager, was ported over to Hubitat, so I installed it and rebuilt my automations for my home office lighting Zero Issues.
I’ve started to move other rooms and for the majority of the devices in my ecosystem there have been no problems. That said currently I will be keeping my SmartThings solution online until the Hubitat folks roll out support for my Arlo and RING Pro Doorbell and Flood Light cameras, as well as Harmony remote controls. The good news is that they are rolling out new features and integrations faster than I can keep up with the release notes, so I expect to have these supported sooner than later.
Gotchas – there are always gotchas
The only downside I have hit is most of my automations in SmartThings were written using WebCORE, which is not natively supported by Hubitat. There is a port of it in development, but I would prefer to stay with native controls if possible. Hubitat does have a similar solution called Rules Machine but it will take some time to wrap my head (and controls) around the different paradigms. I have a few simpler ones moved, but the really complex ones may require re-engineering.
I still have a lot to do with this migration, including a more detailed writeup with screenshots and some code that I threw together to connect Hubitat to my backyard Vantage Pro weather station via Wunderground PWS APIs and other bits. In the meantime, if you are interested or have questions feel free to comment below.