---
title: "addAccessory(_:completionHandler:)"
framework: homekit
role: symbol
role_heading: Instance Method
path: "homekit/hmhome/addaccessory(_:completionhandler:)"
---

# addAccessory(_:completionHandler:)

Adds a new accessory to the home.

## Declaration

```swift
func addAccessory(_ accessory: HMAccessory, completionHandler completion: @escaping @Sendable ((any Error)?) -> Void)
```

```swift
func addAccessory(_ accessory: HMAccessory) async throws
```

## Parameters

- `accessory`: The accessory to add to the home.
- `completion`: The block executed after the request is processed.

## Discussion

Discussion You discover accessories to add to a home using the HMAccessoryBrowser class. Newly added accessories are automatically added to the room returned by roomForEntireHome(). important: To provide a consistent user experience, use the addAndSetupAccessories(completionHandler:) method instead.

## See Also

### Managing accessories

- [accessories](homekit/hmhome/accessories.md)
- [addAndSetupAccessories(completionHandler:)](homekit/hmhome/addandsetupaccessories(completionhandler:).md)
- [addAndSetupAccessories(with:completionHandler:)](homekit/hmhome/addandsetupaccessories(with:completionhandler:).md)
- [assignAccessory(_:to:completionHandler:)](homekit/hmhome/assignaccessory(_:to:completionhandler:).md)
- [removeAccessory(_:completionHandler:)](homekit/hmhome/removeaccessory(_:completionhandler:).md)
- [supportsAddingNetworkRouter](homekit/hmhome/supportsaddingnetworkrouter.md)
- [unblockAccessory(_:completionHandler:)](homekit/hmhome/unblockaccessory(_:completionhandler:).md)
- [HMAccessory](homekit/hmaccessory.md)
