Packages
grizzly
8.2.1
9.1.4
9.1.2
9.1.1
9.1.0
9.0.0
8.15.3
8.15.2
8.15.1
8.15.0
8.14.0
8.13.0
8.12.0
8.11.3
8.11.2
8.11.1
8.11.0
8.10.0
8.9.0
8.8.1
8.8.0
8.7.1
8.7.0
8.6.12
8.6.11
8.6.10
8.6.9
8.6.8
8.6.7
retired
8.6.6
8.6.5
8.6.4
8.6.3
8.6.2
8.6.1
8.6.0
8.5.3
8.5.2
8.5.1
8.5.0
8.4.0
8.3.0
8.2.3
8.2.2
8.2.1
8.2.0
8.1.0
8.0.1
8.0.0
7.4.3
7.4.2
7.4.1
7.4.0
7.3.0
7.2.0
7.1.4
7.1.3
7.1.2
7.1.1
7.1.0
7.0.4
7.0.3
7.0.2
7.0.1
7.0.0
6.8.8
6.8.7
6.8.6
6.8.5
6.8.4
6.8.3
6.8.2
6.8.1
6.8.0
6.7.1
6.7.0
6.6.1
6.6.0
6.5.1
6.5.0
6.4.0
6.3.0
6.2.0
6.1.1
6.1.0
6.0.1
6.0.0
5.4.1
5.4.0
5.3.0
5.2.8
5.2.7
5.2.6
5.2.5
5.2.4
5.2.3
5.2.2
5.2.1
5.2.0
5.1.2
5.1.1
5.1.0
5.0.2
5.0.1
5.0.0
4.0.1
4.0.0
3.0.0
2.1.0
2.0.0
1.0.1
1.0.0
0.22.7
0.22.6
0.22.5
0.22.4
0.22.3
0.22.2
0.22.1
0.22.0
0.21.1
0.21.0
0.20.2
0.20.1
0.20.0
0.19.1
0.19.0
0.18.3
0.18.2
0.18.1
0.18.0
0.17.7
0.17.6
0.17.5
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.2
0.16.1
0.16.0
0.15.11
0.15.10
0.15.9
0.15.8
0.15.7
0.15.6
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.8
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.0
0.12.3
0.12.2
0.12.1
0.12.0
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.0
0.9.0-rc.4
0.9.0-rc.3
0.9.0-rc.2
0.9.0-rc.1
0.9.0-rc.0
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.0
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.3
0.4.2
Elixir Z-Wave library
Current section
Files
Jump to
Current section
Files
lib/grizzly/zwave/command_classes/thermostat_operating_state.ex
defmodule Grizzly.ZWave.CommandClasses.ThermostatOperatingState do
@moduledoc """
"ThermostatOperatingState" Command Class
The Thermostat Operating State Command Class is used to obtain the operating state of the
thermostat.
"""
@behaviour Grizzly.ZWave.CommandClass
alias Grizzly.ZWave.DecodeError
@type state ::
:idle
| :heating
| :cooling
| :fan_only
| :pending_heat
| :pending_cool
| :vent_economizer
| :aux_heating
| :heating_stage_2
| :cooling_stage_2
| :aux_heat_stage_2
| :aux_heat_stage_3
@impl true
def byte(), do: 0x42
@impl true
def name(), do: :thermostat_operating_state
@spec encode_state(state) :: byte
def encode_state(:idle), do: 0x00
def encode_state(:heating), do: 0x01
def encode_state(:cooling), do: 0x02
def encode_state(:fan_only), do: 0x03
def encode_state(:pending_heat), do: 0x04
def encode_state(:pending_cool), do: 0x05
def encode_state(:vent_economizer), do: 0x06
def encode_state(:aux_heating), do: 0x07
def encode_state(:heating_stage_2), do: 0x08
def encode_state(:cooling_stage_2), do: 0x09
def encode_state(:aux_heat_stage_2), do: 0x0A
def encode_state(:aux_heat_stage_3), do: 0x0B
@spec decode_state(byte) :: {:ok, state} | {:error, DecodeError.t()}
def decode_state(0x00), do: {:ok, :idle}
def decode_state(0x01), do: {:ok, :heating}
def decode_state(0x02), do: {:ok, :cooling}
def decode_state(0x03), do: {:ok, :fan_only}
def decode_state(0x04), do: {:ok, :pending_heat}
def decode_state(0x05), do: {:ok, :pending_cool}
def decode_state(0x06), do: {:ok, :vent_economizer}
def decode_state(0x07), do: {:ok, :aux_heating}
def decode_state(0x08), do: {:ok, :heating_stage_2}
def decode_state(0x09), do: {:ok, :cooling_stage_2}
def decode_state(0x0A), do: {:ok, :aux_heat_stage_2}
def decode_state(0x0B), do: {:ok, :aux_heat_stage_3}
def decode_state(byte),
do: {:error, %DecodeError{value: byte, param: :state, command: :thermostat_operating_state}}
end