2.2.88. Schedule Command Class, version 1¶
The Schedule Command Class allows scheduling the execution of commands for a given duration in a supporting device. It is a generic Command Class that may be used to schedule commands of any other Command Class.
2.2.88.1. Terminology¶
A schedule or regular schedule is a delayed execution of one or more commands for a given duration. The commands used in a schedule are typically “Set” type commands, affecting actuating resources or states.
A schedule is first created or set, meaning that an available Schedule ID is used and has been assigned a set of commands, a starting time and a duration.
A schedule can be removed, meaning that a previously set Schedule ID is freed and the assigned commands, starting time and duration are erased.
A schedule is active during the configured duration after its starting time.
When a schedule is active, the states affected by the schedule commands are temporarily changed.
When a schedule becomes inactive, the states affected by the schedule commands are restored to their previous values.
Several schedules can overlap and be active simultaneously.
Supporting nodes can optionally support enabling and disabling schedules. By default, a schedule is enabled when being created. When a schedule is disabled, it will never become active, even if the start time condition is met. It allows a controlling node to quickly enable/disable schedules without erasing the schedules configuration from the supporting nodes.
When all schedules are inactive, the supporting node is said to be operating in Normal Mode. Regardless of whether any schedule is active, Normal Mode’s states are permanently affected by direct commands (issued without Schedule encapsulation). State changes triggered by schedules do not affect Normal Mode.
Figure 2.24 Simple daily schedules (example)¶
Direct commands affecting the states of a currently active schedule will cause those states to go back to normal mode and the corresponding normal mode states/values to be permanently changed.
Figure 2.25 Receiving a direct command during daily schedules (example)¶
There are 2 types of special schedules.
If a Fall Back Schedule is created, it takes over the role of the Normal Mode. The Fall Back Schedule is activated when all other schedules are inactive. Fall Back Schedule is used to define default settings or states for the normal mode
If an Override Schedule is created, it suspends all other schedules. An override schedule may have a start time or start immediately. An override schedule may have a duration, run until stopped or run until another regular schedule starts. An example is given in the figure below
Figure 2.26 Daily schedules and an “Advance” Override Schedule (example)¶
An overview of the Schedule types and priorities is given in Table 2.498.
Priority |
Term |
Description |
|---|---|---|
(highest) |
Direct command |
Affects device state immediately. Permanently affects Normal Mode. |
(higher) |
Override Schedule (Schedule ID = 0xFF) |
All other schedules are suspended as long as the override schedule is active. |
(normal) |
Regular Schedule(s) (Schedule ID in [1..Supported number of schedules]) |
One or more schedules defining intended behavior. |
(lower) |
Fall Back Schedule (Schedule ID = 0xFE) |
Fall Back Schedule becomes active when no other schedule is currently active. If the Fall Back Schedule is defined, Normal Mode is never reached, unless receiving direct commands. |
(lowest) |
Normal Mode |
No schedules are currently active. |
2.2.88.2. Interoperability Considerations¶
\requirement{CC:0053.01.00.31.001}{0}
A schedule causes a temporary state change that only applies to the duration of the schedule. The state value(s) of the Normal Mode MUST NOT be affected by any command executed as part of a schedule.
\requirement{CC:0053.01.00.31.002}{0}
The state value(s) of the Normal Mode MUST be restored when the affecting Schedule become inactive.
\requirement{CC:0053.01.00.32.001}{4}
Schedules are set with a start time, which requires the supporting node to be aware of the current date and/or time. It is RECOMMENDED to support the Time Command Class, version 3 or higher in order to allow a controlling node to verify or configure correct date/time settings at the supporting node.
2.2.88.2.1. Override Schedule¶
\requirement{CC:0053.01.00.31.003}{0}
When the Override Schedule is active, all regular schedules MUST be suspended.
\requirement{CC:0053.01.00.31.004}{0}
When the Override Schedule ends, all suspended schedules MUST resume the state they would have had if the Override Schedule had not been activated.
\requirement{CC:0053.01.00.32.002}{0}
If the Override Schedule is created with a duration type not set to Override, a receiving node SHOULD respect the specified duration for the Override Schedule.
\requirement{CC:0053.01.00.31.005}{0}
A supporting node MUST respect the specified duration for all regular schedules.
2.2.88.2.2. Fall Back Schedule¶
\requirement{CC:0053.01.00.31.006}{0}
If no Fall Back Schedule is set, a supporting node MUST return to Normal Mode when no schedule is currently active.
\requirement{CC:0053.01.00.31.007}{0}
If a Fall Back Schedule is set, a supporting node MUST:
Activate the Fall Back Schedule when no other schedule is active.
De-activate the Fall Back Schedule if any other schedule becomes active.
Direct commands state changes MUST be active until the start of a new schedule affecting the same state values.
2.2.88.2.3. Multi Channel considerations¶
A Multi Channel device may support different schedule types and command classes for each Multi Channel End Point. An example is a central heating boiler with a thermostat for room heating and another thermostat for water heating. Each system may implement regular weekday+time schedules as well as an override schedule for manual intervention.
\requirement{CC:0053.01.00.32.003}{0}
In any case, it is RECOMMENDED that multi-function devices support the Multi Channel Command Class, so that each End Point supports its own scheduling functionality.
2.2.88.3. Schedule Supported Get Command¶
This command is used to query the schedule functionalities supported by a node.
\requirement{CC:0053.01.01.11.001}{0}
The Schedule Supported Report Command MUST be returned in response to this command.
\requirement{CC:0053.01.01.11.002}{0}
This command MUST NOT be issued via multicast addressing.
\requirement{CC:0053.01.01.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 = SCHEDULE_SUPPORTED_GET (0x01) |
|||||||
2.2.88.4. Schedule Supported Report Command¶
This command is used to advertise the schedule 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 |
||||||
Number of Supported Schedule IDs (8 bits)
\requirement{CC:0053.01.02.11.001}{0}
This field MUST advertise the number of regular Schedule IDs supported by the node.
\requirement{CC:0053.01.02.11.002}{0}
The implemented Schedule IDs MUST be in the range 1..[Number of Supported Schedule IDs]. i.e. a node supporting 10 regular schedules MUST accept Schedule ID values in the range 1..10.
\requirement{CC:0053.01.02.13.001}{0}
The following special Schedule IDs MAY also be supported by a device:
Schedule ID = 0xFF (Override Schedule)
Schedule ID = 0xFE (Fall Back schedule)
\requirement{CC:0053.01.02.11.003}{0}
Special Schedule IDs MUST NOT be included in the number advertised in this field.
Start Time Support (6 bits)
This field is used to advertise the start time options supported for regular schedules by a node.
\requirement{CC:0053.01.02.11.004}{0}
Regular schedules MUST support the advertised start time options.
\requirement{CC:0053.01.02.12.001}{0}
The Override Schedule SHOULD support the advertised start time options.
\requirement{CC:0053.01.02.11.005}{0}
This field MUST be treated as a bitmask and MUST be encoded according to Table 2.499.
Bit |
Indicates support for |
Version |
|---|---|---|
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..5 |
Reserved |
N/A |
Each bit indicates the support for a given Start Time option.
\requirement{CC:0053.01.02.11.006}{0}
The value 1 MUST indicate that the node supports the corresponding start time option.
\requirement{CC:0053.01.02.11.007}{0}
The value 0 MUST indicate that the node does not support the corresponding start time option.
While support is advertised as a bitmask, 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.88.5. Start Time Option: Start Now¶
The start now option is used to make a configured schedule start immediately (upon reception of the Schedule Set Command).
\requirement{CC:0053.01.02.11.008}{0}
A node that supports the start now option, MUST support the creation of a schedule starting immediately when all start time fields are left unspecified.
2.2.88.6. Start Time Option: Hour and Minute¶
The start hour and minute option is used to make a schedule start at a specified time of the day.
\requirement{CC:0053.01.02.11.009}{0}
If Start Hour and Start Minute are specified, node supporting this option MUST activate the schedule at the specified start time.
\requirement{CC:0053.01.02.11.00A}{0}
A node supporting the Hour and Minute start option MUST support the creation of a schedule with the following start time fields’ combination:
Every day @ Hour:Minute
(YYMMDD = 0xFF, 0x00, 0x00, Weekdays = 0x00, HH:MM = Hour:Minute)
\requirement{CC:0053.01.02.11.00B}{0}
A node that also supports the Weekdays start option MUST support the creation of a schedule with the following start time fields’ combination:
Same weekday(s) every week @ Hour:Minute
(YYMMDD = 0xFF, 0x00, 0x00, Weekdays = weekdays, HH:MM = Hour:Minute)
\requirement{CC:0053.01.02.11.00C}{0}
A node that also supports the Calendar Time start option MUST support the creation of a schedule with the following start time fields’ combination:
Same day every month @ Hour:Minute
(YYMMDD = 0xFF, 0x00, day, Weekdays = 0x00, HH:MM = Hour:Minute)
Same day every year @ Hour:Minute
(YYMMDD = 0xFF, month, day, Weekdays = 0x00, HH:MM = Hour:Minute)
One specific date in a specific year @ Hour:Minute
(YYMMDD = year, month, day, Weekdays = 0x00, HH:MM = Hour:Minute)
2.2.88.7. Start Time Option: Calendar Time¶
The calendar time option is used to make a schedule start at a specified date.
\requirement{CC:0053.01.02.11.00D}{0}
If Start Year, Start Month and Start Day are specified, node supporting this option MUST activate the schedule at the specified date(s).
\requirement{CC:0053.01.02.11.00E}{0}
A node that supports the Calendar Time option MUST support the creation of a schedule with the following start time fields’ combination:
Same day every month @ 00:00
(YYMMDD = 0xFF, 0x00, day, Weekdays = 0x00, HH:MM = 0x1F, 0x3F)
Same day every year @ 00:00
(YYMMDD = 0xFF, month, day, Weekdays = 0x00, HH:MM = 0x1F, 0x3F)
One specific date in a specific year @ 00:00
(YYMMDD = year, month, day, Weekdays = 0x00, HH:MM = 0x1F, 0x3F)
2.2.88.8. Start Time Option: Weekday¶
The start weekday option is used to make a schedule start at on specified weekdays.
\requirement{CC:0053.01.02.11.00F}{0}
If weekdays are specified, node supporting this option MUST activate the schedule on the specified weekdays.
A node that supports the Weekdays option MUST support the creation of a schedule with the following start time fields’ combination:
Same weekday(s) every week @ 00:00
(YYMMDD = 0xFF, 0x00, 0x00, Weekdays = weekdays, HH:MM = 0x1F, 0x3F)
Fall Back Support (1 bit)
This bit is used to advertise the support of the Fall Back Schedule (Schedule ID = 0xFE).
\requirement{CC:0053.01.02.11.011}{0}
The bit MUST be set to 1 if the node supports the Fall Back Schedule.
\requirement{CC:0053.01.02.11.012}{0}
The bit MUST be set to 0 if the node does not support the Fall Back Schedule.
Support Enable/Disable (1 bit)
This bit is used to advertise the support for enabling/disabling set/used schedules via the Schedule State Set Command.
\requirement{CC:0053.01.02.11.013}{0}
The bit MUST be set to 0 if the node supports enabling/disabling schedules.
\requirement{CC:0053.01.02.11.014}{0}
The bit MUST be set to 1 if the node does not support enabling/disabling schedules.
\requirement{CC:0053.01.02.11.015}{0}
A node that does not support enabling/disabling schedules MUST consider every set/used schedule ID as enabled.
Number of supported CC (8 bits)
\requirement{CC:0053.01.02.11.016}{0}
This field MUST advertise the number of supported Command Classes advertised in this command with the Supported CC and Supported Command fields.
\requirement{CC:0053.01.02.11.017}{0}
The value 0xFF MUST be used if all the command classes supported by the node are also supported for scheduling. If this field is set to 0xFF:
\requirement{CC:0053.01.02.11.018}{0}
This command MUST NOT carry any Command Class entries (Supported CC and Supported Command fields).
\requirement{CC:0053.01.02.11.019}{0}
The node MUST support “Get” as well as “Set” commands. (i.e. Supported Commands fields set to 0x00)
Supported CC (N * 8 bits)
This field is used to advertise the list of Command Classes that can be scheduled by the node.
\requirement{CC:0053.01.02.11.01A}{0}
The length of this field MUST be according to the Number of supported CC field value.
\requirement{CC:0053.01.02.11.01B}{0}
A sending node MUST support every Command Class advertised in this field.
\requirement{CC:0053.01.02.12.002}{0}
A sending node SHOULD NOT advertise the Supervision Command Class in this field.
\requirement{CC:0053.01.02.11.01C}{0}
A sending node MUST NOT advertise the following encapsulation Command Classes:
S0/S2 Command Class
Transport Service Command Class
Multi Channel Command Class
Multi Command Command Class
Supported Command (N * 2 bits)
\requirement{CC:0053.01.02.11.01D}{0}
This field MUST advertise the supported commands for the actual command class entry. This field MUST comply with Table 2.500.
Value |
Description |
Version |
|---|---|---|
0x00 |
Both Set and Get Commands are supported |
1 |
0x01 |
Only Set Commands are supported |
1 |
0x02 |
Only Get Commands are supported |
1 |
0x03 |
Reserved |
N/A |
\requirement{CC:0053.01.02.11.01E}{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.01.02.11.01F}{0}
The length of this field MUST be according to the Number of supported CC field value.
Override Support (1 bit)
This field is used to advertise support for the Override Schedule (Schedule ID = 0xFF).
\requirement{CC:0053.01.02.11.020}{0}
This bit MUST be set to 1 if the node supports the Override Schedule.
\requirement{CC:0053.01.02.11.021}{0}
This bit MUST be set to 0 if the node does not support the Override Schedule.
Supported Override Types (7 bits)
This field is used to advertise the supported Override Schedule duration types.
\requirement{CC:0053.01.02.11.022}{0}
A receiving node MUST ignore this bit mask if the Override Schedule is not supported by the sending node.
\requirement{CC:0053.01.02.11.023}{0}
This field MUST be treated as a bitmask and MUST be encoded according to Table 2.501.
Bit |
Name |
Description |
Version |
|---|---|---|---|
\requirementNS{CC:0053.01.02.11.024}{0} 0 |
Advance |
The override schedule MUST run until the start of the next regular schedule. |
1 |
\requirementNS{CC:0053.01.02.11.025}{0} 1 |
Run forever |
The override schedule MUST run until the schedule is removed. |
1 |
2..6 |
Reserved |
Reserved |
N/A |
2.2.88.9. Schedule Set Command¶
This command is used to create a new schedule or modify an existing schedule.
This command MUST enable the schedule if a new schedule is created.
This command MUST NOT change the enabled/disabled state of existing schedules.
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 |
|||||||
Reserved |
|||||||
Start Year |
|||||||
Reserved |
Start Month |
||||||
Reserved |
Start Day of Month |
||||||
Reserved |
Start Weekday |
||||||
Duration Type |
Start Hour |
||||||
Reserved |
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 |
|||||||
Reserved
\requirement{CC:0053.01.03.11.004}{0}
This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Schedule ID (8 bits)
This field is used to indicate which Schedule ID is being set.
\requirement{CC:0053.01.03.11.005}{0}
Values in the range 1..[Number of supported Schedule] MUST indicate regular Schedule IDs
\requirement{CC:0053.01.03.11.006}{0}
The value 0xFE MUST indicate the Fall Back Schedule.
\requirement{CC:0053.01.03.11.007}{0}
The value 0xFF MUST indicate the Override Schedule.
\requirement{CC:0053.01.03.11.008}{0}
A receiving node MUST ignore this command if a non-supported Schedule ID is specified.
If this field is set to 0xFF:
\requirement{CC:0053.01.03.12.001}{0}
The sending node SHOULD set the start time fields to the Start Now pattern.
\requirement{CC:0053.01.03.11.009}{0}
The receiving node MUST respond immediately to an Override Schedule .
If this field is set to 0xFE:
\requirement{CC:0053.01.03.12.002}{0}
The sending node SHOULD set the start time fields and duration fields to 0x00.
\requirement{CC:0053.01.03.11.00A}{0}
The receiving node MUST ignore the start time fields and duration fields
2.2.88.9.1. 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
\requirement{CC:0053.01.03.11.00B}{0}
A receiving node MUST support the start time fields combinations indicated in Section 2.2.88.5, Section 2.2.88.6, Section 2.2.88.7 and Section 2.2.88.8 if the corresponding start time option is supported.
\requirement{CC:0053.01.03.11.00C}{0} \requirement{CC:0053.01.03.11.00D}{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.
Start Year (8 bits)
\requirement{CC:0053.01.03.11.00E}{0}
This field is used to set the year for which the schedule is to start. This field MUST be in the range 0..99 or set to 0xFF.
\requirement{CC:0053.01.03.11.00F}{0}
Values in the range 0..99 MUST indicate the actual year last 2 digits. A node MUST accept a value lower than the current year to allow schedules starting in the next century.
\requirement{CC:0053.01.03.11.010}{0}
The value 0xFF MUST be used to indicate that the start year is unspecified.
\requirement{CC:0053.01.03.11.011}{0}
This field MUST be ignored and treated as unspecified by a receiving node advertising no support for the Calendar time start time option in the Schedule Supported Report Command.
Start Month (4 bits)
\requirement{CC:0053.01.03.11.012}{0}
This field is used to set the month for which the schedule is to start. This field MUST be in the range 0..12.
\requirement{CC:0053.01.03.11.013}{0}
Values in the range 1..12 MUST indicate the actual start month.
\requirement{CC:0053.01.03.11.014}{0}
The value 0x00 MUST be used to indicate that the start month is unspecified.
\requirement{CC:0053.01.03.11.015}{0}
This field MUST be ignored and treated as unspecified by a receiving node advertising no support for the Calendar time start time option in the Schedule Supported Report Command.
Start Day of Month (5 bits)
\requirement{CC:0053.01.03.11.016}{0}
This field is used to set the day of month for which the schedule is to start. This field MUST be in the range 0..31.
\requirement{CC:0053.01.03.11.017}{0} \requirement{CC:0053.01.03.13.001}{4}
Values in the range 1..31 MUST indicate the actual start day of the month. If the specified value does not exist in the actual Year/Month tuple (28/29/30 day month), a receiving node MAY ignore this command.
\requirement{CC:0053.01.03.11.018}{0}
The value 0x00 MUST be used to indicate that the day of the month is unspecified.
\requirement{CC:0053.01.03.11.019}{0}
This field MUST be ignored and treated as unspecified by a receiving node advertising no support for the Calendar time start time option in the Schedule Supported Report Command.
Start Weekday (7 bits)
\requirement{CC:0053.01.03.11.01A}{0}
This field is used to set one or more weekdays for which the schedule is to start. This field MUST be treated a as bitmask and MUST be encoded according to Table 2.502.
Bit |
Description |
Version |
|---|---|---|
0 |
Monday |
1 |
1 |
Tuesday |
1 |
2 |
Wednesday |
1 |
3 |
Thursday |
1 |
4 |
Friday |
1 |
5 |
Saturday |
1 |
6 |
Sunday |
1 |
\requirement{CC:0053.01.03.11.01B}{0}
The value 1 MUST indicate that the specified Schedule ID MUST start on the corresponding day.
\requirement{CC:0053.01.03.11.01C}{0}
The value 0 MUST indicate that the specified Schedule ID MUST NOT start on the corresponding day.
\requirement{CC:0053.01.03.11.01D}{0}
If any of the Start Year, Start Month or Start Day of Month field is specified, this field MUST be set to 0x00 by a sending node and MUST be ignored by a receiving node.
\requirement{CC:0053.01.03.11.01E}{0}
This field MUST be ignored and treated as unspecified by a receiving node advertising no support for the Weekday start time option in the Schedule Supported Report Command.
Start Hour (5 bits)
\requirement{CC:0053.01.03.11.01F}{0}
This field is used to set the hour for which the schedule is to start. This field MUST be in the range 0..23 or set to 0x1F.
\requirement{CC:0053.01.03.11.020}{0}
Values in the range 0..23 MUST indicate the start hour of the day.
\requirement{CC:0053.01.03.11.021}{0}
The value 0x1F (31) MUST be used to indicate that the start hour is unspecified.
\requirement{CC:0053.01.03.11.022}{0}
This field MUST be ignored and treated as unspecified by a receiving node advertising no support for the hour and minute start time option in the Schedule Supported Report Command.
Start Minute (6 bits)
\requirement{CC:0053.01.03.11.023}{0}
This field is used to set the minute for which the schedule is to start. This field MUST be in the range 0..59 or set to 0x3F.
\requirement{CC:0053.01.03.11.024}{0}
Values in the range 0..59 MUST indicate the starting minute of the schedule.
\requirement{CC:0053.01.03.11.025}{0}
The value 0x3F (63) MUST be used to indicate that the start minute is unspecified.
\requirement{CC:0053.01.03.11.026}{0}
This field MUST be ignored and treated as unspecified by a receiving node advertising no support for the hour and minute start time option in the Schedule Supported Report Command.
2.2.88.9.2. Duration fields¶
The schedule duration is defined by the following fields:
Duration Type
Duration
Duration Type (3 bits)
\requirement{CC:0053.01.03.11.027}{0}
This field is used to indicate how to interpret the duration field. This field MUST be encoded according to Table 2.503.
Value |
Description |
Version |
|---|---|---|
0x00 |
The duration field is expressed in Minutes. |
1 |
0x01 |
The duration field is expressed in Hours. |
1 |
0x02 |
The duration field is expressed in Days. |
1 |
0x03 |
Override: The duration field is indicating the Override Type. \requirementNS{CC:0053.01.03.11.028}{0} This value MUST NOT be used if the Schedule ID field is not set to 0xFF |
1 |
\requirement{CC:0053.01.03.11.029}{0}
All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
Duration (16 bits)
\requirement{CC:0053.01.03.11.02A}{0}
This field is used to specify the duration of the schedule being set. The Duration Type field MUST be inspected before interpreting this field.
\requirement{CC:0053.01.03.11.02B}{0}
If the Duration Type field is not set to Override (0x03), this field MUST indicate the duration of the actual schedule. The Duration Type field indicates the unit of this field.
\requirement{CC:0053.01.03.11.02C}{0}
If the Duration Type field is set to Override (0x03), the LSB of this field MUST be encoded according to Table 2.504 and the MSB of this field MUST be set to 0x00.
Name |
Duration value (LSB) |
Description |
Version |
|---|---|---|---|
Advance |
\requirementNS{CC:0053.01.03.11.02D}{0} |
The override schedule MUST run until the start of the next regular schedule.. |
1 |
Run forever |
0x02 |
\requirementNS{CC:0053.01.03.11.02E}{0} The override schedule MUST run until it is removed. |
1 |
Reserved |
0x03..0x07 |
Reserved |
N/A |
2.2.88.9.3. Command and other fields¶
Reports to Follow (8 bits)
\requirement{CC:0053.01.03.11.02F}{0}
This field MUST be used if multiple Schedule Set commands are used to define a single schedule.
\requirement{CC:0053.01.03.11.030}{0}
The value MUST indicate the remaining number of Schedule Set Commands. The header bytes (Schedule ID, Start time, Duration, etc.) MUST be the same for all Schedule Set Commands.
Number of Cmd to Follow (8 bits)
This field is used to advertise the number of command blocks (Cmd Length/Cmd Byte fields units) included within the actual Schedule Set Command (represented by P in the command structure).
\requirement{CC:0053.01.03.11.031}{0}
Each command block MUST comprise the Cmd Length and Cmd Byte fields.
\requirement{CC:0053.01.03.11.032}{4} \requirement{CC:0053.01.03.11.033}{8}
If the list of scheduled commands and their payload is longer than the maximum available Z-Wave MAC frame size, multiple Schedule Set commands MUST be used to send the complete list of scheduled commands. In this case, this field MUST advertise how many commands are included in the actual/current Schedule Set Command.
Cmd Length (8 bits)
This field is used to indicate the length in byte of the corresponding Cmd Byte field.
Cmd Byte (N bytes)
This field is used to set the commands to be executed during the actual Schedule.
\requirement{CC:0053.01.03.11.034}{0}
This field MUST carry a complete command including Command Class identifier, Command identifier and the required parameter bytes.
\requirement{CC:0053.01.03.11.035}{0}
The length of each Cmd Byte entry MUST be according to the corresponding Cmd Length field entry.
\requirement{CC:0053.01.03.11.036}{0}
The number of Cmd Byte entries MUST be according to the Number of Cmd to Follow field.
\requirement{CC:0053.01.03.11.037}{0}
If a schedule includes commands mandating to return a response, responses MUST be returned to the node that has set the schedule.
\requirement{CC:0053.01.03.12.003}{0} \requirement{CC:0053.01.03.11.038}{8}
A receiving node SHOULD ignore the entire Schedule Set Command if this field carries a command not advertised as supported for scheduling in the Schedule Supported Report Command. In any case, the receiving node MUST NOT accept commands non-supported for scheduling as part of the Schedule.
\requirement{CC:0053.01.03.12.004}{0}
A controlling node SHOULD avoid creating conflicting schedules and a supporting node SHOULD discard a new conflicting schedule, even if the conflict is with a temporarily disabled schedule.
2.2.88.10. Schedule Get Command¶
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_SCHEDULE (0x53) |
|||||||
Command = COMMAND_SCHEDULE_GET (0x04) |
|||||||
Schedule ID |
|||||||
Schedule ID (8 bits)
\requirement{CC:0053.01.04.11.004}{0}
This field MUST carry the requested Schedule ID.
2.2.88.11. Schedule Report Command¶
This command is used to report 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 |
|||||||
Reserved |
|||||||
Start Year |
|||||||
Active_ID |
Start Month |
||||||
Reserved |
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 are described in the Schedule Set Command; refer to Section 2.2.88.9.
Schedule ID (8 bits)
This field is used to indicate the advertised Schedule ID.
\requirement{CC:0053.01.05.11.001}{0}
If this command is advertising an unused or unsupported Schedule ID, all parameters until Number of Cmd to Follow MUST be set to 0x00. The Cmd Length and Cmd Byte fields MUST be omitted.
Active_ID (4 bits)
\requirement{CC:0053.01.05.11.002}{0}
This field is used to advertise the status for the requested Schedule ID. This field MUST be encoded according to Table 2.506.
Duration (16 bits)
This field is used to advertise either the configured duration for a schedule or how much time is left before the schedule becomes inactive.
\requirement{CC:0053.01.05.11.003}{0}
The Duration Type, Start Time and Schedule ID fields MUST be inspected before interpreting this field. This field MUST advertise a value according to Table 2.505.
Duration Type |
Schedule ID |
Start Time |
Advertised duration |
|---|---|---|---|
Time (0x00..0x02) |
Regular |
Specified start time |
Configured duration |
Time (0x00..0x02) |
Regular of Override |
Start now |
Remaining time |
Override (0x03) |
Override (0xFF) |
Start now |
Configured override type (Table 2.504) |
2.2.88.12. Schedule Remove Command¶
This command is used to request the removal of one or all Schedules in a device.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_SCHEDULE (0x53) |
|||||||
Command = SCHEDULE_REMOVE (0x06) |
|||||||
Schedule ID |
|||||||
Schedule ID (8 bits)
This field is used to indicate the schedule that is to be removed/erased.
\requirement{CC:0053.01.06.11.001}{0}
If this field is set to 0x00, all configured schedules MUST be removed.
\requirement{CC:0053.01.06.11.002}{0}
If this field is set to 0xFE, the Fall Back Schedule MUST be removed (if defined).
\requirement{CC:0053.01.06.11.003}{0}
If this field is set to 0xFF, the Override Schedule MUST be removed (if defined).
\requirement{CC:0053.01.06.11.004}{0}
If this field is in the range 0x01..[Number of supported Schedules], the receiving node MUST remove the corresponding schedule.
2.2.88.13. Schedule State Set Command¶
This command is used to enable or disable a schedule.
\requirement{CC:0053.01.07.11.001}{0}
This command MUST be ignored by a node advertising no support for Enabling/Disabling schedules in the Schedule Supported Report Command.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_SCHEDULE (0x53) |
|||||||
Command = SCHEDULE_STATE_SET (0x07) |
|||||||
Schedule ID |
|||||||
Schedule State |
|||||||
Schedule ID (8 bits)
This field is used to indicate the schedule that is to be enabled or disabled.
\requirement{CC:0053.01.07.11.002}{0}
The value 0x00 MUST cause the receiving node to change the state for all schedules, except for the Override Schedule.
\requirement{CC:0053.01.07.11.003}{0}
Values in the range 0x01..[number of supported schedules] and 0xFE MUST indicate the actual schedule ID which state is to be updated.
\requirement{CC:0053.01.07.11.004}{0}
The value 0xFF MUST be ignored by a receiving node. Override schedules cannot be enabled/disabled and may only be removed using the Schedule Remove Command.
Schedule state (8 bits)
This field is used to indicate the new state of one or more schedules.
\requirement{CC:0053.01.07.11.005}{0}
The value 0xFF MUST indicate that the actual schedule MUST be enabled.
\requirement{CC:0053.01.07.11.006}{0}
The value 0x00 MUST indicate that the actual schedule MUST be disabled.
\requirement{CC:0053.01.07.11.007}{0}
Disabling a schedule MUST NOT cause the schedule settings to be permanently removed. Schedules may be permanently removed via the Schedule Remove Command.
\requirement{CC:0053.01.07.11.008}{0}
If a schedule is enabled, the receiving node MUST assess if the actual schedule should have been active and activate it accordingly.
\requirement{CC:0053.01.07.11.009}{0}
If a schedule is disabled while being active, the receiving node MUST treat the disabling operation as if the schedule ended.
2.2.88.14. Schedule State Get Command¶
This command is used to request the status of all schedules supported by a node.
\requirement{CC:0053.01.08.11.001}{0}
The Schedule State Report Command MUST be returned in response to this command.
\requirement{CC:0053.01.08.11.002}{0}
This command MUST NOT be issued via multicast addressing.
\requirement{CC:0053.01.08.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 = SCHEDULE_STATE_GET (0x08) |
|||||||
2.2.88.15. Schedule State Report Command¶
This command is used to advertise the status of all schedules supported by a device.
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 |
Override |
||||||
Active_ID 2 |
Active_ID 1 |
||||||
… |
|||||||
Active_ID N |
Active_ID N-1 |
||||||
Number of Supported Schedule ID (8 bits)
\requirement{CC:0053.01.09.11.001}{0}
This field is used to advertise the number of supported regular schedule IDs. This field’s value MUST be the same as the value advertised in the Schedule Supported Report Command.
Override (1 bit)
\requirement{CC:0053.01.09.11.002}{0}
This field MUST be used to advertise the status of the Override Schedule (ID = 0xFF).
\requirement{CC:0053.01.09.11.003}{0}
If the Override Schedule is active, this bit MUST be set to 1.
\requirement{CC:0053.01.09.11.004}{0}
If the Override Schedule is inactive, this bit MUST be set to 0.
Reports to Follow (7 bits)
The length of the Active_ID field may be larger than the maximum available Z-Wave MAC frame size.
\requirement{CC:0053.01.09.11.005}{0}
This field MUST be used to advertise the number of commands following this command in order to advertise the status of all Schedules IDs.
\requirement{CC:0053.01.09.12.001}{0}
A controlling node SHOULD use this value to detect missing reports.
Active_ID (N * 4 bits)
This field is used to advertise the status for each supported schedule ID. Four bits units are used for each Schedule ID to indicate the status. It 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.01.09.11.006}{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.01.09.11.007}{0}
If several Reports are returned (using the Reports to follow field), the first Report advertises Schedule ID 1 to Schedule ID N and the subsequent report MUST be interpreted as representing Schedule ID starting from N+1.
\requirement{CC:0053.01.09.11.008}{0}
Each 4 bits unit MUST be encoded according to Table 2.506.
Hex |
Description |
Detailed description |
Version |
|---|---|---|---|
0x00 |
Not used |
The Schedule ID is not used. (not set/configured) or unsupported |
1 |
0x01 |
[DEPRECATED] Override + Not used |
[DEPRECATED] \requirementNS{CC:0053.01.09.12.002}{0} \requirementNS{CC:0053.01.09.11.009}{4} A sending node SHOULD NOT use this status. It is RECOMMENDED to use 0x00 instead. A receiving node MUST interpret this status as Active_ID = 0x00 (and the override field set to 1 for the Schedule State Report Command). |
1 |
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 |
0x04 |
Disabled |
The Schedule ID is used and disabled. |
1 |
0x05 |
Override + Active |
The Schedule ID is used, enabled and should currently be active but it is suspended by the Override Schedule \requirementNS{CC:0053.01.09.11.00A}{0} The override field MUST be set to 1 when using this status in the Schedule State Report Command. |
1 |
0x06 |
[DEPRECATED] Override + Not Active |
[DEPRECATED] \requirementNS{CC:0053.01.09.12.003}{0} \requirementNS{CC:0053.01.09.11.00B}{4} A sending node SHOULD NOT use this status. It is RECOMMENDED to use 0x02 instead. A receiving node MUST interpret this status as Active_ID = 0x02 (and the override field set to 1 for the Schedule State Report Command. |
1 |
0x07 |
[DEPRECATED] Override + Disabled |
[DEPRECATED] \requirementNS{CC:0053.01.09.12.004}{0} \requirementNS{CC:0053.01.09.11.00C}{4} A sending node SHOULD NOT use this status. It is RECOMMENDED to use 0x04 instead. A receiving node MUST interpret this status as Active_ID = 0x04 (and the override field set to 1 for the Schedule State Report Command). |
1 |
\requirement{CC:0053.01.09.11.00D}{0}
All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.