---
title: HMAccessory
framework: homekit
role: symbol
role_heading: Class
path: homekit/hmaccessory
---

# HMAccessory

A home automation accessory, like a garage door opener or a thermostat.

## Declaration

```swift
class HMAccessory
```

## Overview

Overview An HMAccessory instance represents a physical device, like a garage door opener, installed in a home and assigned to a room. You don’t create accessories directly. Instead you get them from the accessories array of an HMHome instance when you want all the accessories in a home, or the accessories array of an HMRoom instance when you want all the accessories in a particular room. Each physical accessory in the home is represented by exactly one accessory instance, so that one instance appears in both a home and a room collection. This is because it’s simultaneously part of the home and in one of the home’s rooms. When you want to add new accessories, you call the home’s addAndSetupAccessories(completionHandler:) method. In response, HomeKit presents the user with an interface that steps through the process of searching for new accessories in the physical environment, naming them, and assigning them to a room. Accessories provide one or more services, represented by instances of HMService, that are the features that the user can control, like the light attached to a garage door opener, or the door opener mechanism itself.

## Topics

### Tracking changes to an accessory

- [delegate](homekit/hmaccessory/delegate.md)
- [HMAccessoryDelegate](homekit/hmaccessorydelegate.md)

### Identifying an Accessory

- [name](homekit/hmaccessory/name.md)
- [updateName(_:completionHandler:)](homekit/hmaccessory/updatename(_:completionhandler:).md)
- [uniqueIdentifier](homekit/hmaccessory/uniqueidentifier.md)
- [identifier](homekit/hmaccessory/identifier.md)

### Categorizing an accessory

- [category](homekit/hmaccessory/category.md)
- [HMAccessoryCategory](homekit/hmaccessorycategory.md)

### Locating an accessory

- [room](homekit/hmaccessory/room.md)
- [HMRoom](homekit/hmroom.md)

### Managing accessory profiles

- [profiles](homekit/hmaccessory/profiles.md)
- [HMAccessoryProfile](homekit/hmaccessoryprofile.md)
- [HMNetworkConfigurationProfile](homekit/hmnetworkconfigurationprofile.md)
- [HMCameraProfile](homekit/hmcameraprofile.md)

### Managing camera profiles

- [CameraView](homekit/cameraview.md)
- [cameraProfiles](homekit/hmaccessory/cameraprofiles.md)
- [HMCameraProfile](homekit/hmcameraprofile.md)
- [HMCameraView](homekit/hmcameraview.md)

### Getting accessory state

- [isReachable](homekit/hmaccessory/isreachable.md)
- [isBlocked](homekit/hmaccessory/isblocked.md)

### Asking an accessory to identify itself

- [supportsIdentify](homekit/hmaccessory/supportsidentify.md)
- [identify(completionHandler:)](homekit/hmaccessory/identify(completionhandler:).md)

### Controlling accessory features

- [services](homekit/hmaccessory/services.md)
- [HMService](homekit/hmservice.md)

### Managing bridged accessories

- [isBridged](homekit/hmaccessory/isbridged.md)
- [uniqueIdentifiersForBridgedAccessories](homekit/hmaccessory/uniqueidentifiersforbridgedaccessories.md)
- [identifiersForBridgedAccessories](homekit/hmaccessory/identifiersforbridgedaccessories.md)

### Getting manufacturer information

- [firmwareVersion](homekit/hmaccessory/firmwareversion.md)
- [manufacturer](homekit/hmaccessory/manufacturer.md)
- [model](homekit/hmaccessory/model.md)

### Browsing for accessories

- [HMAccessoryBrowser](homekit/hmaccessorybrowser.md)

### Instance Properties

- [matterNodeID](homekit/hmaccessory/matternodeid-67v1j.md)
- [bridgedAccessories](homekit/hmaccessory/bridgedaccessories.md)
- [hapInstanceID](homekit/hmaccessory/hapinstanceid-3cusx.md)
- [home](homekit/hmaccessory/home.md)
- [isVendorAccessory](homekit/hmaccessory/isvendoraccessory.md)

### Initializers

- [init()](homekit/hmaccessory/init().md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Accessories

- [HMAccessorySetupManager](homekit/hmaccessorysetupmanager.md)
- [HMAccessorySetupResult](homekit/hmaccessorysetupresult.md)
- [HMAccessorySetupRequest](homekit/hmaccessorysetuprequest.md)
- [Interacting with a home automation network](homekit/interacting-with-a-home-automation-network.md)
- [HMService](homekit/hmservice.md)
- [HMCharacteristic](homekit/hmcharacteristic.md)
- [HMMediaSourceDisplayOrderProfile](homekit/hmmediasourcedisplayorderprofile.md)
