---
title: HomeKit
framework: HomeKit
role: collection
role_heading: Framework
platforms: [iOS 8.0+, iPadOS 8.0+, Mac Catalyst 14.0+, tvOS 10.0+, visionOS 1.0+, watchOS 2.0+]
path: homekit
---

# HomeKit

Configure, control, and communicate with home automation accessories.

## Overview

Overview HomeKit enables your app to coordinate and control home automation accessories from multiple vendors to present a coherent, user-focused interface.

Using HomeKit, your app can: Discover HomeKit-compatible automation accessories and add them to a persistent, cross-device home configuration database. Display, edit, and act upon the data in the home configuration database. Communicate with configured accessories and services in order to perform actions like turning on the lights in the living room.

## Topics

### Essentials

- [Enabling HomeKit in your app](homekit/enabling-homekit-in-your-app.md)
- [HomeKit Entitlement](bundleresources/entitlements/com.apple.developer.homekit.md)
- [NSHomeKitUsageDescription](bundleresources/information-property-list/nshomekitusagedescription.md)

### Home Manager

- [Configuring a home automation device](homekit/configuring-a-home-automation-device.md)
- [Testing your app with the HomeKit Accessory Simulator](homekit/testing-your-app-with-the-homekit-accessory-simulator.md)
- [HMHomeManager](homekit/hmhomemanager.md)

### Accessories

- [HMAccessorySetupManager](homekit/hmaccessorysetupmanager.md)
- [HMAccessorySetupResult](homekit/hmaccessorysetupresult.md)
- [HMAccessorySetupRequest](homekit/hmaccessorysetuprequest.md)
- [Interacting with a home automation network](homekit/interacting-with-a-home-automation-network.md)
- [HMAccessory](homekit/hmaccessory.md)
- [HMService](homekit/hmservice.md)
- [HMCharacteristic](homekit/hmcharacteristic.md)
- [HMMediaSourceDisplayOrderProfile](homekit/hmmediasourcedisplayorderprofile.md)

### Action Sets

- [HMActionSet](homekit/hmactionset.md)
- [HMTimerTrigger](homekit/hmtimertrigger.md)
- [HMEventTrigger](homekit/hmeventtrigger.md)

### Errors

- [HMError](homekit/hmerror.md)
- [HMErrorDomain](homekit/hmerrordomain.md)
- [HMError.Code](homekit/hmerror/code.md)
- [HMErrorBlock](homekit/hmerrorblock.md)

### Classes

- [HMAccessorySetupPayload](homekit/hmaccessorysetuppayload.md)
