4.2.2. Multi Channel Command Class, version 3 [OBSOLETED]

Warning

THIS COMMAND CLASS HAS BEEN OBSOLETED

New implementations MUST NOT support this Command Class.

New implemenetations MUST use the Multi Channel Command Class, version 4, or newer instead.

The Multi Channel command class is used to address one or more End Points in a Multi Channel device.

Refer to Section 4.1.3 for an introduction to the Multi Channel concept.

4.2.2.1. Compatibility Considerations

\requirement{CC:0060.03.00.23.001}{0}

A Multi Channel device MAY implement from 1 to 127 End Points.

\requirement{CC:0060.03.00.21.002}{0}

A Multi Channel device MUST implement all application functionality in End Points.

\requirement{CC:0060.03.00.21.003}{0}

End Point 1 MUST implement the primary application functionality of the actual Multi Channel device.

\requirement{CC:0060.03.00.23.002}{0}

Additional End Points MAY implement an identical functionality; as an example, a power strip may implement five End Points (one for each outlet) with identical functionality.

\requirement{CC:0060.03.00.21.004}{0}

For backwards compatibility, the Root Device MUST mirror the application functionality of End Point 1.

\requirement{CC:0060.03.00.23.003}{0}

Further, the Root Device MAY mirror the application functionalities of additional End Points. As an example, Basic Off and On commands for the Root Device may control all outlets of a power strip with five outlets.

\requirement{CC:0060.03.00.21.005}{0}

With the exception of dynamic End Points, the Root Device MUST advertise all End Point functionality which is mirrored by the Root Device.

\requirement{CC:0060.03.00.22.001}{0}

The Root Device SHOULD NOT advertise the application functionality of any dynamic End Point.

\requirement{CC:0060.03.00.21.006}{0} \requirement{CC:0060.03.00.22.003}{8}

The Root Device of a Multi Channel device MUST only advertise application functionality that can be reached via one or more End Points. However, if the node supports the following Command Classes, they SHOULD only be supported and advertised by the Root Device:

  • Central Scene Command Class

  • Configuration Command Class

  • Anti-Theft Command Class

  • Anti-Theft Unlock Command Class

  • Clock Command Class

  • Time Command Class

  • Time Parameters Command Class

  • Geographic Location Command Class

\requirement{CC:0060.03.00.21.007}{0}

It MUST NOT be possible to limit the functionality, or enable non-compliant behavior of any End Point in the device by sending a command to the Root Device.

4.2.2.1.1. Node information Frame (NIF)

\requirement{CC:0060.03.00.21.001}{0}

A node supporting this Command Class MUST set the Optional Functionality bit in its NIF.

\requirement{CC:0060.03.00.21.00C}{0}

Multi Channel Root Devices MUST advertise their non-secure capabilities via the NIF.

\requirement{CC:0060.03.00.21.00D}{0}

Multi Channel End Points MUST advertise their non-secure capabilities via the Multi Channel Capability Report Command.

\requirement{CC:0060.03.00.21.00E}{0}

Security bootstrapped nodes MUST advertise their capabilities using security encapsulation (for both Root Devices and End Points) via the S0 Security Commands Supported Report Command or the S2 Security 2 Commands Supported Report Command.

Secure End Point capabilities are therefore requested using the following encapsulation:

  • S0/S2 Encapsulation

  • Multi Channel Encapsulation

  • S0/S2 Commands Supported Get/Report Commands

4.2.2.1.2. Dynamic End Point considerations

DYNAMIC END POINTS HAVE BEEN OBSOLETED

Dynamic End Points have been obsoleted. New implementation MUST use dynamic capabilities.

A node may add and/or remove End Points based on a user action, such as changing configuration parameters or the physical addition/removal of a module. When this happen, the node SHOULD treat such behavior as dynamic capabilities [For details, refer to Dynamic Capabilities and Node Discovery] and notify the End Point modification capabilities to the lifeline destinations.

\requirement{CC:0060.03.00.23.004}{0}

An End Point MAY be dynamic. Dynamic End points are intended End Points able to change their capabilities or that can be added and removed from a Multi Channel device.

\requirement{CC:0060.03.00.22.002}{0}

When creating a new dynamic End Point, it SHOULD be assigned an End Point identifier which has not been used recently to allow applications to discover the removal of a dynamic End Point.

\requirement{CC:0060.03.00.21.009}{0}

When a dynamic End Point is removed, all other End Points MUST maintain their current End Point identifiers.

\requirement{CC:0060.03.00.23.005}{0}

A supporting device implementing dynamic End Points MAY advertise the creation, change or removal of a dynamic End Point via the Root Device Lifeline association group by issuing a Multi Channel Capability Report.

\requirement{CC:0060.03.00.21.00A}{0}

