Smart home platform roundup

With a growing number of competitors in the smart home space, we're seeing more platforms for integrating your smart devices. This can present a confusing mess of options, varying compatibility and features to new players. Device vendors will often support more than one of these platforms, as well as their own control system, bridge, or app. While you could mix and match to an extent, it would probably mean that you have to use multiple apps to control your devices, and not all of them would play nicely together. That being the case, it's a good idea to choose one platform to try and guide your purchasing decisions.

It's worth noting that choosing one platform now, doesn't mean you are locked in. Depending on the platforms supported by your devices you can switch later providing all, or most, of your devices support the new choice. It's rare to find devices that only support one platform, although they do exist. So, Keeping an eye on platform support when making buying decisions is still a good idea, even after you've made a platform choice.

So, what do we mean by Platform. In this context I'm referring to a third party framework that provides control over all the devices in a smart home. That includes the ability to send commands, as well as read back state and sensor data. The Platform enables the creation of 'scenes' or similar automation that can send commands to batches of devices all at once, either by manually selection, or by a triggering event. By enabling the integrated use of devices from multiple vendors, across different technologies, they provide a central control system which indidividual product manufacturers simply can't.

What we're not talking about are communication technologies (Like ZigBee), standalone apps (Like Elgato Eve) that sit on top of other platforms, voice control devices (like Alexa) or specific vendor families (Like Belkin's Wemo) that all work together already. Platforms are communication technology and vendor agnostic to enable maximum integration. While the voice control devices do work across vendors, they only provide a direct interface to specific devices via defined commands, and don't themselves provide any cross device integration or unified scene control.

To help with selecting a platform for your own smart home project, I've put together a roundup of the various major independent platforms available today. Note that others are still coming into the market, and this space is rapidly evolving.

HomeKit

IMG_0223.PNG

Apple entered the smart home scene with HomeKit in 2015 in an attempt to create a standard platform to address the security and complexity nightmare that existing up to that point. As with all of Apple's technologies in recent times HomeKit is built from the ground up with security in mind. This was a key objective for the platform, and necessitates some compromises on both the manufacturers and the end users. 

On the manufacturer side, Apple places strict requirements on hardware and software that must be met to receive HomeKit certification. This adds cost and time to device development, but does yield a more secure ecosystem in the long term. On the user side, the requirement to protect iCloud credentials means that Apple only allows a relatively expensive Apple TV 4 or iPad to form the hub of the system (the upcoming HomePod will also be able to act in this capacity). Having a hub is not strictly necessary, but makes for a better user experience as it allows automation to continue in the absence of the controlling smartphone, and remote control from outside the local network (ie: away from the house).

While these might be seen as hurdles for some, HomeKit actually provides a good level of interoperability, with a wide variety of device attributes available to define actions. HomeKit allows the creation of 'automations' either via Apple's Home app, or through a third party app that sits on top of HomeKit. The Home app is slick, but simplified, while third party offerings like Elgato's Eve expose more of the functionality for advanced users. 

Automations can leverage time contraints, location, and any exposed values from connected devices in the system such as power state, brightness, temperature, motion, open/closed, locked/unlocked, etc depending on the devices you have. These can be easily combined to create quite complex and intelligent events.

HomeKit support from manufacturers has been slow coming, mainly due to the stringent certification requirements, but over the last two years the number of products has grown to a useful number with more being announced. The full range can be found on Apple's HomeKit site.

IFTTT

IMG_0242.JPG

If This Then That, which has to be one of the most logical names for a service ever imagined, is an interesting variant on the platform definition. While is doesn't specifically call itself an automation platform the extensibility and broad support from device manufacturers allows for the creation of a comprehensive automation solution for the home, or anywhere else. IFTTT is very much targeted at the individual, and offers a free web service that is used to create 'applets' (formerly known as 'recipies') to perform simple actions. The service was launched in 2010, and entered the IoT realm in 2012 with the introduction of integrations with WeMo devices. By 2014 IFTTT was supported on both Android and iOS, with the introduction of additional Do apps in 2015 to allow for action specific actions to be launched at the press of an icon. The Do apps provide The necessary manual controls for home automation by providing the ability to control devices at a touch, rather than only through triggers.

From a practicality standpoint, there are a couple of caveats to employing IFTTT as your primary platform. Firstly is the fact that it's an abstracted third party web server, which means that anytime something triggers an action, the device needs to be authenticated, and the command send through the web service and back. This naturally will create some delays, and your mileage may vary. The other question is around security. IFTTT connects with device services through OAuth which prevents IFTT from needing any of your credentials for other services, and that's good. It does, however, leave the possibility for an attack on your IFTTT account enabling access to all your stuff, at least insofar as you've set up actions for those devices. The API tokens can theoretically be revoked from the various receiving services, but how easily would depend on the services themselves, and not IFTTT.

That aside, IFTTT provides a very vendor agnostic platform, which support for a huge variety of gear. The services page lists over 500 web services and device manufacturers across a broad range of categories. Each of those offers numerous applets to perform a variety of functions, and of course, you can create your own if you are so inclined once the API hooks are there. The possibilities are amazing, and extend well beyond just device integrations, as a quick look through the options will reveal.

Still, there is some considerable setup and maintenance required to get things happeneing the way you want, and it's probably not the platform fo you if you are less technically inclined, but for those who want to control as many aspects of their digital life as possible, IFTTT is probably the way to go. Keep in mind that IFTTT can be used in conjunction with other platforms to fill gaps in functionality, or to integrate with the odd device that isn't compatible with you platform of choice.

Weave

IMG_0228.PNG

