Accessory Service Types

The service types supported by HomeKit.


An HMService instance’s read-only serviceType property contains one of the values listed below to tell you what the service does.

Don’t confuse these values with the accessory categories found in Accessory Category Types. Despite the similarities, they describe different things. Accessories are the physical objects that the user installs in the home, like a garage door opener. Accessories belong to a particular category, like HMAccessoryCategoryTypeGarageDoorOpener.

Accessories have one or more services that perform tasks. The garage door opener accessory has a garage door opener service with service type HMServiceTypeGarageDoorOpener, given below. The same accessory might also have an attached light providing a light bulb service with service type HMServiceTypeLightbulb, also given below.



Power and Switches

let HMServiceTypeStatefulProgrammableSwitch: String

A stateful programmable switch service.

let HMServiceTypeStatelessProgrammableSwitch: String

A stateless programmable switch service.

Air Quality and Smoke Detection

let HMServiceTypeAirPurifier: String

An air purifier service.

let HMServiceTypeAirQualitySensor: String

An air quality sensor service.

let HMServiceTypeCarbonDioxideSensor: String

A carbon dioxide sensor service.

let HMServiceTypeCarbonMonoxideSensor: String

A carbon monoxide sensor service.

Temperature and Humidity

let HMServiceTypeHeaterCooler: String

A heater or cooler service.

let HMServiceTypeTemperatureSensor: String

A temperature sensor service.

let HMServiceTypeFilterMaintenance: String

A filter maintenance service.

let HMServiceTypeHumidifierDehumidifier: String

A humidifier or dehumidifier service.

let HMServiceTypeHumiditySensor: String

A humidity sensor service.

let HMServiceTypeVentilationFan: String

A ventilation fan service.

Locks and Openers

Saftey and Security

let HMServiceTypeOccupancySensor: String

An occupancy sensor service.

let HMServiceTypeSecuritySystem: String

A security system service.

Video and Audio


let HMServiceTypeLabel: String

A label namespace service used when an accessory supports multiple services of the same type.

let HMServiceTypeAccessoryInformation: String

An accessory information service.

See Also

Getting the Service Type

var serviceType: String

The type of the service.

var localizedDescription: String

The localized description of the service.