Grizzly.ZWave.SmartStart.MetaExtension (grizzly v0.22.2) View Source

Meta Extensions for SmartStart devices for QR codes and node provisioning list

Link to this section Summary

Types

Version of the application in a string format of "Major.Minor"

The mode to use when including the node advertised in the provisioning list

Meta extension for SmartStart devices

Generic Device Class for the product type extension

The interval (in seconds) must be in the range of 640..12672 inclusive, and has to be in steps of 128 seconds.

Settings for the smart start inclusion setting exentsion

The location string cannot contain underscores and cannot end with a dash.

The name string cannot contain underscores and cannot end with a dash.

Installer icon for the product type extension

Id of the manufacturer for the product id extension

The different network statuses are

Id of the product produced by the manufacturer for the product id extension

Type of product produced by the manufacturer for the product id extension

Specific Device Class for the product type extension

Unsigned 16 bit integer

Functions

Encode an extension into a binary

Parse the binary into the list of extensions

Link to this section Types

Specs

application_version() :: binary()

Version of the application in a string format of "Major.Minor"

Specs

bootstrapping_mode() :: :security_2 | :smart_start | :long_range

The mode to use when including the node advertised in the provisioning list

  • :security_2 - the node must be manually set to learn mode and follow the S2 bootstrapping instructions
  • :smart_start - the node will use S2 bootstrapping automatically using the SmartStart functionality
  • :long_range - included the device using the Z-Waver long range protocol. If no keys are granted in the :advanced_joining extension this inclusion will fail.

Specs

extension() ::
  {:advanced_joining, [Grizzly.ZWave.Security.key()]}
  | {:bootstrapping_mode, bootstrapping_mode()}
  | {:location_information, information_location()}
  | {:max_inclusion_request_interval, inclusion_interval()}
  | {:name_information, information_name()}
  | {:network_status, {Grizzly.ZWave.node_id(), atom()}}
  | {:product_id, product_id_values()}
  | {:product_type, product_type_values()}
  | {:smart_start_inclusion_setting, inclusion_setting()}
  | {:uuid16, Grizzly.ZWave.SmartStart.MetaExtension.UUID16.t()}
  | {:unknown, binary()}

Meta extension for SmartStart devices

  • :advanced_joining - used to specify which S2 security keys to grant during S2 inclusion
  • :bootstrapping_mode - used to specify the bootstrapping mode the including node must join with
  • :location_information - used to advertise the location assigned to the node
  • :max_inclusion_request_interval - used to advertise if a power constrained smart start node will issue an inclusion request at a higher interval than the default 512 seconds
  • :name_information - used to advertise the name of the node
  • :network_status - used to advertise if the node is in the network and its node id
  • :product_id - used to advertise product identifying data
  • :product_type - used to advertise the product type data
  • :smart_start_inclusion_setting - used to advertise the smart start inclusion setting
  • :uuid16 - used to advertise the 16 byte manufacturer-defined information that is unique to the that device
  • :unknown - sometimes new extensions are released without first class support, so this extension is used for those extensions that still need to be supported in this library
Link to this type

generic_device_class()

View Source

Specs

generic_device_class() :: atom()

Generic Device Class for the product type extension

Specs

inclusion_interval() :: 640..12672

The interval (in seconds) must be in the range of 640..12672 inclusive, and has to be in steps of 128 seconds.

So after 640 the next valid interval is 640 + 128 which is 768 seconds.

See SDS13944 Node Provisioning Information Type Registry.pdf section 3.1.2.3 for more information.

Specs

inclusion_setting() :: :pending | :passive | :ignored

Settings for the smart start inclusion setting exentsion

  • :pending - the node will be added to the network when it issues SmartStart inclusion requests.
  • :passive - this node is unlikely to issues a SmartStart inclusion request and SmartStart inclusion requests will be ignored from this node by the Z/IP Gateway. All nodes in the list with this setting must be updated to :pending when Provisioning List Iteration Get command is issued.
  • :ignored - All SmartStart inclusion request are ignored from this node until updated via Z/IP Client (Grizzly) or a controlling node.
Link to this type

information_location()

View Source

Specs

information_location() :: binary()

The location string cannot contain underscores and cannot end with a dash.

The location string can contain a period (.) but a sublocation cannot end a dash. For example:

123.123-.123

The above location invalid. To make it valid remove the - before ..

A node's location cannot be more than 62 bytes.

Specs

information_name() :: binary()

The name string cannot contain underscores and cannot end with a dash.

A node's name cannot be more than 62 bytes.

Specs

installer_icon_type() :: Grizzly.ZWave.IconType.name()

Installer icon for the product type extension

Specs

manufacturer_id() :: unit_16()

Id of the manufacturer for the product id extension

Specs

network_status() :: :pending | :passive | :ignored

The different network statuses are:

  • :not_in_network - the node in the provisioning list is not included in the network
  • :included - the node in the provisioning list is included in the network and is functional
  • :failing - the node in the provisioning list is included in the network but is now marked as failing

Specs

product_id() :: unit_16()

Id of the product produced by the manufacturer for the product id extension

Specs

product_id_values() ::
  {manufacturer_id(), product_id(), product_type(), application_version()}

Specs

product_type() :: unit_16()

Type of product produced by the manufacturer for the product id extension

Specs

Link to this type

specific_device_class()

View Source

Specs

specific_device_class() :: atom()

Specific Device Class for the product type extension

Specs

unit_16() :: char()

Unsigned 16 bit integer

Link to this section Functions

Specs

encode(extension()) :: binary()

Encode an extension into a binary

Specs

parse(binary()) :: [extension()]

Parse the binary into the list of extensions