HomeKit Namespace

The HomeKit namespace provides control of and access to home automation devices.

Classes

HMAccessControl
HMAccessory

A home automation accessory controllable by Home Kit.

HMAccessoryBrowser

Browses and discovers HMAccessory objects.

HMAccessoryBrowserDelegate

Delegate object for HMAccessoryBrowser objects, provides methods called when accessories are discovered or removed.

HMAccessoryBrowserDelegate_Extensions

Extension methods to the IHMAccessoryBrowserDelegate interface to support all the methods from the HMAccessoryBrowserDelegate protocol.

HMAccessoryBrowserEventArgs

Provides data for the DidRemoveNewAccessory and E:HomeKit.HMAccessoryBrowserEventArgs.DidRemoveNewAccessory events.

HMAccessoryCategory

E:HomeKit.HKAccessoryCategoryType

HMAccessoryCategoryTypeExtensions
HMAccessoryDelegate

Delegate object for HMAccessory objects, provides methods called when characteristics of the accessory change.

HMAccessoryDelegate_Extensions

Extension methods to the IHMAccessoryDelegate interface to support all the methods from the HMAccessoryDelegate protocol.

HMAccessoryFirmwareVersionEventArgs

Provides data for the DidUpdateFirmwareVersion event.

HMAccessoryProfile

Associates an HMAccessory with a unique identifier and an array of HMService services.

HMAccessoryProfileEventArgs

Provides data for the DidRemoveProfile and E:HomeKit.HMAccessoryProfileEventArgs.DidRemoveProfile events.

HMAccessoryServiceUpdateCharacteristicEventArgs

Provides data for the DidUpdateValueForCharacteristic event.

HMAccessorySetupPayload
HMAccessoryUpdateEventArgs

Provides data for the DidUpdateNameForService and E:HomeKit.HMAccessoryUpdateEventArgs.DidUpdateNameForService events.

HMAction

Abstract base class for objects that perform actions within Home Kit.

HMActionSet

Aggregates HMAction objects and applies them as a single action.

HMCalendarEvent

An HMTimeEvent that fires at a specified date.

HMCameraAudioControl

A HMCameraControl that has audio capabilities (either one- or two-way).

HMCameraControl

Base class for controls of video cameras.

HMCameraProfile

A HMAccessoryProfile describing a video camera.

HMCameraSettingsControl

The HMCameraControl that describes the camera's aiming and zooming capabilities.

HMCameraSnapshot

A HMCameraSource that represents a still image captured by a camera.

HMCameraSnapshotControl

A HMCameraControl that manages the taking of a still image with a video camera.

HMCameraSnapshotControlDelegate

Delegate object that responds to requests for snapshot requests from a HMCameraControl object.

HMCameraSnapshotControlDelegate_Extensions

Extension methods to the IHMCameraSnapshotControlDelegate interface to support all the methods from the HMCameraSnapshotControlDelegate protocol.

HMCameraSource

Abstract base class for HomeKit-enabled cameras.

HMCameraStream

An HMCameraSource that represents a camera video stream.

HMCameraStreamControl

A HMCameraControl that manages video streaming from the camera.

HMCameraStreamControlDelegate

Delegate object that responds to HMCameraStreamControl start and stop events.

HMCameraStreamControlDelegate_Extensions

Extension methods to the IHMCameraStreamControlDelegate interface to support all the methods from the HMCameraStreamControlDelegate protocol.

HMCameraView

A standard UIView for viewing HomeKit-connected video cameras.

HMCameraView.HMCameraViewAppearance

Appearance class for objects of type HMCameraView.

HMCharacteristic

A characteristic of a HMService that has a P:HomeKit.HMCharacteristics.Value.

HMCharacteristicEvent

An HMEvent triggered when the Characteristic crosses the TriggerValue.

HMCharacteristicMetadata

Metadata of a HMCharacteristic such as the allowable range of the characteristic or the size of a step.

HMCharacteristicProperties

Common capabilities of an HMCharacteristic, such as whether it's writable or supports events.

HMCharacteristicThresholdRangeEvent

An HMEvent that is triggered when the P:HomeKit.HMCharacteristicThresholdRange.Characteristic object's value falls within a specified range.

HMCharacteristicTypeExtensions

