Here's how Apple iOS 8 HomeKit works
Apple has set its sights on the smart home, and HomeKit is how it plans to dominate it, promising a more cohesive automation experience by becoming the glue that holds everything together. HomeKit won't launch officially until iOS 8 arrives on iPhones and iPads later this year, but developers and accessory manufacturers are already being let into the loop so they can get their software and hardware ready. Read on to find out exactly how it works.
If you've been following the smart home market over the past 12-18 months, you'll probably know that it's flourishing. Smart thermostats like Nest, networked lighting like Philips hue, remote-controlled door locks from companies like Yale, and wireless power sockets, streaming security cameras, and more have all proliferated, at prices – and with installation processes – within the reach of the fairly tech-savvy user.
You'll also likely have realized that smart home tech can be confusing. We've seen a few attempts to corral the various contenders into one, more holistic whole, from companies like Revolv and SmartThings, but for the most part it's a riot of wireless standards, different intercommunication protocols, and multiple different apps to control each aspect of the system.
With HomeKit, Apple isn't looking to recreate the wheel: it's aiming to balance it. Rather than coming out with a range of its own home automation components, Apple will instead make managing and controlling third-party devices more straightforward.
In HomeKit, you can have one or more Homes, within which are established different Rooms. All of the accessories – lights, thermostats, garage doors, etc. – are logged within the Home, and which Room they're assigned to. HomeKit also recognizes Bridges: a hub which supports the accessory protocol, with end-point accessories that don't communicate directly with iOS.
For instance, HomeKit might link to the hub for your wireless light bulbs; each bulb shows up as a unique accessory in Apple's list, despite the Bridge being in-between. Meanwhile, each accessory can have one or more services: one for each of the different features it supports.
So, you might have a Room called "Garage" in your Home, within which there's an accessory called "Garage Door". It could have two services: the motor for opening and closing the door, and the lamp that switches on and off. There can also be "hidden" services, not exposed to the user, for things like firmware updates.
All of those details are held in a common database. It's responsible for maintaining a birds-eye view of the details of each home, each zone, and each accessory, and sharing those with all of the applications that want to tap into them.
Every Home, Room, and accessory must have a unique name, because Siri can refer to them and recognize them using natural language instructions. Apple has a long list of service types to suit the more common functions, all of which Siri understands; developers with more esoteric devices will be able to create custom services, though then Siri can't be used to control them.
Similarly, Siri recognizes all of the Apple-defined characteristics: the parameters of the individual services. In our garage door example, for instance, the motor service could have four different characteristics: open, closed, opening, and closing.
There's also support for grouping, both of Rooms and of services. Several Rooms can be clustered into a single Zone: "Upstairs" perhaps, or "Bedrooms"; similarly, services can be grouped and named. You might have a "Nightlight" group consisting of the different lights in your hallway, the extractor hood lamp, and others.
Both Zones and service groups are uniquely named, and can be referred to with Siri. Similarly, they're non-exhaustive: one room can be in multiple Zones; one service can be in multiple service groups.
Finally, there are action sets and triggers. Action sets are collections of simultaneous actions, executed at the same time (though with no guarantee of the order they'll be completed in). A "Morning" action set might turn on the lights, turn up the thermostat, open the garage door, and switch on the coffee machine, all in one fell swoop.
Action sets can be set off manually, including through Siri, or through a trigger. They execute at specific days or times, for a specific length of time.
For device manufacturers there's a whole lot of different delegate methods to be filled in: the criteria which the accessories present to HomeKit. The rules are relatively strict, but the promised payoff is consistency and increased engagement: HomeKit's common database contains not only the list of accessories, but their last status, so that no matter which app the user is looking at, the details of each accessory is accurate.
Similarly, if the name of a Room is changed, if a new Home or Zone is added, or if an accessory is removed, every app linked to HomeKit will show the same details.
For a first attempt, it's an impressively comprehensive umbrella for home automation. There are some potential frustrations: for instance, actions will only work when the app is in the foreground, the exception being triggers which iOS can fire off in the background. That's so that the smart home activity is predictable and understandable, Apple says.
Of course, the software side of it is only part of the equation. Devices and accessories need to be not only IP-connected, but HomeKit compliant. Apple will support Bluetooth LE as well as IP (like WiFi) for connections, the first using direct point-to-point links between iOS and the device, while the latter will work as long as it's on the same subnet.
There's bi-directional authentication and per-session encryption, too, for security, and each device needs to have an identifier of some sort, so that the user can quickly figure out which they're setting up or controlling. So, a wireless bulb might flash to show it's the accessory being changed, while a speaker might briefly sound a tone. There'll be a code printed on the packaging or somewhere similar which has to be punched in during setup, too.
Apple is counting on its heft in the consumer electronics industry to push adoption, not only of HomeKit but of smart-enabled devices in general. At first glance, that doesn't seem too hard to believe: after all, most of the current breed of smart home tech comes with iOS support – sometimes exclusively. There are other potential advantages for accessory manufactures, too: they could feasibly skip building an app altogether, relying on HomeKit compatibility to see their device integrated into other company's platforms, with predictable and reliable behavior.
For the moment, though, there are no HomeKit-compliant locks, bulbs, or thermostats on the market, though Apple has a list of manufacturers it expects to add support. That list includes Honeywell, Philips, Withings, Schlage, and Cree, among others. Meanwhile, Apple is giving developers a HomeKit Accessory Simulator as part of the SDK, so that they can experiment with their apps, to see how virtual smart home devices will react to their apps.
Simple control is only the first stage, of course. Apple isn't talking about the next step beyond HomeKit launching, but it's not hard to imagine the automation platform integrating with something like Continuity, its proximity-based blending of different iOS and OS X devices for seamless handover. Initially that'll pass webpages being browsed or emails being written from phone to desktop, and vice-versa, but factor in a range of smart home devices, too, and there are a huge number of potential screens and other display options Apple could tap into.
We'll know more closer to the public launch of iOS 8, scheduled for fall 2014.
Keep up with all the WWDC 2014 news in our Apple Hub