Packages
grizzly
8.7.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/window_covering.ex
defmodule Grizzly.ZWave.CommandClasses.WindowCovering do
@moduledoc """
Window Covering Command Class
Command class for window coverings which can be openned or closed
"""
alias Grizzly.ZWave.DecodeError
@behaviour Grizzly.ZWave.CommandClass
@impl Grizzly.ZWave.CommandClass
def byte(), do: 0x6A
@impl Grizzly.ZWave.CommandClass
def name(), do: :window_covering
@type parameter_name ::
:out_left
| :out_left_positioned
| :out_right
| :out_right_positioned
| :in_left
| :in_left_positioned
| :in_right
| :in_right_positioned
| :in_right_left
| :in_right_left_positioned
| :angle_vertical_slats
| :angle_vertical_slats_positioned
| :out_bottom
| :out_bottom_positioned
| :out_top
| :out_top_positioned
| :in_bottom
| :in_bottom_positioned
| :in_top
| :in_top_positioned
| :in_top_bottom
| :in_top_bottom_positioned
| :angle_horizontal_slats
| :angle_horizontal_slats_positioned
@spec decode_parameter_name(byte) :: {:ok, parameter_name()} | {:error, DecodeError.t()}
def decode_parameter_name(0x00), do: {:ok, :out_left}
def decode_parameter_name(0x01), do: {:ok, :out_left_positioned}
def decode_parameter_name(0x02), do: {:ok, :out_right}
def decode_parameter_name(0x03), do: {:ok, :out_right_positioned}
def decode_parameter_name(0x04), do: {:ok, :in_left}
def decode_parameter_name(0x05), do: {:ok, :in_left_positioned}
def decode_parameter_name(0x06), do: {:ok, :in_right}
def decode_parameter_name(0x07), do: {:ok, :in_right_positioned}
def decode_parameter_name(0x08), do: {:ok, :in_right_left}
def decode_parameter_name(0x09), do: {:ok, :in_right_left_positioned}
def decode_parameter_name(0x0A), do: {:ok, :angle_vertical_slats}
def decode_parameter_name(0x0B), do: {:ok, :angle_vertical_slats_positioned}
def decode_parameter_name(0x0C), do: {:ok, :out_bottom}
def decode_parameter_name(0x0D), do: {:ok, :out_bottom_positioned}
def decode_parameter_name(0x0E), do: {:ok, :out_top}
def decode_parameter_name(0x0F), do: {:ok, :out_top_positioned}
def decode_parameter_name(0x10), do: {:ok, :in_bottom}
def decode_parameter_name(0x11), do: {:ok, :in_bottom_positioned}
def decode_parameter_name(0x12), do: {:ok, :in_top}
def decode_parameter_name(0x13), do: {:ok, :in_top_positioned}
def decode_parameter_name(0x14), do: {:ok, :in_top_bottom}
def decode_parameter_name(0x15), do: {:ok, :in_top_bottom_positioned}
def decode_parameter_name(0x16), do: {:ok, :angle_horizontal_slats}
def decode_parameter_name(0x17), do: {:ok, :angle_horizontal_slats_positioned}
def decode_parameter_name(byte), do: {:error, %DecodeError{param: :parameter_name, value: byte}}
@spec encode_parameter_name(parameter_name()) :: byte()
def encode_parameter_name(:out_left), do: 0x00
def encode_parameter_name(:out_left_positioned), do: 0x01
def encode_parameter_name(:out_right), do: 0x02
def encode_parameter_name(:out_right_positioned), do: 0x03
def encode_parameter_name(:in_left), do: 0x04
def encode_parameter_name(:in_left_positioned), do: 0x05
def encode_parameter_name(:in_right), do: 0x06
def encode_parameter_name(:in_right_positioned), do: 0x07
def encode_parameter_name(:in_right_left), do: 0x08
def encode_parameter_name(:in_right_left_positioned), do: 0x09
def encode_parameter_name(:angle_vertical_slats), do: 0x0A
def encode_parameter_name(:angle_vertical_slats_positioned), do: 0x0B
def encode_parameter_name(:out_bottom), do: 0x0C
def encode_parameter_name(:out_bottom_positioned), do: 0x0D
def encode_parameter_name(:out_top), do: 0x0E
def encode_parameter_name(:out_top_positioned), do: 0x0F
def encode_parameter_name(:in_bottom), do: 0x10
def encode_parameter_name(:in_bottom_positioned), do: 0x11
def encode_parameter_name(:in_top), do: 0x12
def encode_parameter_name(:in_top_positioned), do: 0x13
def encode_parameter_name(:in_top_bottom), do: 0x14
def encode_parameter_name(:in_top_bottom_positioned), do: 0x15
def encode_parameter_name(:angle_horizontal_slats), do: 0x16
def encode_parameter_name(:angle_horizontal_slats_positioned), do: 0x17
end