---
title: HMAccessoryDelegate
framework: homekit
role: symbol
role_heading: Protocol
path: homekit/hmaccessorydelegate
---

# HMAccessoryDelegate

A set of methods that defines the communication method for state updates from accessories to their delegates.

## Declaration

```swift
protocol HMAccessoryDelegate : NSObjectProtocol, Sendable
```

## Overview

Overview Adopt this protocol to find out about changes made outside your app to a specific accessory, like when the accessory’s name changes, or when a characteristic value changes. note: To receive accessory(_:service:didUpdateValueFor:) method calls for a particular characteristic, indicating when the characteristic value changes, you must first call the characteristic’s enableNotification(_:completionHandler:) method. Changes that your app initiates—even those made asynchronously followed by a call to a completion handler—generate delegate callbacks in other apps, but not in your own. As a result, your app must update its internal data store or user interface from both the completion handler of an asynchronous call, and the delegate callback that corresponds to the same kind of change made by another app. To find out about changes made to the accessory’s home, adopt the HMHomeDelegate protocol. To be alerted about changes made to the overall list of homes, adopt the HMHomeManagerDelegate protocol.

## Topics

### Observing accessories

- [accessoryDidUpdateName(_:)](homekit/hmaccessorydelegate/accessorydidupdatename(_:).md)
- [accessoryDidUpdateReachability(_:)](homekit/hmaccessorydelegate/accessorydidupdatereachability(_:).md)
- [accessoryDidUpdateServices(_:)](homekit/hmaccessorydelegate/accessorydidupdateservices(_:).md)
- [accessory(_:didUpdateNameFor:)](homekit/hmaccessorydelegate/accessory(_:didupdatenamefor:).md)
- [accessory(_:service:didUpdateValueFor:)](homekit/hmaccessorydelegate/accessory(_:service:didupdatevaluefor:).md)
- [accessory(_:didUpdateAssociatedServiceTypeFor:)](homekit/hmaccessorydelegate/accessory(_:didupdateassociatedservicetypefor:).md)
- [accessory(_:didAdd:)](homekit/hmaccessorydelegate/accessory(_:didadd:).md)
- [accessory(_:didRemove:)](homekit/hmaccessorydelegate/accessory(_:didremove:).md)
- [accessory(_:didUpdateFirmwareVersion:)](homekit/hmaccessorydelegate/accessory(_:didupdatefirmwareversion:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Tracking changes to an accessory

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