Skip to content

HomeKit Terminology

Ben edited this page Nov 1, 2026 · 8 revisions

This page tries to give you an introduction to terminology used in HomeKit. A pretty detailed resource on how HomeKit works is the HomeKit Accessory Protocol (HAP) specification. Apple now shares it with members of the MFi Program (see the Apple Home - Apple Developer website). You don't need it to use HAP-NodeJS: every service and characteristic HAP-NodeJS supports is listed in the API documentation.
The Homebridge wiki also has a HomeKit Glossary of Terms.

Accessory Terms

  • Accessory: An accessory is a representation for the actual physical device. An accessory consists of multiple services.
  • Service: A service is a way of grouping the functionality of a certain device type. Common services are Switch, Lightbulb or Outlet. A service consist of multiple required and optional characteristics. There are multiple Apple predefined services which can be found in the HAP specification (and in HAP-NodeJS as Service.*). Apple predefined services are the only services which can be controlled with the Home app or using Siri.
  • Characteristic: A characteristic is the actual control point to interact with functionality of a service. For example, the Switch service has the required characteristic On. Characteristics can be read or written to (additionally they can also send updates, so called events). The characteristic defines a certain format for their value. The On characteristic defines a format of bool, meaning it accepts a value of true or false, which represent on or off. The On characteristic is not only used for the Switch service, but also for example for the Outlet service. It's basically used for any service which can be turned on or off.

To illustrate the above terms imagine the following example:
You got a motion sensor which incorporates a temperature sensor and a light level sensor. Your implementation would expose one accessory (representing the one physical device) exposing three services: a MotionSensor service, a TemperatureSensor service and a LightSensor service, as these are all the functionalities your device supports. You can look up the characteristics defined for the given service in the HAP specification, or in the HAP-NodeJS API documentation. All services define a set of required characteristics you must implement (and are automatically added by HAP-NodeJS) and may define a set of optional characteristics you may implement if you want to support the given functionality.

  • Bridge: In general all HomeKit devices would only expose a single accessory. An exception to this is a Bridge accessory. A Bridge is a special type of accessory which is able to add multiple accessories. Like for example a Philips Hue bridge would bridge multiple Lights and connect them to your local network.

Device Terms

  • (HomeKit) controller: this term is used to refer to any client communicating with our HAP server. Most of the time this would be an iPhone, iPad or Mac running the Home app, or a Home Hub.
  • Home Hub: A Home Hub is a HomeKit controller which is able to provide remote access to other HomeKit controllers. It also runs your automations. Apple's guide lists Apple TV and HomePod (including HomePod mini) as Home Hubs.

Installation

Homebridge Help

Homebridge UI Help

Versioning

Plugins

Raspberry Pi Image
Docker
Synology Package
HAP-NodeJS

Developers

Clone this wiki locally