This one is a bit complicated. Nest announced a Nest Weave communications framework for connected devices in October 2015, which would provide all the platform requirements such as direct device-to-device communications, low power/low latency operation, interoperability, and security at the application layer with end-to-end encryption, and application specific keys. As Google famously acquired Nest 2014, it would be reasonably to assume that the Weave platform announced by Google at I/O in 2015 would be the same thing, right? 

Apparently not, Google developed Weave to achieve similar goals, but without any dependency on specific devices, like Nest, and with a focus on integrating with Google services. Quoting the relevant portion of the losant.com blog:

"Nest Weave is Nest’s proprietary application protocol that is currently used specifically with Nest devices. It provides direct device-to-device communication securely and reliably across networks in the home, including Wi-Fi and Thread. The primary components are Nest devices, but there's a growing list of brands that do support Nest Weave.

Google Weave is a communication platform that is not specific to Nest devices. As mentioned before - this Weave is used in conjunction with the Brillo OS (actually embedded in the OS). Device developers use Weave to implement a common schema to define operations and device interaction – like the “lock” and “unlock” operation for a smart door lockor switching on a smart oven."

There is a Weave certification program to ensure interoperability between devices, but while one of the touted benefits of supporting Weave in a device is the ability to control it through Google Assistant, it's unclear if that means any such devices would be certified with Weave. I've also been unable to find much at all about devices that are certified and using the platform. It would also appear that the platform is off to a slow start, only last year have chip vendors begun to produce mass market chipsets supporting the platform that would enable easier adoption by device manufacturers, and the supported device types is still quite limited. Google's developed pages list only "HVAC controller, light, outlet, television, and wall switch".

That being said, however, Google's ambition in this space is significant. Weave is not intended to target just the smart home (well, Nest's version is), but the broader Internet of Things at factory, and even, city scale.  I would expect to see much more about this one in the years ahead.

SmartThings

IMG_0224.PNG

Founded in 2012 as a KickStarter project, SmartThings was one of the first attempts to provide a unified platform for home automation. The platform has undergone some significant evolution since then, and now offers the full suite of features we would expect from a platform service. The SmnartThings app is used to configure devices, set up rules, triggers and monitoring of status (which SmartThings calls out specifically unlike the others under it's Smart Home Monitor feature). SmartThings uses a hub to provide inter-device connectivity, connection to their cloud service for monitoring and notifications, and support for devices using ZigBee, Z-Wave, and Wifi. SmartThings also offers direct integration with IFTTT as a bonus to flexibility.

A significant differentiator for SmartThings is it's open developer platform. The enables developers to use a web-based development environment to create new rules and integrations and add support for support new devices. Over the years this service has flourished, and produced a very rich eco-system. Samsung took notice of this in 2015 following Apple's introduction of HomeKit, and they acquired SmartThings in a $200 million dollar deal that year. Other than some branding changes, the service has continued fairly autonomously to date. 

As with any open platform, there have been a number of security issues raised, most recently in 2016 where two significant and broadly applicable architectural issues enabled remote exploitation of the platform. Researchers demonstrated attacks such as extracting door PIN codes, the ability to inject them remotely over the internet to unlock doors, and snoop data from other devices on the network via a unprivileged apps. By May of 2016 SmartThings claimed to have begun releasing updates to mitigate these attacks, but the current state is unknown.

SmartThings has demonstrated a degree of reposibile disclosure around security so far, and updates a pushed out to devices. How well this continues under Samsung's stewardship only time will tell. But it you're not too concerned about being the target of a hacking attempt (or avoid using it for security and privacy related purposes), the platform offers a high degree of versatility, with official support for over 130 products so far.

Wink

IMG_0225.PNG

Launched in 2014 as a startup under maker-incubator Quirky, Wink was looking to build a consumer friendly home automation platform built around the Wink Hub. Quirky has since fallen on hard times and offloaded Wink as a spin-off business to component manufacturer Flex (Flextronics) to pay off some of it's debt. It seems to have been a good move for Wink, though, which was looking for a buyer before that anyway. Wink has moved forward strongly, releasing the Wink Hub 2 with move connectivity and performance, and they continue to attract new devices to the supported stable. At the time of writing nearly 120 products were listed as supporting the platform across a wide range of categories. 

A key feature of Wink is it's broad protocol support. Via the Wink Hub 2 you can connect devices using Wifi (including 5Ghz), Bluetooth LE, ZigBee, Z-Wave, and the widely used proprietary protocols Lutron ClearConnect and Kidde. This provides broader device support than other platforms, and opens up possibilities from the pro home automation vendors as well. Flex's relationships with these device makers has fostered further device support for their Wink subsidiary, even though Wink operates independently. It should be noted that Wink Ready products that don't need the hub to communicate can be used directly with the Wink smartphone app. Given the variety of protocols generally needed for a complete smart home it's not yet recommended to go without the hub, which also allows control of your smart home when out and about.

The App itself is the core of the Wink experience, designed with simplicity in mind. A layman friendly interface has been developed which allows for not only direct control of each devices functions, but the creation of 'shortcuts' to trigger batches of predefined actions, 'robots' which perform actions automatically based on events, and 'schedules' for time based actions. Wink also allows the configuration of alerts to be triggered by sensor inputs

Things have not been all plain sailing though. A botched push update to the original Wink Hub in 2015 caused a widespread, and wide reported, outage and product replacement program. No tech company is immune to these hiccups though, with the likes of Apple and Microsoft also having fallen afoul of bad updates over the years. Wink seems to have learned from the experience and have not had a repeat incident.

If Wink supports the devices you want to use, it's certainly worth a look in. No security events have been reported that I could find, and Wink claims to take security seriously, dedicating a section of their official site to the subject. While this is a significant consideration, at this stage we'll have to take their word for it.