3.2.44. Version Command Class, version 1 [OBSOLETED]¶
Warning
THIS COMMAND CLASS HAS BEEN OBSOLETED
New implementations MUST NOT support this Command Class.
New implemenetations MUST use the Version Command Class, version 2, or newer instead.
The Version Command Class may be used to obtain the Z-Wave library type, the Z-Wave protocol version used by the application, the individual Command Class versions used by the application and the vendor specific application version from a Z-Wave enabled device.
3.2.44.1. Compatibility Considerations¶
\requirement{CC:0086.01.00.21.001}{0} \requirement{CC:0086.01.00.22.001}{4}
In a Multi Channel device, the Version Command Class MUST be supported by the Root Device, while the Version Command Class SHOULD NOT be supported by individual End Points.
\requirement{CC:0086.01.00.21.002}{4}
There may be cases where a given Command Class is not implemented by the Root Device of a Multi Channel device. However, the Root Device MUST respond to Version requests for any Command Class implemented by the Multi Channel device; also in cases where the actual Command Class is only provided by an End Point.
A node supporting a Command Class having a version higher than 1 must support the Version Command Class to be able to identify the supported version. If a node does not support the Version Command Class, version 1 [OBSOLETED] at its highest security level, it may be assumed that all command classes implement version 1.
3.2.44.2. Security Considerations¶
The Version Command Class provides information about the device implementation. This information can potentially be used by an attacker to find vulnerabilities.
\requirement{CC:0086.01.00.41.002}{0}
If a node supports this Command Class and does not support the Security 2 Command Class, it MUST comply with Table 3.163.
After Non-Secure Inclusion |
After Secure Inclusion |
|
|---|---|---|
Non-Secure or Less- Secure communication |
The node MUST support the Version Command Class and advertise it in the NIF. |
The node MUST NOT support the Version Command Class and MUST NOT advertise it in the NIF or Security Commands Supported Report commands. |
Secure communication at the highest security class |
N/A |
The node MUST support the Version Command Class and advertise it in the Security Commands Supported Report commands. |
3.2.44.3. Version Get Command¶
The Version Get Command is used to request the library type, protocol version and application version from a device that supports the Version Command Class.
\requirement{CC:0086.01.11.11.001}{0}
The Version Report Command MUST be returned in response to this command.
\requirement{CC:0086.01.11.11.002}{0}
This command MUST NOT be issued via multicast addressing.
\requirement{CC:0086.01.11.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.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_VERSION (0x86) |
|||||||
Command = VERSION_GET (0x11) |
|||||||
3.2.44.4. Version Report Command¶
The Version Report Command is be used to advertise the library type, protocol version and application version from a device.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_VERSION (0x86) |
|||||||
Command = VERSION_REPORT (0x12) |
|||||||
Z-Wave Library Type |
|||||||
Z-Wave Protocol Version |
|||||||
Z-Wave Protocol Sub Version |
|||||||
Application Version |
|||||||
Application Sub Version |
|||||||
Z-Wave Library Type (8 bits)
\requirement{CC:0086.01.12.11.001}{0}
This field MUST carry the Z-Wave Protocol Library Type.
\requirement{CC:0086.01.12.11.002}{0}
The value MUST comply with Table 3.166.
Library Type |
Description |
Version |
|---|---|---|
0x00 |
N/A |
- |
0x01 |
Static Controller |
1 |
0x02 |
Controller |
1 |
0x03 |
Enhanced End Node |
1 |
0x04 |
End Node |
1 |
0x05 |
Installer |
1 |
0x06 |
Routing End Node |
1 |
0x07 |
Bridge Controller |
1 |
0x08 |
Device Under Test (DUT) |
1 |
0x09 |
N/A |
1 |
0x0A |
AV Remote |
1 |
0x0B |
AV Device |
1 |
\requirement{CC:0086.01.12.11.003}{0}
Values marked as not applicable (N/A) MUST be ignored by a receiving node.
\requirement{CC:0086.01.12.11.004}{0}
All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
Z-Wave Protocol Version & Z-Wave Protocol Sub Version
These fields advertise information specific to Software Development Kits (SDK) provided by stack manufacturers.
Application Version (8 bits)
Returns the Application Version and can have values in the range 0 to 255. The manufacturer assigns the Application Version.
Application Sub Version (8 bits)
Returns the Application Sub Version and can have values in the range 0 to 255. The manufacturer assigns the Application Sub Version.
3.2.44.5. Version Command Class Get Command¶
The Version Command Class Get Command is used to request the individual command class versions from a device.
\requirement{CC:0086.01.13.11.001}{0}
The Version Command Class Report Command MUST be returned in response to this command.
Only versions from the command classes shown in the NIF, in the Security Command Supported Report or in the Multi Channel Capability Report can be requested.
It is not possible to get a version number for the Generic and Specific Device Classes.
\requirement{CC:0086.01.13.11.002}{0}
This command MUST NOT be issued via multicast addressing.
\requirement{CC:0086.01.13.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.
The Version Report Command is be used to advertise the library type, protocol version and application version from a device.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_VERSION (0x86) |
|||||||
Command = VERSION_COMMAND_CLASS_GET (0x13) |
|||||||
Requested Command Class |
|||||||
Requested Command Class (8 bits)
This field is used to indicate the Command Class identifier that is being requested.
3.2.44.6. Version Command Class Report Command¶
The Version Command Class Report Command is used to report the individual command class versions from a device.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_VERSION (0x86) |
|||||||
Command = VERSION_COMMAND_CLASS_REPORT (0x14) |
|||||||
Requested Command Class |
|||||||
Command Class Version |
|||||||
Requested Command Class (8 bits)
The Requested Command Class field specifies what Command Class the returned version belongs to.
Command Class Version (8 bits)
\requirement{CC:0086.01.14.11.001}{4}
If the requested Command Class is supported, this field is used to return the Command Class Version. This field MUST be in the range 1..255. It starts with 1 and is incremented every time a new version of the Command Class is released.
\requirement{CC:0086.01.14.11.002}{0}
If the requested Command Class is not supported or controlled, a responding node MUST set the Command Class Version field to 0x00.