View Source Grizzly.ZWave.Commands.ZIPPacket (grizzly v8.6.6)

Command for sending Z-Wave commands via Z/IP

Summary

Types

flag()

@type flag() ::
  :ack_response
  | :ack_request
  | :nack_response
  | :nack_waiting
  | :nack_queue_full
  | :nack_option_error
  | :invalid

param()

@type param() ::
  {:command, Grizzly.ZWave.Command.t() | nil}
  | {:flag, flag() | nil}
  | {:seq_number, Grizzly.ZWave.seq_number()}
  | {:source, Grizzly.ZWave.node_id()}
  | {:dest, Grizzly.ZWave.node_id()}
  | {:header_extensions,
     [Grizzly.ZWave.Commands.ZIPPacket.HeaderExtensions.extension()]}
  | {:secure, boolean()}
  | {:more_info, boolean()}

Functions

ack_response?(command)

@spec ack_response?(Grizzly.ZWave.Command.t()) :: boolean()

command_name(command)

@spec command_name(Grizzly.ZWave.Command.t()) :: atom() | nil

extension(command, extension_name, default \\ nil)

@spec extension(Grizzly.ZWave.Command.t(), atom(), any()) :: any()

Get the extension by extension name

flag_to_byte(atom)

@spec flag_to_byte(flag() | nil) :: byte()

make_ack_response(seq_number, opts \\ [])

@spec make_ack_response(
  Grizzly.ZWave.seq_number(),
  keyword()
) :: Grizzly.ZWave.Command.t()

make_nack_response(seq_number)

@spec make_nack_response(Grizzly.ZWave.seq_number()) :: Grizzly.ZWave.Command.t()

Make a :nack_response

make_nack_waiting_response(seq_number, delay_in_seconds)

@spec make_nack_waiting_response(
  Grizzly.ZWave.seq_number(),
  seconds :: non_neg_integer()
) ::
  Grizzly.ZWave.Command.t()

meta_to_byte(secure, command, extensions, more_info \\ false)

nack_response?(command)

@spec nack_response?(Grizzly.ZWave.Command.t()) :: boolean()

nack_waiting?(command)

@spec nack_waiting?(Grizzly.ZWave.Command.t()) :: boolean()

unwrap(arg)

@spec unwrap(binary()) :: binary()

Removes the Z/IP Packet encapsulation from a command and returns the original command as a binary.

with_zwave_command(zwave_command, seq_number, params \\ [])

@spec with_zwave_command(
  Grizzly.ZWave.Command.t() | binary(),
  Grizzly.ZWave.seq_number(),
  [param()]
) ::
  {:ok, Grizzly.ZWave.Command.t()}

Make a Z/IP Packet Command that encapsulates another Z-Wave command