Share via


HomeKit Namespace

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

Classes

Name Description
HMAccessControl
HMAccessory
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 an event based on an Objective-C protocol method.

HMAccessoryCategory
HMAccessoryCategoryTypeExtensions

Extension methods for the HMAccessoryCategoryType enumeration.

HMAccessoryDelegate

This is a class that implements the interface IHMAccessoryDelegate (for the protocol HMAccessoryDelegate).

Subclass this class to easily create a type that implements the protocol.

An alternative is to create a subclass of NSObject and then implemented the interface IHMAccessoryDelegate.

HMAccessoryDelegate_Extensions

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

HMAccessoryFirmwareVersionEventArgs

Provides data for an event based on an Objective-C protocol method.

HMAccessoryOwnershipToken
HMAccessoryProfile
HMAccessoryProfileEventArgs

Provides data for an event based on an Objective-C protocol method.

HMAccessoryServiceUpdateCharacteristicEventArgs

Provides data for an event based on an Objective-C protocol method.

HMAccessorySetupManager
HMAccessorySetupPayload
HMAccessorySetupRequest
HMAccessorySetupResult
HMAccessoryUpdateEventArgs

Provides data for an event based on an Objective-C protocol method.

HMAction
HMActionSet
HMAddAccessoryRequest
HMCalendarEvent
HMCameraAudioControl
HMCameraControl
HMCameraProfile
HMCameraSettingsControl
HMCameraSnapshot
HMCameraSnapshotControl
HMCameraSnapshotControlDelegate

This is a class that implements the interface IHMCameraSnapshotControlDelegate (for the protocol HMCameraSnapshotControlDelegate).

Subclass this class to easily create a type that implements the protocol.

An alternative is to create a subclass of NSObject and then implemented the interface IHMCameraSnapshotControlDelegate.

HMCameraSnapshotControlDelegate_Extensions

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

HMCameraSource
HMCameraStream
HMCameraStreamControl
HMCameraStreamControlDelegate

This is a class that implements the interface IHMCameraStreamControlDelegate (for the protocol HMCameraStreamControlDelegate).

Subclass this class to easily create a type that implements the protocol.

An alternative is to create a subclass of NSObject and then implemented the interface IHMCameraStreamControlDelegate.

HMCameraStreamControlDelegate_Extensions

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

HMCameraView
HMCameraView.HMCameraViewAppearance

Appearance class for objects of type HMCameraView.

HMCharacteristic
HMCharacteristicEvent
HMCharacteristicMetadata
HMCharacteristicProperties

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

HMCharacteristicThresholdRangeEvent
HMCharacteristicTypeExtensions

Extension methods for the HMCharacteristicType enumeration.

HMCharacteristicWriteAction
HMDurationEvent
HMErrors

Holds the constant HMErrorDomain.

HMEvent
HMEventTrigger
HMHome
HMHomeAccessControl
HMHomeAccessoryEventArgs

Provides data for an event based on an Objective-C protocol method.

HMHomeActionSetEventArgs

Provides data for an event based on an Objective-C protocol method.

HMHomeDelegate

This is a class that implements the interface IHMHomeDelegate (for the protocol HMHomeDelegate).

Subclass this class to easily create a type that implements the protocol.

An alternative is to create a subclass of NSObject and then implemented the interface IHMHomeDelegate.

HMHomeDelegate_Extensions

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

HMHomeErrorAccessoryEventArgs

Provides data for an event based on an Objective-C protocol method.

HMHomeHubStateEventArgs

Provides data for an event based on an Objective-C protocol method.

HMHomeManager
HMHomeManagerAddAccessoryRequestEventArgs

Provides data for an event based on an Objective-C protocol method.

HMHomeManagerAuthorizationStatusEventArgs

Provides data for an event based on an Objective-C protocol method.

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 an event based on an Objective-C protocol method.

HMHomeRoomAccessoryEventArgs

Provides data for an event based on an Objective-C protocol method.

HMHomeRoomEventArgs

Provides data for an event based on an Objective-C protocol method.

HMHomeRoomZoneEventArgs

Provides data for an event based on an Objective-C protocol method.

HMHomeServiceGroupEventArgs

