Apple announced on Monday updates to its Internet of Things platform, HomeKit, with the company building a dedicated app to control various devices within a person’s home, so that a single app is used to control lights, view doorbell cams, open garage doors and more. The announcement came at the ongoing WWDC 2016 conference.
Launched in 2015 along side iOS 8, HomeKit is a framework for communicating with and controlling connected accessories in a user’s home. It allows users to discover HomeKit accessories in their home and configure them, or create actions to control those devices. Users can group actions together and trigger them using Siri.
The HomeKit framework communicates with and controls connected home automation accessories that support Apple’s HomeKit Accessory Protocol. HomeKit apps enable users to discover compatible accessories and configure them. Users can also create actions to control accessories (such as a thermostat or light), group them together, and trigger them by using Siri.
HomeKit objects are stored in a database residing on the user’s iOS device, which is synchronized over iCloud to other iOS devices. HomeKit supports remote access to accessories, multiple user devices, and multiple users, while handling security and privacy.
By promoting a common protocol for home automation devices and making a public API available for configuring and communicating with those devices, HomeKit makes possible a marketplace where the app a user controls their home with doesn’t have to be created by the vendor who made their home automation accessories, and where home automation accessories from multiple vendors can be integrated into a single coherent whole without those vendors having to coordinate directly with each other.
The best home automation apps integrate with HomeKit and iOS to help users set up homes, rooms, and zones; add, find, and remove accessories, such as light bulbs or thermostats; define behaviors that apply to a set of multiple accessories; manage users; and use Siri to control their homes.
HomeKit provides seamless integration between accessories that support HomeKit Accessory Protocol and iOS devices, allowing for new advances in home automation. By promoting a common protocol for home automation devices and making a public API available for configuring and communicating with those devices, HomeKit makes possible a marketplace where the app a user controls their home with doesn’t have to be created by the vendor who made their home automation accessories, and where home automation accessories from multiple vendors can all be integrated into a single coherent whole without those vendors having to coordinate directly with each other.
HomeKit allows third-party apps to perform three key functions – discover accessories and add them to a persistent, cross-device home configuration database; display, edit, and act upon the data in the home configuration database; and communicate with configured accessories and services to get them to perform actions, such as turning on the lights in the living room.
The home configuration database is not only available to third-party apps, it’s also available to Siri. This allows users to give commands like, “Siri, turn on the lights in the living room.” If a user creates a home configuration with logical groupings of accessories, services, and commands, Siri can make it easy to accomplish sophisticated operations with voice control.
HomeKit views a home as a collection of home automation accessories. The purpose of having a home configuration is to allow the end user to provide meaningful labels and groupings to the home automation accessories they have purchased and installed. Apps can provide suggestions to help the user create useful labels and groupings, but should not impose their own preferences on the users—the user’s wishes are most important.
The basic data containment hierarchy begins with Homes (HMHome) as the top level container, and represent a structure that a user would generally consider to be a single home. Users might have multiple homes that are far apart, such as a primary home and a vacation home, or they might have two homes that are close together, but that they consider different homes—for example, a main home and a guest cottage on the same property.
Next comes, rooms which are optional parts of homes, and represent individual rooms in the home. Rooms don’t have any physical characteristics—size, location, etc. They’re simply names that are meaningful to the user, such as “living room” or “kitchen”. Meaningful room names enable commands like, “Siri, turn on the kitchen lights.”
Accessories, comes third in line, which are installed into homes and assigned to rooms. These are the actual physical home automation devices, such as a garage door opener. If the user doesn’t configure any rooms, HomeKit assigns accessories to a special default room for the home. Next comes the actual services provided by an accessory. Accessories have both user-controllable services, like a light, and services that are for their own use, like a firmware update service. HomeKit is most concerned with user-controllable services.
A single accessory may have more than one user-controllable service. For example, most garage door openers have a service for opening and closing the door, and another service for the light on the garage door opener.
Lastly come Zones which are optional groupings of rooms in a home. “Upstairs” and “downstairs” would be represented by zones. Zones are completely optional—rooms don’t need to be in a zone. By adding rooms to a zone, the user is able to give commands to Siri such as, “Siri, turn on all of the lights downstairs.”