Extension methods to get values for constants and constants for values for a HMCharacteristicType.

HMCharacteristicWriteAction

An HMAction that sets a value in a HMCharacteristic.

HMDurationEvent

A HMEvent that occurs over a time interval.

HMErrors

Holds the constant HMErrorDomain.

HMEvent

Holds data relating to a HomeKit event.

HMEventTrigger

Associates one or HMEvent objects with a NSPredicate that, if true, triggers a scene change.

HMHome

An object representing a single residence. The highest level "container" in Home Kit.

HMHomeAccessControl

Describes the administrative level of a user.

HMHomeAccessoryEventArgs

Provides data for the DidUnblockAccessory, E:HomeKit.HMHomeAccessoryEventArgs.DidRemoveAccessory and E:HomeKit.HMHomeAccessoryEventArgs.DidUnblockAccessory events.

HMHomeActionSetEventArgs

Provides data for the DidUpdateNameForActionSet, E:HomeKit.HMHomeActionSetEventArgs.DidRemoveActionSet, E:HomeKit.HMHomeActionSetEventArgs.DidUpdateActionsForActionSet and E:HomeKit.HMHomeActionSetEventArgs.DidUpdateNameForActionSet events.

HMHomeDelegate

Delegate object for HMHome objects, providing methods that can be overridden to react to events relating to additions, subtractions, and updates of various Home Kit objects.

HMHomeDelegate_Extensions

Extension methods to the IHMHomeDelegate interface to support all the methods from the HMHomeDelegate protocol.

HMHomeErrorAccessoryEventArgs

Provides data for the DidEncounterError event.

HMHomeHubStateEventArgs

Provides data for the DidUpdateHomeHubState event.

HMHomeManager

Collection of HMHome objects.

HMHomeManagerDelegate

Delegate object for HMHomeManager objects, provides methods that can be overridden to react to HMHomes being added, removed, or set as the primary home.

HMHomeManagerDelegate_Extensions

Extension methods to the IHMHomeManagerDelegate interface to support all the methods from the HMHomeManagerDelegate protocol.

HMHomeManagerEventArgs

Provides data for the DidRemoveHome and E:HomeKit.HMHomeManagerEventArgs.DidRemoveHome events.

HMHomeRoomAccessoryEventArgs

Provides data for the DidUpdateRoom event.

HMHomeRoomEventArgs

Provides data for the DidUpdateNameForRoom, E:HomeKit.HMHomeRoomEventArgs.DidRemoveRoom and E:HomeKit.HMHomeRoomEventArgs.DidUpdateNameForRoom events.

HMHomeRoomZoneEventArgs

Provides data for the DidRemoveRoomFromZone and E:HomeKit.HMHomeRoomZoneEventArgs.DidRemoveRoomFromZone events.

HMHomeServiceGroupEventArgs

Provides data for the DidUpdateNameForServiceGroup, E:HomeKit.HMHomeServiceGroupEventArgs.DidRemoveServiceGroup and E:HomeKit.HMHomeServiceGroupEventArgs.DidUpdateNameForServiceGroup events.

HMHomeServiceServiceGroupEventArgs

Provides data for the DidRemoveService and E:HomeKit.HMHomeServiceServiceGroupEventArgs.DidRemoveService events.

HMHomeTriggerEventArgs

Provides data for the DidUpdateTrigger, E:HomeKit.HMHomeTriggerEventArgs.DidRemoveTrigger, E:HomeKit.HMHomeTriggerEventArgs.DidUpdateNameForTrigger and E:HomeKit.HMHomeTriggerEventArgs.DidUpdateTrigger events.

HMHomeUserEventArgs

Provides data for the DidRemoveUser and E:HomeKit.HMHomeUserEventArgs.DidRemoveUser events.

HMHomeZoneEventArgs

Provides data for the DidUpdateNameForZone, E:HomeKit.HMHomeZoneEventArgs.DidRemoveZone and E:HomeKit.HMHomeZoneEventArgs.DidUpdateNameForZone events.

HMLocationEvent

A HMEvent relating to a geographical region.

HMMutableCalendarEvent

A HMCalendarEvent whose values can be modified after initialization.

HMMutableCharacteristicEvent

A HMCharacteristicEvent whose values can be modified after initialization.

