---
title: HMHomeDelegate
framework: homekit
role: symbol
role_heading: Protocol
path: homekit/hmhomedelegate
---

# HMHomeDelegate

An interface that communicates changes to a home’s configuration.

## Declaration

```swift
protocol HMHomeDelegate : NSObjectProtocol
```

## Overview

Overview Adopt this protocol to find out about changes made outside your app to a particular home, like when the home’s name changes, or when a room is added. 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 be alerted about changes made to the overall list of homes, adopt the HMHomeManagerDelegate protocol. To find out about changes made to specific accessories, adopt the HMAccessoryDelegate protocol.

## Topics

### Observing Home Configuration

- [homeDidUpdateName(_:)](homekit/hmhomedelegate/homedidupdatename(_:).md)
- [home(_:didAdd:)](homekit/hmhomedelegate/home(_:didadd:)-6jcl7.md)
- [home(_:didUpdate:for:)](homekit/hmhomedelegate/home(_:didupdate:for:).md)
- [home(_:didRemove:)](homekit/hmhomedelegate/home(_:didremove:)-6plye.md)
- [home(_:didAdd:)](homekit/hmhomedelegate/home(_:didadd:)-42aqd.md)
- [home(_:didUpdateNameFor:)](homekit/hmhomedelegate/home(_:didupdatenamefor:)-1a110.md)
- [home(_:didAdd:to:)](homekit/hmhomedelegate/home(_:didadd:to:)-4hiew.md)
- [home(_:didRemove:from:)](homekit/hmhomedelegate/home(_:didremove:from:)-8oz67.md)
- [home(_:didRemove:)](homekit/hmhomedelegate/home(_:didremove:)-3if6s.md)
- [home(_:didAdd:)](homekit/hmhomedelegate/home(_:didadd:)-7vyoe.md)
- [home(_:didUpdateNameFor:)](homekit/hmhomedelegate/home(_:didupdatenamefor:)-1k32g.md)
- [home(_:didRemove:)](homekit/hmhomedelegate/home(_:didremove:)-3o8ta.md)
- [home(_:didAdd:)](homekit/hmhomedelegate/home(_:didadd:)-8q7jm.md)
- [home(_:didRemove:)](homekit/hmhomedelegate/home(_:didremove:)-3fm38.md)
- [homeDidUpdateAccessControl(forCurrentUser:)](homekit/hmhomedelegate/homedidupdateaccesscontrol(forcurrentuser:).md)
- [home(_:didUpdate:)](homekit/hmhomedelegate/home(_:didupdate:)-5fntk.md)
- [homeDidUpdateSupportedFeatures(_:)](homekit/hmhomedelegate/homedidupdatesupportedfeatures(_:).md)
- [HMHomeHubState](homekit/hmhomehubstate.md)

### Observing Service Configuration

- [home(_:didAdd:)](homekit/hmhomedelegate/home(_:didadd:)-3dymz.md)
- [home(_:didUpdateNameFor:)](homekit/hmhomedelegate/home(_:didupdatenamefor:)-4tam1.md)
- [home(_:didAdd:to:)](homekit/hmhomedelegate/home(_:didadd:to:)-6xdgy.md)
- [home(_:didRemove:from:)](homekit/hmhomedelegate/home(_:didremove:from:)-9yzp0.md)
- [home(_:didRemove:)](homekit/hmhomedelegate/home(_:didremove:)-6kqxo.md)

### Observing Action and Trigger Configuration

- [home(_:didAdd:)](homekit/hmhomedelegate/home(_:didadd:)-9dcki.md)
- [home(_:didUpdateNameFor:)](homekit/hmhomedelegate/home(_:didupdatenamefor:)-7fxvl.md)
- [home(_:didUpdateActionsFor:)](homekit/hmhomedelegate/home(_:didupdateactionsfor:).md)
- [home(_:didRemove:)](homekit/hmhomedelegate/home(_:didremove:)-80ewx.md)
- [home(_:didAdd:)](homekit/hmhomedelegate/home(_:didadd:)-64yxx.md)
- [home(_:didUpdateNameFor:)](homekit/hmhomedelegate/home(_:didupdatenamefor:)-8vn79.md)
- [home(_:didUpdate:)](homekit/hmhomedelegate/home(_:didupdate:)-3l4r1.md)
- [home(_:didRemove:)](homekit/hmhomedelegate/home(_:didremove:)-4ujfa.md)

### Observing Accessories

- [home(_:didEncounterError:for:)](homekit/hmhomedelegate/home(_:didencountererror:for:).md)
- [home(_:didUnblockAccessory:)](homekit/hmhomedelegate/home(_:didunblockaccessory:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Keeping track of home configuration changes

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