Packages
grizzly
6.8.7
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/sensor_binary.ex
defmodule Grizzly.ZWave.CommandClasses.SensorBinary do
@moduledoc """
Deprecated command class for triggered/not triggered sensors.
"""
@behaviour Grizzly.ZWave.CommandClass
alias Grizzly.ZWave.DecodeError
@type sensor_type() ::
:general_purpose
| :smoke
| :co
| :co2
| :heat
| :water
| :freeze
| :tamper
| :aux
| :door_window
| :tilt
| :motion
| :glass_break
@impl Grizzly.ZWave.CommandClass
def byte(), do: 0x30
@impl Grizzly.ZWave.CommandClass
def name(), do: :sensor_binary
@doc """
Encode the type value for the sensor report
"""
@spec encode_type(sensor_type()) :: byte()
def encode_type(:general_purpose), do: 0x01
def encode_type(:smoke), do: 0x02
def encode_type(:co), do: 0x03
def encode_type(:co2), do: 0x04
def encode_type(:heat), do: 0x05
def encode_type(:water), do: 0x06
def encode_type(:freeze), do: 0x07
def encode_type(:tamper), do: 0x08
def encode_type(:aux), do: 0x09
def encode_type(:door_window), do: 0x0A
def encode_type(:tilt), do: 0x0B
def encode_type(:motion), do: 0x0C
def encode_type(:glass_break), do: 0x0D
@doc """
Parse the type value from a byte
"""
@spec decode_type(byte()) :: {:ok, sensor_type()} | {:error, DecodeError.t()}
def decode_type(0x01), do: {:ok, :general_purpose}
def decode_type(0x02), do: {:ok, :smoke}
def decode_type(0x03), do: {:ok, :co}
def decode_type(0x04), do: {:ok, :co2}
def decode_type(0x05), do: {:ok, :heat}
def decode_type(0x06), do: {:ok, :water}
def decode_type(0x07), do: {:ok, :freeze}
def decode_type(0x08), do: {:ok, :tamper}
def decode_type(0x09), do: {:ok, :aux}
def decode_type(0x0A), do: {:ok, :door_window}
def decode_type(0x0B), do: {:ok, :tilt}
def decode_type(0x0C), do: {:ok, :motion}
def decode_type(0x0D), do: {:ok, :glass_break}
def decode_type(byte),
do: {:error, %DecodeError{value: byte, param: :sensor_type, command: :sensor_binary}}
end