2.2.91. Schedule Command Class, version 4

The Schedule Command Class, version 4 allows supporting nodes to advertise the list of commands they support for scheduling.

2.2.91.1. Compatibility Considerations

The Schedule Command Class version 4 introduces the possibility to advertise the list of command supported for scheduling and explicitly allows scheduling extended command classes. The following commands are introduced:

  • Schedule Supported Commands Get Command

  • Schedule Supported Commands Report Command

The following functionalities become obsoleted:

  • Redundant values in the Active_ID field encoding

  • The Report to Follow field.

A supporting node no longer needs to be able to parse and handle several commands in order to set or report schedules or schedules states. Supporting nodes MUST use the Transport Service Command Class, version 2 in order to transmit long Z-Wave payloads.

\requirement{CC:0053.04.00.21.001}{0}

A node supporting the Schedule Command Class, version 4 MUST also support version 3. Commands and fields not mentioned in this version MUST remain unchanged from version 3.

2.2.91.2. Schedule Supported Report Command

This command is used to advertise the scheduling properties of a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE (0x53)

Command = SCHEDULE_SUPPORTED_REPORT (0x02)

Number of Supported Schedule IDs

Support

Enable/Disable

Fallback

Support

Start Time Support

Number of Supported CC

Supported CC 1

Reserved

Supported

Command 1

Supported CC N

Reserved

Supported

Command N

Override

Support

Supported Override Types

Schedule ID Block

Number of Supported Schedule Blocks

All fields not described below remain unchanged from version 3.

Supported Command (N * 2 bits)

\requirement{CC:0053.04.02.11.001}{0}

This field MUST advertise the supported commands for the command class entry. This field MUST comply with Table 2.510.

Table 2.510 Schedule Supported Report version 4::Supported Command

Value

Description

Version

0x00

All Commands within the Command Class are supported.

1

0x01

Only Set Commands are supported.

1

0x02

Only Get Commands are supported.

1

0x03

Custom list of commands are supported.

4

\requirement{CC:0053.04.02.11.002}{0}

Certain command classes commands do not contain the string “Set” or “Get” in their name. Nodes MUST consider all commands mandating to return a response to be of type “Get” and all other commands to be of type “Set”.

\requirement{CC:0053.04.02.11.003}{0}

The length of this field in bytes MUST be according to the Number of supported CC field value.

\requirement{CC:0053.04.02.11.004}{0}

A supporting node MUST NOT advertise the 0x03 value if the list of supported command can be advertised with the other values.

\requirement{CC:0053.04.02.52.001}{0}

If a sending node advertises 0x03 for a given Schedule ID Block and Command Class, a controlling node SHOULD retrieve the exact list of supported commands using the Schedule Supported Commands Get Command.

2.2.91.3. Schedule Supported Commands Get Command

This command is used to query the list of commands that can be scheduled within for a given command class and Schedule ID Block.

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

The Schedule Supported Commands Report Command MUST be returned in response to this command.

\requirement{CC:0053.04.0A.51.001}{0}

This command MUST NOT be issued via multicast addressing.

\requirement{CC:0053.04.0A.11.002}{4}

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_SCHEDULE (0x53)

Command = SCHEDULE_SUPPORTED_COMMANDS_GET (0x0A)

Schedule ID Block

Schedule ID Block (8 bits)

This field is used to request a particular Schedule ID Block.

\requirement{CC:0053.04.0A.12.001}{4}

If a non-supported Schedule ID Block is specified, a receiving node SHOULD return a response for the Schedule ID block 1.

2.2.91.4. Schedule Supported Commands Report Command

This command is used to advertise the list of commands that can be scheduled within a given Schedule ID Block

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE (0x53)

Command = SCHEDULE_SUPPORTED_COMMANDS_REPORT (0x0B)

Schedule ID Block

Command Class List Length

Command Class 1 (1 or 2 bytes)

Supported Command List Length 1

Supported Command 1 - 1

Supported Command 1 - K

Command Class N (1 or 2 bytes)

Supported Command List Length N

Supported Command N - 1

Supported Command N - K

Schedule ID Block (8 bits)

This field is used to specify the requested Schedule ID Block.

Command Class List Length (8 bit)

This field is used to advertise the number of command classes contained in the command.

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

This field MUST be set to the number of Command Class entries present in this command (represented by N in the command structure).

Command Class (8 or 16 bits)

\requirement{CC:0053.04.0B.13.001}{0}

This field is used to indicate the command class to which the advertised commands belong. This field MAY carry extended Command Classes

Supported Command List Length (8 bits)

This field is used to advertise how many commands are advertised in the current Command Class’ list.

\requirement{CC:0053.04.0B.11.002}{0}

This field MUST be set to the number of Supported Commands present in the current Command Class entry (represented by K in the command structure).

Supported Command (K bytes)

This field is used to advertise the list of commands for the given Command Class entry that can be scheduled for the actual Schedule ID Block.

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

The length of this field in bytes MUST be according to the corresponding Supported Command List Length field value.

2.2.91.5. Schedule Set Command

This command is used to create a new schedule or modify an existing schedule.

\requirement{CC:0053.04.03.11.001}{0}

This command MUST enable the schedule if a new schedule is created.

\requirement{CC:0053.04.03.11.002}{0}

This command MUST NOT change the enabled/disabled state of existing schedules

\requirement{CC:0053.04.03.11.003}{0}

If the receiving node supports S0 or S2 Command Class, it MUST NOT process the schedule creation if any of the scheduled command classes is not supported at the security level of the received Schedule Set Command.

\requirement{CC:0053.04.03.11.004}{0}