HMMutableCharacteristicThresholdRangeEvent

A HMCharacteristicThresholdRangeEvent whose values can be modified after initialization.

HMMutableDurationEvent

A HMDurationEvent whose values can be modified after initialization.

HMMutableLocationEvent

A HMLocationEvent whose values can be modified after initialization.

HMMutablePresenceEvent

A HMPresenceEvent whose values can be modified after initialization.

HMMutableSignificantTimeEvent

A HMSignificantTimeEvent whose values can be modified after initialization.

HMNumberRange

Represents a range from Min to P:HomeKit.HMNumberRange.MaxValue.

HMPresenceEvent

T:HMKit.HMEvent

HMRoom

A room in a HMHome or HMZone.

HMService

A named set of HMCharacteristics provided by an HMAccessory.

HMServiceGroup

A collection of related HMService objects provided by an HMAccessory.

HMServiceTypeExtensions

Extension methods to get values for constants and constants for values for a HMServiceType.

HMSignificantEventExtensions

Extension methods to get values for constants and constants for values for a HMSignificantEvent.

HMSignificantTimeEvent

An HMTimeEvent that tracks a HMSignificantEvent.

HMTimeEvent

An HMEvent that occurs at a specified time.

HMTimerTrigger

A HMTrigger that triggers in response to a possibly-recurring timer.

HMTrigger

A base class for events (such as timers) that triggers one or HMActionSets.

HMUser

Class that represents a person who can control HomeKit devices.

HMZone

A set of HMRooms.

Interfaces

IHMAccessoryBrowserDelegate

Interface representing the required methods (if any) of the protocol HMAccessoryBrowserDelegate.

IHMAccessoryDelegate

Interface representing the required methods (if any) of the protocol HMAccessoryDelegate.

IHMCameraSnapshotControlDelegate

Interface representing the required methods (if any) of the protocol HMCameraSnapshotControlDelegate.

IHMCameraStreamControlDelegate

Interface representing the required methods (if any) of the protocol HMCameraStreamControlDelegate.

IHMHomeDelegate

Interface representing the required methods (if any) of the protocol HMHomeDelegate.

IHMHomeManagerDelegate

Interface representing the required methods (if any) of the protocol HMHomeManagerDelegate.

Enums

HMAccessoryCategoryType

Enumerates the kind of accessories supported by HomeKit.

HMActionSetType

Enumerates the different kinds of HMActionSet.

HMCameraAudioStreamSetting

Settings for camera's with audio devices. Used with AudioStreamSetting.

HMCameraStreamState

Enumerates the states of an HMCameraStream.

HMCharacteristicMetadataFormat

Enumerates the data types that can represent characteristics.

HMCharacteristicMetadataUnits

Enumerates units of measure that might be associated with a HMCharacteristic.

HMCharacteristicType

Enumerates known types of HMCharacteristic.

HMCharacteristicValueActivationState

Enumerates the possible values of a HMCharacteristic that can be active or inactive.

HMCharacteristicValueAirParticulate

Enumerates the particulate sizes supported by HomeKit.

HMCharacteristicValueAirQuality

Enumerates air quality values.

HMCharacteristicValueBatteryStatus

Enumerates the valid battery status values.

HMCharacteristicValueCarbonDioxideDetectionStatus

Enumerates detection values.

HMCharacteristicValueCarbonMonoxideDetectionStatus

Enumerates detection values.

HMCharacteristicValueChargingState

Enumerates the state of battery charging.

HMCharacteristicValueConfigurationState

Enumerates the possible values of a HMCharacteristic that can be configured or not.

HMCharacteristicValueContactState

Enumerates whether contact is detected.

HMCharacteristicValueCurrentAirPurifierState

Enumerates the possible values of a HMCharacteristic that describes the states of an air purifier.

HMCharacteristicValueCurrentFanState

Enumerates the possible values of a HMCharacteristic that describes the states of a fan.

HMCharacteristicValueCurrentHeaterCoolerState

Enumerates the possible values of a HMCharacteristic that describes the states of a heat exchanger.

HMCharacteristicValueCurrentHumidifierDehumidifierState

Enumerates the possible values of a HMCharacteristic that describes the states of a humidifier or dehumidifier.

