grizzly v0.14.2 Grizzly.Supervisor View Source
Supervisor for running the Grizzly runtime.
The Grizzly runtime handles command processing, command error isolation,
management of adding and removing devices, management of firmware updates,
and managing the underlining zipgateway
binary.
If you are just using all the default options you can add the supervisor to your application's supervision tree like so:
children = [
Grizzly.Supervisor
]
The default configuration will look for the Z-Wave controller on the serial
device /dev/ttyUSB0
, however if you are using a different serial device
you can configure this.
children = [
{Grizzly.Supervisor, [serial_port: <serial_port>]}
]
Grizzly
will try to run and manage the zipgateway
binary for you. If
don't want Grizzly
to do this you can configure Grizzly
to not run
zipgateway
.
children = [
{Grizzly.Supervisor, [run_zipgateway: false]}
]
See the type docs for Grizzly.Supervisor.arg()
to learn more about the
various configuration options.
Link to this section Summary
Types
Arguments for running Grizzly.Supervisor
Functions
Returns a specification to start this module under a supervisor.
Link to this section Types
Specs
arg() :: {:run_zipgateway, boolean()} | {:serial_port, String.t()} | {:zipgateway_binary, String.t()} | {:zipgateway_config_path, Path.t()} | {:on_ready, mfa()} | {:transport, module()} | {:zipgateway_port, :inet.port_number()} | {:manufacturer_id, non_neg_integer()} | {:hardware_version, byte()} | {:product_id, byte()} | {:product_type, byte()} | {:serial_log, Path.t()} | {:tun_script, Path.t()} | {:lan_ip, :inet.ip_address()} | {:pan_ip, :inet.ip_address()} | {:inclusion_handler, Grizzly.handler()} | {:firmware_update_handler, Grizzly.handler()}
Arguments for running Grizzly.Supervisor
:run_zipgateway
- boolean flag to set if Grizzly should be running and supervising thezipgateway
binary. This is useful if you have localzipgateway
running prior to Grizzly running. Default true.:serial_port
- The serial the Z-Wave controller is is connected to. Defaults to"/dev/ttyUSB0"
:zipgateway_binary
- the path the zipgateway binary. Defaults to"/usr/sbin/zipgateway
:zipgateway_config_path
- the path write the zipgateway config file. Default to"/tmp/zipgateway.cfg"
:on_ready
- Module, function, args to run after Grizzly can establish that zipgateway is up and running. If not passed nothing will be called. Defaults tonil
.:transport
- a module that implements theGrizzly.Transport
behaviour. Defaults toGrizzly.Transports.DTLS
:zipgateway_port
- the port number of the Z/IP Gateway server. Defaults 41230.:manufacturer_id
- the manufacturer id given to you by the Z-Wave Alliance:hardware_version
- the hardware version of the hub:product_id
- the product id of your hub:product_type
- the type of product the controller is:serial_log
- path to out but the serial log, useful for advanced debugging:tun_script
- a path to a custom tun script if the default one does not work for your system:port
- port for zipgateway to run its server one. Defaults to41230
:lan_ip
- the IP address of the LAN network. That is the network between the controlling machine and the Z-Wave network. Defaults to the default Z/IP LAN ip.:pan_ip
- the IP for the Z-Wave private network. That is the devices IP addresses. Defaults to the default Z/IP Gateway PAN ip.:inclusion_handler
- a module that implements theGrizzly.InclusionHandler
behaviour. This is optional.:firmware_update_handler
- a module that implements theGrizzly.FirmwareUpdateHandler
behaviour. This is optional.
For the most part the defaults should work out of the box. However, the
serial_port
argument is the most likely argument that will need to be
passed in has it is very much hardware dependent.
Link to this section Functions
Returns a specification to start this module under a supervisor.
See Supervisor
.
Specs
start_link([arg()]) :: Supervisor.on_start()