Provides data for an event based on an Objective-C protocol method.

HMHomeServiceServiceGroupEventArgs

Provides data for an event based on an Objective-C protocol method.

HMHomeTriggerEventArgs

Provides data for an event based on an Objective-C protocol method.

HMHomeUserEventArgs

Provides data for an event based on an Objective-C protocol method.

HMHomeZoneEventArgs

Provides data for an event based on an Objective-C protocol method.

HMLocationEvent
HMMatterHome
HMMatterRequestHandler
HMMatterRoom
HMMatterTopology
HMMutableCalendarEvent
HMMutableCharacteristicEvent
HMMutableCharacteristicThresholdRangeEvent
HMMutableDurationEvent
HMMutableLocationEvent
HMMutablePresenceEvent
HMMutableSignificantTimeEvent
HMNetworkConfigurationProfile
HMNetworkConfigurationProfileDelegate

This is a class that implements the interface IHMNetworkConfigurationProfileDelegate (for the protocol HMNetworkConfigurationProfileDelegate).

Subclass this class to easily create a type that implements the protocol.

An alternative is to create a subclass of NSObject and then implemented the interface IHMNetworkConfigurationProfileDelegate.

HMNetworkConfigurationProfileDelegate_Extensions

Extension methods to the IHMNetworkConfigurationProfileDelegate interface to support all the methods from the HMNetworkConfigurationProfileDelegate protocol.

HMNumberRange
HMPresenceEvent
HMRoom
HMService
HMServiceGroup
HMServiceTypeExtensions

Extension methods for the HMServiceType enumeration.

HMSignificantEventExtensions

Extension methods for the HMSignificantEvent enumeration.

HMSignificantTimeEvent
HMTimeEvent
HMTimerTrigger
HMTrigger
HMUser
HMZone

Interfaces

Name Description
IHMAccessoryBrowserDelegate

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

IHMAccessoryDelegate

This interface represents the Objective-C protocol HMAccessoryDelegate.

IHMCameraSnapshotControlDelegate

This interface represents the Objective-C protocol HMCameraSnapshotControlDelegate.

IHMCameraStreamControlDelegate

This interface represents the Objective-C protocol HMCameraStreamControlDelegate.

IHMHomeDelegate

This interface represents the Objective-C protocol HMHomeDelegate.

IHMHomeManagerDelegate

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

IHMNetworkConfigurationProfileDelegate

This interface represents the Objective-C protocol HMNetworkConfigurationProfileDelegate.

Enums

Name Description
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.

HMCharacteristicValueClosedCaptions
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.

HMCharacteristicValueCurrentHeatingCooling
HMCharacteristicValueCurrentHumidifierDehumidifierState

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

HMCharacteristicValueCurrentMediaState
HMCharacteristicValueCurrentSecuritySystemState

Enumerates the states of a security system.

HMCharacteristicValueCurrentSlatState

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

HMCharacteristicValueCurrentVisibilityState
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.

HMCharacteristicValueInputDeviceType
HMCharacteristicValueInputEvent

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

HMCharacteristicValueInputSourceType
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.

HMCharacteristicValuePictureMode
HMCharacteristicValuePositionState

Enumerates the states of an object that opens and closes.

HMCharacteristicValuePowerModeSelection
HMCharacteristicValueProgramMode

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

HMCharacteristicValueRemoteKey
HMCharacteristicValueRotationDirection

Enumerates rotation directions.

HMCharacteristicValueRouterStatus
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.

HMCharacteristicValueTargetDoorState
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.

HMCharacteristicValueTargetLockMechanismState
HMCharacteristicValueTargetMediaState
HMCharacteristicValueTargetSecuritySystemState

Enumerates the status of a security system.

HMCharacteristicValueTargetVisibilityState
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.

HMCharacteristicValueVolumeControlType
HMCharacteristicValueVolumeSelector
HMCharacteristicValueWiFiSatelliteStatus
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.

HMHomeManagerAuthorizationStatus
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.

Delegates

Name Description
HMFetchRoomHandler
HMHomeManagerFindVendorAccessoryCallback

Remarks

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

Home automation with HomeKit relies on Apple's Home Automation Protocol. HomeKit 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 its values are identical.