HMCharacteristicValueCurrentSecuritySystemState

Enumerates the states of a security system.

HMCharacteristicValueCurrentSlatState

Enumerates the possible values of a HMCharacteristic that describes the states of an oscillating slat.

HMCharacteristicValueDoorState

Enumerates the states that a door can be in.

HMCharacteristicValueFilterChange

Enumerates the possible values of a HMCharacteristic that describes the states of a filter that must be periodically changed.

HMCharacteristicValueHeatingCooling

Enumerates the states that an indoor climate control unit can be in.

HMCharacteristicValueInputEvent

Enumerates the possible values of a HMCharacteristic that describes the forms of a button press.

HMCharacteristicValueJammedStatus

Enumerates the state of a jammed device.

HMCharacteristicValueLabelNamespace

Enumerates the possible values of a HMCharacteristic that may either be a dot or a numeral.

HMCharacteristicValueLeakStatus

Enumerates the values of a device that detects leaks.

HMCharacteristicValueLockMechanism

Enumerates values that describe the last known action that was taken on a lock.

HMCharacteristicValueLockMechanismState

Enumerates the states that a lock can be in.

HMCharacteristicValueLockPhysicalControlsState

Enumerates the possible values of a HMCharacteristic that may either be locked or unlocked.

HMCharacteristicValueOccupancyStatus

Enumerates values for occupancy.

HMCharacteristicValuePositionState

Enumerates the states of an object that opens and closes.

HMCharacteristicValueProgramMode

Enumerates the possible values of a HMCharacteristic that can be scheduled or manually overriden.

HMCharacteristicValueRotationDirection

Enumerates rotation directions.

HMCharacteristicValueSecuritySystemAlarmType

Enumerates the security system alarm type.

HMCharacteristicValueSlatType

Enumerates the possible values of a HMCharacteristic that describe a vertical or horizontal slat.

HMCharacteristicValueSmokeDetectionStatus

Enumerates the state of a smoke detector.

HMCharacteristicValueStatusFault

Enumerates fault states.

HMCharacteristicValueSwingMode

Enumerates the possible values of a HMCharacteristic that describe a swing that can be enabled or disabled.

HMCharacteristicValueTamperedStatus

Enumerates the states of a device that detected tampering.

HMCharacteristicValueTargetAirPurifierState

Enumerates the possible values of a HMCharacteristic of an air purifier.

HMCharacteristicValueTargetFanState

Enumerates the possible states of a HMCharacteristic of a fan.

HMCharacteristicValueTargetHeaterCoolerState

Enumerates the possible states of a HMCharacteristic of a heater / cooler.

HMCharacteristicValueTargetHumidifierDehumidifierState

Enumerates the possible states of a HMCharacteristic of a humidifier or dehumidifier.

HMCharacteristicValueTargetSecuritySystemState

Enumerates the status of a security system.

HMCharacteristicValueTemperatureUnit

Enumerates two common temperature measurement systems.

HMCharacteristicValueUsageState

Enumerates the possible states of a HMCharacteristic of a device that can be in use or out of use.

HMCharacteristicValueValveType

Enumerates the known types of valve.

HMError

Enumerates possible failures in Home Kit operations.

HMEventTriggerActivationState

Enumerates the possible states of a HMEventTrigger including reasons why it might not be enabled.

HMHomeHubState

Enumerates the possible states of the HomeKit hub.

HMPresenceEventType

Enumerates the type of change in presence that the HMPresenceEvent represents.

HMPresenceEventUserType

Enumerates the types of users whose presence or absence is associated with a HMPresenceEvent.

HMServiceType

Enumerates known types of HMService.

HMSignificantEvent

Enumerates events such as sunrise and sunset.

Remarks

The HomeKit namespace, introduced in iOS 8, provides control and access of home automation devices.

Home automation with Home Kit relies on Apple's Home Automation Protocol. Home Kit allows applications to:

  • Discover accessories and services and add them to a persistent configuration store.
  • Read and write the persistent configuration store.
  • Communicate with accessories and services.

Many HomeKit objects have a UniqueIdentifier property. This property may be thought of as a key in an internal database. It is persistent as long as the object in question is not removed from the HMHome. If the object is re-added, it will have a different identifier, even if it's values are identical.