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.
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.
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.