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.

Table 3.163 Version Command Class Support

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.

Table 3.164 Version Get Command

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.

Table 3.165 Version Report Command

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.

Table 3.166 Z-Wave Library Type

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.

Table 3.167 Version Command Class Get Command

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.

Table 3.168 Version Command Class Report Command

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.