Packages
grizzly
0.17.4
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/network_management_basic_node.ex
defmodule Grizzly.ZWave.CommandClasses.NetworkManagementBasicNode do
@moduledoc """
Command class for working with Z-Wave network updates and resetting the
controller back to the factor defaults
"""
alias Grizzly.ZWave.DecodeError
@behaviour Grizzly.ZWave.CommandClass
@type add_mode :: :learn | :add
@type network_update_request_status :: :done | :abort | :wait | :disabled | :overflow
@impl true
def byte(), do: 0x4D
@impl true
def name(), do: :network_management_basic_node
@spec add_mode_to_byte(add_mode()) :: byte()
def add_mode_to_byte(:learn), do: 0x00
def add_mode_to_byte(:add), do: 0x01
@spec add_mode_from_bit(0 | 1) :: add_mode()
def add_mode_from_bit(0), do: :learn
def add_mode_from_bit(1), do: :add
@spec network_update_request_status_to_byte(network_update_request_status) :: byte
def network_update_request_status_to_byte(:done), do: 0x00
def network_update_request_status_to_byte(:abort), do: 0x01
def network_update_request_status_to_byte(:wait), do: 0x02
def network_update_request_status_to_byte(:disabled), do: 0x03
def network_update_request_status_to_byte(:overflow), do: 0x04
@spec network_update_request_status_from_byte(byte) ::
{:ok, network_update_request_status} | {:error, Grizzly.ZWave.DecodeError.t()}
def network_update_request_status_from_byte(0x00), do: {:ok, :done}
def network_update_request_status_from_byte(0x01), do: {:ok, :abort}
def network_update_request_status_from_byte(0x02), do: {:ok, :wait}
def network_update_request_status_from_byte(0x03), do: {:ok, :disabled}
def network_update_request_status_from_byte(0x04), do: {:ok, :overflow}
def network_update_request_status_from_byte(byte),
do: {:error, %DecodeError{param: :status, value: byte}}
end