# `Grizzly.ZWave.CommandClasses.ThermostatSetpoint`
[🔗](https://github.com/smartrent/grizzly/blob/v9.1.4/lib/grizzly/zwave/command_classes/thermostat_setpoint.ex#L1)

"ThermostatSetpoint" Command Class

 The Thermostat Setpoint Command Class is used to configure setpoints for the modes supported by a
 thermostat.

What type of commands does this command class support?

# `param`

```elixir
@type param() :: {:type, type()} | {:scale, scale()} | {:value, number()}
```

Shared parameters for ThermostatSetpointSet and ThermostatSetpointReport.

# `scale`

```elixir
@type scale() :: :c | :f
```

# `type`

```elixir
@type type() ::
  :na
  | :heating
  | :cooling
  | :furnace
  | :dry_air
  | :moist_air
  | :auto_changeover
  | :energy_save_heating
  | :energy_save_cooling
  | :away_heating
  | :away_cooling
  | :full_power
```

# `decode_scale`

```elixir
@spec decode_scale(byte()) :: {:ok, scale()} | {:error, Grizzly.ZWave.DecodeError.t()}
```

# `decode_type`

```elixir
@spec decode_type(byte()) :: type()
```

# `encode_scale`

```elixir
@spec encode_scale(scale()) :: byte()
```

# `encode_type`

```elixir
@spec encode_type(type()) :: byte()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
