HomeKit discovers, configures, and controls home-automation accessories across iOS, tvOS, watchOS, and visionOS. You browse for accessories with HMAccessoryBrowser and represent each one as an HMAccessory exposing its HMAccessoryProfile, HMService, and HMCharacteristic values, then read and write characteristics such as security-system, lock, leak, and air-quality states. To automate a home, you compose HMAction and HMActionSet collections and schedule them with triggers built from events like HMCalendarEvent. For camera accessories, types including HMCameraProfile, HMCameraStream, HMCameraSnapshot, and HMCameraView let you control audio, capture snapshots, and present live video streams.
Home Management 4
Discover the user's homes and manage authorization to control them.
- ClHMHomeManageriOS 8.0+@abstract Manages collection of one or more homes.
- PrHMHomeManagerDelegateiOS 8.0+@abstract This delegate receives updates on homes being managed via the home manager.
- StHMHomeManagerAuthorizationStatusiOS 13.0+@abstract The home data authorization status of the client process.
- EnHMHomeHubStateiOS 11.0+@enum HMHomeHubState
Homes, Rooms, and Zones 5
Represent a home and organize its accessories into rooms, zones, and service groups.
- ClHMHomeiOS 8.0+@brief Represents a home.
- PrHMHomeDelegateiOS 8.0+@brief This delegate receives update on the various accessories, action sets, groups and triggers
- ClHMRoomiOS 8.0+@brief This class describes a room in the home.
- ClHMZoneiOS 8.0+@brief Used to describe a collection of HMRoom objects
- ClHMServiceGroupiOS 8.0+@abstract Used to describe a collection of HMService objects
Discovering and Adding Accessories 6
Browse for new accessories and add them to a home with setup payloads and ownership tokens.
- ClHMAccessoryBrowseriOS 8.0+@brief This class is used to discover new accessories in the home
- PrHMAccessoryBrowserDelegateiOS 8.0+@brief This delegate receives updates about new accessories in the home.
- ClHMAddAccessoryRequestAn object that describes a request to add a specific accessory to a home.
- ClHMAccessorySetupPayloadiOS 11.3+An object that carries the configuration data needed to set up and add an accessory.
- ClHMAccessoryOwnershipTokeniOS 13.0+An object that represents proof of ownership used when adding an accessory to a home.
- ClHMAccessoryCategoryiOS 9.0+@brief This class is used to represent an accessory category.
Accessories and Profiles 5
Work with installed accessories and the profiles that describe their feature areas.
- ClHMAccessoryiOS 8.0+@abstract Represent an accessory in the home.
- PrHMAccessoryDelegateiOS 8.0+@brief This defines the protocol for a delegate to receive updates about
- ClHMAccessoryProfileiOS 10.0+@abstract Represents a profile implemented by an accessory.
- ClHMNetworkConfigurationProfileiOS 13.0+A profile that manages the network access settings of a HomeKit-enabled router.
- PrHMNetworkConfigurationProfileDelegateiOS 13.0+A protocol for responding to changes in a router accessory's network configuration.
Services and Characteristics 4
Read and write the services and characteristics that expose an accessory's state and metadata.
- ClHMServiceiOS 8.0+@brief Represents a service provided by an accessory.
- ClHMCharacteristiciOS 8.0+@brief Represent a characteristic on a service of an accessory.
- ClHMCharacteristicMetadataiOS 8.0+@brief This class defines the metadata for a characteristic. Metadata provides
- ClHMNumberRangeiOS 11.0+@brief This class describes a range of numbers: [min, max]
Actions and Action Sets 3
Group characteristic writes into reusable actions and scenes that can be triggered together.
- ClHMActioniOS 8.0+@brief This class is used to represent a generic action.
- ClHMActionSetiOS 8.0+@brief This class represents a collection of action objects that can be executed.
- ClHMCharacteristicWriteActioniOS 8.0+@brief This class is used to represent an entry in an action set that writes a specific
Triggers 4
Automate a home by firing action sets in response to time, events, or conditions.
- ClHMTriggeriOS 8.0+@brief Represents a trigger event.
- ClHMTimerTriggeriOS 8.0+@brief Timer based trigger.
- ClHMEventTriggeriOS 9.0+@brief Triggers based on events.
- EnHMEventTriggerActivationStateiOS 11.0+@abstract This enumeration describes the current activation state of the event trigger.
Events 17
Define the time, characteristic, presence, and duration conditions that drive event triggers.
- ClHMEventiOS 9.0+@brief This class is used to represent a generic HomeKit event.
- ClHMTimeEventiOS 11.0+@brief This class is used to represent a generic time event.
- ClHMCalendarEventiOS 11.0+@brief A calendar event which fires at an absolute time. It can also be used to set up a recurring events which will fire at a scheduled time.
- ClHMMutableCalendarEventiOS 11.0+@brief This class is used to represent a calendar event.
- ClHMSignificantTimeEventiOS 11.0+@brief This class is used to represent a significant time event.
- ClHMMutableSignificantTimeEventiOS 11.0+@brief This class is used to represent a significant time event.
- StHMSignificantEvent@brief Type corresponding to significant events.
- ClHMCharacteristicEventiOS 9.0+@brief This class represents an event that is evaluated based on the value of a characteristic
- ClHMMutableCharacteristicEventiOS 11.0+@brief This class represents an event that is evaluated based on the value of a characteristic
- ClHMCharacteristicThresholdRangeEventiOS 11.0+@brief This class represents an event when a characteristic's value falls within the specified
- ClHMMutableCharacteristicThresholdRangeEventiOS 11.0+@brief This class represents an event when a characteristic's value falls within the specified
- ClHMDurationEventiOS 11.0+@brief This class is used to represent a duration of time.
- ClHMMutableDurationEventiOS 11.0+@brief This class is used to represent a duration of time.
- ClHMPresenceEventiOS 11.0+@brief This class is used to represent the presence of users in a home.
- ClHMMutablePresenceEventiOS 11.0+@brief This class is used to represent the presence of users in a home.
- EnHMPresenceEventTypeiOS 11.0+@abstract This enumeration describes the different types of presence events.
- EnHMPresenceEventUserTypeiOS 11.0+@abstract This enumeration describes the different types of user sets in presence events.
Cameras and Video 14
Control camera accessories to capture snapshots and present live audio and video streams.
- ClHMCameraProfileiOS 10.0+@abstract Represents a camera profile the accessory implements.
- ClHMCameraControliOS 10.0+@abstract Represents a generic camera control.
- ClHMCameraSourceiOS 10.0+@brief Abstract class for source of data from a camera.
- ClHMCameraViewiOS 10.0+@abstract This view can render a camera source.
- ClHMCameraStreamiOS 10.0+@abstract Represents a camera stream.
- ClHMCameraStreamControliOS 10.0+@abstract This class can be used to control the stream from a camera.
- PrHMCameraStreamControlDelegateiOS 10.0+@brief This delegate receives updates on the camera stream.
- EnHMCameraStreamStateiOS 10.0+@abstract This enumeration describes the different states of a camera stream.
- ClHMCameraSnapshotiOS 10.0+@abstract Represents a camera snapshot.
- ClHMCameraSnapshotControliOS 10.0+@abstract This class can be used to take an image snapshot from a camera.
- PrHMCameraSnapshotControlDelegateiOS 10.0+@brief This delegate receives updates on the camera snapshot.
- ClHMCameraAudioControliOS 10.0+An object that controls audio settings, such as muting, for a camera accessory.
- EnHMCameraAudioStreamSettingiOS 10.0+@abstract This enumeration describes the setting for audio on the recipient of the camera stream.
- ClHMCameraSettingsControliOS 10.0+@abstract This class can be used to control the settings on a camera.
Users and Access Control 3
Manage the people who share a home and the privileges they hold.
- ClHMUseriOS 8.0+@brief This class describes a user in the home.
- ClHMAccessControliOS 11.2+@abstract The HMAccessControl class represents a generic access control.
- ClHMHomeAccessControliOS 9.0+@brief Represents the access control of a user associated with a home.
Security and Locks 13
Constants describing the state of security systems, locks, doors, and physical controls.
- EnHMCharacteristicValueCurrentSecuritySystemStateiOS 9.0+@enum HMCharacteristicValueCurrentSecuritySystemState
- EnHMCharacteristicValueTargetSecuritySystemStateiOS 9.0+@enum HMCharacteristicValueTargetSecuritySystemState
- EnHMCharacteristicValueSecuritySystemAlarmTypeiOS 10.0+@enum HMCharacteristicValueSecuritySystemAlarmType
- EnHMCharacteristicValueLockMechanismStateiOS 8.0+@enum HMCharacteristicValueLockMechanismState
- EnHMCharacteristicValueTargetLockMechanismStateiOS 8.0+@enum HMCharacteristicValueTargetLockMechanismState
- EnHMCharacteristicValueLockMechanismLastKnownActioniOS 8.0+@enum HMCharacteristicValueLockMechanismLastKnownAction
- EnHMCharacteristicValueLockPhysicalControlsStateiOS 10.2+@enum HMCharacteristicValueLockPhysicalControlsState
- EnHMCharacteristicValueJammedStatusiOS 10.0+@enum HMCharacteristicValueJammedStatus
- EnHMCharacteristicValueTamperedStatusiOS 10.0+@enum HMCharacteristicValueTamperStatus
- EnHMCharacteristicValueDoorStateiOS 8.0+@enum HMCharacteristicValueDoorState
- EnHMCharacteristicValueTargetDoorStateiOS 8.0+@enum HMCharacteristicValueTargetDoorState
- EnHMCharacteristicValueContactStateiOS 10.0+@enum HMCharacteristicValueContactState
- EnHMCharacteristicValuePositionStateiOS 9.0+@enum HMCharacteristicValuePositionState
Sensors and Safety 10
Constants reporting readings from air-quality, leak, smoke, gas, occupancy, and battery sensors.
- EnHMCharacteristicValueAirQualityiOS 9.0+@enum HMCharacteristicValueAirQuality
- EnHMCharacteristicValueAirParticulateSizeiOS 9.0+@enum HMCharacteristicValueAirParticulateSize
- EnHMCharacteristicValueLeakStatusiOS 10.0+@enum HMCharacteristicValueLeakDetectionStatus
- EnHMCharacteristicValueSmokeDetectionStatusiOS 10.0+@enum HMCharacteristicValueSmokeDetectionStatus
- EnHMCharacteristicValueCarbonMonoxideDetectionStatusiOS 10.0+@enum HMCharacteristicValueCarbonMonoxideDetectionStatus
- EnHMCharacteristicValueCarbonDioxideDetectionStatusiOS 10.0+@enum HMCharacteristicValueCarbonDioxideDetectionStatus
- EnHMCharacteristicValueOccupancyStatusiOS 10.0+@enum HMCharacteristicValueOccupancyStatus
- EnHMCharacteristicValueStatusFaultiOS 10.0+@enum HMCharacteristicValueStatusFault
- EnHMCharacteristicValueBatteryStatusiOS 10.0+@enum HMCharacteristicValueBatteryStatus
- EnHMCharacteristicValueChargingStateiOS 10.0+@enum HMCharacteristicValueChargingState
Climate and Air 15
Constants describing heating, cooling, humidity, fans, air purifiers, and related settings.
- EnHMCharacteristicValueCurrentHeatingCoolingiOS 8.0+@enum HMCharacteristicValueCurrentHeatingCooling
- EnHMCharacteristicValueHeatingCoolingiOS 8.0+@enum HMCharacteristicValueHeatingCooling
- EnHMCharacteristicValueCurrentHeaterCoolerStateiOS 10.2+@enum HMCharacteristicValueCurrentHeaterCoolerState
- EnHMCharacteristicValueTargetHeaterCoolerStateiOS 10.2+@enum HMCharacteristicValueTargetHeaterCoolerState
- EnHMCharacteristicValueCurrentHumidifierDehumidifierStateiOS 10.2+@enum HMCharacteristicValueCurrentHumidifierDehumidifierState
- EnHMCharacteristicValueTargetHumidifierDehumidifierStateiOS 10.2+@enum HMCharacteristicValueTargetHumidifierDehumidifierState
- EnHMCharacteristicValueCurrentFanStateiOS 10.2+@enum HMCharacteristicValueCurrentFanState
- EnHMCharacteristicValueTargetFanStateiOS 10.2+@enum HMCharacteristicValueTargetFanState
- EnHMCharacteristicValueCurrentAirPurifierStateiOS 10.2+@enum HMCharacteristicValueCurrentAirPurifierState
- EnHMCharacteristicValueTargetAirPurifierStateiOS 10.2+@enum HMCharacteristicValueTargetAirPurifierState
- EnHMCharacteristicValueSwingModeiOS 10.2+@enum HMCharacteristicValueSwingMode
- EnHMCharacteristicValueTemperatureUnitiOS 8.0+@enum HMCharacteristicValueTemperatureUnit
- EnHMCharacteristicValueFilterChangeiOS 10.2+@enum HMCharacteristicValueFilterChange
- EnHMCharacteristicValueCurrentSlatStateiOS 10.2+@enum HMCharacteristicValueCurrentSlatState
- EnHMCharacteristicValueSlatTypeiOS 10.2+@enum HMCharacteristicValueSlatType
Mechanism and Operation States 8
Constants describing rotation, valves, activation, usage, programs, and other operating modes.
- EnHMCharacteristicValueRotationDirectioniOS 8.0+@enum HMCharacteristicValueRotationDirection
- EnHMCharacteristicValueValveTypeiOS 11.2+@enum HMCharacteristicValueValveType
- EnHMCharacteristicValueActivationStateiOS 10.2+@enum HMCharacteristicValueActivationState
- EnHMCharacteristicValueUsageStateiOS 11.2+@enum HMCharacteristicValueUsageState
- EnHMCharacteristicValueProgramModeiOS 11.2+@enum HMCharacteristicValueProgramMode
- EnHMCharacteristicValueConfigurationStateiOS 11.2+@enum HMCharacteristicValueConfigurationState
- EnHMCharacteristicValueLabelNamespaceiOS 10.3+@enum HMCharacteristicValueLabelNamespace
- EnHMCharacteristicValueInputEventiOS 10.3+@enum HMCharacteristicValueInputEvent
Media and Television 12
Constants describing media playback, inputs, remote keys, and television display states.
- EnHMCharacteristicValueCurrentMediaStateiOS 18.0+@enum HMCharacteristicValueCurrentMediaState
- EnHMCharacteristicValueTargetMediaStateiOS 18.0+@enum HMCharacteristicValueTargetMediaState
- EnHMCharacteristicValuePowerModeSelectioniOS 18.0+@enum HMCharacteristicValuePowerModeSelection
- EnHMCharacteristicValueRemoteKeyiOS 18.0+@enum HMCharacteristicValueRemoteKey
- EnHMCharacteristicValuePictureModeiOS 18.0+@enum HMCharacteristicValuePictureMode
- EnHMCharacteristicValueClosedCaptionsiOS 18.0+@enum HMCharacteristicValueClosedCaptions
- EnHMCharacteristicValueInputSourceTypeiOS 18.0+@enum HMCharacteristicValueInputSourceType
- EnHMCharacteristicValueInputDeviceTypeiOS 18.0+@enum HMCharacteristicValueInputDeviceType
- EnHMCharacteristicValueCurrentVisibilityStateiOS 18.0+@enum HMCharacteristicValueCurrentVisibilityState
- EnHMCharacteristicValueTargetVisibilityStateiOS 18.0+@enum HMCharacteristicValueTargetVisibilityState
- EnHMCharacteristicValueVolumeControlTypeiOS 18.0+@enum HMCharacteristicValueVolumeControlType
- EnHMCharacteristicValueVolumeSelectoriOS 18.0+@enum HMCharacteristicValueVolumeSelector
Network Routers 2
Constants reporting the status of HomeKit-enabled routers and their Wi-Fi satellites.
- EnHMCharacteristicValueRouterStatusiOS 18.0+@enum HMCharacteristicValueRouterStatus
- EnHMCharacteristicValueWiFiSatelliteStatusiOS 18.0+@enum HMCharacteristicValueWiFiSatelliteStatus
Errors 1
The error domain reported by HomeKit operations.
- StHMErroriOS 8.0+An error domain describing failures reported by HomeKit operations.
Classes 1
- ClHMMediaSourceDisplayOrderProfile@abstract Represents media source display ordering functionality for an HMServiceTypeTelevision service that is contained in the services array for this profile.
Structures 1
- StCameraViewA `CameraView` renders a particular `HMCameraSource`.
Type Aliases 1
- TyHMErrorBlock@brief A generic handler for callbacks containing a single error parameter.