2.2.90. Schedule Command Class, version 3¶
The Schedule Command Class, version 3 allows scheduling the execution of commands for a given duration in a supporting node. It is a generic command class that may be used to schedule commands of any other Command Class.
2.2.90.1. Terminology¶
The Schedule Command Class version 3 introduces new terminology, complementing the terminology introduced in The Schedule Command Class version 1:
Regular schedules may be triggered repeatedly by two mechanisms.
From version 1, a Repeating Schedule can be created by setting parts of the start time to unspecified values, e.g. if month is unspecified, the schedule can start the first day of each month.
From version 3, Recurrence settings may specify additional periodical triggers, e.g. every second day measured from the most recent trigger of the regular schedule.
2.2.90.2. Compatibility Considerations¶
The Schedule Command Class, version 3 is backwards compatible with version 2.
\requirement{CC:0053.03.00.21.001}{0}
A node supporting the Schedule Command Class, version 3 MUST also support version 2.
The Schedule Command Class version 3 introduces the “Recurring Mode” start mode and “Time from now” start time option.
The “Time from now” start time option allows to set a schedule to start a after a given time from the reception of the command.
The “Recurring Mode” start mode allows to set a schedule to restart repeatedly at fixed intervals since the last activation, e.g. every second day or every 6 months since the last activation.
The Active_ID advertised in the Schedule Report Command of versions 1 and 2 is now overloaded with the Recurrence Offset field. A new AID_RO_CTL flag in the Schedule Get Command controls which value is actually returned.
All commands or fields not described in this version remain unchanged from version 2.
2.2.90.3. Schedule Supported Report Command¶
This command is used to advertise the scheduling functionalities supported by a node.
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 |
|||||||
Fields not described below remain unchanged from version 2.
Start Time Support (6 bits)
This field is used to advertise the start time options supported by the sending node.
\requirement{CC:0053.03.02.11.001}{0}
Regular schedules MUST support the advertised start time options.
\requirement{CC:0053.03.02.12.001}{0}
The Override Schedule SHOULD support the advertised start time options.
\requirement{CC:0053.03.02.11.002}{0}
The Override Schedule MUST NOT support the Recurring Mode.
\requirement{CC:0053.03.02.11.003}{0}
This field MUST be treated as a bitmask and MUST be encoded according to Table 2.507.
Category |
Bit |
Indicates support for |
Version |
|---|---|---|---|
Start Time option |
0 |
Start now. Refer to Section 2.2.88.5. |
1 |
1 |
Start Hour and Minute. Refer to Section 2.2.88.6. |
1 |
|
2 |
Calendar time. Refer to Section 2.2.88.7. |
1 |
|
3 |
Weekdays. Refer to Section 2.2.88.8. |
1 |
|
4 |
Time from now. Refer to Section 2.2.90.3.1. |
3 |
|
Start Time mode |
5 |
Recurring Mode. Refer to Section 2.2.90.3.2. |
3 |
Each bit indicates the support for a given Start Time option or mode.
\requirement{CC:0053.03.02.11.004}{0}
The value 1 MUST indicate that the node supports the corresponding start time option/mode.
\requirement{CC:0053.03.02.11.005}{0}
The value 0 MUST indicate that the node does not support the corresponding start time option/mode.
While support is advertised as a bitmap, the actual functionality is triggered by different combinations of Schedule Set start time fields. The following subsections outline the mandatory supported combinations when advertising support for the corresponding option.
2.2.90.3.1. Start Time Option: Start from now¶
The start now option is used to make a configured schedule start after the indicated time has elapsed from the reception of the Schedule Set Command.
\requirement{CC:0053.03.02.11.006}{0}
The Start from now option MUST cause a schedule to be activated at the specified relative time measured from the reception of the Schedule Set Command and run for the specified duration.
\requirement{CC:0053.03.02.11.007}{0}
A node supporting the Time from now option MUST support the creation of a schedule with the following start time fields’ combination:
Relative = ‘1’ and
YYMMDD = 0xFF, 0x00, Days, Weekdays = 0x00, HH:MM = Hours:Minutes
\requirement{CC:0053.03.02.11.008}{0}
A receiving node MUST ignore all combinations which do not comply with the one above if the Relative flag is set.
\requirement{CC:0053.03.02.11.009}{0}
A node supporting this option is NOT REQUIRED to support the Start hour and Minute option or Calendar time option even though it MUST be able to read the start day, start hour and start minutes fields when using this option.
2.2.90.3.2. Start Time Mode: Recurring Mode¶
This mode is used to trigger a schedule repeatedly at fixed intervals. When using this mode, a schedule will start at the specified start time and will restart after a given time has elapsed since the last activation.
The recurring mode is configured with the Recurrence Offset and Recurrence Mode fields of the Schedule Set Command.
\requirement{CC:0053.03.02.11.00A}{0}
A node supporting the Recurring Mode MUST support at least one start time option.
2.2.90.4. Schedule Set Command¶
This command is used to create a new schedule or modify an existing schedule
\requirement{CC:0053.03.03.11.001}{0}
This command MUST enable the schedule if a new schedule is created.
\requirement{CC:0053.03.03.11.002}{0}
This command MUST NOT change the enabled/disabled state of existing schedules.
\requirement{CC:0053.03.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.
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 |
|||||||
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 2.
Reserved
\requirement{CC:0053.03.03.11.004}{0}
This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
2.2.90.4.1. Recurrence fields¶
The recurrence settings of a schedule are set by the following fields:
Recurrence Mode
Recurrence Offset
\requirement{CC:0053.03.03.11.005}{0}
These fields MUST be ignored by a node advertising no support for the Recurring Mode start time mode in the Schedule Supported Report Command.
Recurrence mode (2 bits)
This field is used to specify the unit of the Recurrence Offset field.
This field MUST comply with Table 2.508.
Value |
Description |
Version |
|---|---|---|
0x00 |
The recurrence Offset is expressed in Hours. |
3 |
0x01 |
The recurrence Offset is expressed in Days. |
3 |
0x02 |
The recurrence Offset is expressed in Weekd |
3 |
\requirement{CC:0053.03.03.11.007}{0}
All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
\requirement{CC:0053.03.03.11.008}{0}
This field MUST be ignored if the Recurrence Offset field is set to 0.
Recurrence Offset (4 bits)
This field is used to specify the interval at which the recurring schedule will be triggered.
\requirement{CC:0053.03.03.11.009}{0}
This field MUST be encoded according to Table 2.509 and MUST be interpreted together with the Recurrence Mode field.
Offset |
Description |
|---|---|
0 |
Recurrence Disabled |
1..15 |
Repeat every 1..15 hour, day or week. The unit (hour, day, or week) is indicated by the Recurrence Mode field. |
\requirement{CC:0053.03.03.11.00A}{0} \requirement{CC:0053.03.03.11.00B}{4} \requirement{CC:0053.03.03.11.00C}{8}
When a schedule starts due to its start time options, it MUST restart the current recurrence timer. It means that a schedule MUST start every time the start time condition is met and the recurrence offset MUST trigger the schedule to restart based on the last time it started.
\requirement{CC:0053.03.03.11.00D}{0}
For example, a schedule set to start on the 1st of each month with a 2 day recurrence offset MUST start on the 1st, 3rd, 5th, …, 27th, 29th, 31st and will start again the next month on the 1st, 3rd, etc.
\requirement{CC:0053.03.03.11.00E}{0}
A receiving node MUST accept a schedule set to start in the past if recurrence is enabled. In this case, the recurrence MUST trigger the schedule to restart based on the time it should have been started last.
2.2.90.4.2. Start time fields¶
The Schedule start time is defined by the following fields:
Start Year
Start Month
Start Day of Month
Start Weekday
Start Hour
Start Minute
Relative
\requirement{CC:0053.03.03.11.00F}{0}
A receiving node MUST support the start time fields combinations indicated in sections Section 2.2.88.5, Section 2.2.88.6, Section 2.2.88.7, Section 2.2.88.8 and Section 2.2.90.3.1 if the corresponding start time option is supported.
\requirement{CC:0053.03.03.11.010}{0} \requirement{CC:0053.03.03.11.011}{4}
If none of the start time fields are specified, the schedule MUST start immediately if the start now option is supported. In this case, the schedule MUST NOT be activated again at a later time unless receiving another Schedule Set Command.
Relative (1 bit)
This field is used to indicate if the schedule start time is using the start from now start option.
\requirement{CC:0053.03.03.11.012}{0} \requirement{CC:0053.03.03.11.013}{4} \requirement{CC:0053.03.03.11.014}{8}
The value 1 MUST indicate that the start time fields MUST be interpreted as the time left before the schedule starts. In this case, the start time fields MUST be set and interpreted as indicated in Section 2.2.90.3.1 and the schedule MUST NOT be activated again at a later time unless receiving another Schedule Set Command.
\requirement{CC:0053.03.03.11.015}{0}
The value 0 MUST indicate that the start time fields MUST be interpreted as an absolute start time for the schedule.
2.2.90.5. Schedule Get Command¶
This command is used to request the configuration for a specific schedule ID.
\requirement{CC:0053.03.04.11.001}{0}
The Schedule Report Command MUST be returned in response to this command.
\requirement{CC:0053.03.04.11.002}{0}
This command MUST NOT be issued via multicast addressing.
\requirement{CC:0053.03.04.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_SCHEDULE (0x53) |
|||||||
Command = COMMAND_SCHEDULE_GET (0x04) |
|||||||
Schedule ID |
|||||||
Schedule ID Block |
|||||||
AID_RO_CTL |
Reserved |
||||||
Fields not described below remain unchanged from version 2.
Active_ID / Recurrence Offset control (AID_RO_CTL) (1 bit)
This field is used to request either the Active_ID or the Recurrence Offset value in the Schedule Report Command which is returned in response to this command.
\requirement{CC:0053.03.04.11.004}{0}
A receiving node MUST return a Schedule Report Command advertising the Active_ID of the Schedule if this field is set to 0.
\requirement{CC:0053.03.04.11.005}{0}
A receiving node MUST return a Schedule Report Command advertising the Recurrence Offset of the schedule if this field is set to 1.
2.2.90.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 |
|||||||
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 2.
Active_ID/Recurrence Offset (AID_RO) (4 bits)
This field is used to advertise the Active_ID or the Recurrence Offset of the advertised schedule.
\requirement{CC:0053.03.05.11.001}{0}
If this field carries the Active_ID value, this field MUST be encoded according to Table 2.506.
\requirement{CC:0053.03.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.
Active_ID / Recurrence Offset control (AID_RO_CTL) (1 bit)
This field is used to indicate whether the Active_ID or the Recurrence Offset value is advertised in the command.
\requirement{CC:0053.03.05.11.003}{0}
The value 0 MUST indicate that the Active_ID/Recurrence Offset (AID_RO) field carried the Active_ID value.
\requirement{CC:0053.03.05.11.004}{0}
The value 1 MUST indicate that the Active_ID/Recurrence Offset (AID_RO) field carried the Recurrence Offset value.
Recurrence mode (2 bits)
This field is used to specify the Recurrence Offset unit.
\requirement{CC:0053.03.05.11.005}{0}
This field MUST be ignored if the AID_RO_CTL field is set to 0.
\requirement{CC:0053.03.05.11.006}{0}
This field MUST comply with Table 2.508 if the AID_RO_CTL field is set to 1.