Packages
grizzly
0.15.2
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_mode.ex
defmodule Grizzly.ZWave.CommandClasses.ThermostatMode do
@moduledoc """
"ThermostatMode" Command Class
The Thermostat Mode Command Class is used to control which mode a thermostat operates.
"""
@behaviour Grizzly.ZWave.CommandClass
alias Grizzly.ZWave.DecodeError
@type mode ::
:off
| :heat
| :cool
| :auto
| :auxiliary
| :resume_on
| :fan
| :furnace
| :dry
| :moist
| :auto_changeover
| :energy_heat
| :energy_cool
| :away
| :full_power
| :manufacturer_specific
@impl true
def byte(), do: 0x40
@impl true
def name(), do: :thermostat_mode
@spec encode_mode(mode) :: byte
def encode_mode(:off), do: 0x00
def encode_mode(:heat), do: 0x01
def encode_mode(:cool), do: 0x02
def encode_mode(:auto), do: 0x03
def encode_mode(:auxiliary), do: 0x04
def encode_mode(:resume_on), do: 0x05
def encode_mode(:fan), do: 0x06
def encode_mode(:furnace), do: 0x07
def encode_mode(:dry), do: 0x08
def encode_mode(:moist), do: 0x09
def encode_mode(:auto_changeover), do: 0x0A
def encode_mode(:energy_heat), do: 0x0B
def encode_mode(:energy_cool), do: 0x0C
def encode_mode(:away), do: 0x0D
def encode_mode(:full_power), do: 0x0F
def encode_mode(:manufacturer_specific), do: 0x1F
@spec decode_mode(byte) :: {:ok, mode} | {:error, %DecodeError{}}
def decode_mode(0x00), do: {:ok, :off}
def decode_mode(0x01), do: {:ok, :heat}
def decode_mode(0x02), do: {:ok, :cool}
def decode_mode(0x03), do: {:ok, :auto}
def decode_mode(0x04), do: {:ok, :auxiliary}
def decode_mode(0x05), do: {:ok, :resume_on}
def decode_mode(0x06), do: {:ok, :fan}
def decode_mode(0x07), do: {:ok, :furnace}
def decode_mode(0x08), do: {:ok, :dry}
def decode_mode(0x09), do: {:ok, :moist}
def decode_mode(0x0A), do: {:ok, :auto_changeover}
def decode_mode(0x0B), do: {:ok, :energy_heat}
def decode_mode(0x0C), do: {:ok, :energy_cool}
def decode_mode(0x0D), do: {:ok, :away}
def decode_mode(0x0F), do: {:ok, :full_power}
def decode_mode(0x1F), do: {:ok, :manufacturer_specific}
def decode_mode(byte),
do: {:error, %DecodeError{value: byte, param: :mode, command: :thermostat_mode}}
end