A node MUST NOT advertise changes to dynamic End Points via broadcast transmission. A receiving node MUST ignore such broadcasted advertisements.

\requirement{CC:0060.03.00.21.00B}{0}

After advertising the removal, a removed dynamic End Point MUST ignore all commands.

4.2.2.2. Interoperability considerations

\requirement{CC:0060.03.00.53.001}{0} \requirement{CC:0060.03.00.51.001}{8}

A controlling node MAY use Multi Channel Encapsulation Command to communicate with Multi Channel End Points in other nodes. If such a controlling node does not implement any End Points, it MUST NOT advertise the Multi Channel Command Class in its Node Information Frame (NIF) or S0/S2 Commands Supported Report Command.

An example of such device would be a controller or gateway which can control End Points in other supporting nodes via commands from the Root Device of the gateway. Likewise, the Root Device of the gateway may receive unsolicited commands from other nodes End Points.

4.2.2.3. Multi Channel End Point Get Command

This command is used to query the number of End Points implemented by the receiving node.

\requirement{CC:0060.03.07.11.001}{0}

The Multi Channel End Point Report Command MUST be returned in response to this command.

\requirement{CC:0060.03.07.51.001}{0}

This command MUST NOT be issued via multicast addressing.

\requirement{CC:0060.03.07.11.002}{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_MULTI_CHANNEL (0x60)

Command = MULTI_CHANNEL_END_POINT_GET (0x07)

4.2.2.4. Multi Channel End Point Report Command

This command is used to advertise the number of End Points implemented by the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_MULTI_CHANNEL (0x60)

Command = MULTI_CHANNEL_END_POINT_REPORT (0x08)

Dynamic

Identical

Res

Res

End Points

Dynamic (1 bit)

This field is used to advertise if the node implements a dynamic number of End Points.

\requirement{CC:0060.03.08.11.001}{0}

The value 1 MUST be used to indicate that the number of End Points is dynamic.

The value 0 MUST be used to indicate that the number of End Points is static.

Identical (1 bit)

This field is used to advertise if all end points have identical capabilities

\requirement{CC:0060.03.08.11.002}{0}

This bit MUST be set to 1 if all End Points advertise the same Generic and Specific Device Class and support the same Command Classes.

\requirement{CC:0060.03.08.11.003}{0}

This bit MUST be set to 0 if End Points do not advertise the same Device Class or Command Class information.

Res

\requirement{CC:0060.03.08.11.004}{0}

This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

End Points (7 bits)

This field is used to advertise the number of End Points implemented by the sending node.

\requirement{CC:0060.03.08.11.005}{0}

This field MUST be in the range 1..127.

\requirement{CC:0060.03.08.11.006}{0} \requirement{CC:0060.03.08.13.001}{4}

If the sending node implements dynamic End Points, this field MUST advertise the number of End Points currently instantiated by the node. A dynamic End Point MAY be assigned any End Point identifier in the range 2..127.

4.2.2.5. Multi Channel Capability Get Command

This command is used to query the non-secure Command Class capabilities of an End Point.

\requirement{CC:0060.03.09.11.001}{0}

The Multi Channel Capability Report Command MUST be returned in response to this command unless it is to be ignored.

\requirement{CC:0060.03.09.51.001}{0}

This command MUST NOT be issued via multicast addressing.

\requirement{CC:0060.03.09.11.002}{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_MULTI_CHANNEL (0x60)

Command = MULTI_CHANNEL_CAPABILITY_GET (0x09)

Res

End Point

Res

\requirement{CC:0060.03.09.11.003}{0}

This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

End Point (7 bits)

\requirement{CC:0060.03.09.11.004}{0}

This field MUST specify the End Point for which the capabilities MUST be returned.

\requirement{CC:0060.03.09.11.005}{0}

If the specified End Point does not exist, this command MUST be ignored.

If the specified End Point represents a removed dynamic End Point, this command MUST be ignored.

4.2.2.6. Multi Channel Capability Report Command

This command is used to advertise the Generic and Specific Device Class and the supported command classes of an End Point.

\requirement{CC:0060.03.0A.11.002}{0}

When advertising the removal of a dynamic End Point, this command MUST carry the following values:

  • Dynamic MUST be set to 1

  • End Point MUST be set to the actual End Point identifier

  • Generic Device Class MUST be set to 0xFF (GENERIC_TYPE_NON_INTEROPERABLE)

  • Specific Device Class MUST be set to 0x00 (SPECIFIC_TYPE_NOT_USED)

\requirement{CC:0060.03.0A.11.003}{0}

  • The Command Class field MUST be omitted.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_MULTI_CHANNEL (0x60)

Command = MULTI_CHANNEL_CAPABILITY_REPORT (0x0A)

Dynamic

End Point

Generic Device Class

Specific Device Class

Command Class 1

Command Class N

Dynamic (1 bit)

This field is used to advertise if the advertised End Point is dynamic.

\requirement{CC:0060.03.0A.11.001}{0}

This field MUST be set to 1 if this is a dynamic End Point.

This field MUST be set to 0 to indicate that this is a static End Point.

End Point (7 bits)

\requirement{CC:0060.03.0A.11.004}{0}

This field MUST advertise the actual End Point for which the capabilities are advertised.

Generic Device Class (8 bits)

\requirement{CC:0060.03.0A.11.005}{0}

This field MUST carry the Generic Device Class of the advertised End Point. For a detailed description of all available Generic Device Classes, refer to [35] and Section 7 for Z-Wave Plus nodes.

Specific Device Class (8 bits)

\requirement{CC:0060.03.0A.11.006}{0}

This field MUST carry the Specific Device Class of the advertised End Point. For a detailed description of all available Specific Device Classes, refer to [35] and Section 7 for Z-Wave Plus nodes.

Command Class (N bytes)

This field is used to advertise the non-secure supported Command Classes by the actual End Point.

\requirement{CC:0060.03.0A.11.007}{0}

This field MUST be omitted if the advertised End Point does not exist or have been removed. The number of Command Class bytes MUST be determined from the length of the frame.

\requirement{CC:0060.03.0A.11.009}{0}

This field MUST represent the capabilities of an End Point with no security encapsulation.

\requirement{CC:0060.03.0A.11.008}{0}

The Multi Channel Command Class MUST NOT be advertised in this list.

\requirement{CC:0060.03.0A.11.00A}{0}

Non-secure End Point capabilities MUST also be supported securely and MUST also be advertised in the S0/S2 Commands Supported Report Commands unless they are encapsulated outside Security or Security themselves.

\requirement{CC:0060.03.0A.11.00B}{0}

Nodes supporting S0 MUST advertise S0 as supported for each End Point that can be addressed with S0 encapsulation

\requirement{CC:0060.03.0A.11.00C}{0}

Nodes supporting S2 MUST support addressing every End Point with S2 encapsulation and MAY explicitly list S2 in the non-secure End Point capabilities.

4.2.2.7. Multi Channel End Point Find Command

This command is used to request End Points having a specific Generic or Specific Device Class in End Points.

\requirement{CC:0060.03.0B.11.001}{0}

The Multi Channel End Point Find Report Command MUST be returned in response to this command.

\requirement{CC:0060.03.0B.51.001}{0}

This command MUST NOT be issued via multicast addressing.

\requirement{CC:0060.03.0B.11.002}{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_MULTI_CHANNEL (0x60)

Command = MULTI_CHANNEL_END_POINT_FIND (0x0B)

Generic Device Class

Specific Device Class

Generic Device Class (8 bits)

\requirement{CC:0060.03.0B.11.003}{0}

This field MUST indicate the receiving node to return the list of End Points having the specified Generic Device Class.

\requirement{CC:0060.03.0B.11.004}{0}

The value 0xFF MUST indicate that all existing End Points MUST be returned. If this field is set to 0xFF, the Specific Device Class field MUST also be set to 0xFF.

Specific Device Class (8 bits)

\requirement{CC:0060.03.0B.11.005}{0}

This field MUST indicate the receiving node to return the list of End Point having the specified Specific Device Class.

\requirement{CC:0060.03.0B.11.006}{0}

The value 0xFF MUST indicate that the list of all End Points having the specified Generic Device Class MUST be returned.

4.2.2.8. Multi Channel End Point Find Report Command

This command is used to advertise End Points that implement a given combination of Generic and Specific Device Classes.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_MULTI_CHANNEL (0x60)

Command = MULTI_CHANNEL_END_POINT_FIND_REPORT (0x0C)

Reports to Follow

Generic Device Class

Specific Device Class

Res

End Point 1

Res

End Point N

Reports to Follow (8 bits)

This field is used if multiple Report Commands are necessary for returning all the requested End Points.

\requirement{CC:0060.03.0C.11.001}{0}

This field MUST advertise the number of Multi Channel End Point Find Report Command following the actual frame.

Generic Device Class (8 bits)

This field is used to advertise the Generic Device Class of all advertised End Points in this command.

\requirement{CC:0060.03.0C.11.002}{0}

The value 0xFF MUST be advertised if this value was specified in the Multi Channel End Point Find Command.

If 0xFF is advertised, the Specific Device Class field MUST also advertise the value 0xFF.

\requirement{CC:0060.03.0C.13.001}{0}

If the value 0xFF is advertised, the advertised End Points MAY implement different Generic and Specific Device Classes.

Specific Device Class (8 bits)

This field is used to advertise the Specific Device Class of all advertised End Points in this command.

\requirement{CC:0060.03.0C.13.002}{0}

If the value 0xFF is advertised, the advertised End Points MAY implement different specific device classes.

\requirement{CC:0060.03.0C.11.004}{0}

This field MUST be set to 0xFF if the Generic Device Class field is set to 0xFF.

Res

\requirement{CC:0060.03.0C.11.005}{0}

This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

End Point (N * 7 bits)

This field is used to advertise the list of End Point identifier(s) that matches the advertised Generic and Specific Device Class values.

\requirement{CC:0060.03.0C.11.006}{0}

If no End Point matches the advertised Generic Device Class and/or Specific Device Class, the sending node MUST set this field to 0x00 and this field’s size MUST be 7 bits (only 1 list entry).

4.2.2.9. Multi Channel Command Encapsulation

This command is used to encapsulate commands to or from a Multi Channel End Point.

\requirement{CC:0060.03.0D.11.001}{0}

The Multi Channel Command Encapsulation Command MUST NOT carry Source End Point and Destination End Point fields that are both zero.

\requirement{CC:0060.03.0D.13.001}{0} \requirement{CC:0060.03.0D.11.002}{4}

A receiving node MAY respond to a Multi Channel encapsulated command if the Destination End Point field specifies a single End Point. In that case, the response MUST be Multi Channel encapsulated.

\requirement{CC:0060.03.0D.11.003}{0}

A receiving node MUST NOT respond to a Multi Channel encapsulated command if the Destination End Point field specifies multiple End Points via bit mask addressing.

\requirement{CC:0060.03.0D.11.004}{0}

A node MUST NOT return a Multi Channel Encapsulated command in response to a non-encapsulated command.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_MULTI_CHANNEL (0x60)

Command = MULTI_CHANNEL_CMD_ENCAP (0x0D)

Res

Source End Point

Bit address

Destination End Point

Command Class (1 or 2 bytes)

Command

Parameter 1

Parameter N

Res

\requirement{CC:0060.03.0D.11.005}{0}

This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

Source End Point (7 bits)

\requirement{CC:0060.03.0D.11.006}{0}

This field is used to advertise the originating End Point. The Source End Point MUST be in the range 0..127.

\requirement{CC:0060.03.0D.11.007}{0}

The value 0 MUST indicate that the encapsulated command is issued by the Root Device.

Values in the range 1…127 MUST indicate the actual End Point identifier which issues the encapsulated command.

\requirement{CC:0060.03.0D.11.008}{0}

This field MUST be set to a different value than 0 if the Destination End Point field is set to 0.

\requirement{CC:0060.03.0D.11.009}{0}

A node returning a response to a Multi Channel encapsulated command MUST swap the Source and Destination End Point identifiers in this command.

\requirement{CC:0060.03.0D.11.00A}{0}

This field MUST be set to 0 if a sending node does not implement Multi Channel End Points or if the Root Device of the Multi Channel device is issuing a command.

Bit address (1 bit)

This bit is used to advertise if the destination End Point is specified as a bit mask.

\requirement{CC:0060.03.0D.11.00B}{0}

The value 1 MUST indicate that the Destination End Point field is specified as a bit mask.

The value 0 MUST indicate that the Destination End Point field is specified as an End Point identifier.

Destination End Point (7 bits)

This field is used to advertise the destination End Point.

\requirement{CC:0060.03.0D.11.00C}{0}

This field MUST be interpreted based on the “Bit address” value.

\requirement{CC:0060.03.0D.11.00D}{0}

If the Bit Address field is set to 0, the Destination End Point field MUST carry a single End Point identifier value in the range 0..127.

\requirement{CC:0060.03.0D.11.00E}{0}

If the Bit Address field is set to 1, the Destination End Point MUST use the following encoding:

  • Bit 0 in the Destination End Point indicates if End Point 1 is a destination

  • Bit 1 in the Destination End Point indicates if End Point 2 is a destination

\requirement{CC:0060.03.0D.11.00F}{0}

The bit value 0 MUST be used to advertise that the corresponding End Point is not a destination.

The bit value 1 MUST be used to advertise that the corresponding End Point is a destination.

Command Class (8 bits or 16 bits)

\requirement{CC:0060.03.0D.11.011}{0}

This field MUST specify the Command Class identifier of the encapsulated Command. This field MUST carry a normal Command Class (8 bits) or an Extended Command Class (16 bits)

Command (8 bits)

\requirement{CC:0060.03.0D.11.012}{0}

This field MUST specify the Command identifier of the encapsulated command.

Parameter (N bytes)

\requirement{CC:0060.03.0D.11.010}{0}

This field MUST carry the payload of the encapsulated command. The length of this field MUST be determined from the Z-Wave frame length.