Packages
grizzly
6.8.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/zwaveplus_info.ex
defmodule Grizzly.ZWave.CommandClasses.ZwaveplusInfo do
@moduledoc """
"ZwaveplusInfo" Command Class
The Z-Wave Plus Info Command Class is used to differentiate between Z-Wave Plus, Z-Wave for IP and
Z-Wave devices.
"""
@behaviour Grizzly.ZWave.CommandClass
alias Grizzly.ZWave.DecodeError
@type role_type ::
:central_static_controller
| :sub_static_controller
| :portable_controller
| :reporting_portable_controller
| :portable_slave
| :always_on_slave
| :reporting_sleeping_slave
| :listening_sleeping_slave
| :network_aware_slave
@type node_type :: :zwaveplus_node | :zwaveplus_for_ip_gateway
@impl true
def byte(), do: 0x5E
@impl true
def name(), do: :zwaveplus_info
def role_type_to_byte(:central_static_controller), do: 0x00
def role_type_to_byte(:sub_static_controller), do: 0x01
def role_type_to_byte(:portable_controller), do: 0x02
def role_type_to_byte(:reporting_portable_controller), do: 0x03
def role_type_to_byte(:portable_slave), do: 0x04
def role_type_to_byte(:always_on_slave), do: 0x05
def role_type_to_byte(:reporting_sleeping_slave), do: 0x06
def role_type_to_byte(:listening_sleeping_slave), do: 0x07
def role_type_to_byte(:network_aware_slave), do: 0x08
def role_type_from_byte(0x00), do: {:ok, :central_static_controller}
def role_type_from_byte(0x01), do: {:ok, :sub_static_controller}
def role_type_from_byte(0x02), do: {:ok, :portable_controller}
def role_type_from_byte(0x03), do: {:ok, :reporting_portable_controller}
def role_type_from_byte(0x04), do: {:ok, :portable_slave}
def role_type_from_byte(0x05), do: {:ok, :always_on_slave}
def role_type_from_byte(0x06), do: {:ok, :reporting_sleeping_slave}
def role_type_from_byte(0x07), do: {:ok, :listening_sleeping_slave}
def role_type_from_byte(0x08), do: {:ok, :network_aware_slave}
def role_type_from_byte(byte), do: {:error, %DecodeError{param: :role_type, value: byte}}
def node_type_to_byte(:zwaveplus_node), do: 0x00
def node_type_to_byte(:zwaveplus_for_ip_gateway), do: 0x02
def node_type_from_byte(0x00), do: {:ok, :zwaveplus_node}
def node_type_from_byte(0x02), do: {:ok, :zwaveplus_for_ip_gateway}
def node_type_from_byte(byte), do: {:error, %DecodeError{param: :node_type, value: byte}}
end