A controlling node using previous versions may try to schedule unsupported commands. In this case, a receiving node MUST ignore the Schedule Set Command.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE (0x53)

Command = COMMAND_SCHEDULE_SET (0x03)

Schedule ID

Schedule ID Block

Start Year

Recurrence Offset

Start Month

Reserved

Recurrence Mode

Start Day of Month

Reserved

Start Weekday

Duration Type

Start Hour

Reserved

Relative

Start Minute

Duration Byte 1 MSB

Duration Byte 2 LSB

Reports to Follow [OBSOLETED]

Number of Cmd to Follow

Cmd Length 1

Cmd Byte 1 - 1

Cmd Byte 1 - N

Cmd Length P

Cmd Byte P - 1

Cmd Byte P - N

Fields not described below remain unchanged from version 3.

Reports to Follow (8 bits) [OBSOLETED]

\requirement{CC:0053.04.03.11.005}{0}

This field has been OBSOLETED: a sending node MUST use the Transport Service Command Class in order to set a schedule containing commands payload too large to fit in the Z-Wave MAC frame size.

\requirement{CC:0053.04.03.11.006}{0}

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

2.2.91.6. Schedule Report Command

The Schedule Report Command is used to advertise the configuration for a specific schedule.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE (0x53)

Command = COMMAND_SCHEDULE_REPORT (0x05)

Schedule ID Block

Reserved

Start Year

Active_ID /

Recurrence Offset

(AID_RO)

Start Month

AID_RO_CTL

Start Day of Month

Reserved

Start Weekday

Duration Type

Start Hour

Reserved

Start Minute

Duration Byte 1

Duration Byte 2

Report to Follow [OBSOLETED]

Number of Cmd to Follow

Cmd Length 1

Cmd Byte 1 - 1

Cmd Byte 1 - N

Cmd Length P

Cmd Byte P - 1

Cmd Byte P - N

Fields not described below remain unchanged from version 3.

Active_ID/Recurrence Offset (4 bits)

This field is used to advertise the Active_ID or the Recurrence Offset of the advertised schedule.

\requirement{CC:0053.04.05.11.001}{0}

If this field carries the Active_ID value, this field MUST be encoded according to Table 2.511.

\requirement{CC:0053.04.05.11.002}{0}

If this field carries the Recurrence Offset, this field MUST be encoded according to Table 2.509 and MUST be interpreted together with the Recurrence Mode field.

Reports to Follow (8 bits) [OBSOLETED]

\requirement{CC:0053.04.05.11.003}{0}

This field has been OBSOLETED: a sending node MUST use the Transport Service Command Class in order to report a schedule containing commands payload too large to fit in the Z-Wave MAC frame size.

\requirement{CC:0053.04.05.11.004}{0}

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

2.2.91.7. Schedule State Report Command

This command is used to advertise the status of all schedules supported by the specified schedule block.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE (0x53)

Command = SCHEDULE_STATE_REPORT (0x09)

Number of Supported Schedule ID

Reports to Follow [OBSOLETED]

Override

Active_ID 2

Active_ID 1

Active_ID N

Active_ID N-1

Schedule ID Block

Fields not described below remain unchanged from version 3.

Reports to Follow (7 bits) [OBSOLETED]

\requirement{CC:0053.04.09.11.001}{0}

This field has been OBSOLETED: a sending node MUST use the Transport Service Command Class in order to advertise an Active_ID field too large to fit in the Z-Wave MAC frame size.

\requirement{CC:0053.04.09.11.002}{0}

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

Active_ID (N * 4 bits)

\requirement{CC:0053.04.09.11.003}{0}

The Active_ID field MUST be used to advertise the status for each supported schedule ID. Four bits are used for each Schedule ID to indicate the status. This means that :

  • Bits 0 to 3 in Active_ID byte 1 represent Schedule ID = 1,.

  • Bits 4 to 7 in Active_ID byte 1 represent Schedule ID = 2

  • Bits 0 to 3 in Active_ID byte 2 represent Schedule ID = 3

\requirement{CC:0053.04.09.11.004}{0}

The size of this field MUST be the smallest number of bytes needed to advertise the number of supported Schedule IDs advertised in this command.

\requirement{CC:0053.04.09.11.005}{0}

Each 4 bits unit MUST be encoded according to Table 2.511.

Table 2.511 Active_ID encoding, version 4

Hex

Description

Detailed description

Version

0x00

Not used

The Schedule ID is not used (not set/configured) or unsupported

1

0x01

[OBSOLETED]

Override + Not used

[OBSOLETED]

\requirement{CC:0053.04.09.11.006}{0}

A sending node MUST NOT use this status and MUST use 0x00 instead (and the override field set to 1 for the Schedule State Report Command).

4

0x02

Not Active

The Schedule ID is used, enabled and currently not active.

1

0x03

Active

The Schedule ID is used, enabled and currently active.

1

0x05

Override + Active

The Schedule ID is used, enabled and should currently be active but it is suspended by the Override Schedule

\requirement{CC:0053.04.09.11.007}{0}

The override field MUST be set to 1 when using this status in the Schedule State Report Command

1

0x06

[OBSOLETED]

Override + Not Active

[OBSOLETED]

\requirement{CC:0053.04.09.11.008}{0}

A sending node MUST NOT use this status and MUST use 0x02 instead. (and the override field set to 1 for the Schedule State Report Command).

4

0x07

[OBSOLETED]

Override + Disabled

[OBSOLETED]

\requirement{CC:0053.04.09.11.009}{0}

A sending node MUST NOT use this status and MUST use 0x04 instead. (and the override field set to 1 for the Schedule State Report Command).

4

\requirement{CC:0053.04.09.11.00A}{0}

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.