Packages
grizzly
1.0.0
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/options.ex
defmodule Grizzly.Options do
@moduledoc false
alias Grizzly.Supervisor
alias Grizzly.ZIPGateway.Config
@type t() :: %__MODULE__{
transport: module(),
run_zipgateway: boolean(),
serial_port: String.t(),
zipgateway_binary: Path.t(),
zipgateway_config_path: Path.t(),
on_ready: mfa() | nil,
zipgateway_port: :inet.port_number(),
manufacturer_id: non_neg_integer() | nil,
hardware_version: byte() | nil,
product_id: byte() | nil,
product_type: byte() | nil,
serial_log: Path.t() | nil,
tun_script: Path.t(),
lan_ip: :inet.ip_address(),
pan_ip: :inet.ip_address(),
inclusion_handler: Grizzly.handler() | nil,
firmware_update_handler: Grizzly.handler() | nil,
unsolicited_destination: {:inet.ip_address(), :inet.port_number()},
associations_file: Path.t(),
eeprom_file: Path.t() | nil,
database_file: Path.t() | nil,
indicator_handler: (Grizzly.Indicator.event() -> :ok),
rf_region: Supervisor.rf_region() | nil,
power_level: {Supervisor.tx_power(), Supervisor.measured_power()} | nil
}
defstruct run_zipgateway: true,
serial_port: "/dev/ttyUSB0",
zipgateway_binary: "/usr/sbin/zipgateway",
zipgateway_config_path: "/tmp/zipgateway.cfg",
on_ready: nil,
transport: Grizzly.Transports.DTLS,
zipgateway_port: 41230,
manufacturer_id: nil,
hardware_version: nil,
product_id: nil,
product_type: nil,
serial_log: nil,
tun_script: "./zipgateway.tun",
pan_ip: {0xFD00, 0xBBBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01},
lan_ip: {0xFD00, 0xAAAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01},
inclusion_handler: nil,
firmware_update_handler: nil,
unsolicited_destination: {{0xFD00, 0xAAAA, 0, 0, 0, 0, 0, 0x0002}, 41230},
associations_file: nil,
eeprom_file: "/data/zipeeprom.dat",
database_file: "/data/zipgateway.db",
indicator_handler: nil,
rf_region: nil,
power_level: nil
@spec new([Supervisor.arg()]) :: t()
def new(opts \\ []) do
struct(__MODULE__, opts)
end
@spec to_zipgateway_config(t(), boolean()) :: Config.t()
def to_zipgateway_config(%__MODULE__{database_file: file} = grizzly_opts, use_database?)
when file == nil or not use_database? do
# Build a zipgateway configuration for zipgateway <7.14.2
Config.new(grizzly_opts)
end
def to_zipgateway_config(%__MODULE__{} = grizzly_opts, true = _use_database?) do
# Build a zipgateway configuration for zipgateway >= 7.14.2. This version
# of zipgateway will exit if an eeprom file is specified
Config.new(%{grizzly_opts | eeprom_file: nil})
end
end