Smart start allows a controller to include new nodes in a network (or keep them out) without user interaction.
A Smart Start enabled controller or gateway maintains a Node Provisioning List or Provisioning List (PL). The Provisioning List is a list of unique nodes and their additional associated meta data necessary for performing their network inclusion and security bootstrapping.
A Provisioning List entry represents a node and its associated data. Provisioning List entries may also be used for ignoring nodes.
A Z/IP Client or controller can read and edit the Provisioning List entries of a Z/IP Gateway or controller using this Command Class.
If the Bootstrapping mode Type (0x36) is omitted from this command, the Bootstrapping mode value 1 (Smart Start Mode) MUST be assumed by the receiving node when creating a new entry.
\requirement{CC:0078.01.01.11.00B}{0}
If the SmartStart Inclusion Setting Type (0x34) is omitted from this command, the Inclusion setting value 0 (Pending) MUST be assumed by the receiving node when creating a new entry that has a SmartStart Bootstrapping mode.
\requirement{CC:0078.01.01.11.00A}{0}
The Network Status Type (0x37) MUST NOT be carried in this command. The Network Status Type (0x37) MUST be ignored if received in this command.
This command is used to delete one or all entries in the node provisioning list of a supporting node. Already included nodes will stay in the Z-Wave network even if no more corresponding node provisioning list entry is kept by the controller.
This field MUST indicate the length of the DSK field in bytes.
\requirement{CC:0078.01.02.11.002}{0}
This field MUST be set to 0 or 16.
\requirement{CC:0078.01.02.11.003}{0}
The value 0 MUST indicate that the receiving node MUST delete all entries in its Node Provisioning List.
\requirement{CC:0078.01.02.11.004}{0}
The value 16 MUST indicate that the receiving node MUST delete the entry in its Node Provisioning List that match the advertised value in the DSK field.
DSK (N bytes)
This field is used to advertise the DSK for the entry being deleted.
\requirement{CC:0078.01.02.11.005}{0}
A receiving node MUST delete the corresponding entry from the Node Provisioning List if it has an entry with the advertised DSK value.
\requirement{CC:0078.01.02.11.006}{0}
A receiving node MUST ignore this command if it has no entry with the advertised DSK value.
\requirement{CC:0078.01.02.11.007}{0}
The length of this field (in bytes) MUST be according to the DSK Length field value.
This field MUST be omitted if the DSK Length field is set to 0.
This command is used to request the metadata information associated to an entry in the node Provisioning List of the receiving node.
\requirement{CC:0078.01.05.11.001}{0}
The Node Provisioning Report Command MUST be returned in response to this command.
\requirement{CC:0078.01.05.11.002}{0}
This command MUST NOT be issued via multicast addressing.
\requirement{CC:0078.01.05.11.003}{0}
A receiving node MUST NOT return a response if this command is received via multicast addressing. The Z-Wave Multicast frame, the broadcast NodeID and the Multi Channel multi-End Point destination are all considered multicast addressing methods.
A supporting node MAY set the critical flag to 0 even when advertising critical extensions.
\requirement{CC:0078.01.06.11.007}{0}
If the DSK Length field is set to 0, this field MUST be omitted.
If the DSK Length field is not set to 0:
\requirement{CC:0078.01.06.11.008}{0}
A sending node MUST advertise the SmartStart Inclusion Setting extension (type 0x34)
\requirement{CC:0078.01.06.11.009}{0}
A sending node MUST advertise the Bootstrapping mode extension (type 0x36)
\requirement{CC:0078.01.06.11.00B}{0}
A sending node MUST advertise the Network Status extension (type 0x37)
\requirement{CC:0078.01.06.11.00A}{0}
A sending node MUST advertise all other extension data kept in the Provisioning List
5.2.7.8. Node Provisioning List Iteration Get Command¶
This command is used to read the entire the provisioning list of a supporting node.
\requirement{CC:0078.01.03.11.001}{0}
The Node Provisioning List Iteration Report Command MUST be returned in response to this command unless it is to be ignored.
\requirement{CC:0078.01.03.11.002}{0}
This command MUST NOT be issued via multicast addressing.
\requirement{CC:0078.01.03.11.003}{0}
A receiving node MUST NOT return a response if this command is received via multicast addressing. The Z-Wave Multicast frame, the broadcast NodeID and the Multi Channel multi-End Point destination are all considered multicast addressing methods.
This field is used to iterate over the Provisioning List. The field indicates the remaining amount of entries in the Provisioning List. This field MUST be in the range 0x01..0xFF.
\requirement{CC:0078.01.03.11.006}{0}
This field MUST be set to 0xFF to start a new iteration. A supporting node MUST return the first entry and the actual amount of remaining entries in the returned report, i.e. If the Provisioning list has 3 elements the first response Remaining Count field MUST be set to 2.
\requirement{CC:0078.01.03.11.007}{0}
A sending node MUST subsequently set this field to the returned value ”Remaining Count” value received in the returned Report if the ”Remaining Count” value is higher than 0x00. A supporting node MUST ignore this field if it is not set to the expected next iteration value.
\requirement{CC:0078.01.03.11.008}{0}
This command MUST be ignored by a supporting node if this field is set to a value lower than 0xFF and no iteration has been started.
The field MUST indicate the remaining amount of entries in the Provisioning List iteration. This field MUST be in the range 0x00..0xFE.
DSK Length (5 bits)
\requirement{CC:0078.01.04.11.002}{0}
This field MUST indicate the length of the DSK field in bytes.
\requirement{CC:0078.01.04.11.003}{0}
This field MUST be set to 0 or 16.
\requirement{CC:0078.01.04.11.004}{0}
The value 0 MUST indicate that the Provisioning List of the sending node is empty or the Provisioning List Entry has been deleted after the start of the iteration.
\requirement{CC:0078.01.04.11.005}{0}
The value 16 MUST indicate that the sending node advertises the DSK of a Provisioning List entry.
DSK (N bytes)
This field is used to advertise the DSK for the Provisioning List entry being advertised.
\requirement{CC:0078.01.04.11.006}{0}
The length of this field (in bytes) MUST be according to the DSK Length field value. This field MUST be omitted if the DSK Length field is set to 0.
Meta Data Extension (M bytes)
This field is used to carry additional metadata associated to the Provisioning List entry.
This field is used to advertise the type of the data contained in the corresponding extension.
\requirement{CC:0078.01.00.11.002}{0}
For the list of defined valid extensions, refer to [29]. Values not defined in [29] are reserved and MUST NOT be used by a sending node.
Critical (1 bit)
This field is used to advertise the criticality of the extension.
\requirement{CC:0078.01.00.11.003}{0}
A supporting node MUST discard and ignore the entire command if this flag is set to ‘1’ and the Meta Data Type field advertises a value that the node does not support.
\requirement{CC:0078.01.00.12.001}{0}
A controlling node which controls only (i.e. does not support this Command Class) SHOULD keep the Provisioning List entry in its record even if this flag is set to ‘1’ and the node does not know what the extension means.
\requirement{CC:0078.01.00.11.004}{4}
If this flag is set to ‘0’ and the Meta Data Type field advertises a value that the receiving node does not support, the actual extension MUST be ignored and left out the provisioning list entry.
\requirement{CC:0078.01.00.11.005}{0}
In this case, a receiving node MUST continue processing of the encapsulation command after the discarded extension.
Length (8 bits)
\requirement{CC:0078.01.00.11.006}{0}
This field MUST indicate the length of the corresponding Value field in bytes.
Value (L bytes)
\requirement{CC:0078.01.00.11.007}{0}
This field MUST indicate the value of the Meta Data type being advertised in the extension.
\requirement{CC:0078.01.00.11.008}{4}
The length of this field (in bytes) MUST be according to the corresponding Length field value .This field MUST be omitted if the corresponding Length field is set to 0.
\requirement{CC:0078.01.00.11.009}{0}
The encoding of this field MUST be interpreted with the Meta Data Type field as defined in [29].