---
title: HomeAccessorySettingsContainer
framework: HomeExtensions
role: symbol
role_heading: Protocol
platforms: [iOS 27.0+, iPadOS 27.0+, Mac Catalyst 27.0+]
path: homeextensions/homeaccessorysettingscontainer
---

# HomeAccessorySettingsContainer

A snapshot of an accessory’s settings and their current values.

## Declaration

```swift
@MainActor protocol HomeAccessorySettingsContainer
```

## Overview

Overview Create a type that adopts this protocol, with a property for each setting. Declare each property with one of the setting property wrappers: HomeAccessoryToggleSetting, HomeAccessoryRangeSetting, HomeAccessoryEnumSetting, HomeAccessoryTextFieldSetting, or HomeAccessoryInformationSetting. Each wrapper stores details such as the setting’s identifier and label. List the settings’ projected values (with the $ prefix) in availableSettings, in the order you want them to appear. For example: struct ThermostatSettings: HomeAccessorySettingsContainer {     static let ecoModeID = "eco-mode"

@HomeAccessoryToggleSetting(id: Self.ecoModeID, label: "Eco Mode")     var ecoMode: Bool?

var availableSettings: [any HomeAccessorySetting] { [$ecoMode] }

init(ecoMode: Bool? = nil) { self.ecoMode = ecoMode } } Store identifiers as static constants so your provider can reuse them. Your provider should create a new container each time settings(context:for:) runs, rather than retaining one.

## Topics

### Listing the available settings

- [availableSettings](homeextensions/homeaccessorysettingscontainer/availablesettings.md)

## Relationships

### Conforming Types

- [AnyHomeAccessorySettingsContainer](homeextensions/anyhomeaccessorysettingscontainer.md)

## See Also

### Displaying accessory configuration

- [HomeAccessorySettingsProvider](homeextensions/homeaccessorysettingsprovider.md)
- [AnyHomeAccessorySettingsContainer](homeextensions/anyhomeaccessorysettingscontainer.md)
- [HomeAccessorySettingsContext](homeextensions/homeaccessorysettingscontext.md)
- [HomeAccessorySettings](homeextensions/homeaccessorysettings.md)
- [HomeAccessoryConfiguration](homeextensions/homeaccessoryconfiguration.md)
