<!--
{
  "availability" : [
    "iOS: 27.2.0 -",
    "iPadOS: 27.2.0 -",
    "macCatalyst: 27.2.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "HomeExtensions",
  "identifier" : "/documentation/HomeExtensions/HomeAccessoryRangeSetting",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "HomeExtensions"
    ],
    "preciseIdentifier" : "s:14HomeExtensions0A21AccessoryRangeSettingC"
  },
  "title" : "HomeAccessoryRangeSetting"
}
-->

# HomeAccessoryRangeSetting

A setting that represents a numeric value within a range.

```
@propertyWrapper final class HomeAccessoryRangeSetting<Value> where Value : Comparable, Value : Numeric
```

## Overview

The Home app presents this setting as a slider. The slider appears only when the setting has both a lower and an upper bound.

## Topics

### Creating a range setting

[`init(id: String, label: HomeAccessorySettingLabel, isEnabled: Bool, defaultValue: Value?, currentValue: Value?, lowerBound: Value?, upperBound: Value?, step: Value?, unit: LocalizedStringResource?, valueFormat: HomeAccessoryRangeSetting<Value>.ValueFormat?, minimumValueLabel: LocalizedStringResource?, maximumValueLabel: LocalizedStringResource?, valueSuffix: LocalizedStringResource?, decimalPrecision: Int?, sliderStyle: HomeAccessoryRangeSetting<Value>.SliderStyle?)`](/documentation/HomeExtensions/HomeAccessoryRangeSetting/init(id:label:isEnabled:defaultValue:currentValue:lowerBound:upperBound:step:unit:valueFormat:minimumValueLabel:maximumValueLabel:valueSuffix:decimalPrecision:sliderStyle:))

Creates a range setting with explicit lower and upper bounds.

[`convenience init<R>(id: String, label: HomeAccessorySettingLabel, range: R, isEnabled: Bool, defaultValue: Value?, currentValue: Value?, step: Value?, unit: LocalizedStringResource?, valueFormat: HomeAccessoryRangeSetting<Value>.ValueFormat?, minimumValueLabel: LocalizedStringResource?, maximumValueLabel: LocalizedStringResource?, valueSuffix: LocalizedStringResource?, decimalPrecision: Int?, sliderStyle: HomeAccessoryRangeSetting<Value>.SliderStyle?)`](/documentation/HomeExtensions/HomeAccessoryRangeSetting/init(id:label:range:isEnabled:defaultValue:currentValue:step:unit:valueFormat:minimumValueLabel:maximumValueLabel:valueSuffix:decimalPrecision:sliderStyle:))

Creates a range setting from a range expression.

[`convenience init<R>(id: String, label: HomeAccessorySettingLabel, range: R, isEnabled: Bool, defaultValue: Value?, currentValue: Value?, step: Value?, unit: LocalizedStringResource?, valueFormat: HomeAccessoryRangeSetting<Value>.ValueFormat?, minimumValueLabel: LocalizedStringResource?, maximumValueLabel: LocalizedStringResource?, minimumValueSystemImage: String?, maximumValueSystemImage: String?, valueSuffix: LocalizedStringResource?, decimalPrecision: Int?, sliderStyle: HomeAccessoryRangeSetting<Value>.SliderStyle?)`](/documentation/HomeExtensions/HomeAccessoryRangeSetting/init(id:label:range:isEnabled:defaultValue:currentValue:step:unit:valueFormat:minimumValueLabel:maximumValueLabel:minimumValueSystemImage:maximumValueSystemImage:valueSuffix:decimalPrecision:sliderStyle:))

Creates a range setting with symbols at each end of the slider.

[`convenience init<R>(id: String, label: HomeAccessorySettingLabel, range: R, isEnabled: Bool, defaultValue: Value?, currentValue: Value?, step: Value?, unit: LocalizedStringResource?, valueFormat: HomeAccessoryRangeSetting<Value>.ValueFormat?, minimumValueLabel: LocalizedStringResource?, maximumValueLabel: LocalizedStringResource?, minimumValueSystemImage: String?, maximumValueSystemImage: String?, valueSuffix: LocalizedStringResource?, decimalPrecision: Int?, sliderStyle: HomeAccessoryRangeSetting<Value>.SliderStyle?, tickLabelStyle: HomeAccessoryRangeSetting<Value>.TickLabelStyle)`](/documentation/HomeExtensions/HomeAccessoryRangeSetting/init(id:label:range:isEnabled:defaultValue:currentValue:step:unit:valueFormat:minimumValueLabel:maximumValueLabel:minimumValueSystemImage:maximumValueSystemImage:valueSuffix:decimalPrecision:sliderStyle:tickLabelStyle:))

Creates a range setting with labeled tick marks.

[`enum ValueFormat`](/documentation/HomeExtensions/HomeAccessoryRangeSetting/ValueFormat)

Formats that describe the kind of value a range setting represents.

[`enum SliderStyle`](/documentation/HomeExtensions/HomeAccessoryRangeSetting/SliderStyle)

Display styles for a range setting’s slider.

[`enum TickLabelStyle`](/documentation/HomeExtensions/HomeAccessoryRangeSetting/TickLabelStyle)

Styles for labeling the tick marks on a stepped slider.

### Configuring presentation

[`var label: HomeAccessorySettingLabel`](/documentation/HomeExtensions/HomeAccessoryRangeSetting/label)

The label to display for this setting.

[`var isEnabled: Bool`](/documentation/HomeExtensions/HomeAccessoryRangeSetting/isEnabled)

A Boolean value that indicates whether people can change the setting.

[`var isHidden: Bool`](/documentation/HomeExtensions/HomeAccessoryRangeSetting/isHidden)

A Boolean value that indicates whether the setting is hidden.

### Accessing the value

[`var wrappedValue: Value?`](/documentation/HomeExtensions/HomeAccessoryRangeSetting/wrappedValue)

The setting’s current value, or its default value if it has none.

[`var projectedValue: HomeAccessoryRangeSetting<Value>`](/documentation/HomeExtensions/HomeAccessoryRangeSetting/projectedValue)

The setting itself, which you access with a dollar sign prefix.

### Instance Properties

[`let id: String`](/documentation/HomeExtensions/HomeAccessoryRangeSetting/id)

A unique identifier for the setting.

## Relationships

### Conforms To

[`Identifiable`](/documentation/Swift/Identifiable)

[`HomeAccessorySetting`](/documentation/HomeExtensions/HomeAccessorySetting)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)