Software Design Specification

Z-Wave Application Command Class Specification

JFR;NOBRIOT;BBR;DEWASSIE

Software Design Specification

Note: The factory default state MUST be described in the product manual. ... Finally, the user guide and installation manual MUST advertise support of anti-theft protection.

Application Command Classes - Software Design Specification

.........................................42. 4.2.6. Alarm Type Supported Report Command ..........................Missing:


File Info : application/pdf, 664 Pages, 3.64MB

PDF preview unavailable. Download the PDF instead.

Software Design Specification
Z-Wave Application Command Class Specification

Document No.: SDS13781

Version:

15

Description:

The document describes the Z-Wave Command Classes and associated Commands used by Z-Wave enabled products at the application level.

Written By: Date: Reviewed By: Restrictions:

JFR;NOBRIOT;BBR;DEWASSIE 2020-07-06 NOBRIOT;DEWASSIE;COLSEN;JFR;JSMILJANIC Public

Approved by:
F
This document is the property of Silicon Labs. The data contained herein, in whole or in part, may not be duplicated, used or disclosed outside the recipient for any purpose. This restriction does not limit the recipient's right to use information contained in the data if it is obtained from another source without restriction.

REVISION RECORD

Doc. Rev Date

1

20170102

2

20170403

3

20170703

4

20171002

By NOBRIOT NOBRIOT
NOBRIOT NOBRIOT

Pages

Brief description of changes

affected

ALL

Transferred content from [2] and [3]

Integrated approved content from Open Review 2016C and 2016D:

4.12 4.30 4.22 & 4.23

 Added clarifications to Barrier Operator Command Class  Added clarifications to Configuration Command Class  Obsoleted Central Scene Command Class, version 1 and 2

4.24  Changed and updated requirements in Central Scene Command Class,

4.51

version 3

4.68

 Refactored the Irrigation Command Class, version 1

 Added the Multilevel Sensor Command Class, version 11 and moved the

sensor type and scales to [17]

Integrated approved content from Open Review 2017A:

4.27, 4.29 & 4.28

 Clarified that Color Switch supporting nodes can also use Binary Switch for brightness

4.5 & 4.21

 Obsoleted the All Switch Command Class and the Binary Toggle Switch

Command Class.

4.115

 Clarified and reformatted the User Code Command Class, version 1.

4.22 & 4.51  Added minor editorial adjustements in the Central Scene Command Class,

4.74

version 1 and the Irrigation Command Class, version 1

4.89

Integrated approved content for Notification Command Class

4.59

Added Schedule Command Class, version 4

4.98

Added Meter Command Class, version 5

Moved AV Control codes to [19]

Integrated approved content from Open Review 2017B:

[15]

 Changed Time Command Class to be always present in the non-secure NIF

and refactored its text

4.74

 Changed Notification Command Class to allow Multi Channel Root Device to

represent an aggregated binary state of all End Points

4.12

 Refactored Barrier Operator Command Class

4.19&4.20

 Refactored Binary Switch Command Class

4.67&4.68 4.26 4.30, 4.31 &

 Refactored Multilevel Sensor Command Class  Refactored Clock Command Class  Fixed minor text issues in Configuration Command Class

4.32

Integrated approved content from Open Review 2017C:

4.31

 Clarified Configuration Command Class: parameters in bulk commands must

be in a consecutive range

4.37

 Clarified Door Lock Command Class: a supporting node must apply constant

mode even if operating in Timed Operation

3.4

 Updated NIF section to reflect its contents based on Security bootstrapping

event.

4.113 &

 Clarified Thermostat Setpoint Command Class and what to return in a

4.114

report when a non-supported type is requested.

4.98

 Obsoleted the proprietary Item ID fields in the Simple AV Control Command

Class

4.83, 4.84 & 4.85

 Refactored Scene Activation, Scene Actuator Configuration and Scene Controller Configuration Command Classes.

REVISION RECORD

Doc. Rev Date

5

20180110

6

20180305

7

20180409

8

20180701

9

20181001

10

20190101

By NOBRIOT BBR NOBRIOT
NOBRIOT

Pages

Brief description of changes

affected

Integrated approved content from Open Review 2017D:

4.27

 Obsoleted indexed colors in the Color Switch Command Class

4.99

 Changed the allowed value range for the Sound Switch Command Class

 Clarified Configuration Command "re-inclusion required" parameters

4.33

 Added an explicit statement in Notification Command Class stating that Pull

4.74

Sensor are not recommended

All

Added Silicon Labs template

Integrated approved content from Open Review 2018A:

New Command Classes:

4.39

 Added Door Lock Command Class, version 4

4.64

 Added the Meter Table Monitor, version 3.

Minor changes:

 Moved the Notification Command Class Controller guidelines to [23]

4.33

 Renamed configuration parameters "re-inclusion required" parameters to

"Altering capabilities" parameters

Rewriting with RFC keywords:

4.55, 4.56,

 Meter Command Class, version 1-5

4.57, 4.58,

& 4.59 4.62, 4.63 &

 Meter Table Monitor, version 1-2

4.64

[15]
4.47
4.49
4.116
4.108 & 4.109 4.113 & 4.114

Integrated content from 2018B Contributions:  Moved the Time and Time Parameters Command Classes in the Management Command Class specification.
New Command Classes:  Added a version 2 of the Humidity Control Mode Command Class to support an auto mode  Added a version 2 of the Humidity Control Setpoint Command Class to support an auto mode.  Added the User Code Command Class, version 2.
Rewriting with RFC keywords:  Thermostat Mode Command Class, version 1-3  Thermostat Setpoint Command Class, version 1-3

NOBRIOT

3.6 4.24.7

NOBRIOT, DEWASSIE

4.115 & 4.116
3 4.116 4.117 4.113.1

2018C contributions:  Updated the list of Actuator Command Classes  Relaxed requirement level for refresh rate with Central Scene Command Class  Clarified the use of User Identifier value 0 in the User Code Command Class
2018D Contributions:  Added requirement numbers for generic command class section.  Fixed bitmask length field in User Code Command Class, version 2  Fixed Window Covering inconsistencies  Updated the Thermostat Setpoint Command Class, version 1-2 to be mandatory compliant with Interpretation A.

REVISION RECORD

Doc. Rev Date

11

20190401

12

20190701

13

20191001

14

20200101

15

20200701

By NORBIOT DEWASSIE NOBRIOT
DEWASSIE
NOBRIOT DEWASSIE
DEWASSIE NOBRIOT

Pages

Brief description of changes

affected

2019A Contributions:

4.115 4.50 4.10 4.11 4.106

 Clarified field usage in the User Code Command Class  Added IR Repeater Command Class  Added Authentication Command Class  Added Authentication Media Command Class  Added Thermostat Fan Mode Command Class, version 5

Contributions 2019B:

4.68.2

 Clarified that returning an answer to Multilevel Sensor Get Supported

4.117.3
4.39
4.100 4.43 4.47

Scale Command is mandatory  Reorganized text about odd/event parameter IDs in the Window Covering
Command Class  Clarified bolt/latch definitions and door component encoding in the Door
Lock Command Class  Added the Sound Switch Command Class, version 2.  Added the Generic Schedule Command Class, version 1.  Fixed a typo in the list of available modes for Humidity Control Mode
Command Class, version 2

Contributions 2019C:

4.10.6

 Added a clarification in Report more field in Authentication Data Get

4.10.9
4.116.16
4.24 4.60 4.117.7

Command  Added a clarification in Report more field in Authentication Technology
Combination Get Command  Added a clarification in Report more field in Extended User Code Get
Command  Added a requirement for a node supporting Central Scene Command Class  Added Meter Command Class, version 6  Clarified window target value requirements under Window Covering
Report Command

Contributions 2019D:

3.4.3.1 4.19 4.7 4.8 4.9 4.99 4.24, 4.26 4.30 & 4.44

 Added examples under the NIF and its contents  Updated the Value interpretation in the Binary Switch Command Class  Deprecated the Anti-Theft Command Class, version 2  Added Anti-Theft Command Class, version 3  Added Anthi-Theft Unlock Command Class, version 1  Clarified how to encode volume in the Sound Switch Play Report  Added a Multi Channel Consideration section for Command Classes that
should only be supported at the root device

Contibutions 2020A:

4.10.8

 Enabled the Authentication Technology Combination Set command to

4.116.15 4.100.3
4.39.1
4.74.2.11 Table 40 4.60.2

schedule a using only User Code.  Relaxed the Master Code duplicate detection requirement  Clarified a field dependency in the Sound Switch Tone Play Report
Command  Clarified that Auto-Relock for Door Locks should not have any effect in
Timed Operation  Removed a table reference error in Notification Command Class  Fixed maximum lock timeout in minute value.  Clarified what scale to apply when a supporting node reset the meter
value.

Table of Contents
1 ABBREVIATIONS..........................................................................................................................21
2 INTRODUCTION...........................................................................................................................22
2.1 Precedence of definitions................................................................................................................22 2.2 Terms used in this document ..........................................................................................................22 3 COMMAND CLASS OVERVIEW.....................................................................................................22
3.1 Overview .........................................................................................................................................23 3.2 Command class format....................................................................................................................23
3.2.1 Frame format ........................................................................................................................23 3.2.2 Command class versioning ....................................................................................................25 3.3 Controlled and Supported Command Classes .................................................................................25 3.4 Node Information Frame.................................................................................................................25 3.4.1 Z-Wave Protocol Specific Part ...............................................................................................26 3.4.2 Application Specific Part........................................................................................................27 3.4.3 NIF and Multi Channel/Security Command Classes ..............................................................28 3.4.4 Command Class specific NIF rules .........................................................................................31 3.5 Multicast and broadcast commands ...............................................................................................31 3.6 Actuator Control..............................................................................................................................31 3.6.1 Terminology ..........................................................................................................................32 3.6.2 Reporting values....................................................................................................................32 3.6.3 Command values vs. hardware values ..................................................................................33 3.6.4 Supporting multiple actuator Command Classes ..................................................................33 3.7 Common fields and encoding..........................................................................................................34 3.7.1 Reserved and Res fields.........................................................................................................34 3.7.2 Reserved values and reserved bits........................................................................................34 3.7.3 Duration encoding.................................................................................................................34 3.7.4 Unsigned encoding................................................................................................................35 3.7.5 Signed encoding ....................................................................................................................35 3.7.6 Fields values and version.......................................................................................................35 4 COMMAND CLASS DEFINITIONS ..................................................................................................36
4.1 Alarm Command Class, version 1 [DEPRECATED]............................................................................37 4.1.1 Interoperability considerations .............................................................................................37 4.1.2 Alarm Get Command.............................................................................................................37 4.1.3 Alarm Report Command .......................................................................................................38
4.2 Alarm Command Class, version 2 [DEPRECATED]............................................................................39 4.2.1 Interoperability considerations .............................................................................................39 4.2.2 Alarm Set Command .............................................................................................................39 4.2.3 Alarm Get Command.............................................................................................................40 4.2.4 Alarm Report Command .......................................................................................................41 4.2.5 Alarm Type Supported Get Command ..................................................................................42 4.2.6 Alarm Type Supported Report Command .............................................................................43
4.3 Alarm Sensor Command Class, version 1 [DEPRECATED]................................................................44

4.3.1 Alarm Sensor Get Command .................................................................................................44 4.3.2 Alarm Sensor Report Command............................................................................................45 4.3.3 Alarm Sensor Supported Get Command ...............................................................................46 4.3.4 Alarm Sensor Supported Report Command ..........................................................................46 4.4 Alarm Silence Command Class, version 1........................................................................................48 4.4.1 Alarm Silence Set Command .................................................................................................48 4.5 All Switch Command Class, version 1 [OBSOLETED]........................................................................50 4.5.1 All Switch Set Command .......................................................................................................50 4.5.2 All Switch Get Command.......................................................................................................51 4.5.3 All Switch Report Command .................................................................................................51 4.5.4 All Switch On Command........................................................................................................51 4.5.5 All Switch Off Command .......................................................................................................52 4.6 Anti-theft Command Class, version 1 [OBSOLETED]........................................................................53 4.7 Anti-theft Command Class, version 2 [DEPRECATED]......................................................................54 4.7.1 Anti-theft Set Command .......................................................................................................55 4.7.2 Anti-theft Get Command.......................................................................................................56 4.7.3 Anti-theft Report Command .................................................................................................57 4.7.4 Examples ...............................................................................................................................59 4.8 Anti-theft Command Class, version 3 ..............................................................................................61 4.8.1 Compatibility Considerations ................................................................................................61 4.8.2 Anti-Theft Set Command.......................................................................................................62 4.8.3 Anti-theft Get Command.......................................................................................................64 4.8.4 Anti-Theft Report Command.................................................................................................64 4.9 Anti-theft Unlock Command Class, version 1 ..................................................................................67 4.9.1 Compatibility Considerations ................................................................................................67 4.9.2 Anti-Theft Unlock State Get Command.................................................................................67 4.9.3 Anti-Theft Unlock State Report Command............................................................................68 4.9.4 Anti-Theft Unlock Set Command...........................................................................................70 4.10 Authentication Command Class, version 1......................................................................................71 4.10.1 Terminology ..........................................................................................................................71 4.10.2 Interoperability Considerations ............................................................................................71 4.10.3 Authentication Capability Get Command .............................................................................72 4.10.4 Authentication Capability Report Command ........................................................................72 4.10.5 Authentication Data Set Command.......................................................................................76 4.10.6 Authentication Data Get Command......................................................................................77 4.10.7 Authentication Data Report Command.................................................................................79 4.10.8 Authentication Technologies Combination Set Command ...................................................81 4.10.9 Authentication Technologies Combination Get Command...................................................85 4.10.10 Authentication Technologies Combination Report Command .............................................87 4.10.11 Authentication Checksum Get Command .............................................................................91 4.10.12 Authentication Checksum Report Command........................................................................92 4.10.13 Examples and use-cases ........................................................................................................95 4.11 Authentication Media Write Command Class, version 1.................................................................97 4.11.1 Authentication Media Capability Get Command ..................................................................97 4.11.2 Authentication Media Capability Report Command .............................................................97 4.11.3 Authentication Media Write Start Command .......................................................................98 4.11.4 Authentication Media Write Stop Command........................................................................99

4.11.5 Authentication Media Write Status Command ...................................................................100 4.12 Barrier Operator Command Class, version 1 .................................................................................102
4.12.1 Compatibility considerations...............................................................................................102 4.12.2 Barrier Operator Set Command ..........................................................................................102 4.12.3 Barrier Operator Get Command..........................................................................................104 4.12.4 Barrier Operator Report Command ....................................................................................104 4.12.5 Barrier Operator Get Signaling Capabilities Supported Command .....................................105 4.12.6 Barrier Operator Report Signaling Capabilities Supported Command ................................105 4.12.7 Barrier Operator Event Signal Set Command ......................................................................106 4.12.8 Barrier Operator Event Signaling Get Command ................................................................107 4.12.9 Barrier Operator Event Signaling Report.............................................................................108 4.13 Basic Command Class, version 1....................................................................................................109 4.13.1 Compatibility considerations...............................................................................................109 4.13.2 Basic Set Command.............................................................................................................109 4.13.3 Basic Get Command ............................................................................................................110 4.13.4 Basic Report Command .......................................................................................................110 4.14 Basic Command Class, version 2....................................................................................................111 4.14.1 Compatibility considerations...............................................................................................111 4.14.2 Basic Report Command .......................................................................................................111 4.15 Basic Tariff Information Command Class, version 1 ......................................................................113 4.15.1 Basic Tariff Information Get Command...............................................................................113 4.15.2 Basic Tariff Information Report Command .........................................................................114 4.16 Basic Window Covering Command Class, version 1 [OBSOLETED]................................................116 4.16.1 Basic Window Covering Start Level Change Command.......................................................116 4.16.2 Basic Window Covering Stop Level Change Command .......................................................116 4.17 Binary Sensor Command Class, version 1 [DEPRECATED] .............................................................117 4.17.1 Binary Sensor Get Command ..............................................................................................117 4.17.2 Binary Sensor Report Command .........................................................................................117 4.18 Binary Sensor Command Class, version 2 [DEPRECATED] .............................................................118 4.18.1 Binary Sensor Get Command ..............................................................................................118 4.18.2 Binary Sensor Report Command .........................................................................................119 4.18.3 Binary Sensor Get Supported Sensor Command.................................................................120 4.18.4 Binary Sensor Supported Sensor Report Command............................................................120 4.19 Binary Switch Command Class, version 1 ......................................................................................121 1.1.1 Binary Switch Set Command ...............................................................................................121 1.1.2 Binary Switch Get Command...............................................................................................122 1.1.3 Binary Switch Report Command .........................................................................................122 4.20 Binary Switch Command Class, version 2 ......................................................................................123 4.20.1 Compatibility considerations...............................................................................................123 4.20.2 Binary Switch Set Command ...............................................................................................123 4.20.3 Binary Switch Report Command .........................................................................................124 4.21 Binary Toggle Switch Command Class, version 1 [OBSOLETED] ....................................................125 4.21.1 Binary Toggle Switch Set Command....................................................................................125 4.21.2 Binary Toggle Switch Get Command ...................................................................................125 4.21.3 Binary Toggle Switch Report Command..............................................................................125 4.22 Central Scene Command Class, version 1 [OBSOLETED] ...............................................................127 4.22.1 Central Scene Supported Get Command ............................................................................128

4.22.2 Central Scene Supported Report Command .......................................................................128 4.22.3 Central Scene Notification Command .................................................................................129 4.23 Central Scene Command Class, version 2 [OBSOLETED] ...............................................................131 4.23.1 Compatibility considerations...............................................................................................131 4.23.2 Central Scene Supported Report Command .......................................................................131 4.23.3 Central Scene Notification Command .................................................................................133 4.24 Central Scene Command Class, version 3......................................................................................134 4.24.1 Compatibility considerations...............................................................................................135 4.24.2 Central Scene Configuration Set Command ........................................................................136 4.24.3 Central Scene Configuration Get Command .......................................................................137 4.24.4 Central Scene Configuration Report Command ..................................................................137 4.24.5 Central Scene Supported Get Command ............................................................................138 4.24.6 Central Scene Supported Report Command .......................................................................138 4.24.7 Central Scene Notification Command .................................................................................139 4.25 Climate Control Schedule Command Class, version 1 [DEPRECATED]...........................................140 4.25.1 Schedule Set Command ......................................................................................................142 4.25.2 Schedule Get Command......................................................................................................143 4.25.3 Schedule Report Command.................................................................................................144 4.25.4 Schedule Changed Get Command.......................................................................................144 4.25.5 Schedule Changed Report Command..................................................................................144 4.25.6 Schedule Override Set Command .......................................................................................145 4.25.7 Schedule Override Get Command.......................................................................................147 4.25.8 Schedule Override Report Command..................................................................................147 4.26 Clock Command Class, version 1 ...................................................................................................147 1.1.1 Interoperability considerations ...........................................................................................147 4.26.1 Multi Channel Considerations .............................................................................................148 4.26.2 Clock Set Command ............................................................................................................148 1.1.2 Clock Get Command............................................................................................................149 1.1.3 Clock Report Command.......................................................................................................150 4.27 Color Switch Command Class, version 1........................................................................................151 4.27.1 Compatibility considerations...............................................................................................151 4.27.2 Interoperability considerations ...........................................................................................151 4.27.3 Color Switch Supported Get Command ..............................................................................152 4.27.4 Color Switch Supported Report Command .........................................................................152 4.27.5 Color Switch Get Command ................................................................................................153 4.27.6 Color Switch Report Command ...........................................................................................153 4.27.7 Color Switch Set Command.................................................................................................154 4.27.8 Color Switch Start Level Change Command ........................................................................156 4.27.9 Color Switch Stop Level Change Command.........................................................................157 4.28 Color Switch Command Class, version 2........................................................................................158 4.28.1 Compatibility considerations...............................................................................................158 4.28.2 Interoperability considerations ...........................................................................................158 4.28.3 Color Switch Set Command.................................................................................................158 4.29 Color Switch Command Class, version 3........................................................................................160 4.29.1 Compatibility considerations...............................................................................................160 4.29.2 Interoperability considerations ...........................................................................................160 4.29.3 Color Switch Report Command ...........................................................................................160

4.29.4 Color Switch Start Level Change Command ........................................................................161 4.30 Configuration Command Class, version 1......................................................................................163
4.30.1 Compatibility considerations...............................................................................................163 4.30.2 Configuration Set Command ...............................................................................................164 4.30.3 Configuration Get Command ..............................................................................................165 4.30.4 Configuration Report Command .........................................................................................166 4.31 Configuration Command Class, version 2......................................................................................167 4.31.1 Compatibility considerations...............................................................................................167 4.31.2 Interoperability considerations ...........................................................................................167 4.31.3 Configuration Set Command ...............................................................................................168 4.31.4 Configuration Bulk Set Command .......................................................................................169 4.31.5 Configuration Bulk Get Command ......................................................................................171 4.31.6 Configuration Bulk Report Command .................................................................................172 4.32 Configuration Command Class, version 3......................................................................................174 4.32.1 Compatibility considerations...............................................................................................174 4.32.2 Interoperability considerations ...........................................................................................175 4.32.3 Configuration Name Get Command....................................................................................175 4.32.4 Configuration Name Report Command...............................................................................176 4.32.5 Configuration Info Get Command .......................................................................................177 4.32.6 Configuration Info Report Command..................................................................................178 4.32.7 Configuration Properties Get Command.............................................................................179 4.32.8 Configuration Properties Report Command .......................................................................180 4.33 Configuration Command Class, version 4......................................................................................183 4.33.1 Compatibility considerations...............................................................................................183 4.33.2 Configuration Set Command ...............................................................................................185 4.33.3 Configuration Bulk Set Command .......................................................................................186 4.33.4 Configuration Properties Report Command .......................................................................187 4.33.5 Configuration Default Reset Command ..............................................................................188 4.34 Controller Replication Command Class, version 1.........................................................................189 4.34.1 Transfer Group Command...................................................................................................189 4.34.2 Transfer Group Name Command ........................................................................................189 4.34.3 Transfer Scene Command ...................................................................................................190 4.34.4 Transfer Scene Name Command.........................................................................................191 4.35 Demand Control Plan Configuration Command Class, version 1 ..................................................192 4.35.1 DCP List Supported Get Command......................................................................................192 4.35.2 DCP List Supported Report Command ................................................................................193 4.35.3 DCP List Set Command ........................................................................................................194 4.35.4 DCP List Remove..................................................................................................................199 4.36 Demand Control Plan Monitor Command Class, version 1 ...........................................................200 4.36.1 DCP List Get Command .......................................................................................................200 4.36.2 DCP List Report Command ..................................................................................................201 4.36.3 DCP Event Status Get ..........................................................................................................202 4.36.4 DCP Event Status Report .....................................................................................................203 4.37 Door Lock Command Class, version 1-2 ........................................................................................204 4.37.1 Compatibility considerations...............................................................................................204 4.37.2 Door Lock Operation Set Command....................................................................................204 4.37.3 Door Lock Operation Get Command ...................................................................................205

4.37.4 Door Lock Operation Report Command..............................................................................205 4.37.5 Door Lock Configuration Set Command ..............................................................................208 4.37.6 Door Lock Configuration Get Command .............................................................................210 4.37.7 Door Lock Configuration Report Command ........................................................................211 4.38 Door Lock Command Class, version 3............................................................................................212 4.38.1 Compatibility considerations...............................................................................................212 4.38.2 Door Lock Operation Report Command..............................................................................212 4.39 Door Lock Command Class, version 4............................................................................................213 4.39.1 Terminology ........................................................................................................................213 1.1.1 Compatibility considerations...............................................................................................214 4.39.2 Door Lock Operation Set Command....................................................................................215 4.39.3 Door Lock Operation Get Command ...................................................................................216 4.39.4 Door Lock Operation Report Command..............................................................................216 4.39.5 Door Lock Configuration Set Command ..............................................................................220 4.39.6 Door Lock Configuration Get Command .............................................................................223 4.39.7 Door Lock Configuration Report Command ........................................................................223 1.1.2 Door Lock Capabilities Get Command.................................................................................224 1.1.3 Door Lock Capabilities Report Command............................................................................224 4.40 Door Lock Logging Command Class, version 1 ..............................................................................228 4.40.1 Door Lock Logging Records Supported Get Command .......................................................228 4.40.2 Door Lock Logging Records Supported Report Command ..................................................228 4.40.3 Door Lock Logging Record Get Command...........................................................................229 4.40.4 Door Lock Logging Record Report Command......................................................................230 4.41 Energy Production Command Class, version 1 ..............................................................................233 4.41.1 Energy Production Get Command.......................................................................................233 4.41.2 Energy Production Report Command .................................................................................234 4.42 Entry Control Command Class, version 1 ......................................................................................235 4.42.1 Interoperability Considerations ..........................................................................................235 4.42.2 Security Considerations.......................................................................................................235 4.42.3 Handling user supplied data................................................................................................236 4.42.4 Handling Incorrect Entry .....................................................................................................236 4.42.5 Entry Control Notification Command..................................................................................237 4.42.6 Entry Control Key Supported Get Command ......................................................................239 4.42.7 Entry Control Key Supported Report Command .................................................................239 4.42.8 Entry Control Event Supported Get Command ...................................................................240 4.42.9 Entry Control Event Supported Report Command ..............................................................241 4.42.10 Entry Control Configuration Set Command.........................................................................242 4.42.11 Entry Control Configuration Get Command ........................................................................243 4.42.12 Entry Control Configuration Report Command...................................................................243 4.42.13 Event Types .........................................................................................................................244 4.43 Generic Schedule Command Class, version 1................................................................................246 4.43.1 Terminology ........................................................................................................................246 4.43.2 Interoperability considerations ...........................................................................................246 1.1.1 Generic Schedule Capabilities Get Command .....................................................................246 1.1.2 Generic Schedule Capabilities Report Command................................................................247 1.1.3 Generic Schedule Time Range Set Command .....................................................................249 1.1.4 Generic Schedule Time Range Get Command.....................................................................255

1.1.5 Generic Schedule Time Range Report Command ...............................................................256 1.1.6 Generic Schedule Set Command .........................................................................................257 1.1.7 Generic Schedule Get Command ........................................................................................260 1.1.8 Generic Schedule Report Command ...................................................................................261 4.44 Geographic Location Command Class, version 1...........................................................................263 4.44.1 Multi Channel Considerations .............................................................................................263 4.44.2 Geographic Location Set Command ....................................................................................263 4.44.3 Geographic Location Get Command ...................................................................................264 4.44.4 Geographic Location Report Command ..............................................................................264 4.45 HRV Status Command Class, version 1 ..........................................................................................265 4.45.1 HRV Status Get Command...................................................................................................265 4.45.2 HRV Status Report Command .............................................................................................266 4.45.3 HRV Status Supported Get Command.................................................................................267 4.45.4 HRV Status Supported Report Command............................................................................267 4.46 HRV Control Command Class, version 1 ........................................................................................269 4.46.1 HRV Mode Set .....................................................................................................................269 4.46.2 HRV Mode Get Command ...................................................................................................270 4.46.3 HRV Mode Report Command..............................................................................................270 4.46.4 HRV Bypass Set Command ..................................................................................................270 4.46.5 HRV Bypass Get Command..................................................................................................271 4.46.6 HRV Bypass Report Command ............................................................................................271 4.46.7 HRV Ventilation Rate Set Command ...................................................................................272 4.46.8 HRV Ventilation Rate Get Command...................................................................................272 4.46.9 HRV Ventilation Rate Report Command .............................................................................272 4.46.10 HRV Mode Supported Get Command .................................................................................273 4.46.11 HRV Mode Supported Report Command ............................................................................273 4.47 Humidity Control Mode Command Class, version 1-2...................................................................275 4.47.1 Humidity Control Mode Set Command ...............................................................................275 4.47.2 Humidity Control Mode Get Command ..............................................................................276 4.47.3 Humidity Control Mode Report Command .........................................................................276 4.47.4 Humidity Control Mode Supported Get Command ............................................................277 4.47.5 Humidity Control Mode Supported Report Command .......................................................277 4.48 Humidity Control Operating State Command Class, version 1......................................................279 4.48.1 Humidity Control Operating State Get Command ..............................................................279 4.48.2 Humidity Control Operating State Report Command .........................................................279 4.49 Humidity Control Setpoint Command Class, version 1-2 ..............................................................281 4.49.1 Humidity Control Setpoint Set Command...........................................................................281 4.49.2 Humidity Control Setpoint Get Command ..........................................................................283 4.49.3 Humidity Control Setpoint Report Command .....................................................................283 4.49.4 Humidity Control Setpoint Supported Get Command ........................................................284 4.49.5 Humidity Control Setpoint Supported Report Command ...................................................284 4.49.6 Humidity Control Setpoint Scale Supported Get Command ...............................................286 4.49.7 Humidity Control Setpoint Scale Supported Report Command ..........................................286 4.49.8 Humidity Control Setpoint Capabilities Get Command.......................................................287 4.49.9 Humidity Control Setpoint Capabilities Report Command..................................................288 4.50 IR Repeater Command Class, version 1 .........................................................................................289 1.1.1 IR Repeater Capabilities Get Command ..............................................................................289

1.1.2 IR Repeater Capabilities Report Command.........................................................................289 1.1.3 IR Repeater IR Code Learning Start Command....................................................................293 1.1.4 IR Repeater IR Code Learning Stop Command ....................................................................294 1.1.5 IR Repeater IR Code Learning Status Command .................................................................294 1.1.6 IR Repeater Learnt IR Code Remove Command..................................................................296 1.1.7 IR Repeater Learnt IR Code Get Command .........................................................................296 1.1.8 IR Repeater Learnt IR Code Report Command ....................................................................297 1.1.9 IR Repeater Learnt IR Code Readback Get Command.........................................................298 1.1.10 IR Repeater Learnt IR Code Readback Report Command ...................................................299 1.1.11 IR Repeater Configuration Set Command ...........................................................................300 1.1.12 IR Repeater Configuration Get Command...........................................................................303 1.1.13 IR Repeater Configuration Report Command .....................................................................303 1.1.14 IR Repeater Repeat Learnt Code Command........................................................................304 1.1.15 IR Repeater Repeat Command ............................................................................................305 4.51 Irrigation Command Class, version 1 .............................................................................................309 4.51.1 Terminology ........................................................................................................................309 4.51.2 Compatibility considerations...............................................................................................309 4.51.3 Interoperability considerations ...........................................................................................309 4.51.4 Irrigation System Info Get Command..................................................................................311 4.51.5 Irrigation System Info Report Command ............................................................................311 4.51.6 Irrigation System Status Get Command ..............................................................................312 4.51.7 Irrigation System Status Report Command.........................................................................313 4.51.8 Irrigation System Config Set Command ..............................................................................317 4.51.9 Irrigation System Config Get Command..............................................................................319 4.51.10 Irrigation System Config Report Command.........................................................................319 4.51.11 Irrigation Valve Info Get Command.....................................................................................320 4.51.12 Irrigation Valve Info Report Command ...............................................................................321 4.51.13 Irrigation Valve Config Set Command .................................................................................323 4.51.14 Irrigation Valve Config Get Command.................................................................................326 4.51.15 Irrigation Valve Config Report Command ...........................................................................327 4.51.16 Irrigation Valve Run Command ...........................................................................................328 4.51.17 Irrigation Valve Table Set Command...................................................................................329 4.51.18 Irrigation Valve Table Get Command ..................................................................................330 4.51.19 Irrigation Valve Table Report Command .............................................................................330 4.51.20 Irrigation Valve Table Run Command..................................................................................331 4.51.21 Irrigation System Shutoff Command ...................................................................................332 4.52 Language Command Class, version 1 ............................................................................................333 4.52.1 Language Set Command......................................................................................................333 4.52.2 Language Get Command .....................................................................................................334 4.52.3 Language Report Command................................................................................................335 4.53 Lock Command Class, version 1 [DEPRECATED] ............................................................................336 4.53.1 Lock Set Command..............................................................................................................336 4.53.2 Lock Get Command .............................................................................................................336 4.53.3 Lock Report Command ........................................................................................................337 4.54 Manufacturer Proprietary Command Class, version 1 ..................................................................338 4.54.1 Manufacturer Proprietary Command..................................................................................338 4.55 Meter Command Class, version 1..................................................................................................339

4.55.1 Terminology ........................................................................................................................339 1.1.1 Meter Get Command ..........................................................................................................340 1.1.2 Meter Report Command .....................................................................................................340 4.56 Meter Command Class, version 2..................................................................................................341 4.56.1 Compatibility Considerations ..............................................................................................341 4.56.2 Meter Supported Get Command ........................................................................................342 4.56.3 Meter Supported Report Command ...................................................................................342 4.56.4 Meter Reset Command .......................................................................................................343 4.56.5 Meter Get Command ..........................................................................................................343 4.56.6 Meter Report Command .....................................................................................................344 4.57 Meter Command Class, version 3..................................................................................................346 4.57.1 Compatibility Considerations ..............................................................................................346 4.57.2 Meter Supported Report Command ...................................................................................347 4.57.3 Meter Get Command ..........................................................................................................347 4.57.4 Meter Report Command .....................................................................................................348 4.58 Meter Command Class, version 4..................................................................................................349 4.58.1 Compatibility Considerations ..............................................................................................349 4.58.2 Meter Supported Report Command ...................................................................................349 4.58.3 Meter Get Command ..........................................................................................................351 4.58.4 Meter Report Command .....................................................................................................353 4.59 Meter Command Class, version 5..................................................................................................355 4.59.1 Compatibility considerations...............................................................................................355 4.59.2 Meter Supported Report Command ...................................................................................355 4.59.3 Meter Report Command .....................................................................................................357 4.60 Meter Command Class, version 6..................................................................................................359 4.60.1 Compatibility Considerations ..............................................................................................359 4.60.2 Meter Reset Command .......................................................................................................359 4.61 Meter Table Configuration Command Class, version 1 .................................................................360 4.61.1 Meter Table Point Adm Number Set Command .................................................................360 4.62 Meter Table Monitor Command Class, version 1..........................................................................361 4.62.1 Meter Table Point Adm. Number Get Command................................................................361 4.62.2 Meter Table Point Adm. Number Report Command ..........................................................361 4.62.3 Meter Table ID Get Command ............................................................................................362 4.62.4 Meter Table ID Report Command .......................................................................................362 4.62.5 Meter Table Capability Get Command................................................................................363 4.62.6 Meter Table Capability Report Command...........................................................................364 4.62.7 Meter Table Status Supported Get Command ....................................................................365 4.62.8 Meter Table Status Supported Report Command...............................................................366 4.62.9 Meter Table Status Depth Get Command ...........................................................................367 4.62.10 Meter Table Status Date Get Command .............................................................................368 4.62.11 Meter Table Status Report Command.................................................................................370 4.62.12 Meter Table Current Data Get Command ...........................................................................372 4.62.13 Meter Table Current Data Report Command......................................................................373 4.62.14 Meter Table Historical Data Get Command ........................................................................376 4.62.15 Meter Table Historical Data Report Command ...................................................................378 4.63 Meter Table Monitor Command Class, version 2..........................................................................380 4.63.1 Compatibility Considerations ..............................................................................................381

4.63.2 Meter Table Point Adm. Number Report Command ..........................................................381 4.63.3 Meter Table ID Report Command .......................................................................................381 4.63.4 Meter Table Capability Report Command...........................................................................382 4.63.5 Meter Table Current Data Report Command......................................................................383 4.63.6 Meter Table Historical Data Report Command ...................................................................385 4.64 Meter Table Monitor Command Class, version 3..........................................................................386 4.64.1 Compatibility Considerations ..............................................................................................386 4.65 Meter Table Push Configuration Command Class version 1 .........................................................386 4.65.1 Meter Table Push Configuration Set Command..................................................................387 4.65.2 Meter Table Push Configuration Get Command .................................................................388 4.65.3 Meter Table Push Configuration Report Command............................................................389 4.66 Move To Position Window Covering Command Class, version 1 [OBSOLETED]............................389 4.66.1 Move To Position Set Command .........................................................................................390 4.66.2 Move To Position Get Command ........................................................................................390 4.66.3 Move To Position Report Command ...................................................................................391 4.67 Multilevel Sensor Command Class, version 1-4.............................................................................391 4.67.1 Multilevel Sensor Get Command ........................................................................................391 4.67.2 Multilevel Sensor Report Command ...................................................................................391 4.68 Multilevel Sensor Command Class, Version 5-11 ..........................................................................393 4.68.1 Compatibility considerations...............................................................................................393 4.68.2 Multilevel Sensor Get Supported Sensor Command...........................................................394 4.68.3 Multilevel Sensor Supported Sensor Report Command......................................................394 4.68.4 Multilevel Sensor Get Supported Scale Command .............................................................395 4.68.5 Multilevel Sensor Supported Scale Report Command ........................................................396 4.68.6 Multilevel Sensor Get Command ........................................................................................397 4.68.7 Multilevel Sensor Report Command ...................................................................................398 4.69 Multilevel Switch Command Class, version 1 ................................................................................403 4.69.1 Multilevel Switch Set Command .........................................................................................404 4.69.2 Multilevel Switch Get Command.........................................................................................405 4.69.3 Multilevel Switch Report Command ...................................................................................405 4.69.4 Multilevel Switch Start Level Change Command.................................................................406 4.69.5 Multilevel Switch Stop Level Change Command .................................................................407 4.70 Multilevel Switch Command Class, version 2 ................................................................................407 4.70.1 Compatibility considerations...............................................................................................407 4.70.2 Multilevel Switch Set Command .........................................................................................407 4.70.3 Multilevel Switch Start Level Change Command.................................................................408 4.71 Multilevel Switch Command Class, version 3 ................................................................................409 4.71.1 Compatibility considerations...............................................................................................409 4.71.2 Multilevel Switch Supported Get Command.......................................................................410 4.71.3 Multilevel Switch Supported Report Command..................................................................410 4.71.4 Multilevel Switch Start Level Change Command.................................................................412 4.72 Multilevel Switch Command Class, version 4 ................................................................................414 4.72.1 Compatibility considerations...............................................................................................414 4.72.2 Multilevel Switch Report Command ...................................................................................415 4.73 Multilevel Toggle Switch Command Class, version 1 [DEPRECATED] ............................................416 4.73.1 Multilevel Toggle Switch Set Command..............................................................................416 4.73.2 Multilevel Toggle Switch Get Command .............................................................................416

4.73.3 Multilevel Toggle Switch Report Command ........................................................................417 4.73.4 Multilevel Toggle Switch Start Level Change Command .....................................................417 4.73.5 Multilevel Toggle Switch Stop Level Change Command .....................................................418 4.74 Notification Command Class, version 3-8......................................................................................418 4.74.1 Terminology ........................................................................................................................418 4.74.2 Compatibility considerations...............................................................................................420 4.74.3 Interoperability considerations ...........................................................................................428 4.74.4 Notification Set Command ..................................................................................................429 4.74.5 Notification Get Command .................................................................................................430 4.74.6 Notification Report Command ............................................................................................432 4.74.7 Notification Supported Get Command................................................................................437 4.74.8 Notification Supported Report Command ..........................................................................437 4.74.9 Event Supported Get Command .........................................................................................438 4.74.10 Event Supported Report Command ....................................................................................439 4.75 Prepayment Command Class, version 1 ........................................................................................440 4.75.1 Prepayment Balance Get Command ...................................................................................440 4.75.2 Prepayment Balance Report Command ..............................................................................441 4.75.3 Prepayment Supported Get Command...............................................................................443 4.75.4 Prepayment Supported Report Command..........................................................................443 4.76 Prepayment Encapsulation Command Class, version 1.................................................................444 4.76.1 Prepayment Encapsulation Command ................................................................................444 4.77 Proprietary Command Class, version 1 [DEPRECATED] .................................................................444 4.77.1 Proprietary Set Command...................................................................................................445 4.77.2 Proprietary Get Command ..................................................................................................445 4.77.3 Proprietary Report Command.............................................................................................446 4.78 Protection Command Class, version 1...........................................................................................446 4.78.1 Protection Set Command ....................................................................................................446 4.78.2 Protection Get Command ...................................................................................................447 4.78.3 Protection Report Command ..............................................................................................448 4.79 Protection Command Class, version 2...........................................................................................448 4.79.1 Protection Set Command ....................................................................................................448 4.79.2 Protection Report Command ..............................................................................................450 4.79.3 Protection Supported Get Command..................................................................................450 4.79.4 Protection Supported Report Command ............................................................................450 4.79.5 Protection Exclusive Control ...............................................................................................451 4.79.6 Protection Timeout .............................................................................................................452 4.80 Pulse Meter Command Class, version 1 [DEPRECATED]................................................................454 4.80.1 Pulse Meter Get Command.................................................................................................454 4.80.2 Pulse Meter Report Command............................................................................................455 4.81 Rate Table Configuration Command Class, version 1....................................................................456 4.81.1 Rate Table Set Command ....................................................................................................456 4.81.2 Rate Table Remove Command ............................................................................................459 4.82 Rate Table Monitor Command Class, version 1.............................................................................460 4.82.1 Rate Table Supported Get Command .................................................................................460 4.82.2 Rate Table Supported Report Command ............................................................................460 4.82.3 Rate Table Get Command ...................................................................................................462 4.82.4 Rate Table Report Command ..............................................................................................462

4.82.5 Rate Table Active Rate Get Command ................................................................................463 4.82.6 Rate Table Active Rate Report Command ...........................................................................463 4.82.7 Rate Table Current Data Get Command..............................................................................464 4.82.8 Rate Table Current Data Report Command ........................................................................465 4.82.9 Rate Table Historical Data Get Command...........................................................................467 4.82.10 Rate Table Historical Data Report Command......................................................................469 4.83 Scene Activation Command Class, version 1 .................................................................................471 4.83.1 Compatibility considerations...............................................................................................471 4.83.2 Scene Activation Set Command ..........................................................................................471 4.84 Scene Actuator Configuration Command Class, version 1 ............................................................472 4.84.1 Compatibility considerations...............................................................................................472 4.84.2 Scene Actuator Configuration Set Command......................................................................472 4.84.3 Scene Actuator Configuration Get Command .....................................................................473 4.84.4 Scene Actuator Configuration Report Command................................................................474 4.85 Scene Controller Configuration Command Class, version 1 ..........................................................476 4.85.1 Compatibility Considerations ..............................................................................................476 4.85.2 Scene Controller Configuration Set Command ...................................................................476 4.85.3 Scene Controller Configuration Get Command...................................................................477 4.85.4 Scene Controller Configuration Report Command..............................................................478 4.86 Schedule Command Class, version 1 .............................................................................................479 4.86.1 Terminology ........................................................................................................................479 4.86.2 Interoperability considerations ...........................................................................................481 4.86.3 Schedule Supported Get Command ....................................................................................482 4.86.4 Schedule Supported Report Command...............................................................................483 4.86.5 Schedule Set Command ......................................................................................................488 4.86.6 Schedule Get Command......................................................................................................493 4.86.7 Schedule Report Command.................................................................................................494 4.86.8 Schedule Remove Command ..............................................................................................495 4.86.9 Schedule State Set Command .............................................................................................496 4.86.10 Schedule State Get Command.............................................................................................497 4.86.11 Schedule State Report Command .......................................................................................497 4.87 Schedule Command Class, version 2 .............................................................................................500 4.87.1 Compatibility considerations...............................................................................................500 4.87.2 Schedule Supported Get Command ....................................................................................501 4.87.3 Schedule Supported Report Command...............................................................................502 4.87.4 Schedule Set Command ......................................................................................................504 4.87.5 Schedule Get Command......................................................................................................505 4.87.6 Schedule Report Command.................................................................................................506 4.87.7 Schedule Remove Command ..............................................................................................507 4.87.8 Schedule State Set Command .............................................................................................508 4.87.9 Schedule State Get Command.............................................................................................509 4.87.10 Schedule State Report Command .......................................................................................510 4.88 Schedule Command Class, version 3 .............................................................................................510 4.88.1 Terminology ........................................................................................................................510 4.88.2 Compatibility considerations...............................................................................................510 4.88.3 Schedule Supported Report Command...............................................................................511 4.88.4 Schedule Set Command ......................................................................................................514

4.88.5 Schedule Get Command......................................................................................................517 4.88.6 Schedule Report Command.................................................................................................518 4.89 Schedule Command Class, version 4 .............................................................................................520 4.89.1 Compatibility considerations...............................................................................................520 4.89.2 Schedule Supported Report Command...............................................................................520 4.89.3 Schedule Supported Commands Get Command .................................................................522 4.89.4 Schedule Supported Commands Report Command............................................................523 4.89.5 Schedule Set Command ......................................................................................................525 4.89.6 Schedule Report Command.................................................................................................526 4.89.7 Schedule State Report Command .......................................................................................527 4.90 Schedule Entry Lock Command Class, version 1 [DEPRECATED] ...................................................529 4.90.1 Schedule Entry Lock Enable Set Command .........................................................................529 4.90.2 Schedule Entry Lock Enable All Set Command ....................................................................530 4.90.3 Schedule Entry Lock Supported Get Command ..................................................................530 4.90.4 Schedule Entry Lock Supported Report Command .............................................................531 4.90.5 Schedule Entry Lock Week Day Schedule Set Command ....................................................532 4.90.6 Schedule Entry Lock Week Days Schedule Get Command ..................................................533 4.90.7 Schedule Entry Lock Week Day Schedule Report Command ..............................................534 4.90.8 Schedule Entry Lock Year Day Schedule Set Command ......................................................535 4.90.9 Schedule Entry Lock Year Day Schedule Get Command......................................................537 4.90.10 Schedule Entry Lock Year Day Schedule Report Command ................................................538 4.91 Schedule Entry Lock Command Class, version 2 [DEPRECATED] ...................................................538 4.91.1 Schedule Entry Lock Time Offset Get Command.................................................................539 4.91.2 Schedule Entry Lock Time Offset Set Command .................................................................539 4.91.3 Schedule Entry Lock Time Offset Report Command ...........................................................540 4.92 Schedule Entry Lock Command Class, Version 3 [DEPRECATED]...................................................540 4.92.1 Schedule Entry Type Supported Report Command.............................................................541 4.92.2 Schedule Entry Lock Daily Repeating Set Command...........................................................542 4.92.3 Schedule Entry Lock Daily Repeating Get Command ..........................................................543 4.92.4 Schedule Entry Lock Daily Repeating Report ......................................................................544 4.93 Screen Attributes Command Class, version 1................................................................................545 4.93.1 Screen Attributes Get Command ........................................................................................545 4.93.2 Screen Attributes Report Command ...................................................................................545 4.94 Screen Attributes Command Class, version 2................................................................................546 4.94.1 Screen Attributes Report Command ...................................................................................546 4.95 Screen Meta Data Command Class, version 1 ...............................................................................547 4.95.1 Screen Meta Data Get Command .......................................................................................548 4.95.2 Screen Meta Data Report Command ..................................................................................549 4.96 Screen Meta Data Command Class, version 2 ...............................................................................552 4.96.1 Screen Meta Data Report Command ..................................................................................552 4.97 Sensor Configuration Command Class, version 1 [OBSOLETED] ...................................................555 4.97.1 Sensor Trigger Level Set Command.....................................................................................556 4.97.2 Sensor Trigger Level Get Command ....................................................................................557 4.97.3 Sensor Trigger Level Report Command...............................................................................557 4.97.4 Mapping example................................................................................................................558 4.98 Simple AV Control Command Class, version 1-4 ...........................................................................558 4.98.1 Simple AV Control Set Command........................................................................................558

4.98.2 Simple AV Control Get Command .......................................................................................560 4.98.3 Simple AV Control Report Command ..................................................................................560 4.98.4 Simple AV Control Supported Get Command .....................................................................561 4.98.5 Simple AV Control Supported Report Command ................................................................561 4.99 Sound Switch Command Class, version 1 ......................................................................................562 4.99.1 Terminology ........................................................................................................................562 4.99.2 Compatibility considerations...............................................................................................562 4.99.3 Sound Switch Tones Number Get Command ......................................................................562 4.99.4 Sound Switch Tones Number Report Command.................................................................563 4.99.5 Sound Switch Tone Info Get Command ..............................................................................563 4.99.6 Sound Switch Tone Info Report Command .........................................................................564 4.99.7 Sound Switch Configuration Set Command ........................................................................565 4.99.8 Sound Switch Configuration Get Command........................................................................566 4.99.9 Sound Switch Configuration Report Command...................................................................566 4.99.10 Sound Switch Tone Play Set Command...............................................................................567 4.99.11 Sound Switch Tone Play Get Command ..............................................................................568 4.99.12 Sound Switch Tone Play Report Command .........................................................................568 4.100 Sound Switch Command Class, version 2 ......................................................................................568 4.100.1 Compatibility Considerations ..............................................................................................568 4.100.2 Sound Switch Tone Play Set Command...............................................................................569 4.100.3 Sound Switch Tone Play Report Command .........................................................................570 4.101 Tariff Table Configuration Command Class, version 1...................................................................571 4.101.1 Tariff Table Supplier Set Command.....................................................................................571 4.101.2 Tariff Table Set Command...................................................................................................574 4.101.3 Tariff Table Remove Command...........................................................................................575 4.102 Tariff Table Monitor Command Class, version 1 ...........................................................................575 4.102.1 Tariff Table Supplier Get Command ....................................................................................575 4.102.2 Tariff Table Supplier Report Command...............................................................................576 4.102.3 Tariff Table Get Command ..................................................................................................577 4.102.4 Tariff Table Report Command .............................................................................................577 4.102.5 Tariff Table Cost Get Command ..........................................................................................578 4.102.6 Tariff Table Cost Report Command .....................................................................................580 4.103 Thermostat Fan Mode Command Class, version 1 ........................................................................582 4.103.1 Thermostat Fan Mode Set Command .................................................................................582 4.103.2 Thermostat Fan Mode Get Command ................................................................................582 4.103.3 Thermostat Fan Mode Report Command ...........................................................................583 4.103.4 Thermostat Fan Mode Supported Get Command...............................................................583 4.103.5 Thermostat Fan Mode Supported Report Command .........................................................584 4.104 Thermostat Fan Mode Command Class, Version 2 .......................................................................584 4.104.1 Thermostat Fan Mode Set Command .................................................................................584 4.104.2 Thermostat Fan Mode Report Command ...........................................................................585 4.105 Thermostat Fan Mode Command Class, Version 3 .......................................................................585 4.105.1 Thermostat Fan Mode Set Command .................................................................................585 4.105.2 Thermostat Fan Mode Get Command ................................................................................586 4.105.3 Thermostat Fan Mode Report Command ...........................................................................586 4.106 Thermostat Fan Mode Command Class, Version 4-5 ....................................................................586 4.106.1 Thermostat Fan Mode Set Command .................................................................................587

4.106.2 Thermostat Fan Mode Get Command ................................................................................589 4.106.3 Thermostat Fan Mode Report Command ...........................................................................589 4.106.4 Thermostat Fan Mode Supported Get Command...............................................................589 4.106.5 Thermostat Fan Mode Supported Report Command .........................................................590 4.107 Thermostat Fan State Command Class, version 1-2......................................................................590 4.107.1 Compatibility considerations...............................................................................................590 4.107.2 Thermostat Fan State Get Command..................................................................................591 4.107.3 Thermostat Fan State Report Command ............................................................................592 4.108 Thermostat Mode Command Class, version 1-2 ...........................................................................592 4.108.1 Interoperability considerations ...........................................................................................592 4.108.2 Thermostat Mode Set Command........................................................................................593 4.108.3 Thermostat Mode Get Command .......................................................................................593 4.108.4 Thermostat Mode Report Command ..................................................................................593 4.108.5 Thermostat Mode Supported Get Command .....................................................................594 4.108.6 Thermostat Mode Supported Report Command ................................................................594 4.109 Thermostat Mode Command Class, version 3...............................................................................595 4.109.1 Compatibility considerations...............................................................................................595 4.109.2 Interoperability considerations ...........................................................................................595 4.109.3 Thermostat Mode Set Command........................................................................................596 4.109.4 Thermostat Mode Report Command ..................................................................................599 4.110 Thermostat Operating State Command Class, version 1...............................................................600 4.110.1 Thermostat Operating State Get Command .......................................................................600 4.110.2 Thermostat Operating State Report Command ..................................................................600 4.111 Thermostat Operating State Command Class, version 2...............................................................600 4.111.1 Thermostat Operating State Get.........................................................................................600 4.111.2 Thermostat Operating State Report....................................................................................601 4.111.3 Thermostat Operating State Logging Supported Get..........................................................602 4.111.4 Thermostat Operating State Logging Supported Report.....................................................602 4.111.5 Thermostat Operating State Logging Get............................................................................603 4.111.6 Thermostat Operating State Logging Report ......................................................................603 4.112 Thermostat Setback Command Class, version 1............................................................................605 4.112.1 Thermostat Setback Set Command.....................................................................................605 4.112.2 Thermostat Setback Get Command ....................................................................................606 4.112.3 Thermostat Setback Report Command ...............................................................................607 4.113 Thermostat Setpoint Command Class, version 1-2 .......................................................................607 4.113.1 Interoperability Considerations ..........................................................................................607 4.113.2 Thermostat Setpoint Set Command....................................................................................608 4.113.3 Thermostat Setpoint Get Command ...................................................................................609 4.113.4 Thermostat Setpoint Report Command ..............................................................................610 4.113.5 Thermostat Setpoint Supported Get Command .................................................................611 4.113.6 Thermostat Setpoint Supported Report Command ............................................................612 4.114 Thermostat Setpoint Command Class, version 3...........................................................................612 4.114.1 Compatibility considerations...............................................................................................612 4.114.2 Interoperability Considerations ..........................................................................................613 4.114.3 Thermostat Setpoint Set Command....................................................................................614 4.114.4 Thermostat Setpoint Get Command ...................................................................................616 4.114.5 Thermostat Setpoint Report Command ..............................................................................617

4.114.6 Thermostat Setpoint Supported Get Command .................................................................618 4.114.7 Thermostat Setpoint Supported Report Command ............................................................619 4.114.8 Thermostat Setpoint Capabilities Get Command................................................................620 4.114.9 Thermostat Setpoint Capabilities Report Command ..........................................................621 4.115 User Code Command Class, version 1 ...........................................................................................622 4.115.1 Interoperability considerations ...........................................................................................622 4.115.2 User Code Set Command ....................................................................................................623 4.115.3 User Code Get Command....................................................................................................624 4.115.4 User Code Report Command...............................................................................................625 4.115.5 Users Number Get Command .............................................................................................625 4.115.6 Users Number Report Command ........................................................................................625 4.116 User Code Command Class, version 2 ...........................................................................................626 4.116.1 Terminology ........................................................................................................................626 4.116.2 Compatibility considerations...............................................................................................627 4.116.3 Interoperability considerations ...........................................................................................628 4.116.4 Security considerations .......................................................................................................628 4.116.5 User Code Set Command ....................................................................................................629 4.116.6 Users Number Report Command ........................................................................................630 4.116.7 User Code Capabilities Get Command ................................................................................630 4.116.8 User Code Capabilities Report Command ...........................................................................631 4.116.9 User Code Keypad Mode Set Command .............................................................................634 4.116.10 User Code Keypad Mode Get Command.............................................................................636 4.116.11 User Code Keypad Mode Report Command .......................................................................636 4.116.12 Extended User Code Set Command ....................................................................................637 4.116.13 Extended User Code Get Command....................................................................................642 4.116.14 Extended User Code Report Command ..............................................................................644 4.116.15 Master Code Set Command ................................................................................................646 4.116.16 Master Code Get Command................................................................................................647 4.116.17 Master Code Report Command ..........................................................................................648 4.116.18 User Code Checksum Get Command ..................................................................................649 4.116.19 User Code Checksum Report Command .............................................................................650 4.117 Window Covering Command Class, version 1 ...............................................................................650 4.117.1 Terminology ........................................................................................................................651 4.117.2 Compatibility considerations...............................................................................................652 4.117.3 Window Covering Parameters ............................................................................................653 4.117.4 Window Covering Supported Get Command ......................................................................657 4.117.5 Window Covering Supported Report Command.................................................................657 4.117.6 Window Covering Get Command........................................................................................658 4.117.7 Window Covering Report Command...................................................................................658 4.117.8 Window Covering Set Command ........................................................................................659 4.117.9 Window Covering Start Level Change Command................................................................660 4.117.10 Window Covering Stop Level Change Command ................................................................661 REFERENCES.....................................................................................................................................664

1 Abbreviations

Abbreviation

Explanation

AMR API ASCII
AV DHCP DNS DST HRV ID IP IPV4 IPV6 LF LSB MSB NIF PIR SUC TZO Unicode UTC WMC Z/IP

Automatic Meter Reading Application Programming Interface American Standard Code for Information Interchange. An ASCII code is the numerical representation of a character. Audio/Video Dynamic Host Configuration Protocol. Domain Name System Daylight Savings Time Heat Recovery Ventilation Identifier Internet Protocol Internet Protocol version 4 Internet Protocol version 6 Linefeed character. Less Significant Bit Most Significant Bit Node Information Frame Pyroelectric Infrared Static Update Controller Time Zone Offset Unicode is a standard for encoding of characters. (http://www.unicode.org/) Coordinated Universal Time (called Greenwich Mean Time (GMT) before 1972) Windows Vista Media Center and Media Center 2005 remote controls Z-Wave for IP

2 Introduction
Commands classes are divided in four categories:  Application Command Classes  Management Command Classes [15]  Transport-Encapsulation Command Classes [14]  Network-Protocol Command Classes [16]
The list of defined Command Classes with their associated category is available in [13].
This document describes the Command Classes designed for Application specific purposes.
2.1 Precedence of definitions
Device Class, Device Type and Command Class Specifications approved as final version during the Device Class, Device Type and Command Class Open Review process have precedence over this document until integrated into this document.
2.2 Terms used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document MUST be interpreted as described in IETF RFC 2119 [6].
Statements containing the IETF RFC 2119 [6] key words are at times marked with unique requirement numbers in the margin. The requirements numbers have the following syntax: CC:xxxx.xx.xx.xx.xxx with each x being an hexadecimal digit.
This document defines functionality as deprecated or obsoleted.
The term "obsolete" means that the functionality MUST NOT be supported in new implementations applying for certification.
A controller SHOULD provide controlling capabilities of the actual functionality for backwards compatibility with legacy devices.
The term "deprecated" also indicates an obsolete definition, but it permits new implementations applying for certification.
Thus, the term "deprecated" means that the functionality SHOULD NOT be supported in new implementations applying for certification. Often, another substitute functionality is REQUIRED if the deprecated functionality is implemented.
A controller SHOULD provide controlling capabilities of the actual functionality for backwards compatibility with legacy devices.
3 Command Class Overview
The following sections present a general Command Class overview and their associated rules. The requirements and recommendations apply to all Command Classes.

CC:0000.00.00.11.001

3.1 Overview
The Device Class specification [1] and Z-Wave Plus Device Type [10], [22] specification indicate combinations of command classes which MUST be supported for a particular product class or type.

3.2 Command class format
3.2.1 Frame format
All commands classes have a common header consisting of a Command Class identifier and a Command identifier. Each command can have from zero to N bytes of command data. The bit numbering starts at zero for the least significant bit. LSB is denoted as `Bit 0' and MSB is denoted as `Bit 7 throughout the document.
LSB and MSB notations are also used for multi bytes fields, indicating which byte is the most significant.
Figure 1, Generic command format and Figure 2, Generic extended command format below show the generic command frame for the two possible formats:

7

6

5

4

3

2

1

0

Command Class (0x20..0xEE)

Command

Command Data 1

...

Command Data N
Figure 1, Generic command format

7

6

5

4

3

2

1

0

Command Class MSB (0xF1..0xFF)

Command Class LSB (0x00..0xFF)

Command

Command Data 1

...

Command Data N
Figure 2, Generic extended command format

3.2.1.1 Command class The Command Class identifier range is shown in Table 1, Command Class identifier range.
Table 1, Command Class identifier range

CC:0000.00.00.13.001

Command Class 0x00
0x01..0x1F 0x20..0xEE
0xEF 0xF0 0xF100 0xF101..0xFFFF

Description No Operation. Used by Z-Wave Protocol. MAY be used by the application. Reserved for the Z-Wave protocol Application Command Classes Support/Control Mark Non interoperable Security Mark Extended Application Command Classes (2 byte-long Command Class identifier)

A Command Class can contain up to 255 different Commands. If the Command Class field is in the range 0xF1..0xFF, the Command Class identifier is therefore 2 bytes long. This allows for future extensions of the Command Classes and provides the possibility of having more than 4000 Command Classes.
3.2.1.2 Command
The command field contains the specific command indicating a node how to parse and interpret the command data. The command field length is always 1 byte.
3.2.1.3 Command data (N bytes)
The command data field contains data related to the command. The description for the command data is defined in each individual command.
Simple commands, such as Get commands, usually contain no command data. Other commands, such as Set or Report commands can contain several bytes of command data.

3.2.2 Command class versioning

All command classes have a version number. The following rules apply to avoid interoperability issues when introducing the same Command Class with different versions:

CC:0000.00.00.11.002 CC:0000.00.00.11.003 CC:0000.00.00.11.004

 A node MUST NOT discard a frame based on the length field. A receiving node MUST use the Command Class identifier and the Command identifier to interpret the application frame. This enables a device, which supports version 1 of a Command Class to interpret the version 1 part of a received version 2 of the command.
 All implementations of a Command Class version higher than 1 MUST initialize all parameters associated with the version higher than 1. Thereby a node implementing the version 2 of a Command Class can interpret a version 1 received Command.
 A device supporting a Command Class having a version higher than 1 MUST support the Version Command Class [15] to be able to identify the supported version. If a node does not support the Version Command Class at its highest security level, it can be assumed that all Command Classes version are equal to 1.
 It is allowed to certify nodes supporting an older version of a Command Class despite a newer version exists as long as the generic/specific device specification does not require a specific version implemented.

3.3 Controlled and Supported Command Classes

A node can support and/or control a given Command Class.

CC:0000.00.00.11.005

If a Command Class is supported: The node implements all the Command Class functionalities and can be set and read back by other nodes. When a Command Class is supported, it is REQUIRED to implement the whole Command Class.

If a Command Class is controlled: The node implements the ability to interview, read and/or set other nodes supporting the Command Class. Nodes controlling Command Classes may use only a subset of the Commands within a Command Class (for example only Set commands). Even if using a Command Class partially for control, the use must comply with the Command Class requirements.

For example, a Set Command sent to Association Group destinations is a form of Command Class control.

3.4 Node Information Frame
The Node Information Frame (NIF) is used to inform other devices about the node capabilities. The NIF contains a structure with a protocol specific part that is handled by the Z-Wave protocol and an application specific part that is filled in by the application. The protocol specific part consists of a bit telling if the node is a continuously listening device, the Basic Device Class the node is based on etc. The application specific part consists of the Generic and Specific Device Class and the Command Classes that are supported and/or controlled by the node.
Generic and Specific Device Class are defined in [1] for legacy Z-Wave nodes or in [10], [22] for Z-Wave Plus nodes.

A NIF will be sent to the controller when a node is to be included in the network, excluded from the network or upon request.
Table 2, Node Information Frame Format shows the NIF structure.
Table 2, Node Information Frame Format

Byte

descriptor \

7

6

5

4

3

2

1

0

bit number

Capability
Security Reserved Basic *)

Listening
Opt. Func.

Routing

Max Speed

Protocol version

Sensor 1000ms

Sensor 250ms

Beam capabi-
lity

Routing Slave

Specific Device

Controller

Z-Wave Protocol Specific Part

Basic Device Class (Z-Wave Protocol Specific Part)

Secu-rity

Generic

Generic Device Class

Specific

Specific Device Class

NodeInfo[0]

Command Class 1

...

...

NodeInfo[n1]

Command Class N

*) The "Basic" field is only included when the NIF is sent by a controller

CC:0000.00.00.11.006

The Z-Wave Protocol in a controller saves all the Node Information except the supported and controlled Command Classes when a node is included in the network. The reserved field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

3.4.1 Z-Wave Protocol Specific Part

The protocol specific part of the NIF is handled by the Z-Wave protocol. This information is automatically inserted in the packet by the protocol layer when transferring data using the API.

Basic Device Class

The Basic Device Class field contains an identifier that identifies what Basic Device Class this node is based on and is set by the Z-Wave protocol. A detailed description of all available Basic Device Classes is given in [1] for Z-Wave devices and [10], [22] for Z-Wave Plus devices. The Z-Wave Plus devices have an additional parameter Role Type defining device role in the network. The Role Type parameter is announced via the Z-Wave Plus Info Command Class [15].

CC:0000.00.00.11.007 This field is only included when the NIF frame is sent by a controller. A slave MUST omit this field. Refer to [9] for controller and slave definition.

3.4.2 Application Specific Part

The application specific part of the NIF is handled by the application. The information must be in accordance with the defined classes to obtain interoperability.

Listening Flag

The Listening flag is used to indicate that the node is always listening if set to 1. An always listening node must be powered continuously and reside on a fixed position in the installation. An always listening node is included in the routing table to assist as repeater in the network. The routing table is static during normal operation. In case the Listening flag is set to 0, the node is non-listening. This is typically used for battery operated nodes being asleep when the protocol is idle to prolong battery lifetime. A battery operated node is not included in the routing table and is not used as a router in the network. In some instances the node's position in the network is still determined, and stored by the protocol.

Optional Functionality Flag

The Optional Functionality flag is used to indicate that this node supports other command classes than the mandatory for the selected generic/specific device class and that a controlling node needs to look at the supported command classes to fully control this device.

Generic Device Class

The Generic Device Class field contains an identifier that identifies what Generic Device Class this node is part of and must be set by the application. For a detailed description of all available Generic Device Classes, refer to [1] for Z-Wave devices and [10], [22] for Z-Wave Plus devices.

Specific Device Class

The Specific Device Class field specifies what Specific Device Class this application is part of and must be set by the application. For a detailed description of all available Specific Device Classes, refer to [1] for Z-Wave devices and [10], [22] for Z-Wave Plus devices.

Command Class

The Command Class field is used to advertise Command Classes implemented by the node. The field CC:0000.00.00.11.008 MUST NOT be longer than 35 bytes.

CC:0000.00.00.11.009 The field MUST advertise the list of Command Classes that the node supports.

CC:0000.00.00.13.002 CC:0000.00.00.11.00A CC:0000.00.00.12.004

The field MAY advertise the list of Command Classes that the node can control in other nodes. If present, the list of controlling Command Classes MUST be prepended by the COMMAND_CLASS_MARK Command Class identifier. It is NOT RECOMMENDED to advertise controlled Command Classes.

CC:0000.00.00.12.001

It has been found that legacy controllers may read as little as 6 lines from this list. For backwards compatibility, the list SHOULD advertise supported command classes in the order indicated in Table 3, NIF :: Command Class advertising priorities :

Table 3, NIF :: Command Class advertising priorities

Priority

Command Class

1 (First line)

COMMAND_CLASS_ZWAVEPLUS_INFO Applies only to Z-Wave Plus products

2 (if supported) COMMAND_CLASS_SWITCH_MULTILEVEL or COMMAND_CLASS_SWITCH_BINARY

3 (if supported) COMMAND_CLASS_SWITCH_ALL

4 (if supported) COMMAND_CLASS_ASSOCIATION

5

All other command classes

Table 4, NIF::Command Class list structure shows the Command Class list structure of the Node Information frame:
Table 4, NIF::Command Class list structure

Description

Command Class list field content 76543210

Non-secure Supported Command Classes

Command Class 1 *) ...
Command Class M *)

Support/Control Mark

0xEF

Non-secure Controlled Command Classes

Command Class 1 *) ...
Command Class K *)

*) Command classes may be extended  spanning two bytes for one command class

CC:0000.00.00.13.003 The Command Class list MAY start or finish with the identifier COMMAND_CLASS_MARK.

3.4.3 NIF and Multi Channel/Security Command Classes

The NIF MUST represent command classes supported without Multi Channel or Security encapsulation CC:0000.00.00.11.00B [14].

After inclusion in a Z-Wave network, the NIF represents the node's Command Class capabilities when using no Security and no Multi Channel encapsulation.

Multi Channel Root Devices advertise their capabilities via the NIF, but they advertise the Command Class capabilities of their End Points via the Multi Channel Command Class.

Security bootstrapped nodes advertise their capabilities using security encapsulation via the Security 0 or Security 2 Command Class.

The Command Class list advertised in the NIF may vary depending on the inclusion state and S0/S2 bootstrapping state of the node.

CC:0000.00.00.11.00C A node supporting security (S0 and/or S2) MUST advertise command classes in the NIF according to Table 5, NIF content depending on inclusion and security bootstrapping.

Table 5, NIF content depending on inclusion and security bootstrapping

Network inclusion

Security bootstrapping

Command Classes advertised in the NIF

Not included in a

N/A

network

At least all Command Classes that MUST always be non-securely supported.
All supported Command Classes MAY be advertised

Included in a network Included in a network
Included in a network

No security supported by the included node
Before the node times out waiting for Security bootstrapping
Timed out waiting for Security Bootstrapping (i.e. the process never started)

All supported Command Classes
At least all Command Classes that MUST always be non-securely supported. All supported Command Classes MAY be advertised
The same Command Class list as when security bootstrapping is successful but no key was granted1

Included in a network

Security bootstrapping failed.
(i.e. the process started but did not complete without error)

All Command Classes that MUST always be non-securely supported
Command Classes that are supported when no key is granted MAY be added or removed from the list.1

Included in a network

Bootstrapped with S0/S2

All Command Classes that MUST always be non-securely supported only.

(i.e. Command Classes supported even if not using S0/S2 encapsulation).
1 Refer to each individual Device Type [10], [22] for the list of Command Classes supported when no security key is granted

CC:0000.00.00.11.00D Command Classes advertised as supported in the NIF after S0/S2 bootstrapping MUST also be supported at higher security levels unless encapsulated outside security.

3.4.3.1 Examples

In the case of a node requesting Access Control, they require a certain security level before supporting their command class. For example a Door Lock Device Type will support its command classes as shown in Figure 3

Figure 3, Access Control node NIF contents (always non-secure Command Classes shown in bold)
Nodes requesting a lower security level than Access Control have more freedom about advertising their regular command classes in the different scenarios. An example of a Binary Switch Device Type is shown in Figure 4
Figure 4, Non-Access Control node NIF contents (always non-secure Command Classes shown in bold)

3.4.4 Command Class specific NIF rules
CC:0000.00.00.13.004 A given Command Class MAY have additional requirement with respects to the NIF, Multi Channel Capability Report or S0/S2 Commands Supported Report.
For example, the Basic Command Class is never advertised in the NIF or the Z-Wave Plus Info is always in the NIF if supported.
In this case, requirements are listed in each individual Command Class definition, in the compatibility considerations section.

3.5 Multicast and broadcast commands

CC:0000.00.00.13.006 A node MAY send a command to several destinations using a Multicast or Broadcast frame. This is allowed only if the actual command does not require the responding node to return a response.

CC:0000.00.00.11.00E CC:0000.00.00.11.00F

Unless specified otherwise for a particular command:
 Commands requiring another command to be returned in response by a receiving node MUST NOT be issued via multicast addressing in a Z-Wave network
 A receiving node MUST NOT return a response if a 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.

3.6 Actuator Control
An actuator device may support one or more actuator command classes. This section presents terminology and conventions applying to all actuator command classes.
The actuator control group comprises the following command classes:
 Barrier Operator Command Class  Basic Command Class  Binary Switch Command Class  Color Switch Command Class  Door Lock Command Class  Multilevel Switch Command Class  Simple AV Command Class  Sound Switch Command Class  Thermostat Setpoint Command Class  Thermostat Mode Command Class  Window Covering Command Class

3.6.1 Terminology

Actuators may be controlled in two possible manners.
A position actuator responds to a position control command, which specifies a target value and optionally a duration for the transition from the current value to the target value. The value may be binary or multilevel. State control commands may be encoded as special multilevel position control values, e.g. 0xFF for "On" and 0x00 for "Off". The most recent (non-zero) target value is restored in response to the "On" state control command.
A motion actuator responds to start/stop commands. A motion control command specifies a direction, optionally a start value, and a transition rate.
3.6.2 Reporting values

A position control command may be used to initiate a transition to a new target value. A position report advertises the current value of the device hardware, optionally the target value and the remaining transition duration. If the transition is initiated by a motion control command, the reported target value is the min or max value and the duration is the time needed to reach the target value at the actual transition rate.

A controlling device should not assume that the position value advertised in a Report is identical to a value previously issued with a position control command when a transition has ended.

CC:0000.00.00.53.002 CC:0000.00.00.52.001 CC:0000.00.00.12.005

A controlling node MAY want to receive application-level acknowledgements after issuing actuating commands. It is the responsibility and choice of the controlling node whether or not to ensure that a actuating command has been successfully executed. If doing so, it is RECOMMENDED to use the Supervision Command Class [14] or MAY read back the node's state at a later time with a Get Command. A supporting node receiving an actuating Command SHOULD NOT return a Report Command advertising its status or level unless specified in the Command Class specification.

3.6.3 Command values vs. hardware values

CC:0000.00.00.11.010

A device may implement fewer hardware levels than supported by a position control Command Class. The hardware levels should be distributed uniformly over the entire range. The mapping of command values to hardware levels must be monotonous, i.e. a higher value MUST be mapped to either the same or a higher hardware level. An example is found in Table 6, Mapping command values to hardware levels (example).
Table 6, Mapping command values to hardware levels (example)

Multilevel Value 0 1..33 34..66 67..99

Hardware level State

0

Off

33%

On

66%

On

100%

On

3.6.4 Supporting multiple actuator Command Classes

CC:0000.00.00.13.007 Several actuator Command Classes MAY co-exist in a node or Multi Channel End Point. For example, a CC:0000.00.00.13.008 node MAY support both Window Covering Command Class and Multilevel Switch Command Class.

CC:0000.00.00.12.002 CC:0000.00.00.12.003

In this case, the two actuator Command Classes SHOULD actuate the same resource. If a node implements several actuating resources, e.g. a LED and a power switch, it is RECOMMENDED to use Multi Channel End Points for each individual resource.

3.7 Common fields and encoding

3.7.1 Reserved and Res fields

CC:0000.00.00.11.011 Fields named `Reserved' or `Res' MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

3.7.2 Reserved values and reserved bits

CC:0000.00.00.11.012 Values of fields in commands that are marked as "reserved" or "res" MUST NOT be used by devices sending commands and MUST be ignored by devices receiving commands.

CC:0000.00.00.11.013 Bits in commands that are marked as "reserved" or "res" MUST be set to 0 by devices sending commands and MUST be ignored by devices receiving commands.

CC:0000.00.00.11.014 Undefined values for a given parameter MUST be treated as "reserved". Reserved values MUST NOT be used by a sending node and MUST be ignored by a receiving node.

3.7.3 Duration encoding

CC:0000.00.00.11.015

Some actuator command classes allow controlling nodes to specify a duration for reaching the target value. The duration MUST be encoded according to Table 7, Actuator Command Class Duration Set encoding.

Table 7, Actuator Command Class Duration Set encoding

Value 0x00 0x01..0x7F 0x80..0xFE 0xFF

Description Instantly 1 second (0x01) to 127 seconds (0x7F) in 1 second resolution. 1 minute (0x80) to 127 minutes (0xFE) in 1 minute resolution. Factory default duration.

CC:0000.00.00.11.016

A node supporting an actuator Command Class may advertise the duration left to reach the target value advertised in a report. The duration MUST be encoded according to Table 8, Actuator Command Class Duration Report encoding.
Table 8, Actuator Command Class Duration Report encoding

Value 0x00 0x01..0x7F 0x80..0xFD 0xFE 0xFF

Description 0 seconds. Already at the Target Value. 1 second (0x01) to 127 seconds (0x7F) in 1 second resolution. 1 minute (0x80) to 126 minutes (0xFD) in 1 minute resolution. Unknown duration Reserved

CC:0000.00.00.11.017

3.7.4 Unsigned encoding

Unless specified otherwise in a field description, the field encoding is using unsigned representation. Fields using unsigned encoding MUST comply with Table 9, Default unsigned encoding examples

Table 9, Default unsigned encoding examples

Value Unsigned 8 bit (hex) representation
(decimal)

Value (hex)

Unsigned 16 bit representation (decimal)

Value (hex)

Unsigned 32 bit representation (decimal)

0x00

0 0x0000

0 0x00000000

0

0x01

1 0x0001

1 0x00000001

1

0x02

2 0x0002

2 0x00000002

2

0x7F

127 0x7FFF

32767 0x7FFFFFFF

2147483647

0x80

128

0x8000

32768

0x80000000

2147483648

0xFE

254

0xFFFE

65534

0xFFFFFFFE

4294967294

0xFF

255

0xFFFF

65535

0xFFFFFFFF

4294967295

3.7.5 Signed encoding

CC:0000.00.00.11.018

Some fields use the signed encoding representation.Signed encoding is using the two's complement representation. Fields using signed encoding MUST comply with Table 10, Signed field encoding (two's complement representation).

Table 10, Signed field encoding (two's complement representation)

Value Signed 8 bit (hex) representation
(decimal)

Value (hex)

Signed 16 bit representation (decimal)

Value (hex)

Signed 32 bit representation (decimal)

0x7F

127 0x7FFF

32767 0x7FFFFFFF

2147483647

0x02

2 0x0002

2 0x00000002

2

0x01

1 0x0001

1 0x00000001

1

0x00

0 0x0000

0 0x00000000

0

0xFF

-1 0xFFFF

-1

0xFFFFFFFF

-1

0xFE

-2 0xFFFE

-2

0xFFFFFFFE

-2

0x80

-128 0x8000

-32768

0x80000000

-2147483648

CC:0000.00.00.11.019

3.7.6 Fields values and version
New Command Class versions may define new possible values for a field introduced previously. In that case, a version column is added to the value table. A supporting node MUST support the values

associated its version and previous versions and MUST NOT support values associated to future versions. An example is given in Table 11, Field values and Command Class version (example).
Table 11, Field values and Command Class version (example)

Value 0x00 0x01
0x02
0xFF

Description
Value introduced in version 1, valid and mandatory in all versions
Value introduced in version 2, valid and mandatory in version 2 and newer Version 1 MUST consider this value as reserved
Value introduced in version 2, valid and mandatory in version 2 and newer Version 1 MUST consider this value as reserved
Value introduced in version 3, valid and mandatory in version 3 and newer Version 1 and 2 MUST consider this value as reserved

Version 1 2
2
3

4 Command Class Definitions The following subchapters contain definitions of Application Command Classes.

4.1 Alarm Command Class, version 1 [DEPRECATED]

CC:0071.01.00.12.001

THIS COMMAND CLASS VERSION HAS BEEN DEPRECATED
A device MAY implement this Command Class version, but it is RECOMMENDED that new implementations comply with Notification Command Class, version 8

CC:0071.01.00.11.001

The Alarm Command Class allows applications to report alarm or service conditions. Since these parameters are not standardized across devices the alarms/service parameters MUST be described in the user manual (or an installer manual).

4.1.1 Interoperability considerations

The Alarm Command Class has been superseded by the Notification Command Class. Refer to most recent version of Notification Command Class.

4.1.2 Alarm Get Command

This command is used to get the value of an alarm.

CC:0071.01.04.11.001 The Alarm Report Command MUST be returned in response to this command if the alarm type is supported.

CC:0071.01.04.11.002 This command MUST NOT be issued via multicast addressing.

CC:0071.01.04.11.003

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_ALARM

Command = ALARM_GET

Alarm Type

Alarm Type (8 bits)
The Alarm Type field specifies which alarm is being requested. The alarm types are specific for each application.

4.1.3 Alarm Report Command This command is used to report the type and level of an alarm.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_ALARM

Command = ALARM_REPORT

Alarm Type

Alarm Level

Alarm Type (8 bits) Refer to explanation under the Alarm Get Command. Alarm Level (8 bits) The alarm level is application specific.

4.2 Alarm Command Class, version 2 [DEPRECATED]

CC:0071.02.00.12.001

THIS COMMAND CLASS VERSION HAS BEEN DEPRECATED
A device MAY implement this Command Class version, but it is RECOMMENDED that new implementations comply with Notification Command Class, version 8

The Alarm Command Class is intended for Z-Wave enabled devices capable of reporting alarm reports. Version 2 of the Alarm Command Class is improved with the following functionalities:
 Alarm Types defined by the Z-Wave Alliance  Interview process of supported Alarm Types

The commands not described in this version remain unchanged from Alarm Command Class, version 1. 4.2.1 Interoperability considerations The interoperability considerations from version 1 also apply for this version. Refer to 4.1.1. 4.2.2 Alarm Set Command This command is used to set the activity of the Z-Wave Alarm Type and Status.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_ALARM

Command = ALARM_SET

Z-Wave Alarm Type

Z-Wave Alarm Status

Z-Wave Alarm Type (8 bits)

Refer to 4.1.3 Alarm Report Command

Z-Wave Alarm Status (8 bits)

This field is used to set the state of the Alarm Type. The value 0x00 will deactivate the alarm and 0xFF will activate the alarm i.e. unsolicited Alarm Report Command will be transmitted to the node(s) defined in the Node field(s) when triggered by an event. Any other value is reserved for future use.

CC:0071.02.06.11.001 CC:0071.02.06.11.002
CC:0071.02.06.12.001

Note: The factory default state MUST be described in the product manual. All Z-Wave enabled devices MUST be able to operate based on factory default settings i.e. an end-user MUST NOT be forced to setup the states of the device in order to operate. The factory default state of the Z-Wave Alarm Status SHOULD be enabled.

CC:0071.02.06.11.003

Products that do not allow deactivation of a specific Alarm Type, MUST respond to a Alarm Configuration Set deactivating the Alarm Type in question by returning an Application Rejected Request Command of the Application Status Command Class.

4.2.3 Alarm Get Command

The Alarm Get Command is used to request the alarm state for a specific alarm type announced as supported through the Alarm Type Supported Report Command.

CC:0071.02.04.11.001 The Alarm Report Command MUST be returned in response to this command if the alarm type is supported.

CC:0071.02.04.11.002 This command MUST NOT be issued via multicast addressing.

CC:0071.02.04.11.003

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_ALARM

Command = ALARM_GET

Alarm Type

Z-Wave Alarm Type

CC:0071.02.04.11.004

Alarm Type (8 bits)
This field refers to the Alarm Type of Alarm Command Class (Version 1) i.e. the application specific Alarm Type which is not defined by the Z-Wave Alliance. If the `V1 Alarm' field is set to `0' as reported via the Alarm Type Supported Report Command, this field MUST be set to `0' when requesting the report.

Z-Wave Alarm Type (8 bits)

CC:0071.02.04.11.005 The Z-Wave Alarm Type field MUST contain the Alarm Type identifier described in Alarm Report Command. This parameter refers to the Alarm Types defined by the Z-Wave Alliance.

CC:0071.02.04.11.006 CC:0071.02.04.12.001

A node receiving a non-supported Z-Wave Alarm Type MUST ignore the command. A controlling node SHOULD interview the device for supported Alarm Types by means of Alarm Type Supported Get Command prior to Alarm Get.

4.2.4 Alarm Report Command

This command is used by the application to report the alarm state.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_ALARM

Command = ALARM_REPORT

Alarm Type

Alarm Level

Zensor Net Source Node ID

Z-Wave Alarm Status

Z-Wave Alarm Type

Z-Wave Alarm Event

Number of Event Parameters

Event Parameter 1

...

Event Parameter N

Alarm Type (8 bits)

Refer to 4.1.3 Alarm Report Command

Alarm Level (8 bits)

Refer to 4.1.3 Alarm Report Command

Zensor Net Source Node ID (8 bits)

CC:0071.02.05.11.001

Specify the Zensor Net Source Node ID, which detected the alarm condition. In Zensor Net it is not possible to determine the Source Node ID due to the broadcast forwarded frame is without this information on protocol level. If the device is not based on Zensor Net this field MUST be set to `0'.

Z-Wave Alarm Status (8 bits)

Refer to 4.2.2 Alarm Set Command

Number of Event Parameters (8 bits)

Indicates the Number of Event Parameters fields used in bytes.

Z-Wave Alarm Type (8 bits), Z-Wave Alarm Event (8 bits) and Event Parameters (N Byte)

CC:0071.02.05.11.002

[18] specifies the Alarm Types and its subordinate parameters defined by the Z-Wave Alliance. The fields that do not contain any definition of the Z-Wave Alarm Type MUST be set to `0' in the Alarm Report Command.

CC:0071.02.05.11.003

The device MUST advertise support of the Command Class which is included for the specific Alarm Type. Example: for Smoke Alarm, Smoke Detected the Node Naming and Location Command Class MUST be advertised as supported in the Node Information Frame.

Alarm Type = 0xFF is used by the Alarm Get Command to retrieve the first alarm detection from the list of pending alarms.

Example: a device supports the Z-Wave Alarm Types: Smoke, CO2 and Heat. The Heat Alarm is active e.g. overheat has been detected. When the device receives Alarm Get, Z-Wave Alarm Type (0xFF), it must return Alarm Report, Z-Wave Alarm Type (0x04), Z-Wave Alarm Event (0x01/0x02) and the accompanied parameters.

4.2.5 Alarm Type Supported Get Command

This command is used to request the supported alarm types.

CC:0071.02.07.11.001 The Alarm Type Supported Report Command MUST be returned in response to an Alarm Type Supported Get command.

CC:0071.02.07.11.002 This command MUST NOT be issued via multicast addressing.

CC:0071.02.07.11.003

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_ALARM

Command = ALARM_TYPE_SUPPORTED_GET

4.2.6 Alarm Type Supported Report Command This command is used to advertise the supported alarm types in the application.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_ALARM

Command = ALARM_TYPE_SUPPORTED_REPORT

V1 Alarm

Reserved

Number of Bit Masks

Bit Mask 1

...

Bit Mask N

V1 Alarm (1 bit)

0 = the device implements only Notification CC V2 (or newer) Notification Type(s). 1 = the device implements Notification CC V2 Notification Types as well as proprietary Alarm CC V1 Alarm Types and Alarm Levels.

Reserved

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

Number of Bit Masks (5 bits)

Indicates the Number of Bit Masks fields used in bytes.

Bit Mask (N Bytes)

The Bit Mask fields describe the supported Z-Wave Alarm Types by the device.

CC:0071.02.08.11.002

 Bit 0 in Bit Mask 1 is not allocated to any Z-Wave Alarm Type and MUST therefore be set to zero.
 Bit 1 in Bit Mask 1 indicates if Z-Wave Alarm Type = 1 (Smoke) is supported.  Bit 2 in Bit Mask 1 indicates if Z-Wave Alarm Type = 2 (CO) is supported.  Bit 3 in Bit Mask 1 indicates if Z-Wave Alarm Type = 3 (CO2) is supported ...

CC:0071.02.08.11.003 If the Z-Wave Alarm Type is supported the corresponding bit MUST be set to 1. If the Z-Wave Alarm Type is not supported the corresponding bit MUST be set to 0.
CC:0071.02.08.11.004 Z-Wave Alarm Type = 0xFF (Return first Alarm on supported list) MUST NOT be advertised in the Bit Masks.
CC:0071.02.08.11.005 The number of Bit Mask fields MUST match the value advertised in the Number of Bit Masks field.
Note that the mapping of bit 1 to Alarm Type =1 differs from the support mapping used by the Multilevel Sensor Command Class. The Multilevel Sensor Command Class maps bit 0 to Sensor Type = 1.

4.3 Alarm Sensor Command Class, version 1 [DEPRECATED]
THIS COMMAND CLASS HAS BEEN DEPRECATED A device MAY implement this command class, but it is RECOMMENDED that new implementations use the Notification Command Class. If implementing this Command Class, it is RECOMMENDED that the Notification Command Class is also implemented.

The Alarm Sensor Command Class is used to realize Sensor Alarms.
4.3.1 Alarm Sensor Get Command
This command is used to request the status of a sensor.
The Alarm Sensor Report Command MUST be returned in response to this command if the sensor type is supported.
This command MUST NOT be issued via multicast addressing. 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_SENSOR_ALARM

Command = SENSOR_ALARM_GET

Sensor Type

Sensor Type (8 bits)
Sensor Type specifies what type of sensor this command originates from. Refer to Table 12. The sensor type value 0xFF returns the first found supported sensor type in the bit mask (starting from bit 0 in Bit Mask 1) by the Alarm Sensor Supported Report.

Table 12, Alarm Sensor Get::Sensor Type encoding

Value

Sensor Type

0x00 General Purpose Alarm

0x01 Smoke Alarm

0x02 CO Alarm

0x03 CO2 Alarm

0x04 Heat Alarm

0x05 Water Leak Alarm

0xFF Return first Alarm on supported list

4.3.2 Alarm Sensor Report Command This command is used to advertise the alarm state.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SENSOR_ALARM

Command = SENSOR_ALARM_REPORT

Source Node ID

Sensor Type

Sensor State

Seconds 1 (MSB)

Seconds 2 (LSB)

Source Node ID (8 bits)
Specify the source node ID, which detected the alarm condition. In a Zensor Net is it not possible to determine the source node ID because the frame is broadcast forwarded without this information on protocol level.
Sensor Type (8 bits)
Refer to 4.3.1 Alarm Sensor Get Command. The Sensor Type 0xFF MUST NOT be advertised in this command.
Sensor State (8 bits)
The Sensor State parameter returns the current alarm state. The value 0x00 indicates no alarm and 0xFF indicates alarm. Furthermore it can return values from 0x01 to 0x64 to indicate severity of the alarm in percentage.
The values 0x65...0xFE are reserved and MUST be ignored by receiving nodes.

Seconds (16 bits)
The field Seconds indicates time the remote alarm must be active since last received report. The value 0x0000 indicates that the time field MUST be ignored.
4.3.3 Alarm Sensor Supported Get Command
This command is used to request the supported sensor types from the device.
The Alarm Sensor Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SENSOR_ALARM

Command = SENSOR_ALARM_SUPPORTED_GET

4.3.4 Alarm Sensor Supported Report Command This command is used to report the supported sensor types from the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SENSOR_ALARM

Command = SENSOR_ALARM_SUPPORTED_REPORT

Number of Bit Masks

Bit Mask 1

...

Bit Mask N

Number of Bit Masks (8 bits) Indicates the Number of Bit Masks fields used in bytes.

Bit Mask (N Bytes)
The Bit Mask fields describe the supported sensor types by the device.
 Bit 0 in Bit Mask 1 indicates if Sensor Type = 0 (General Alarm) is supported.  Bit 1 in Bit Mask 1 indicates if Sensor Type = 1 (Smoke Alarm) is supported. ...
The sensor type is supported if the bit is 1 and the opposite if 0. It is only necessary to send the Bit Mask fields from 1 and up to the one indicating the last supported sensor type. The number of Bit Mask fields transmitted MUST be determined from the length field in the frame.
Note that the mapping of bit 1 to Sensor Type =1 differs from the support mapping used by the Multilevel Sensor Command Class. The Multilevel Sensor Command Class maps bit 0 to Sensor Type = 1.

4.4 Alarm Silence Command Class, version 1 The Alarm Silence Command Class may be used to temporarily disable the sounding of the alarm but still keep the alarm operating. 4.4.1 Alarm Silence Set Command This command is used to remotely silence the sensor alarm.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SILENCE_ALARM

Command = SENSOR_ALARM_SET

Mode

Seconds 1 (MSB)

Seconds 2 (LSB)

Number of Bit Masks

Bit Mask 1

...

Bit Mask N

Mode (8 bits)
Mode specifies the different options to silence sensor alarms. Modes are defined by the Z-Wave Alliance.

Value

Mode

0x00 Disable sounding of all sensor alarms independent of bit mask

0x01 Disable sounding of all sensor alarms independent of bit mask which have received the alarm via the Sensor Alarm Report command

0x02 Disable sounding of all sensor alarms according to bit mask

0x03 Disable sounding of all sensor alarms according to bit mask which have received the alarm via the Alarm Sensor Report Command

Seconds (16 bits)
The field Seconds indicates the duration sounding of the alarm must be disable but still keep the alarm operating. If silence is engaged, the alarm will come back on when the duration expires unless the originating sensor clears the alarm. The value 0x0000 indicates that the time field MUST be ignored.

Number of Bit Masks (8 bits)
Indicates the Number of Bit Masks fields used in bytes.
Bit Mask (N Bytes)
The Bit Mask fields describe the sensor types to disable sounding from.
 Bit 0 in Bit Mask 1 indicates if Sensor Type = 0 (General Alarm) is disabled.  Bit 1 in Bit Mask 1 indicates if Sensor Type = 1 (Smoke Alarm) is disabled. ...
If the sensor type is disabled the bit MUST be set to 1. If the sensor type is not disabled the bit MUST be set to 0. It is only necessary to send the Bit Mask fields from 1 and up to the one indicating the last sensor type to be disabled.

4.5 All Switch Command Class, version 1 [OBSOLETED]
THIS COMMAND CLASS HAS BEEN OBSOLETED New implementations MUST NOT support this Command Class. Controlling nodes MUST use S2 Multicast mechanism in order to achieve the All On and All Off functionality

The All Switch Command Class is used to switch all devices on or off. Devices may be excluded/included from the all on/all off functionality. The application determines which devices there are included in the all on/all off functionality as default.
4.5.1 All Switch Set Command
This command is used to instruct a device if it is included or excluded from the all on/all off functionality.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_ALL

Command = SWITCH_ALL_SET

Mode

Mode (8 bits) The mode field used to set the all on/all off functionality of the device.

Mode

Description

0x00

Indicate that the switch is excluded from the all on/all off functionality.

0x01

Indicate that the switch is excluded from the all on functionality but not all off.

0x02

Indicate that the switch is excluded from the all off functionality but not all on.

0x03..0xFE Reserved

0xFF

Indicates that the switch is included in the all on/all off functionality.

4.5.2 All Switch Get Command
This command is used to ask a device if it is included or excluded from the all on/all off functionality.
The All Switch Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SWITCH_ALL

Command = SWITCH_ALL_GET

4.5.3 All Switch Report Command This command is used to report if the device is included or excluded from the all on/all off functionality.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_ALL

Command = SWITCH_ALL_REPORT

Mode

Mode (8 bits)
Refer to the All Switch Set Command.
4.5.4 All Switch On Command
This command is used to inform a switch that it SHOULD be turned on. A receiving device MUST NOT react to this command if the actual operation has been prohibited via the Switch All Set command. Like the Basic Set On command, this command MUST cause the device to restore the most recent (non-zero) level.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_ALL

Command = SWITCH_ALL_ON

4.5.5 All Switch Off Command
This command is used to inform a switch that it SHOULD be turned off. A receiving device MUST NOT react to this command if the actual operation has been prohibited via the Switch All Set command.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_ALL

Command = SWITCH_ALL_OFF

4.6 Anti-theft Command Class, version 1 [OBSOLETED]
THIS COMMAND CLASS VERSION HAS BEEN OBSOLETED New implementations MUST use the Anti-theft Command Class Version 2 or newer.
The Anti-theft Command Class is used to disable a subset of supported/controlled command classes in a device if the device is being excluded and re-included into a Z-Wave network again. This command class is typically used when installing a Z-Wave device in a public location such as a hotel room or conference center. The command class allows the user to lock the device to the actual Z-Wave network and to render it useless if it is removed from the local network without being unlocked. Another application would be to protect service provider owned products from leaving the service providers network before they are paid for. Version 2 limits the Magic Code and Anti-theft Hint maximum bytes to 10. This makes it possible to embed Anti-theft Command Class Version 2 in one Security Command Class and thereby avoid splitting it.

4.7 Anti-theft Command Class, version 2 [DEPRECATED]
THIS COMMAND CLASS VERSION HAS BEEN DEPRECATED
New implementations SHOULD use the Anti-theft Command Class, version 3.
The Anti-theft Command Class MUST NOT be supported unless the Device Class or Device Type implemented by the device explicitly allows for support of the Anti-theft Command Class.
The Anti-theft Command Class is intended for devices operating in public locations such as hotel rooms or a conference center. The purpose of the Anti-theft Command Class is to render a device useless if it is removed from its actual network without being unlocked by the owner or a service provider.
The Anti-theft Command Class is used to disable all command classes related to the actual application functionality of a device if is it excluded and later included in another network. It does not matter if the device implements a single resource addressed via the Root Device or a collection of resources addressed via individual Multi Channel End Points Enabling anti-theft protection in a device MUST NOT change any operation with respect to supported/controlled command classes as long as the device stays in the actual network.
If a locked device is excluded, it MUST enter the protected state. When in the protected state, the node information frame (NIF) MUST NOT advertise support of the protected command classes.The NIF MUST however continue advertising support of the Anti-theft Command Class and all other non-application specific command classes; just as when the device operates in its home network. The device MUST NOT respond to application commands while in the protected state. A device in protected state MUST NOT leave its protected state if it is re-included into its home network. Another Anti-Theft Set command MUST be used to either disable locking or to clear the protected state.
The following non-device specific command classes must not be protected by the anti-theft functionality (i.e. will always be available in the device regardless of protection state):
 Manufacturer Specific Command Class  Version Command Class  Anti-theft Command Class  Security Command Class (optional)
Security encapsulated command classes are allowed to be protected. In that case they must be removed from the Security Commands Supported Report Command when in the protected state in a foreign network.
The protection state may be updated by sending the set command with the correct magic code to the device at any time and in any network. When the protection state is updated the device must return to normal operation, regardless of whether the update is to disable or re-enable protection. However, it is not possible to update protection state when device is excluded because it must be able to receive a command.
The Anti-theft protection state must be preserved in the following situations:
 Exclusion of a network  Reset to factory default  OTA update of firmware

If secure device, supports Anti-theft Command Class, Security Command Class needs to be supported regardless of anti-theft protection state. A security enabled device MUST be able to join any secure ZWave network regardless of its anti-theft protection state.
It is RECOMMENDED for a device that supports anti-theft protection to have physical mark that indicates that this device is capable of being locked. It is further RECOMMENDED that the device is capable of signaling via a LED or other means if the device refuses inclusion in a network because the device is locked to another network. Finally, the user guide and installation manual MUST advertise support of anti-theft protection.
4.7.1 Anti-theft Set Command

This command is used to enable/disable anti-theft protection in a device already included into a Z-Wave Network by sending a magic code to device in question. The same magic code MUST be used to disable anti-theft protection again. A new magic code may be used the next time to enable anti-theft protection in the device, but only if protection is disabled at the time. A new device MUST have antitheft protection disabled. Enabling anti-theft protection in an already-enabled device restores it to normal operation if it is in reduced functionality mode, but otherwise has no effect.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_ANTITHEFT

Command = ANTITHEFT_SET

Enable

Number of Magic Code bytes

Magic Code 1

...

Magic Code N

Manufacturer ID MSB

Manufacturer ID LSB

Anti-theft Hint Number Bytes

Anti-theft Hint Byte 1

...

Anti-theft Hint Byte N

Enable (1 bit)
The value MAY be 0 (Attempt to disable anti-theft protection in device) or 1 (Attempt to enable or reenable anti-theft protection in device). It is not necessary to first disable an exclude device having protection enable; it can be re-enabled directly in a new network by using correct magic code again.
Number of Magic Code bytes (7 bits)
Indicates the Number of Magic Code fields N used in bytes. Maximum number of Magic Code fields MUST NOT exceed 10 bytes.
Magic Code (N bytes)
The Magic Code fields hold the code to enable/disable the Z-Wave device in question.
Manufacturer ID (2 bytes)
The Manufacturer ID of the company's product having a central role in the application requiring antitheft protection enabled. Device should report 0xFFFF if anti-theft protection is disabled.
Manufacturer identifiers can be found in [12].
Number of Anti-theft Hint bytes (8 bits)
Indicates the Number of Anti-theft Hint fields N used in bytes. If length is 0 no Hint provided. Maximum number of Anti-theft Hint fields MUST NOT exceed 10 bytes.
Anti-theft Hint Byte (N bytes)
Anti-theft Hint Bytes that may be used as an identifier or key value for retrieving the Magic Code. The exact format and meaning of these Bytes is specific to the product or service that enabled anti-theft protection on the device, as identified by the Manufacturer ID above. If it is necessary to render the Hint Bytes for display, each byte should be interpreted as an unsigned integer value and represented in hexadecimal.
4.7.2 Anti-theft Get Command

This command is used to get an Anti-theft Report Command showing status of the Z-Wave device in question.
The Anti-theft Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_ANTITHEFT

Command = ANTITHEFT_GET

4.7.3 Anti-theft Report Command

This command is used to report status of the Z-Wave device in question.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_ANTITHEFT

Command = ANTITHEFT_REPORT

Anti-theft Protection Status

Manufacturer ID MSB

Manufacturer ID LSB

Anti-theft Hint Number Bytes

Anti-theft Hint Byte 1

...

Anti-theft Hint Byte N

Anti-theft Protection Status (8 bits)
Anti-theft Protection Status specifies the actual status of Z-Wave device in question. Refer to the table below with respect to defined status values.

Value

Anti-theft Protection Status

0x00

Reserved.

0x01

Anti-Theft Protection is currently DISABLED, and the Z-Wave Device is fully functional.

0x02

Anti-Theft Protection is currently ENABLED, and the Z-Wave Device is fully functional.

0x03

Anti-Theft Protection is currently ENABLED, and the Z-Wave Device is NOT fully

functional (i.e., the Device was excluded from a network without disabling protection,

and an ANTITHEFT_SET command with the correct Magic Code has not yet been

received in the current network).

0x04..0xFF Reserved

Manufacturer ID (2 bytes) The Manufacturer ID of the company's product having a central role in the application requiring antitheft protection enabled. Device should report 0xFFFF if anti-theft protection is disabled. Number of Anti-theft Hint bytes (8 bits) Indicates the Number of Anti-theft Hint fields N used in bytes. If length is 0 no Hint provided. Maximum number of Anti-theft Hint fields MUST NOT exceed 10 bytes. Anti-theft Hint Byte (N bytes) Anti-theft Hint Bytes. See the Anti-Theft Set Command for more details.

4.7.4 Examples
Following examples are for reference only. 4.7.4.1 Example of a non-secure Thermostat
Below is shown an example of the Node Information Frame (NIF) content for a non-secure thermostat. The first NIF shows a device having anti-theft protection disabled. The device may never been included into a network or reside in a network or excluded from a network:
Disabled anti-theft protection Manufacturer Specific Command Class Version Command Class Anti-theft Command Class Thermostat Operating State Command Class Thermostat Mode Command Class Association Command Class Battery Command Class
The second NIF shows a device having anti-theft protection enabled. The device may be excluded from network in which it was originally anti-theft protection enabled or re-included into a network. This also applies in case device is re-included into the network, which device originally was anti-theft protection enabled:
Enabled anti-theft protection Manufacturer Specific Command Class Version Command Class Anti-theft Command Class
4.7.4.2 Example of a security enabled Thermostat Below is shown an example of the Node Information Frame (NIF) content for a security enabled thermostat. The first NIF shows a device having anti-theft protection disabled. The device may never been included into a network or reside in a network or excluded from a network:
Disabled anti-theft protection Manufacturer Specific Command Class Version Command Class

Disabled anti-theft protection
Security Command Class
Finally, the Security Commands Supported Report Command reports support of the following command classes:
 Anti-theft Command Class  Thermostat Operating State Command Class  Thermostat Mode Command Class  Association Command Class  Battery Command Class The second NIF shows a device having anti-theft protection enabled. The device may be excluded from network in which it was originally anti-theft protection enabled or re-included into a network. This also applies in case device is re-included into the network, which device originally was anti-theft protection enabled. The NIF is unchanged because all application oriented command classes are security encapsulated except the default command classes:
Enabled anti-theft protection
Manufacturer Specific Command Class
Version Command Class
Security Command Class
Finally, the Security Commands Supported Report Command reports support of at least the Anti-theft Command Class to be able to disable anti-theft protection:
 Anti-theft Command Class The Anti-theft Command Class is supported securely making malicious attempts to enable anti-theft protection very difficult.

4.8 Anti-theft Command Class, version 3
This Command Class is used to lock (and possibly unlock) a node.
4.8.1 Compatibility Considerations
4.8.1.1 Command Class dependencies
A node supporting this Command Class MUST also support the Anti-Theft Unlock Command Class, version 1.
4.8.1.2 Lock/Unlock requirements
The Anti-Theft Command Class is intended for devices operating in public locations such as hotel rooms or a conference center. The purpose of the Anti-theft Command Class is to render a device useless if it is removed from its actual network without being unlocked by the owner or a service provider.
A node can be locked (or protected) or unlocked.
The unlocked state means that the node will operate normally in any Z-Wave network.
The locked state means that the node will restrict usage of most of its command classes after being excluded from a network, so that it cannot be used by any controlling unit. The locked state MUST persist after the following operations:
 Network inclusion/exclusion  Factory reset to default.  Firmware upgrade
When a node is locked and either excluded from a network or factory reset to default, it will enter its restricted mode. In the restricted mode, the node will not grant access to its application functionalities. The restricted mode MUST stop when the node is unlocked again.
When a node runs in the restricted mode, the NIF MUST adapt its content to reflect the currently supported Command Classes. The following Command Classes MUST still be supported when a node is running in restricted mode:
 Anti-Theft Command Class  Anti-Theft Unlock Command Class  Manufacturer Specific Command Class  Version Command Class  Wake-Up Command Class  All Command Classes that MUST always be supported at the non-secure level, refer to
SDS13548 (see "This Command Class MUST always be in the NIF if supported")
All other supported command classes SHOULD be removed in the restricted mode.
The locked state may be changed back to unlocked with this Command Class or the Anti-Theft Unlock Command Class.
When in restricted mode, a node MUST still be able to enter learn mode and join or leave a Z-Wave Network and support Z-Wave protocol operations.
4.8.1.3 Multi Channel Considerations
Multi Channel End Points SHOULD NOT support Anti-theft Command Class.

4.8.2 Anti-Theft Set Command This command is used to lock or unlock a node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_ANTITHEFT (0x5D)

Command = ANTITHEFT_SET (0x01)

State

Number of Magic Code bytes

Magic Code 1

...

Magic Code N

Manufacturer ID (MSB)

Manufacturer ID (LSB)

Anti-theft Hint Length

Anti-theft Hint

...

Anti-theft Hint M

Z-Wave Alliance locking entity ID (MSB)

Z-Wave Alliance locking entity ID (LSB)

State (1 bit)
This field MUST indicate the desired locked/unlocked state for the receiving node.
The value 0 MUST indicate that the supporting node MUST change its state to unlocked. The value 1 MUST indicate that the supporting node MUST change its state to locked.
If the receiving node is currently locked and this field is set to 0 (unlock), the receiving node MUST change its state to unlocked if the Magic Code field value matches the Magic Code value that was used to lock the node.
If the receiving node is currently locked and this field is set to 1 (lock), the receiving node MUST ignore this command. If the receiving node is currently unlocked and this field is set to 0 (unlock), the receiving node MUST ignore this command.
If the receiving node is currently unlocked and this field is set to 1 (lock), the receiving node MUST change its state to lock and save the associated Magic code, Manufacturer ID, Anti-Theft Hint and ZWave Alliance locking entity ID.

Magic Code Length (7 bit)
This field MUST indicate the length (in byte) of the Magic Code field. This field MUST be in the range 1..10.
Magic Code (N bytes)
This field contains the Magic Code used to lock or unlock the node.
The length of this field in byte MUST be according to the Magic Code Length field.
The receiving node MUST change its state from locked to unlocked if and only if this field's value matches the Magic Code that was used to lock the node.
Manufacturer ID (2 bytes)
This field describes the Z-Wave Manufacturer ID of the company's product that has locked the node.
This field MUST be set to 0x00 by a sending node and ignored by a receiving node if the State field is set to 0.
If a controlling node has a Z-Wave Manufacturer ID assigned, this field MUST be set to its assigned Manufacturer ID in SDS13425.
If a controlling node has no Z-Wave Manufacturer ID assigned, this field MUST be set to 0x00.
Anti-theft Hint Length (8 bits)
This field MUST indicate the length (in byte) of the Anti-Theft Hint field. This field MUST be in the range 0..10.
Anti-theft Hint (N bytes)
This field is used as an identifier or key value to help retriving the Magic Code.
The length of this field in byte MUST be according to the Anti-Theft Hint Length field. This field MUST be omitted if the Anti-Theft Hint Length field is set to 0.
The format of this field is manufacturer/controlling node specific.
Z-Wave Alliance locking entity ID (2 bytes)
This field MUST specify a unique identifier for the entity that has locked the node.
A supporting node MUST NOT change its state to locked if this field is omitted or set to 0x00. A controlling node MUST NOT lock a device without having a valid Z-Wave Alliance locking entity ID value.
Contact the Z-Wave Alliance to get an ID assigned. With this ID, the Z-Wave alliance will be able to provide the following information:
 Name of the organization  Contact Phone for unlock information  Optional website/url  Optional unlock support email address
This field MUST be set to 0x00 if the state field is set to 0. This field MUST NOT be set to 0x00 if the state field is set to 1.

4.8.3 Anti-theft Get Command

This command is used to request the locked/unlocked state of a supporting node.
The Anti-Theft Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_ANTITHEFT (0x5D)

Command = ANTITHEFT_GET (0x02)

4.8.4 Anti-Theft Report Command

This command is used to advertise the lock/unlock state of a supporting node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_ANTITHEFT (0x5D)

Command = ANTITHEFT_REPORT (0x03)

Anti-theft Protection Status

Manufacturer ID MSB

Manufacturer ID LSB

Anti-theft Hint Length

Anti-theft Hint 1

...

Anti-theft Hint N

Z-Wave Alliance locking entity ID (MSB)

Z-Wave Alliance locking entity ID (MSB)

Anti-theft Protection Status (8 bits)
Anti-theft Protection Status specifies the actual status of Z-Wave device in question. Refer to the table below with respect to defined status values.

Value 0x00 0x01 0x02
0x03
0x04..0xFF

Description Reserved. Anti-Theft Protection is currently disabled, the node is unlocked Anti-Theft Protection is currently enabled, the node is locked. However, it did not change network so it is fully functional. Anti-Theft Protection is currently enabled, the node is locked. The node was reset and/or changed network and runs in restricted mode. Reserved

Manufacturer ID (2 bytes)
This field describes the Z-Wave Manufacturer ID of the company's product that has locked the node.
This field MUST be set to 0x00 if the Anti-theft Protection Status field is set to 0x01.
If the Anti-theft Protection Status field is set to 0x02 or 0x03 and a Z-Wave Manufacturer listed in [12] has locked the node, this field will advertise the Manufacturer ID that was provided in the Anti-theft Set Command.
If the Anti-theft Protection Status field is set to 0x02 or 0x03 and an entity who's not a Z-Wave Manfacturer listed in [12] has locked the node, this field will be set to 0x00.
Anti-theft Hint Length (8 bits)
This field MUST indicate the length (in byte) of the Anti-Theft Hint field. This field MUST be in the range 0..10.
If the Anti-theft Protection Status field is set to 0x01, a sending node MUST set this field to 0. If the Anti-theft Protection Status field is set to 0x02 or 0x03, a sending node MUST advertise the length of the Anti-Theft Hint field that was used to lock the node.
Anti-theft Hint (N bytes)
This field is used as an identifier or key value to help retrieving the Magic Code.
The length of this field in byte MUST be according to the Anti-Theft Hint Length field. This field MUST be omitted if the Anti-Theft Hint Length field is set to 0.
A supporting node MUST advertise the value that was specified in the Anti-Theft Set Command when it got locked.

Z-Wave Alliance locking entity ID (2 bytes)
This field advertises a unique identifier for the entity that has locked the node. SDS14622 contains the valid assigned IDs with additional information about the entity.
Contact the Z-Wave Alliance to get an ID assigned. With this ID, the Z-Wave alliance will be able to provide the following information:
 Name of the organization  Contact phone for unlock information  Optional website/url  Optional unlock support email address
This field MUST be set to 0x00 if the Anti-theft Protection Status field is set to 0x01.

4.9 Anti-theft Unlock Command Class, version 1

This Command Class is used to unlock a device that has been locked by the Anti-theft Command Class. Controllers that do not lock devices still can control this command class in order to unlock devices that have been locked by previous owners.

4.9.1 Compatibility Considerations

A node supporting this Command Class MUST also support the Anti-Theft Command Class, version 3.

4.9.1.1 Multi Channel Considerations

Multi Channel End Points SHOULD NOT support the Anti-Theft Unlock Command Class.

4.9.2 Anti-Theft Unlock State Get Command

This command is used to request the locked/unlocked state of the node.
The Anti-Theft Unlock State Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_ANTITHEFT_UNLOCK (0x7E)

Command = COMMAND_ANTITHEFT_UNLOCK_STATE_GET (0x01)

4.9.3 Anti-Theft Unlock State Report Command

This command is used to advertise the current locked/unlocked state of the node with some additional information.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_ANTITHEFT_UNLOCK (0x7E)

Command = COMMAND_ANTITHEFT_UNLOCK_STATE_REPORT (0x02)

Reserved

Anti-theft Hint Length

Restricted State

Anti-theft Hint

...

Anti-theft Hint N

Manufacturer ID (MSB)

Manufacturer ID (LSB)

Z-Wave Alliance locking entity ID (MSB)

Z-Wave Alliance locking entity ID (MSB)

State (1 bit)
This field MUST indicate the current locked/unlocked state of the device.
The value 0 MUST indicate that the supporting node is unlocked. The value 1 MUST indicate that the supporting node is locked.
The value 0x01 from the Anti-theft Protection Status field from the Anti-theft Report Command MUST be mapped to the value 0 for this field
The values 0x02 and 0x03 from the Anti-theft Protection Status field from the Anti-theft Report Command MUST be mapped to the value 1 for this field
Restricted (1 bit)
This field MUST indicate if the node currently runs in restricted mode.
The value 0 MUST indicate that the supporting node is not restricted. The value 1 MUST indicate that the supporting node is restricted.
This field MUST be set to 0 if the State field is set to 0.
The values 0x01 and 0x02 from the Anti-theft Protection Status field from the Anti-theft Report Command MUST be mapped to the value 0 for this field
The value 0x03 from the Anti-theft Protection Status field from the Anti-theft Report Command MUST be mapped to the value 1 for this field

Anti-theft Hint Length (4 bits)
This field MUST indicate the length (in byte) of the Anti-Theft Hint field. This field MUST be in the range 0..10.
If the state field is set to 0, a sending node MUST set this field to 0. If the state field is set to 1, a sending node MUST advertise the length of the Anti-Theft Hint field that was used to lock the node.
Anti-theft Hint (N bytes)
This field is used as an identifier or key value to help retrieving the Magic Code.
The length of this field in byte MUST be according to the Anti-Theft Hint Length field. This field MUST be omitted if the Anti-Theft Hint Length field is set to 0.
A supporting node MUST advertise the value that was specified in the Anti-Theft Set Command when it got locked.
Manufacturer ID (2 bytes)
This field describes the Z-Wave Manufacturer ID of the company's product that has locked the node.
This field MUST be set to 0x00 if the state field is set to 0.
If the state field is set to 1 and a Z-Wave Manufacturer listed in [12] has locked the node, this field will advertise the Manufacturer ID that was provided in the Anti-theft Set Command.
If the state field is set to 1 and an entity who's not a Z-Wave Manfacturer listed in [12] has locked the node, this field will be set to 0x00.
Z-Wave Alliance locking entity ID (2 bytes)
This field advertises a unique identifier for the entity that has locked the node. SDS14622 contains the valid assigned IDs with additional information about the entity.
Contact the Z-Wave Alliance to get an ID assigned. With this ID, the Z-Wave alliance will be able to provide the following information:
 Name of the organization  Contact phone for unlock information  Optional website/url  Optional unlock support email address
This field MUST be set to 0x00 if the state field is set to 0.
If the state field is set to 1, this field MUST advertise the ID that was provided in the Anti-Theft Set Command.

4.9.4 Anti-Theft Unlock Set Command

This command is used to unlock a node that is currently locked. A receiving node MUST ignore this command if its current state is unlocked.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_ANTITHEFT_UNLOCK (0x7E)

Command = COMMAND_ANTITHEFT_UNLOCK_SET (0x03)

Reserved

Magic code length

Magic Code 1

...

Magic Code N

Magic Code Length (4 bits) This field MUST indicate the length in byte of the Magic Code field. This field MUST be in the range 1..10 Magic Code (N bytes) This field contains the Magic Code used to unlock the node. The length of this field in byte MUST be according to the Magic Code Length field. The receiving node MUST change its state to unlocked (and exit restricted mode) if this field's value matches the Magic Code that was used to lock the node.

4.10 Authentication Command Class, version 1
Authentication Command Class is a generic command class which can be used for transporting different technology authentication data contents (e.g., RFID, Magnetic Cards, etc.) in a Z-Wave network for access control systems.
4.10.1 Terminology
Authentication Data contents are initialized on a supporting node using a unique Authentication Data ID. Each Authentication Data ID also has an Authentication Technology Type, representing the input or technology with which the Authentication Data can be used. A user having access with several types of input technologies will have a Data Identifier for each of the technologies.
A node may support one or more authentication technologies including User Code. Combination of valid sets of Authentication Data can be configured on a supporting node using a unique Authentication ID. The Authentication ID will for example allow a user only if he/she inputs both an RFID tag and the corresponding User Code. An actual user may be associated with several Authentication IDs.
An example of Authentication Data ID and Authentication ID configurations are described in Figure 6
A node may support a Checksum functionality. A controlling node can request a checksum representing all authentication data content (either Authentication IDs or Authentication Data IDs) defined at the supporting node to ensure that the authentication data content databases are synchronized.
4.10.2 Interoperability Considerations
This Command Class can be used in conjunction with the Entry Control Command Class, to report the Authentication Data input to a controlling application.
This Command Class can be used in conjunction with the Door Lock Command Class or Barrier Operator Command Class. In this case, a supporting node MUST reflect Authentication Data inputs in the door lock status when relevant. (e.g. when the door becomes unsecured by Authentication Data input, the Door Lock Operation mode is updated to unsecure with an optional timeout).
A node supporting this Command Class MAY have an Association group issuing the corresponding Door Lock Operation Set Commands or Basic Set Commands when there are a valid Authentication Data input in order to control other door locks.
A supporting node may support several authentication technologies such as User Code, RFID, Cards and etc. A combination these technologies may also be needed to get access. In this case, a supporting node can be configured to accept certain combinations of authentication technologies.
An assigned User Code in the User Code Command Class may be part of an Authentication ID. In this case, all the Authentication credentials (including the User Code) defined in the Authentication ID MUST be input at the node in order to trigger the outcome defined by the User Code Status. In other words, the User Code input alone is no longer enough, it will require all the credentials defined in the Authentication ID to get access. An example is given in Figure 5

4.10.3 Authentication Capability Get Command
This command is used to request the Authentication technology capabilities, number of Authentication ID and Data ID supported by the receiving node.
The Authentication Capability Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_AUTHENTICATION (0xA1)

Command = AUTHENTICATION_CAPABILITIES_GET (0x01)

4.10.4 Authentication Capability Report Command

This command is used to advertise the Authentication Command Class capabilities of sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_AUTHENTICATION (0xA1)

Command = AUTHENTICATION_CAPABILITIES_REPORT (0x02)

Supported Data ID Entries (MSB)

Supported Data ID Entries (LSB)

Supported Authentication ID Entries (MSB)

Supported Authentication ID Entries (LSB)

MAR MADR

OR

Reserved

Supported Authentication Technology Type Bit Mask length

Supported Authentication Technology Type Bit Mask 1

...

Supported Authentication Technology Type Bit Mask N

Supported Checksum Type Bit Mask

Reserved

Supported Fallback Status Bit Mask length

Supported Fallback Status Bit Mask 1

...

Reserved

Supported Fallback Status Bit Mask N

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

Supported Data ID Entries (16 bits)
This field is used to advertise the number of supported Authentication Data ID Entries.
The first byte MUST carry the most significant byte of the 16 bits value.
This field MUST be set to the total amount of supported Authentication Data IDs. This field MUST be in the range 1...65535.
Supported Authentication ID Entries (16 bits)
This field is used to advertise the number of supported Authentication ID Entries.
The first byte MUST carry the most significant byte of the 16 bits value.
This field MUST be set to the total amount of supported combinations entries. This field MUST be in the range 1...65535.
MAR (Multiple Authentication ID Report) Support (1 bit)
This field indicates if the sending node supports reporting the Multiple Authentication ID Blocks at once in a single Authentication Technologies Combination Report Command. This functionality should be supported by node supporting large amount of Authentication ID Entries.
The value 1 MUST indicate that the Multiple Authentication ID Report functionality is supported. The value 0 MUST indicate that the Multiple Authentication ID Report functionality is not supported.
MADR (Multiple Authentication Data ID Report) Support (1 bit)
This field indicates if the sending node supports reporting the Multiple Authentication Data ID Blocks at once in a single Authentication Data Report Command. This functionality should be supported by node supporting large amount of Authentication Data ID Entries.
The value 1 MUST indicate that the Multiple Authentication Data ID Report functionality is supported. The value 0 MUST indicate that the Multiple Authentication Data ID Report functionality is not supported.
OR Support (1 bit)
This field is used to advertise if the node supports being set Authentication ID combinations using a OR logic (User Code OR Authentication data ID 1 OR ... OR Authentication data ID N)
The value 1 MUST indicate that the OR flag in the Authentication Technologies combination is supported. The value 1 MUST indicate that the OR flag in the Authentication Technologies combination is not supported.

Supported Authentication Technology Type Bit Mask length (4 bits)
This field MUST advertise the length in bytes of the Supported Authentication Technology Type Bit Mask field carried in the command.
This field MUST be set to the minimum value which allows advertising all supported Authentication Technology types.
Supported Authentication Technology Type Bit Mask (N bytes)
This field advertises the supported Authentication Technology Type values. The length of this field in bytes MUST match the value advertised in the Supported Authentication Technology Bit Mask Length field.
Authentication Technology Type values are described in Table 13. In this field the supported Authentication Technology Type values MUST be encoded as follow:
 Bit 0 in Bit Mask 1 represents Authentication Technology Type 0x00 (reserved) and MUST be set to 0.
 Bit 1 in Bit Mask 1 represents Authentication Technology Type 0x01.  Bit 2 in Bit Mask 1 represents Authentication Technology Type 0x02. ...
If an Authentication Technology Type is supported, the corresponding bit MUST be set to `1'. If an Authentication Technology Type is not supported, the corresponding bit MUST be set to `0'.
All other bits are reserved and MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node.

Supported Checksum Type Bit Mask (8 bits)
This field advertises the supported Checksum Type values.
Checksum Type values are described in Table 15. The supported Checksum Type values MUST be encoded as follow:
 Bit 0 in Bit Mask 1 represents Checksum Type 0x00.  Bit 1 in Bit Mask 1 represents Checksum Type 0x01. ...
If a Checksum Type is supported, the corresponding bit MUST be set to `1'. If a Checksum Type is not supported, the corresponding bit MUST be set to `0'.
All other bits are reserved and MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node.
Supported Fallback Status Bit Mask length (4 bits)
This field MUST advertise the length in bytes of the Supported Fallback Status Bit Mask field carried in the command.
This field MUST be set to the minimum value which allows advertising all supported Fallback Statuses.
Supported Fallback Status Bit Mask (N bytes)
This field advertises the supported Fallback Status values. The length of this field in bytes MUST match the value advertised in the Supported Fallback Status Bit Mask Length field.
Fallback Status values are described in Table 14. This field MUST be encoded as follow:
 Bit 0 in Bit Mask 1 represents Fallback Status 0x00.  Bit 1 in Bit Mask 1 represents Fallback Status 0x01. ...
Fallback Statuses 0x00 and 0x01 MUST be supported by all supporting nodes.
If a Fallback Status is supported, the corresponding bit MUST be set to `1'. If a Fallback Status is not supported, the corresponding bit MUST be set to `0'.
All other bits are reserved and MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node.

4.10.5 Authentication Data Set Command This command is used to define Authentication Data for a given Data Identifier at the receiving node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_AUTHENTICATION (0xA1)

Command = AUTHENTICATION_DATA_SET (0x03)

Authentication Data ID 1 (MSB)

Authentication Data ID 2 (LSB)

Reserved

Authentication Technology Type

Authentication Data length

Authentication Data 1

...

Reserved

Authentication Data N

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

Authentication Data ID (16 bits)

This field is used to identify an Authentication Data entry.

This field MUST be in the range 0..Max Number of Supported Data ID Entries advertised by the node in the Authentication Capability Report Command.

The first byte MUST carry the most significant byte of the 16 bits.

Values in the range 1..Max Number of Supported Data ID Entries MUST indicate the actual Authentication Data ID record to update.

The value 0 MUST indicate that the receiving node MUST erase the Authentication Data for all supported Authentication Data ID that are associated to specified Authentication Technology Type. If this field is set to 0x00, the Authentication Data length MUST be set to 0x00.

Authentication Technology Type (4 bits)

This field is used to specify the authentication medium associated to the Authentication Data ID. The field MUST be encoded according to Table 13.

Table 13, Authentication Data Set:: Authentication Technology Type encoding

Value Authentication Technology Version

0x00

Reserved

1

0x01

RFID tag

1

0x02

Magnetic card

1

0x03..0x0F Reserved

1

Authentication Data length (8 bits) This field is used to describe the length in bytes of the Authentication Data field. The value 0 MUST indicate to erase the data entry represented by the Data Identifier. Authentication Data (N bytes) This field is used to advertise the Authentication Data contents to be set the specified Authentication Data ID. The length of this field in bytes MUST be according to the corresponding Authentication Data Length field value. If the Authentication Data Length field is set to 0x00, this field MUST be omitted.

4.10.6 Authentication Data Get Command
This command is used to request the Authentication Data defined for a given Authentication Data ID.
The Authentication Data Report MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_AUTHENTICATION (0xA1)

Command = AUTHENTICATION_DATA_GET (0x04)

Authentication Data ID 1 (MSB)

Authentication Data ID 2 (LSB)

Reserved

Report More

Authentication Data ID (16 bits)
This field is used to describe the requested authentication Data Identifier.
The first byte MUST carry the most significant byte of the 16 bit value.
A supporting node MUST return this value in the Authentication Data ID field of the first Authentication Data ID Block in the returned Authentication Data Report Command.
Report More (1 bit)
This field is used to instruct the receiving node to report as many Authentication Data ID as possible within a single Z-Wave command (that fits in a single Z-Wave frame) because the sending node intends to read the whole (or a large part of the) Authentication Data database.
This field MUST be ignored by a receiving node if it advertises no support for Multiple Authentication Data Report (MADR) in the Authentication Capability Report Command.
The value 0 MUST indicate to return a report for the requested Authentication Data ID only. The value 1 MUST indicate to return a report for the requested Authentication Data ID and additionally report as many Authentication Data ID blocks as possible in the response.

When this field is set to 1, a node advertising support for Multiple Authentication Data Report (MADR) in the Authentication Capability Report Command:
 SHOULD return at least 2 Authentication Data ID blocks in the Authentication Data Report Command unless the last used Authentication Data ID or a non-supported Authentication Data ID is requested.
 SHOULD return as many consecutive non-empty Authentication Data ID record as possible.  The subsequent Authentication Data ID blocks MUST contain consecutive Authentication Data
ID having Authentication Data length different than 0. For example, a node supports 5 authentication Data IDs and both RFID (0x01) and Magnetic card (0x02) authentication technologies, and the setting is defined as follow. In this case, the supporting node MUST report Authentication Data ID 1 and 4 when requested about Authentication Data ID 1.
o Authentication Data ID 1, Technology Type = 0x01, Data length = 3, Data = C10001 o Authentication Data ID 2, Technology Type = 0x01, Data length = 0 o Authentication Data ID 3, Technology Type = 0x01, Data length = 0 o Authentication Data ID 4, Technology Type = 0x02, Data length = 2, Data = CDF1 o Authentication Data ID 5, Technology Type = 0x02, Data length = 0

4.10.7 Authentication Data Report Command
This command is used to advertise the Authentication Data assigned at the supporting node for a given Authentication Data ID entry.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_AUTHENTICATION (0xA1)

Command = AUTHENTICATION_DATA_REPORT (0x05)

Number of Authentication Data ID Blocks

Authentication Data ID 1 (MSB) 1

Authentication Data ID 2 (LSB) 1

Reserved

Authentication Technology Type 1

Authentication Data Length 1

Authentication Data 1 - 1

...

Authentication Data N - 1

...

Authentication Data ID 1 (MSB) M

Authentication Data ID 2 (LSB) M

Reserved

Authentication Technology Type M

Authentication Data Length M

Authentication Data 1 - M

...

Authentication Data N - M

Next Authentication Data ID 1 (MSB)

Next Authentication Data ID 2 (LSB)

Number of Authentication Data ID Blocks (8 bits)
This field is used to specify how many Authentication Data ID blocks are contained in the actual command.
This field MUST be in the range 1..255. A node MUST respect the Z-Wave MAC frame size or Transport service limits when sending this command.
The number of Authentication Data ID contained in the command MUST be according to this field. An Authentication Data ID block MUST comprise the following fields:
 Authentication Data (16 bits)  Authentication Technology Type (4 bits)  Authentication Data Length (8 bits)  Authentication Data (N bytes)
This field MUST be set to 1 by a node advertising no support for Multiple Authentication Data ID Block Report (MADR) in the User Code Capabilities Report Command.
Authentication Data ID (16 bits)
This field is used to describe the advertised authentication Data Identifier.
If this field is set to 0x00 or a non-supported Authentication Data ID, the Authentication Technology Type and the Authentication Data Length fields MUST be set to 0x00.
Authentication Technology Type (4 bits)
This field is used to advertise the authentication medium associated to the Authentication Data ID. The field MUST be encoded according to Table 13.
Authentication Data length (8 bits)
This field is used to describe the length in bytes of the Authentication Data field.
The value 0 MUST indicate that the specified Authentication Data ID is not supported.
Authentication Data (N bytes)
This field is used to advertise the Authentication Data contents set for the specified Authentication Data ID.
The length of this field in bytes MUST be according to the corresponding Authentication Data Length field value. If the Authentication Data Length field is set to 0x00, this field MUST be omitted.
Next Authentication Data ID (16 bits)
This field is used to advertise the next Authentication Data ID set at the sending node with non-empty Authentication Data.
This field MUST be set to 0x00 if there are no more Data Identifiers are defined after the Authentication Data ID value of the Authentication Data ID field of the last Authentication Data ID block.

4.10.8 Authentication Technologies Combination Set Command This command is used to define the Combination Entries at the receiving node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_AUTHENTICATION (0xA1)

Command = AUTHENTICATION_TECHNOLOGIES_COMBINATION_SET (0x06)

Authentication ID 1 (MSB)

Authentication ID 2 (LSB)

Fallback Status

User Identifier 1 (MSB)

User Identifier 2 (LSB)

Schedule ID 1 (MSB)

Schedule ID 2 (LSB)

OR logic

Number of Authentication Data ID

Authentication Data ID 1 (MSB) 1

Authentication Data ID 2 (LSB) 1

...

Authentication Data ID 1 (MSB) M

Reserved

Authentication Data ID 2 (LSB) M

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

Authentication ID (16 bits)

This field is used to specify the Authencation ID that is to be updated.

This field MUST be in the range 0..max number of Supported Authentication ID Entries

The first byte MUST carry the most significant byte of the 16 bits.

The value 0 is used to erase all the Authentication Data for all supported Authentication ID Entries. If this field is set to 0x00 and all the other fields MUST set to 0x00, and a receiving node MUST erase all configured Authentication ID Entries.

Values in the range 1..Max Number of Supported Authentication ID Entries MUST indicate the actual Authentication ID record to update.

Fallback Status (8 bits)
This field is used to configure the status of Authentication ID at the receiving node if a User Code entry is not defined (i.e. User Identifier field set to 0x00).
The status represents the outcome to perform at the node when all the Authentication Data defined in the Authentication ID has been input at the supporting node, during the defined Schedule ID.
This field MUST set but ignored if the User Identifier is set to a value greater than 0x00. Instead, the User ID Status defined for the corresponding User Identifier in the User Code Command Class MUST take precedence over this field.
If the User Identifier field is set to 0x00, this field MUST be encoded and interpreted according to Table 14.
Table 14, Authentication Technologies Combination Set:: Fallback Status encoding

Value 0x00 0x01
0x02

Description
Available: The database entry represented by this Authentication ID is not in use. This status MUST be used to delete Authentication ID entries. Enabled / Grant Access The database entry represented by this Authentication ID is in use and enabled. When a user has input all required Authentication credentials associated to this Authentication ID, the node:
 MUST indicate that the input was accepted  MUST grant access to the user.  MUST secure the Door Lock again after a timeout (either configured if set in Timed Operation or pre-defined if the Door Lock is set in Constant Operation)
Disabled: The database entry represented by this Authentication ID is in use but disabled. E.g. It allows a controller to push Authentication ID combinations to a supporting node and let these credentials be subsequently activated by a local interface. When a user has input all required Authentication credentials associated to this Authentication ID, the node:
 MUST indicate that the input was not accepted  MUST NOT grant access to the user.

Version 1 1
1

Value 0x03
0x04
0x05..0xFF

Description
Messaging: The database entry represented by this Authentication ID is in use. The value is used to relay notifications to a controlling application. E.g. A user may enter a messaging code for notifying that maintenance started or an application should activate the alarm system. When a user has input all required Authentication credentials associated to this Authentication ID, the node:
 SHOULD indicate that the input was accepted  MUST NOT grant access to this user  MUST NOT take preventive actions for further attempts to enter
input.  MUST send an Entry Control Notification or a Notification Report via
the Lifeline Group to identify the messaging User Identifier or Authentication ID. Passage Mode: The database entry represented by this Authentication ID is in use. The value is used to let the Door Lock permanently grant access. Passage Mode can be activated and deactivated using the Door Lock Operation Set (Unsecured without timeout / Secured) or via a Passage Mode credential input. E.g. A receptionist comes in the morning and enters a Passage Mode credentials to allow anybody to subsequently enter the premises without entering special access codes until Passage Mode is deactivated again. When a user has input all required Authentication credentials associated to this Authentication ID, the node:  MUST indicate that the code is accepted  MUST toggle the Door Lock operation state between secured and unsecured without timeout (and also disable any auto-relock functionality).  MUST send a Door Lock Operation Report and Door Lock Configuration Report via the Lifeline Association Group to advertise the new Door Lock state. Reserved

Version 1
1
1

User Identifier (16 bits)
This field is used to specify the identity of the User Code (User Code Command Class) which MUST be used in combination with authentication data to get access.
If User Identifier has a User ID Status set to 0x00 in the User Code Command Class, the combination will not allow access as it cannot be input at the supporting node.
This field is set to a value larger than 0x00 and the supporting node does not support the User Code Command Class, the Authentication ID will be ignored as such a User Code cannot be input at the supporting node.
If a User Code is defined in an Authentication ID with an AND logic, the input of the User Code alone is no longer sufficient to trigger the outcome defined by the User ID Status. All Authentication Data indicated by the Authentication Data IDs in this command MUST be input to trigger the outcome specified by the User ID Status.
Schedule ID (16 bits)
This field is used specify the Schedule during which the Authentication ID is active.
The value 0x00 MUST indicate that the Authentication ID is active at all times.
Values greater than 0 MUST indicate that the Authentication ID is valid or active only during the corresponding Schedule ID, defined in the Generic Schedule Command Class.
OR logic (1 bit)
This field is used to specify if OR logic is to be applied for the actual Authentication ID.
Nodes advertising no support for the OR in the Authentication Capability Report Command MUST ignore this field and apply an AND logic.
If this field is set to 0, an AND logic MUST be applied for the actual Authentication ID. In this case, the User Code (if defined) and all the defined Authentication Data must be input (during the Schedule ID) in order to get access or provide the outcome defined in the corresponding User Code Status / Fallback Status.
If this field is set to 1, an OR logic MUST be applied for the actual Authentication ID. In this case, the User Code (if defined) or any of the defined Authentication Data must be input (during the Schedule ID) in order to get access or provide the outcome defined in the corresponding User Code Status / Fallback Status.
Number of Authentication Data ID (7 bits)
This field is used to specify how many Authentication Data ID are contained in the the actual Authentication ID. Each Authentication Data ID MUST be 16 bits long.
This field MUST be set to 0, if no Authentication Data ID MUST be used for the combination and the User Identifer (User Code) alone is enough to get access.
If this field is set to 0, the Authentication Data ID field MUST be omitted.
For example, if this field is set to 3, the corresponding Authentication Data ID field must be 6 bytes long.

Authentication Data ID (M x 16 bits)
This field is used to identify the list of Authentication Data ID that are required for the specified Authentication ID.
The first byte MUST carry the most significant byte of the 16 bits.
In an Authentication ID, if any of the Authentication Data ID does not have any Authentication Data defined (Authentication Data Length = 0), the Authentication ID MUST NOT permit any access.

4.10.9 Authentication Technologies Combination Get Command
This command is used for requesting defined combination entries of a specific Authentication ID.
The Authentication Technologies Combination Report MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_AUTHENTICATION (0xA1)

Command = AUTHENTICATION_TECHNOLOGIES_COMBINATION_GET (0x07)

Authentication ID (MSB)

Authentication ID (LSB)

Reserved

Report More

Authentication ID (16 bits) This field is used to describe the requested Authentication ID. The first byte MUST carry the most significant byte of the 16 bits. A supporting node MUST return this value in the Authentication Data ID field of the first Authentication Data ID Block in the returned Authentication Technologies Combination Report Command.

Report More (1 bit)
This field is used to instruct the receiving node to report as many Authentication ID as possible within a single Z-Wave command (that fits in a single Z-Wave frame) because the sending node intends to read the whole (or a large part of the) Authentication ID database.
This field MUST be ignored by a receiving node if it advertises no support for Multiple Authentication Report (MAR) in the Authentication Capability Report Command.
The value 0 MUST indicate to return a report for the requested Authentication ID only. The value 1 MUST indicate to return a report for the requested Authentication ID and additionally report as many Authentication ID blocks as possible in the response.
When this field is set to 1, a node advertising support for Multiple Authentication Report (MAR) in the Authentication Capability Report Command:
 SHOULD return at least 2 Authentication ID blocks in the Authentication Technolofies Combination Report Command unless the last used Authentication ID or a non-supported Authentication ID is requested.
 SHOULD return as many consecutive non-emtpy Authentication ID record as possible.  The subsequent Authentication ID blocks MUST contain consecutive Authentication ID having
User Identifier or Fallback Status different than 0.

4.10.10 Authentication Technologies Combination Report Command This command is used to advertise defined Combination Entries of a specific Authentication ID.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_AUTHENTICATION (0xA1)

Command = AUTHENTICATION_TECHNOLOGIES_COMBINATION_REPORT (0x08)

OR logic 1
OR logic N

Number of Authentication ID blocks Authentication ID block length 1 Authentication ID 1 (MSB) 1 Authentication ID 2 (LSB) 1 Fallback Status 1 User Identifier 1 (MSB) 1 User Identifier 2 (LSB) 1 Schedule ID 1 (MSB) 1 Schedule ID 2 (LSB) 1 Number of Authentication Data IDs 1
Authentication Data ID 1 (MSB) 1 -1 Authentication Data ID 2 (LSB) 1 - 1
... Authentication Data ID 1 (MSB) M - 1 Authentication Data ID 2 (LSB) M- 1
... Authentication ID block length N
Authentication ID 1 (MSB) N Authentication ID 2 (LSB) N
Fallback Status N User Identifier 1 (MSB) N User Identifier 2 (LSB) N
Schedule ID 1 (MSB) N Schedule ID 2 (LSB) N Number of Authentication Data IDs N
Authentication Data ID 1 (MSB) 1 - N Authentication Data ID 2 (LSB) 1-­ N
... Authentication Data ID 1 (MSB) M - N Authentication Data ID 2 (LSB) M- N
Next Authentication ID 1 (MSB)

Next Authentication ID 2 (LSB)

Number of Authentication ID Blocks (8 bits)
This field is used to specify how many Authentication ID blocks are contained in the actual command.
This field MUST be in the range 1..255. A node MUST respect the Z-Wave MAC frame size or Transport service limits when sending this command.
The number of Authentication ID contained in the command MUST be according to this field. An Authentication Data ID block MUST comprise the following fields:
 Authentication ID Block Length (8 bits)  Authentication ID (16 bits)  Fallback Status (8 bits)  User Identifier (16 bits)  Schedule ID (16 bits)  OR logic / Number of Authentication Data IDs (8 bits)  Authentication Data ID (M x 16 bits)
This field MUST be set to 1 by a node advertising no support for Multiple Authentication ID Block Report (MAR) in the Authentication Capability Report Command.
Authentication ID block length (8 bits)
This field is used to indicate the total length of the actual Authentication ID Block. This field MUST advertise the length in bytes of the Authentication ID Block, including itself.
Authentication ID (16 bits)
This field is used to specify the Authentication ID for the actual Authentication ID Block. The first byte MUST carry the most significant byte of the 16-bits value.
If this field is set to 0x00 or a non-supported Authentication ID, the Fallback Status, User Identifier, Schedule ID and Number of Authentication Data ID fields MUST be set to 0x00.
Fallback Status (8 bits)
This field is used to advertise the status of Authentication ID defined at the receiving node.
The status represents the outcome to perform at the node when all the Authentication Data defined in the Authentication ID block has been input at the supporting node, during the defined Schedule ID.
This field MUST be ignored if the User Identifier field in the corresponding Authentication ID Block is set to a value greater than 0x00. Instead, the User ID Status defined for the corresponding User Identifier in the User Code Command Class MUST take precedence over this field.
If the User Identifier field is set to 0x00, this field MUST be encoded and interpreted according to.

User Identifier (16 bits)
This field is used to advertise the identity of the User Code (User Code Command Class) which is used in combination with authentication data to get access for this Authentication ID block.
If User Identifier has a User ID Status set to 0x00 in the User Code Command Class, the the combination will not allow access as it cannot be input at the supporting node.
This field is set to a value larger than 0x00 and the supporting node does not support the User Code Command Class, the Authentication ID will be ignored as such a User Code cannot be input at the supporting node.
If a User Code is defined in an Authentication ID, the input of the User Code alone is no longer sufficient to trigger the outcome defined by the User ID Status. All Authentication Data indicated by the Authentication Data IDs in this command MUST be input to trigger the outcome specified by the User ID Status.
Schedule ID (16 bits)
This field is used specify the Schedule during which the Authentication ID is active.
The value 0 MUST indicate that the Authentication ID is active at all times.
Values greater than 0 MUST indicate that the Authentication ID is valid or active only during the corresponding Schedule ID, defined in the Generic Schedule Command Class.
OR logic (1 bit)
This field is used to advertise if OR logic is to be applied for the actual Authentication ID.
Nodes advertising no support for the OR in the Authentication Capability Report Command MUST ignore this field and set this field to 0.
If this field is set to 0, an AND logic MUST be applied for the actual Authentication ID block. If this field is set to 1, an OR logic MUST be applied for the actual Authentication ID block.
Number Of Authentication Data IDs (7 bits)
This field is used to specify how many Authentication Data ID are contained in the the corresponding Authentication ID Block. Each Authentication Data ID MUST be 16 bits long.
For example, if this field is set to 3, the corresponding Authentication Data ID field must be 6 bytes long.
Authentication Data ID (M x 16 bits)
This field is used to identify the list of Authentication Data ID entries that compose the specified Authentication ID.
The length of this field MUST be according to the Number Of Authentication Data IDs field in the corresponding Authentication ID Block.
The first byte MUST carry the most significant byte of the 16 bits.
If any of the Authentication Data ID does not have any Authentication Data defined, the Authentication ID MUST NOT permit any access.

Next Authentication ID (16 bits)
This field is used to advertise the next Authentication ID set at the sending node with non-empty Authentication ID data.
This field MUST be set to the next Authentication ID which has a Fallback or User Identifier status is different from 0.
This field MUST be set to 0x00 if there are no more Authentication IDs are defined after the value of the Authentication ID field of the last Authentication ID Block.

4.10.11 Authentication Checksum Get Command
This command is used to request checksum(s) representing the current authentication data or combinations set at the supporting node.
A supporting node MUST return a response with the Checksum field set to 0x00 if the checksum type or the authentication type is not supported.
The Authentication Checksum Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_AUTHENTICATION (0xA1)

Command = AUTHENTICATION_CHECKSUM_GET (0x09)

Res

Checksum type

Authentication Technology Type

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Checksum Type (3 bits) This field is used to indicate which checksum to return. This field MUST be encoded according to Table 15.
Table 15, Authentication Checksum Get:: Checksum type encoding

Value

Checksum Type

Version

0x00

Authentication Data checksum 1

0x01

Combination Entries checksum 1

0x02..0x07 Reserved

1

Authentication Technology Type (4 bits)
This field is used to specify which type of the authentication technology to use for the checksum calculation. The field MUST be encoded according to Table 13.
This field MUST be set to 0 by a sending node and ignored by a supporting node if the Checksum Type field is set to 1.

4.10.12 Authentication Checksum Report Command
This command is used to advertise the checksum representing current authentication data that correspond to a specific technology type or combination entries defined at the supporting node

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_AUTHENTICATION (0xA1)

Command = AUTHENTICATION_DATA_CHECKSUM_REPORT(0x0F)

Res

Checksum type

Authentication Technology Type

Checksum 1 (MSB)

Checksum 2 (LSB)

Authentication Technology Type (4 bits)
This field is used to advertise which type of the authentication technology has been used for the checksum calculation. The field MUST be encoded according to Table 13.
This field MUST be set to 0x00 by the sending node if the Checksum type is set to 0x01.
The other values are reserved and MUST NOT be used by sending node. Reserved values MUST be ignored by a receiving node.
Checksum Type (3 bits)
This field is used to indicate which checksum to return. This field MUST be encoded according to Table 15.

Authentication Data Checksum (16 bits)
This field is used to advertise the checksum value. The checksum MUST be calculated using the CRCCCITT polynomial using initialization value equal to 0x1D0F and 0x1021 (normal representation).
This field MUST be set to 0x0000 if no authentication data or combination entries are defined at sending node.
The calculation of the checksum depends on the Checksum Type and Authentication Technology Type field values.
If the checksum type field is set to 0x00 Authentication Data checksum:
Similar to the User Code checksum data format (refer to User Code Command Class, version 2), the Authentication Data checksum data MUST be built by concatenating initialized Authentication Data content for a given technology type (with Authentication Data length different than 0x00) in the ascending Data ID order.
If the Authentication Technology Type is set to 0x00, the checksum field MUST be set to 0x00.
Else, for example for RFID based authentication technology, each initialized RFID data MUST be formatted as follows:
Data ID (16 bits) | RFID Data (1..32 bytes)
For example, a node supporting 4 RFID IDs that are set as follow:  Data ID 1, entry Data Content length 4, RFID code ABC10001  Data ID 2, entry Data Content length 0  Data ID 3, entry Data Content length 5, RFID code AB58198301  Data ID 4, entry Data Content length 0
In this case, the defined RFID data content for Data ID 1 and 3 MUST be concatenated to obtain the checksum data:
0x0001 | 0xAB C1 00 01| 0x0003 |0xAB 58 19 83 01
The checksum data MUST be: 0x0001ABC100010003AB58198301 and the checksum field MUST be set to 0x17FE.

If the checksum type field is set to 0x01 Combination Entries checksum:
The checksum data MUST be built by concatenating defined Combination Entries whose status or User Identifier is different than 0x00 in the ascending Authentication ID order. Each entry MUST be comprised of all the fields included in an Authentication ID Block for the version of the supporting node, including reserved fields.
For example, a node supports both User Code and RFID based authentication technology, the Combination Entries checksum calculation MUST be formatted as follows:
 Authentication ID Block Length (8 bits)  Authentication ID (16 bits)  Fallback Status (8 bits)  User Identifier (16 bits)  Schedule ID (16 bits)  Number of Authentication Data IDs (8 bits)  Authentication Data ID (M x 16 bits)
Authentication ID Block Length (8 bits) |Authentication ID (16 bits) | Fallback Status (8 bits) |User Identifier (16 bits) |Schedule ID (16 bits) | Number of Authentication Data IDs (8 bits) | Authentication Data ID (M x 16 bits)
For example, a node supporting 3 Authentication IDs that are set as follow:
 Length 11, Authentication ID 1, Fallback status 0, User Identifier 1, Schedule ID 0, Number of Authentication Data IDs 1, Data Identifier 1.
 Length 9, Authentication ID 2, Fallback status 0, User Identifier 0, Schedule ID 0, Number of Authentication Data IDs 0.
 Length 13, Authentication ID 3, Fallback status 0, User Identifier 200, Schedule ID 1, Number of Authentication Data IDs 2, Data Identifier 4 and 5
In this case, the defined Combination Entries checksum data for Authentication ID 1 and 3 MUST be concatenated to obtain the checkum data:
0x0B | 0x0001 | 0x00 | 0x0001 | 0x0000 | 0x01 | 0x0001 | 0x0D | 0x0003 | 0x00 | 0x00C8 | 0x0001 | 0x02 | 0x0004 | 0x0005
The checksum data MUST be: 0x0B000100000100000100010D00030000C800010200040005 and the checksum must be 0x0A53.

4.10.13 Examples and use-cases An example of configurations with User Code CC and RFID tags is shown in Figure 5
Figure 5, Authentication Command Class example: User Code and RFID configuration

An example of Authentication Data configurations with RFID and Magnetic card technology types is shown in Figure 6.
Figure 6: Authentication Command Class example: Authentication Data configuration

4.11 Authentication Media Write Command Class, version 1

This command class is used to write raw Authentication Media data, such as RFID data contents on tags.
The supported authentication medium itself is specific to individual nodes. Supporting nodes can use the Entry Control Command Class to report the corresponding readings of their supported Authentication Media.

4.11.1 Authentication Media Capability Get Command
This command is used to request the Authentication Media capabilities supported by the receiving node.
The Authentication Media Capability Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_AUTHENTICATION_MEDIA_WRITE (0xA2)

Command = AUTHENTICATION_MEDIA_CAPABILITIES_GET(0x01)

4.11.2 Authentication Media Capability Report Command
This command is used to advertise the Authentication Media Command Class capabilities supported by the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_AUTHENTICATION_MEDIA_WRITE (0xA2)

Command = AUTHENTICATION_MEDIA_CAPABILITIES_REPORT (0x02)

Reserved

DGS

DGS (Data Generation support) (1 bit)
This field is used to advertise if the supporting node has the capability to generate authentication data that can be written on its authentication media.
This feature is used if the authentication media has a particular format and would not accept any arbitral hexadecimal data.
If this field is set to 1, the supporting node MUST support creating authentication data for their write operations. If this field is set to 0, the supporting node MUST NOT support creating authentication data for their write operations.

4.11.3 Authentication Media Write Start Command
This command is used to write Authentication Media contents (i.e., RFID data to a tag).
The Authentication Media Write Status Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_AUTHENTICATION_MEDIA_WRITE (0xA2)

Command = AUTHENTICATION_MEDIA_WRITE_START (0x03)

Sequence number

Timeout

Generatedata

Reserved

Data Length

Data 1

...

Data N

Sequence number (8 bits) This field is used to keep track of the Authentication Media Write Operation session. A supporting node MUST return a Authentication Media Write Status Command with the status field set to 0x03 if receiving this command with a different sequence number than the ongoing write operation.
Timeout (8 bits) This field is used to specify how many seconds the receiving node MUST wait between the reception of this command and aborting the write operation. For nodes with a sensing/feeback capability for their authentication media write operation, this value MUST also be used to wait that a media is accessible to the receiving node before the write operation is aborted. For Nodes without any feedback capability for their authentication media write operation MUST ignore this timeout value after and try to write the data on the authentication media target immediately.

Generate data (1 bit) This field is used to indicate the supporting node to generate the Authentication data that will be written on the Authentication Media. If this field is set to 1, the Data Length field MUST be set to 0. If this field is set to 1, the supporting node MUST generate valid authentication data and return the written data in the Data field of the returned response. Data Length (8 bits) This field is used to describe the length in bytes of the corresponding Data field. This field MUST be in the range 0..255. This field MUST be set to a value higher than 0 if the Generate Data field is set to 0. Data (N bytes) This field is used to advertise the Data contents that MUST be written to the media. The length of this field in bytes MUST be according to the corresponding Data Length field value.

4.11.4 Authentication Media Write Stop Command
This command is used to interrupt an ongoing Authentication Media Write operation.
The Authentication Media Write Status Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_AUTHENTICATION_MEDIA_WRITE (0xA2)

Command = AUTHENTICATION_MEDIA_WRITE_STOP (0x04)

4.11.5 Authentication Media Write Status Command This command is used to advertise the status of an Authentication Media Write operation.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_AUTHENTICATION_MEDIA_WRITE (0xA2)

Command = AUTHENTICATION_MEDIA_WRITE_STATUS (0x05)

Sequence number

Status

Data Length

Data 1

...

Data N

Sequence number (8 bits) This field is used to advertise the sequence number of the last Write operation. If an Authentication Media Write Stop Command was received while no operation was ongoing, this field SHOULD be set to 0x00.

Data Length (8 bits) This field is used to advertise the length in bytes of the Data field. This field MUST be in the range 0..255. This field MUST be set to a value highest than 0 if the Status field is set to 0xFE or 0xFF. Data (N bytes) This field is used to advertise the data that was written on the Authentication media as part of the write operation. This field MUST contain the data that was written on the media if the Status field is set to 0xFE or 0xFF.

Status (8 bit)
This field is used to indicate the status of the Authentication Media Write operation. This field MUST encoded according to Table 63.
Table 16,Authentication Media Write Status::Status encoding

Value

Description

0x00 Failed: Write operation not supported The node does not support write operations.

0x01 Failed: Forced stop The node has received a Authentication Media Write Stop Command before the data contents could be written on the target.

0x02 Failed: timeout The node has timed out and could not write the data content on a target

0x03 Failed: Another operation is ongoing The node has did not initiate the write operation as another operation was already ongoing.

0x04 Failed: Aborted The node has aborted the operation due to local input or other higher priority task.

0x05 Failed: Buffer overflow The node could not start or aborted the write operation as it ran into a buffer overflow while caching the data to write.

0x06 Failed: Proprietary hex data restriction
The node has received hexadecimal data that does not comply with the required format for its Authentication Media data. The controlling node should use the "Generate-data" flag instead.
This status MUST NOT be returned by a node if it does not advertise support for Data Generation in the Authentication Media Capability Report Command

0x07 Failed: Non re-writable target The node could not write the data on the target as it already contains some data that could not be overwritten.

0xFE Completed with no status: The Write Operation was carried out, but the node has no feedback from the media writing operation and cannot confirm that the data was properly written on the target.

0xFF Success The specified data was properly written on the target.

4.12 Barrier Operator Command Class, version 1 The Barrier Operator Command Class is used to control and query the status of motorized barriers. 4.12.1 Compatibility considerations CC:0066.01.00.23.001 A supporting node MAY ignore a Barrier Operator Command if the requested operation violates operational limitations or safety regulations. 4.12.1.1 Node Information Frame (NIF) CC:0066.01.00.21.001 The Barrier Operator Command Class MUST be supported only using secure communication (S0 and/or S2 Command Class). CC:0066.01.00.21.003 A supporting node MUST NOT advertise the Barrier Operator Command Class in its NIF after network inclusion. 4.12.1.2 Command Class dependencies CC:0066.01.00.21.002 A node supporting the Barrier Operator Command Class MUST support the Notification Command Class, version 4 or newer. 4.12.2 Barrier Operator Set Command This command is used to initiate an unattended change in state of the barrier. CC:0066.01.01.13.001 A supporting node MAY ignore this command if the requested operation violates operational limitations or safety regulations.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_BARRIER_OPERATOR

Command = BARRIER_OPERATOR_SET

Target Value

Target Value (8 bits) CC:0066.01.01.11.001 This field MUST specify the intended state of the device. CC:0066.01.01.11.002 The encoding of this field MUST be according to Table 17.
Table 17, Barrier Set::Target Value

CC:0066.01.01.11.003

Target Value

Description

Version

0x00

CLOSE

Initiate unattended close

1

0xFF

OPEN

Initiate unattended open

1

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

Figure 7, Barrier Set, state transitions

CC:0066.01.01.11.004 A receiving node MUST comply with the allowed state changes and triggering commands specified in Figure 7. Any state/command pair not specified in Figure 7 MUST NOT cause any action.

CC:0066.01.01.12.001 The receiving node SHOULD respond to OPEN and CLOSE commands. However, the receiving node CC:0066.01.01.11.005 MUST NOT respond to OPEN or CLOSE commands if any safety issue is detected.

CC:0066.01.01.11.006 The receiving node MUST NOT respond to the CLOSE command unless it is in the "Open" state.

4.12.2.1 Error Handling

CC:0066.01.01.11.007 The device MUST stop if any safety issue is detected.

CC:0066.01.01.11.008

If the requested operation is overruled by a safety mechanism, the device MUST notify the requester via a Notification Report with the Notification {Access Control::Barrier unable to perform requested operation due to UL requirements}.

CC:0066.01.01.11.009

If the requested operation is prohibited by the specific device class, e.g. SPECIFIC_TYPE_SECURE_BARRIER_OPEN_ONLY or SPECIFIC_TYPE_SECURE_BARRIER_CLOSE_ONLY, the device MUST notify the requester by issuing an Application Rejected Request Command. The Application Rejected Request Command is a member of the Application Status Command Class.

4.12.3 Barrier Operator Get Command

This command is used to request the current state of a barrier operator device.

CC:0066.01.02.11.001 The Barrier Operator Report Command MUST be returned in response to this command.

CC:0066.01.02.11.002 This command MUST NOT be issued via multicast addressing.

CC:0066.01.02.11.003

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_BARRIER_OPERATOR

Command = BARRIER_OPERATOR_GET

4.12.4 Barrier Operator Report Command This command is used to advertise the status of the barrier operator device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_BARRIER_OPERATOR

Command = BARRIER_OPERATOR_REPORT

State

State (8 bits) CC:0066.01.03.11.001 This field MUST advertise the current state of the device. CC:0066.01.03.11.002 The encoding of this field MUST be according to Table 18.

Table 18, Barrier Report::State

Value

State

Requirement level

Description

Version

0x00

Closed

REQUIRED

The barrier is in the Closed position

1

Stopped at

0x01 = 1% (Near Closed)

0x01..0x63

RECOMMENDED

1

exact Position

0x63 = 99% (Near Open)

0xFC

Closing

REQUIRED

The barrier is closing.

The current position is unknown.

1

0xFD

Stopped

REQUIRED

The barrier is stopped.

1

The current position is unknown.

0xFE

Opening

REQUIRED

The barrier is opening.

The current position is unknown.

1

CC:0066.01.03.11.003

0xFF

Open

REQUIRED

The barrier is in the Open position

1

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

4.12.5 Barrier Operator Get Signaling Capabilities Supported Command

This command is used to query a device for available subsystems which may be controlled via Z-Wave.

CC:0066.01.04.11.001 The Barrier Operator Report Signaling Capabilites Supported Command MUST be returned in response to this command.

CC:0066.01.04.11.002 This command MUST NOT be issued via multicast addressing.

CC:0066.01.04.11.003

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_BARRIER_OPERATOR

Command = BARRIER_OPERATOR_SIGNAL_SUPPORTED_GET

4.12.6 Barrier Operator Report Signaling Capabilities Supported Command This command returns a bit mask of signaling subsystem(s) supported by the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_BARRIER_OPERATOR

Command = BARRIER_OPERATOR_SIGNAL_SUPPORTED_REPORT

Bit Mask 1

....

Bit Mask N

Bit Mask (N bytes)

This field is used to advertise the event signaling capabilities supported by the sending node.

CC:0066.01.05.11.004 It MUST be treated as a bitmask.

1. Bit 0 in Bit Mask 1 indicates if subsystem type 0x01 is supported 2. Bit 1 in Bit Mask 1 indicates if subsystem type 0x02 is supported 3. ...

CC:0066.01.05.11.001 If the subsystem type is supported, the corresponding bit MUST be set to 1. If the subsystem type is not supported, the corresponding bit MUST be set to 0.

For the complete list of subsystem types, refer to Table 19.

CC:0066.01.05.11.002 The length of this field depends on the number of subsystems supported by the sending node. The length of this field MUST be in the range 1..32 bytes.

CC:0066.01.05.11.003 A sending node MUST limit the length of this field to represent only those subsystems supported and MUST NOT extend the length of the Bit Mask to pad the packet with 0x00.

4.12.7 Barrier Operator Event Signal Set Command

This command is used to turn on or off an event signaling subsystem that is supported by the device.

CC:0066.01.06.13.001 A supporting node MAY ignore this command if the requested operation violates safety regulartions.

CC:0066.01.06.11.004 CC:0066.01.06.11.001

UL requirements MUST take precedence over any Set command sent to a subsystem. It is up to the discretion of the device to accept or reject the requested action. If the requested action is rejected, the node MUST notify the requester via the Notification Command Class Report with the Notification {Access Control::Barrier unable to perform requested operation due to UL requirements}.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_BARRIER_OPERATOR

Command = BARRIER_OPERATOR_SIGNAL_SET

Subsystem Type

Subsystem State

Subsystem Type (8 bits)

CC:0066.01.06.11.002

This field is used to indicate which subsystem type MUST be set at the receiving node. This field MUST comply with Table 19.
Table 19, Barrier Operator Event signal::Subsystem types encoding

Subsystem Type 0x00 0x01
0x02 0x03.. 0xFF

Description NOT SUPPORTED - reserved The Barrier Device has an Audible Notification subsystem controllable via Z-Wave (For example: Siren) The Barrier Device has an Visual Notification subsystem controllable via Z-Wave (For example: Flashing Light) reserved

Version 1 1
1 1

Subsystem State (8 bits)
CC:0066.01.06.11.003 This field is used to indicate the state that the specified subsystem MUST assume at the receiving node. This field MUST comply with Table 20.
Table 20, Barrier Operator Event Signal::Subsystem states encoding

Subsystem State 0x00 ... 0xFF

Description Subsystem OFF reserved Subsystem ON

Version 1 1 1

4.12.8 Barrier Operator Event Signaling Get Command

This command is used to request the state of a signaling subsystem to a supporting node.

CC:0066.01.07.11.001 The Barrier Operator Event Signaling Report Command MUST be returned in response to this command if the specified type is supported.

CC:0066.01.07.11.002 This command MUST NOT be issued via multicast addressing.

CC:0066.01.07.11.003

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_BARRIER_OPERATOR

Command = BARRIER_OPERATOR_SIGNAL_GET

Subsystem Type

For fields' description, refer to 4.12.7 Barrier Operator Event Signal Set Command.

4.12.9 Barrier Operator Event Signaling Report This command is used to indicate the state of a notification subsystem of a Barrier Device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_BARRIER_OPERATOR

Command = BARRIER_OPERATOR_SIGNAL_REPORT

Subsystem Type

Subsystem State

For fields' description, refer to 4.12.7 Barrier Operator Event Signal Set Command

4.13 Basic Command Class, version 1

The Basic Command Class allows a controlling device to operate the primary functionality of a supporting device without any further knowledge.

The Basic Command Class ensures a basic interoperability if no other command class is shared by two devices.

The Basic Command Class is an actuator control command class. Refer to 3.6.

4.13.1 Compatibility considerations

A specific device may not be able to support all Basic CC commands or parameter levels. For instance, a relay can only open fully in response to any non-zero value.

CC:0020.01.00.22.001 Any device SHOULD support the Basic Command Class.

CC:0020.01.00.21.001

A device MUST implement mappings from the Basic Command Class to specific commands according to the advertised generic and specific device class of the Node Info frame. Mappings defined by a Specific Device Class have precedence over the Generic Device Class.

CC:0020.01.00.21.002 For Z-Wave Plus devices, the Basic Command Class MUST be mapped according to the actual Z-Wave Plus Device Type. For further information, refer to [10], [22].

The following sections only present frame formats. For details on the mapping to other command classes, refer to [10] and [22].

4.13.1.1 Node Information Frame (NIF)

CC:0020.01.00.21.003 CC:0020.01.00.21.004

The Basic Command Class MUST NOT be advertised in the Node Information Frame. The Basic Command Class MUST NOT be advertised in the Security Commands Supported Report (S0 as well as S2)

CC:0020.01.00.21.005 A securely included node MAY support the Basic Command Class at the highest security level but it MUST NOT support the Basic Command Class at any lower security level or non-securely.

4.13.2 Basic Set Command

This command is used to set a value in a supporting device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_BASIC

Command = BASIC_SET

Value

Value (8 bits)
CC:0020.01.01.12.001 A supporting device SHOULD support all parameter values in the range {0x00..0x63, 0xFF}. CC:0020.01.01.11.001 A controlling device MUST NOT assume that a receiving device reacts to this command.
CC:0020.01.01.11.002 A receiving device MUST interpret Basic Set parameter values according to the requirements of the Device Class implemented by the device. Refer to [10] and [22].

4.13.3 Basic Get Command

This command is used to request the status of a supporting device.

CC:0020.01.02.11.001 The Basic Report Command MUST be returned in response to this command.

CC:0020.01.02.11.002

This command MUST NOT be issued via multicast addressing. 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_BASIC

Command = BASIC_GET

4.13.4 Basic Report Command This command is used to advertise the status of the primary functionality of the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_BASIC

Command = BASIC_REPORT

Value

Value (8 bits) CC:0020.01.03.12.001 The Value field SHOULD advertise the current value of the device hardware; also while in transition to a
new target value. For details on the mapping of values, refer to [10] and [22]. CC:0020.01.03.11.001 A controlling device MUST NOT assume that the Value is identical to a value previously specified in a Set command; not even when a transition has ended. CC:0020.01.03.11.002 A receiving device MUST interpret the Value field according to Table 21.
Table 21, Basic Report :: Value

CC:0020.01.03.11.003

Value

Level

State

0

(0x00)

0%

Off

1..99 (0x01..0x63)

1..100% On

...

Reserved Reserved

254 (0xFE)

Unknown Unknown

255 (0xFF)

100%

On

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

4.14 Basic Command Class, version 2

The Basic Command Class allows a controlling device to operate the primary functionality of another device without any further knowledge.

The Basic Command Class ensures a basic interoperability if no other Command Class is shared by two devices.

The Basic Command Class is an actuator control command class. Refer to 3.6.

4.14.1 Compatibility considerations

CC:0020.02.00.21.001 A device supporting Basic Command Class, version 2 MUST support Basic Command Class, version 1. Commands not described in this version remain unchanged from version 1.

CC:0020.02.00.21.002

Version 2 adds the distinction between the Current Value and the Target State of the device. Version 2 elevates the requirement level so that the Current Value field of the Basic Report command MUST advertise the current value of the device hardware; also while in transition to a new target value.

The compatibility considerations from version 1 also apply to this version. Refer to 4.13.1.

4.14.2 Basic Report Command

This command is used to advertise the status of the primary functionality of the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_BASIC

Command = BASIC_REPORT

Current Value

Target Value

Duration

Current Value (8 bits)

CC:0020.02.03.11.001 The Current Value field MUST advertise the current value of the device hardware; also while in transition to a new target value.

CC:0020.02.03.11.002

The advertised values may vary depending on the device class implemented by the supporting device. A controlling device MUST interpret the value according to Table 21.For details on the mapping of values, refer to [10] and [22].

CC:0020.02.03.12.001 The Current Value SHOULD be identical to the Target Value when a transition has ended.

Target Value (8 bits)

CC:0020.02.03.11.003 The Target Value field MUST advertise the target value of an ongoing transition or the most recent transition.

CC:0020.02.03.11.004 The advertised values may vary depending on the device class implemented by the supporting device. A controlling device MUST interpret the value according to Table 21.

For details on the mapping of values, refer [10] and [22].

CC:0020.02.03.11.005 CC:0020.02.03.13.001

If queried after receiving a Set command, the Target Value field MUST advertise the target value specified in the Set command. The Target Value MAY change at a later time due to local control or a "Stop" motion control command.

CC:0020.02.03.11.006 If the device is in a motion controlled transition, the Target Value field MUST advertise the min or max value (depending on the direction) according to the command class mappings defined in [10] and [22].

Duration (8 bits)

CC:0020.02.03.12.002 The Duration field SHOULD advertise the time needed to reach the Target Value at the actual transition rate. The encoding of the Duration field MUST be according to Table 8.

4.15 Basic Tariff Information Command Class, version 1
This Basic Tariff Information Command Class for use with a single element or dual element meter, and for use with import (electricity received from grid) rates only. The command class is kept as simple as possible without any pricing information.
This command class supports a GET and REPORT.
No Set command is supported, as it is not appropriate to set any of the parameters through Z-Wave.
4.15.1 Basic Tariff Information Get Command
This command is used to request current tariff information from the meter.
The Basic Tariff Information Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_BASIC_TARIFF_INFO

Command = BASIC_TARIFF_INFO_GET

4.15.2 Basic Tariff Information Report Command
This command returns information on the number of import rates supported, and current import rate information. Application can send unsolicited Basic Tariff Report commands or requested by the Basic Tariff Get Information command.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_BASIC_TARIFF_INFO

Command = BASIC_TARIFF_INFO_REPORT

Dual

Reserved

Total No. Import Rates

Reserved

E1 ­ Current Rate in Use

E1 - Rate Consumption Register ­ MSB

E1 - Rate Consumption Register

E1 - Rate Consumption Register

E1 - Rate Consumption Register ­ LSB

E1 ­ Time for Next Rate ­ Hours

E1 ­ Time for Next Rate ­ Minutes

E1 ­ Time for Next Rate ­ Seconds

Reserved

E2 ­ Current Rate in Use

E2 - Rate Consumption Register ­ MSB

E2 - Rate Consumption Register

E2 - Rate Consumption Register

E2 - Rate Consumption Register ­ LSB

Dual (1 bit) Single Element = 0, Two Elements = 1. If single element the E2 fields are skipped in the frame. E1 ­ Time for Next Rate ­ Seconds will be the last byte of the message and the number of data bytes will be 9. If two elements the E2 fields are present and the number of data bytes will be 14. Total Number of Import Rates Supported (7 bits) Field specifies the number of import rates E1 (and E2) supported by the meter. Range of legal decimal values are 1...8. No units used. The decimal values 0 and 9...15 are reserved and MUST be ignored by receiving devices. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

E1 ­ Current Rate in Use (8 bits)
Field specifies the current rate in use. Range of legal decimal values are 1...8. No units used. The decimal values 0 and 9...15 are reserved and MUST be ignored by receiving devices.
E1 ­ Rate Consumption Register (32 bits)
The meter has a 32-bit consumption register, for the energy used in each rate. This register is the rate consumption register for the current rate in use now on element 1. Units are in Wh.
E1 ­ Time for Next Rate ­ Hours (8 bits)
Field specifies the hour value of the time that the rate is due to change on element 1. Range of legal decimal values are 0...23, or 255. The values 24...254 are reserved and MUST be ignored by receiving devices.
E1 ­ Time for Next Rate ­ Minutes (8 bits)
Field specifies the minute value of the time that the rate is due to change on element 1. Range of legal decimal values are 0...59, or 255. The decimal values 60...254 are reserved and MUST be ignored by receiving devices.
E1 ­ Time for Next Rate ­ Seconds (8 bits)
Field specifies the second value of the time that the rate is due to change on element 1. Range of legal decimal values are 0...59, or 255. The decimal values 60...254 are reserved and MUST be ignored by receiving devices.
NOTE: 255 in each field of the Time to Next Rate specifies no switching time is in use, which is appropriate for single rate meters. 255 is only a legal value if used in all three Time to Next Rate fields.
E2 ­ Current Rate in Use (8 bits)
Field specifies the current rate in use on element 2. Range of legal decimal values are 1...8. No units used. The decimal values 0 and 9...15 are reserved and MUST be ignored by receiving devices.
E2 ­ Rate Consumption Register (32 bits)
The meter has a 32-bit consumption register, for the energy used in each rate. This register is the rate consumption register for the current rate in use now on element 2. Units are in Wh.

4.16 Basic Window Covering Command Class, version 1 [OBSOLETED]
THIS COMMAND CLASS HAS BEEN OBSOLETED New implementations MUST NOT support this command class. New window covering device implementations SHOULD support the Window Covering Command Class.

This section contains Commands that may be used to control a Basic Window Covering Command Class.
4.16.1 Basic Window Covering Start Level Change Command
This command is used to start moving drapes, shades, blinds in a given direction. The speed of the movement is implementation specific.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_BASIC_WINDOW_COVERING

Command = BASIC_WINDOW_COVERING_START_LEVEL_CHANGE

Reserved Open/ Close

Reserved

Open/Close (1 bit) If the Open/Close bit is set to 0 the window covering SHOULD open. If field is set to 1 the window covering SHOULD close. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. 4.16.2 Basic Window Covering Stop Level Change Command This command is used to stop moving drapes, shades, blinds in a given direction.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_BASIC_WINDOW_COVERING

Command = BASIC_WINDOW_COVERING_STOP_LEVEL_CHANGE

4.17 Binary Sensor Command Class, version 1 [DEPRECATED]
THIS COMMAND CLASS HAS BEEN DEPRECATED A device MAY implement this command class, but it is RECOMMENDED that new implementations use the Notification Command Class. If implementing this command class, it is RECOMMENDED that the Notification Command Class is also implemented.

The Binary Sensor Command Class is used to realize binary sensors, such as movement sensors.
4.17.1 Binary Sensor Get Command
This command is used to request the status of a sensor.
The Binary Sensor Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SENSOR_BINARY

Command = SENSOR_BINARY_GET

4.17.2 Binary Sensor Report Command This command is used to advertise a sensor value.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SENSOR_BINARY

Command = SENSOR_BINARY_REPORT

Sensor Value

Sensor Value (8 bits)
If the Sensor Value is 0x00 indicates that the sensor is idle and 0xFF indicates that the sensor has detected an event.

4.18 Binary Sensor Command Class, version 2 [DEPRECATED]
THIS COMMAND CLASS HAS BEEN DEPRECATED A device MAY implement this command class, but it is RECOMMENDED that new implementations use the Notification Command Class. If implementing this command class, it is RECOMMENDED that the Notification Command Class is also implemented.

The Binary Sensor Command Class is used to realize binary sensors, such as movement sensors and door/window sensors. Version 2 of this command class is extended with the following functionalities:
 A "get-supported" mechanism for the controlling device to interview the binary sensor for its supported sensor types
 A list of defined sensor types capable of reporting a binary value
NOTE: A binary sensor is defined as a sensor unit capable of providing a binary value in the report i.e. that an event was "triggered" or "not triggered" and not other intermediate values. For sensor units providing multiple values the Multilevel Sensor Command Class is more suitable. The Binary Sensor Command Class can further advance through implementation of the Notification Command Class to communicate details about the event.
4.18.1 Binary Sensor Get Command
This command is used to request the status of the specific sensor device.
The Binary Sensor Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SENSOR_BINARY

Command = SENSOR_BINARY_GET

Sensor Type

Sensor Type (8 bits)
Sensor Type specifies what type of sensor this command originates from. Refer to Table 22. The sensor type value 0xFF returns the first found supported sensor type in the bit mask (starting from bit 0 in Bit Mask 1) by the Binary Sensor Supported Report.
Table 22, Binary Sensor Get::Sensor Type encoding

Value

Sensor Type

0x00

Reserved

0x01

General purpose

0x02

Smoke

0x03

CO

0x04

CO2

0x05

Heat

0x06

Water

0x07

Freeze

0x08

Tamper

0x09

Aux

0x0A

Door/Window

0x0B

Tilt

0x0C

Motion

0x0D

Glass Break

0x0E..0xFE Reserved

0xFF

Return 1st Sensor Type on supported list

4.18.2 Binary Sensor Report Command This command is used to advertise a sensor value.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SENSOR_BINARY

Command = SENSOR_BINARY_REPORT

Sensor Value

Sensor Type

Sensor Value (8 bits)

Sensor Value = 0x00 indicates that the sensor is idle and 0xFF indicates that the sensor has detected an event.
4.18.3 Binary Sensor Get Supported Sensor Command
This command is used to request the supported sensor types from the binary sensor device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SENSOR_BINARY

Command = SENSOR_BINARY_SUPPORTED_GET_SENSOR

4.18.4 Binary Sensor Supported Sensor Report Command
This command must be sent as requested by a received Binary Sensor Get Supported Sensor Command. This command indicates the supported sensor types of the binary sensor device in a bit mask format and MUST NOT be transmitted unsolicited.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SENSOR_BINARY

Command = SENSOR_BINARY_SUPPORTED_SENSOR_REPORT

Bit Mask 1

...

Bit Mask N

Bit Mask (N bytes)
The Bit Mask fields describe the supported sensor types by the binary sensor device and refer to the Sensor Type table of Binary Sensor Report command.
 Bit 0 in Bit Mask 1 is not allocated to any Sensor Type and must therefore be set to zero.  Bit 1 in Bit Mask 1 indicates if Sensor Type = 1 (General Purpose) is supported.  Bit 2 in Bit Mask 1 indicates if Sensor Type = 2 (Smoke) is supported.  Bit 3 in Bit Mask 1 indicates if Sensor Type = 3 (CO) is supported ...
If the Sensor Type is supported the bit MUST be set to 1. If the Sensor Type is not supported the bit MUST be set to 0. Sensor Type = 0xFF (Return 1st Sensor Type on supported list) cannot be indicated by the Bit Masks.
Note: It is only necessary to transmit Bit Mask 1 and up to the Bit Mask N indicating the last supported sensor type. The number of Bit Mask fields transmitted MUST be determined from the length field in the frame.

4.19 Binary Switch Command Class, version 1 The Binary Switch Command Class is used to control the On/Off state of supporting nodes. The Binary Switch Command Class is an actuator control Command Class. Refer to 3.6. 1.1.1 Binary Switch Set Command This command is used to set the On/Off state at the receiving node. CC:0025.01.01.13.001 A receiving node MAY apply a non-zero duration to the transition from one value to a new value.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_BINARY

Command = SWITCH_BINARY_SET

Value

CC:0025.01.01.11.001

Value (8 bits)
This field is used to specify the On/Off state that the receiving node MUST assume. This field MUST be encoded according to Table 23.
Table 23, Binary Switch Set :: Value

Value

0

(0x00)

1..99 (0x01..0x63)

255 (0xFF)

Level State 0% Off 100% On 100% On

CC:0025.01.01.11.002 CC:0025.01.01.11.003

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
If the supporting node uses this Command Class, the values MUST be interpreted as follow:

 The value 0 MUST represent the lowest possible throughput (light, water, sound, etc.)  The values 1..99 and 255 MUST represent the highest possible throughput (light, water, sound,
etc.)

The above value mapping of the Binary Switch Command Class Value allows a controlling node to control a mixed group of Binary Switch and Multilevel Switch supporting nodes via Basic Set commands. Nodes supporting the Binary Switch Command Class turn On or Off while nodes supporting the Multilevel Switch Command Class are set at the specified value level.

1.1.2 Binary Switch Get Command

This command is used to request the current On/Off state from a node.

CC:0025.01.02.11.001 The Binary Switch Report Command MUST be returned in response to this command.

CC:0025.01.02.11.002 This command MUST NOT be issued via multicast addressing.

CC:0025.01.02.11.003

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_SWITCH_BINARY

Command = SWITCH_BINARY_GET

1.1.3 Binary Switch Report Command This command is used to advertise the current On/Off state at the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_BINARY

Command = SWITCH_BINARY_REPORT

Value

Value (8 bits)

CC:0025.01.03.11.001

This field is used to advertise the current On/Off state at the sending node. This field MUST be encoded according to Table 24.
Table 24, Binary Switch Report :: Value

Value 0 (0x00) 254 (0xFE) 255 (0xFF)

Level

State

0% Off

Unknown Unknown

100% On

CC:0025.01.03.11.002 All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
CC:0025.01.03.12.001 This field SHOULD advertise the current value of the node's hardware; also while in transition to a new value.
CC:0025.01.03.11.003 A controlling node MUST NOT assume that this field's value is identical to the value previously issued with a Binary Switch Set Command.

4.20 Binary Switch Command Class, version 2 The Binary Switch Command Class is used to control the On/Off state of supporting nodes. The Binary Switch Command Class is an actuator control Command Class. Refer to 3.6. 4.20.1 Compatibility considerations CC:0025.02.00.21.001 A node supporting Binary Switch Command Class, version 2 MUST support the Binary Switch Command Class, version 1. CC:0025.02.00.21.002 Commands not described in this version MUST remain unchanged from version 1. Version 2 adds duration and target value control and reporting. 4.20.2 Binary Switch Set Command This command is used to set the binary state at the receiving node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_BINARY

Command = SWITCH_BINARY_SET

Target Value

Duration

Target Value (8 bits)
CC:0025.02.01.11.001 This field is used to specify the On/Off state that the receiving node MUST assume. This field MUST be encoded according to Table 23.
Duration (8 bits)
CC:0025.02.01.12.001 This field is used to specify the duration that the transition from the current value to the Target Value SHOULD take.
CC:0025.02.01.12.002 A supporting node SHOULD respect the specified duration value.
CC:0025.02.01.11.002 The encoding of the Duration value MUST be according to Table 7.

4.20.3 Binary Switch Report Command This command is used to advertise the current On/Off state at the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_BINARY

Command = SWITCH_BINARY_REPORT

Current Value

Target Value

Duration

Current Value (8 bits) CC:0025.02.03.11.001 This field is used to advertise the current On/Off state at the sending node. This field MUST be encoded
according to Table 24. CC:0025.02.03.11.002 The advertised Current Value MUST NOT be updated to the Target Value before the hardware actuator
has actually reached the Target Value. Target Value (8 bits) CC:0025.02.03.11.003 This field MUST advertise the target value of an ongoing transition or the most recent transition. CC:0025.02.03.11.004 This field MUST be encoded according to Table 24. Duration (8 bits) CC:0025.02.03.12.001 The duration field SHOULD advertise the duration of a transition from the Current Value to the Target Value. CC:0025.02.03.11.005 The encoding of the Duration field MUST be according to Table 8.

4.21 Binary Toggle Switch Command Class, version 1 [OBSOLETED]
THIS COMMAND CLASS HAS BEEN OBSOLETED A node MUST NOT implement this Command Class. New implementations MUST use the Binary Switch Command Class.

The Binary Toggle Switch Command Class is used for toggle-style control of binary actuator devices. 4.21.1 Binary Toggle Switch Set Command This command is used to toggle a device e.g. from on to off and from off to on.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_TOGGLE_BINARY

Command = SWITCH_TOGGLE_BINARY_SET

4.21.2 Binary Toggle Switch Get Command
This command is used to request the state of the load controlled by the device.
The Binary Toggle Switch Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SWITCH_TOGGLE_BINARY

Command = SWITCH_TOGGLE_BINARY_GET

4.21.3 Binary Toggle Switch Report Command This command is used to advertise the value of a toggle switch.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_TOGGLE_BINARY

Command = SWITCH_TOGGLE_BINARY_REPORT

Value

Value (8 bits) The value MAY be 0x00 (off) or 0xFF (on).

4.22 Central Scene Command Class, version 1 [OBSOLETED]
THIS COMMAND CLASS HAS BEEN OBSOLETED CC:005B.01.00.11.001 New implementations MUST support the Central Scene Command Class, version 3 or newer.
The Central Scene Command Class is used to communicate central scene activations to a central controller using the lifeline concept. The central scene controller only need to configure lifeline association in relevant nodes before the home control application can take action in the central scene controller. The typical application contains up to 10-15 selected nodes creating a nice "out of the box" experience with minimum effort by the customer. A scene is typically activated via a push button on the device in question. The Central Scene Command Class can instruct the central scene controller to perform the relevant actions as shown on Figure 8.

Figure 8, Centralized feedback and control

CC:005B.01.00.13.001 CC:005B.01.00.11.002

Multiple sending nodes MAY advertise the same Scene number. Therefore, a receiving node MUST interpret the advertised Scene number in combination with the source NodeID of the sending node.

For instance, {Node A, Scene 1} may trigger changes to another scene than {Node B, Scene 1} in the receiving node

Notice that this configuration has a single point of failure in case the central scene controller is broken. The likelihood to experience the "popcorn effect" is increased because the central scene controller may be located far from the push button activated and therefore out of direct range with respect to devices to control.

To compensate for single point of failure in case the central scene controller is broken the devices could do fallback to alternative association groups to control devices directly. These association groups are

activated only if the device does not receive acknowledge from configured lifeline. This will ensure some basic level of light control in the house until the central scene controller is restored. Alternatively, a backup central scene controller could be added to the system to take over in case the first one fails.

4.22.1 Central Scene Supported Get Command

This command is used to request the maximum number of scenes that this device supports.

CC:005B.01.01.11.001 The Central Scene Supported Report Command MUST be returned in response to this command.

CC:005B.01.01.11.002

This command MUST NOT be issued via multicast addressing. 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_CENTRAL_SCENE

Command = CENTRAL_SCENE_SUPPORTED_GET

4.22.2 Central Scene Supported Report Command This command is used to report the maximum number of scenes that the requested device supports.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CENTRAL_SCENE

Command = CENTRAL_SCENE_SUPPORTED_REPORT

Supported Scenes

Supported Scenes (8 bits)

This field indicates the maximum number of scenes supported by the requested device.

CC:005B.01.02.11.001 This field MUST advertise the number of available scenes. Scenes MUST be numbered in the range 1..[Supported Scenes].

CC:005B.01.02.13.001 A device MAY implement virtual buttons via two-button presses, touch screen swipes or other means. CC:005B.01.02.11.002 Virtual buttons MUST be numbered after physical push buttons or graphical button objects.

CC:005B.01.02.11.003 CC:005B.01.02.13.002

The advertised number of Supported Scenes MUST cover physical push buttons, graphical button objects as well as virtual buttons. Therefore, the advertised number of Supported Scenes MAY be larger than the number of physical push buttons or graphical button objects.

4.22.3 Central Scene Notification Command
This command is used to report activated scene on device in question including how notification must be interpreted.
In case a lifeline is configured in group #1 using Association Command Class, the device must use this lifeline for transmitting the Central Scene Notification Command. It is allowed to define other association groups handling Central Scene Notification Command and setup rules between the groups. However, lifeline has precedence over other groups handling Central Scene Notification Command in case lifeline is defined.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CENTRAL_SCENE

Command = CENTRAL_SCENE_NOTIFICATION

Sequence Number

Reserved

Key Attributes

Scene Number

Sequence Number (8 bits) CC:005B.01.03.11.001 The sequence number MUST be incremented each time a Central Scene Notification Command is
issued. The receiving device uses the sequence number to ignore duplicates. Key Attributes (3 bits) CC:005B.01.03.11.002 The key Attributes field specifies the state of the key. The field MUST be encoded according to Table 25
Table 25, Central Scene Notification :: Key Attributes

Key Attribute 0x00 0x01 0x02

Description Key Pressed Key Released Key Held Down

CC:005B.01.03.11.003 All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
CC:005B.01.03.11.004 Notifications carrying these Key Attributes MUST comply with Figure 9.

Figure 9, Central Scene version 1 button press decoding and timer management

Reserved

CC:005B.01.03.11.005 This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

Scene Number (8 bits)

CC:005B.01.03.11.006 CC:005B.01.03.13.001

The advertised number of Supported Scenes MUST cover physical push buttons, graphical button objects as well as virtual buttons. Therefore, the advertised number of Supported Scenes MAY be larger than the number of physical push buttons or graphical button objects.

Figure 10, Scene number mapping to button layout

4.23 Central Scene Command Class, version 2 [OBSOLETED]
THIS COMMAND CLASS HAS BEEN OBSOLETED CC:005B.02.00.11.001 New implementations MUST support the Central Scene Command Class, version 3 or newer.

The Central Scene Command Class is used to communicate central scene activations to a central controller using the lifeline concept.
4.23.1 Compatibility considerations
Central Scene Command Class version 2 is extended on the following areas:
 The Central Scene Supported Report Command is updated to advertise Key Attributes support for each scene.
 Additional Key Attributes are defined.
Commands and paragraphs not mentioned in this version remain unchanged from version 1.
4.23.2 Central Scene Supported Report Command
This command is used to report the maximum number of supported scenes and the Key Attributes supported for each scene.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CENTRAL_SCENE

Command = CENTRAL_SCENE_SUPPORTED_REPORT

Supported Scenes

Reserved

Number of Identical
Bit Mask Bytes

Supported Key Attributes for Scene 1 ­ Byte 1

...

Supported Key Attributes for Scene 1 ­ Byte N

...

Supported Key Attributes for Scene M ­ Byte 1

...

Supported Key Attributes for Scene M ­ Byte N

Fields not described below remain unchanged from version 1. Reserved CC:005B.02.02.11.001 This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

Number of Bit Mask Bytes (2 bits) This field advertises the size of each "Supported Key Attributes" field measured in bytes. CC:005B.02.02.11.002 The value MUST be in the range 1..3. Identical (1 bit) This field indicates if all scenes are supporting the same Key Attributes: CC:005B.02.02.11.003 The value 1 MUST indicate that all scenes support the same set of Key Attributes. In this case, the field "Supported Key Attributes for Scene 1" MUST advertise the supported Key Attributes for all scenes CC:005B.02.02.11.004 The value 0 MUST indicate that scenes support different Key Attributes. In this case, Supported Key Attributes MUST be advertised for each individual scene. Supported Key Attributes (N bytes) CC:005B.02.02.11.005 This Bit Mask field advertises the attributes supported by the corresponding scene. The field MUST be encoded according to Table 26.
Table 26: Central Scene Supported Report::Supported Key Attributes

Byte:Bit 1:0 1:1 1:2 1:3 1:4 1:5 1:6 1:7

Supported Key Attributes Key Pressed 1 time Key Released. Key Held Down. Key Pressed 2 times Key Pressed 3 times Key Pressed 4 times Key Pressed 5 times Reserved

CC:005B.02.02.11.006 If the Key Released attribute is supported, the Key Held Down attribute MUST also be supported. If the Key Held Down attribute is supported, the Key Released attribute MUST also be supported.

4.23.3 Central Scene Notification Command
This command is used to advertise one or more key events.
CC:005B.02.03.11.001 If the device implements Z-Wave Plus Lifeline support is implemented, the device MUST send the Central Scene Notification Command to the actual Lifeline targets.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CENTRAL_SCENE

Command = CENTRAL_SCENE_NOTIFICATION

Sequence Number

Reserved

Key Attributes

Scene Number

Fields not described below remain unchanged from version 1. Key Attributes (3 bits) CC:005B.02.03.11.002 This field advertises one or more events detected by the key. The field MUST be encoded according to Table 27
Table 27: Central Scene Notification::Key Attributes

Key Attribute

Description

Version

0x00

Key Pressed 1 time 1

0x01

Key Released

1

0x02

Key Held Down

1

0x03

Key Pressed 2 times 2

0x04

Key Pressed 3 times 2

0x05

Key Pressed 4 times 2

0x06

Key Pressed 5 times 2

CC:005B.02.03.11.003 All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
CC:005B.02.03.11.004 Notification carrying these Key Attributes MUST comply with Figure 11.

Figure 11, Central Scene button press decoding and timer management
4.24 Central Scene Command Class, version 3
The Central Scene Command Class, version 3 extends version 2 by adding a new mode for the transmission of Key Held Down notifications. This allows a node to send Key Held Down refreshes at a low rate for the duration of the key held down.

The purpose of this new feature is to provide improved compatibility with FLiRS beaming and network routing.

Central Scene Command Class, version 3 introduces three new commands to allow a controller to query and configure node capabilities.

 Central Scene Configuration Set Command  Central Scene Configuration Get Command  Central Scene Configuration Report Command

Central Scene Command Class, version 3 extends the following commands for a scene launching node to advertise its optional capabilities.

 Central Scene Supported Report Command  Central Scene Notification Command

4.24.1 Compatibility considerations

CC:005B.03.00.22.001

A scene controller SHOULD NOT try to detect multiple key presses from the reception of successive key press notifications in any single or multiple key attribute combination. FLiRS beaming, collisions or routing may add delays between messages and render the timing between notifications unreliable.

Version 1 and version 2 required to send Key Held Down notifications commands every 200ms. It has been found that this requirement cannot be observed when the network is using FLiRS beaming or routing. Further, issuing the 200ms refreshes also degrades general network reliability and availability.

Version 3 introduces the Slow Refresh Capability, which allows a node to send refreshes every 55 seconds instead of 200ms. For details about the Slow Refresh capability, refer to 4.24.7.

CC:005B.03.00.21.001 In order to ensure a functioning network, the Slow Refresh capability MUST be enabled by default after inclusion.

CC:005B.03.00.22.002

When creating associations from a version 3 node, the node creating the association SHOULD enable the Slow Refresh capability in the node if the association destination does also support Central Scene Command Class, version 3. When using the version 3 Slow Refresh capability, the controller relies on the reception of a Key Up notification instead of the Key Held Down refreshes. The new mode still sends refreshes at a low rate, for the controller to detect if a node failed after sending a Held Down Key notification. This means that a version 2 controlling node may time out when receiving Key Held Down Notifications from a version 3 node.

However, it has been found that there exist nodes supporting version 1 or version 2 which do not send Central Scene Notification refreshes every 200ms when the Key Held Down notification is issued.

CC:005B.03.00.22.003

A controller SHOULD apply an adaptive approach based on the reception of the Key Released Notification. Initially, the controller SHOULD time out if not receiving any Key Held Down Notification refresh after 400ms and consider this to be a Key Up Notification. If, however, the controller subsequently receives a Key Released Notification, the controller SHOULD consider the sending node to be operating with the Slow Refresh capability enabled.

4.24.1.1 Central Scene Configuration commands support
If a node supports Slow Refresh Capability (that allows a node to send refresh every 55 seconds instead of 200 ms), may not allow users to turn off the `Slow Refresh' functionality. If this is the case, the node MAY choose to ignore the Central Scene Configuration Set Command with `Slow Refresh' bit set to zero.
If the node chooses to ignore the Central Scene Configuration Set Command, the node MUST return an application Reject Request Command when receiving Central Scene Configuration Set command (if it received without Supervision encapsulation).
4.24.1.2 Multi Channel considerations
CC:005B.03.00.22.004 Multi Channel End Points SHOULD NOT support the Central Scene Command Class.
4.24.2 Central Scene Configuration Set Command
This command is used to configure the use of optional node capabilities for scene notifications.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CENTRAL_SCENE

Command = CENTRAL_SCENE_CONFIGURATION_SET

Slow Refresh

Reserved

Slow Refresh (1 bit) This flag is used to configure the use of the Slow Refresh capability. CC:005B.03.04.11.001 The value 1 MUST indicate that the scene launching node MUST use Slow Refresh. The value 0 MUST indicate that the scene launching node MUST NOT use Slow Refresh. Reserved CC:005B.03.04.11.002 This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

4.24.3 Central Scene Configuration Get Command

This command is used to query the configuration of optional node capabilities for scene notifications.

CC:005B.03.05.11.001 The Central Scene Configuration Report Command MUST be returned in response to this command.

CC:005B.03.05.11.002

This command MUST NOT be issued via multicast addressing. 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_CENTRAL_SCENE

Command = CENTRAL_SCENE_CONFIGURATION_GET

4.24.4 Central Scene Configuration Report Command
This command is used to advertise the configuration of optional node capabilities for scene notifications.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CENTRAL_SCENE

Command = CENTRAL_SCENE_CONFIGURATION_REPORT

Slow Refresh

Reserved

Slow Refresh (1 bit) This flag is used to advertise the use of the Slow Refresh capability. CC:005B.03.06.11.001 The value 1 MUST indicate that the scene launching node MUST use Slow Refresh. The value 0 MUST indicate that the scene launching node MUST NOT use Slow Refresh capability. Reserved CC:005B.03.06.11.002 This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

4.24.5 Central Scene Supported Get Command

This command is used to request the maximum number of scenes that this device supports.

CC:005B.03.01.11.001 The Central Scene Supported Report Command MUST be returned in response to this command.

CC:005B.03.01.11.002

This command MUST NOT be issued via multicast addressing. 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_CENTRAL_SCENE

Command = CENTRAL_SCENE_SUPPORTED_GET

4.24.6 Central Scene Supported Report Command
This command is used to report the maximum number of supported scenes and the Key Attributes supported for each scene.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CENTRAL_SCENE

Command = CENTRAL_SCENE_SUPPORTED_REPORT

Supported Scenes

Slow Refresh Support

Reserved

Number of Identical
Bit Mask Bytes

Supported Key Attributes for Scene 1 ­ Byte 1

...

Supported Key Attributes for Scene 1 ­ Byte N

...

Supported Key Attributes for Scene M ­ Byte 1

...

Supported Key Attributes for Scene M ­ Byte N

All fields not described below are the same as in version 2. Slow Refresh Support (1 bit) This field indicates whether the node supports the Slow Refresh capability. CC:005B.03.02.11.001 The value 1 MUST indicate that the node supports the Slow Refresh capability. The value 0 MUST indicate that the node does not support the Slow Refresh capability.

4.24.7 Central Scene Notification Command
This command is used to advertise a key event.
CC:005B.03.03.11.001 If the device implements Z-Wave Plus Lifeline support, the device MUST send the Central Scene Notification Command to the actual Lifeline targets.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CENTRAL_SCENE

Command = CENTRAL_SCENE_NOTIFICATION

Sequence Number

Slow Refresh

Reserved

Key Attribute

Scene Number

All fields not described below are the same as in version 2.

Slow Refresh (1 bit)

CC:005B.03.03.11.002 CC:005B.03.03.11.003

This flag is used to advertise if the node is sending Key Held Down notifications at a slow rate. A sending node MUST always set this field according to the configured mode. A receiving node MUST ignore this field if the command is not carrying the Key Held Down key attribute.

CC:005B.03.03.12.002 CC:005B.03.03.11.005 CC:005B.03.03.12.001

If the Slow Refresh field is 0:
 A new Key Held Down notification SHOULD be sent every 200ms until the key is released.  The Sequence Number field MUST be updated at each notification transmission.  If not receiving a new Key Held Down notification within 400ms, a controlling node SHOULD use
an adaptive timeout approach as described in 4.24.1.

CC:005B.03.03.11.006 CC:005B.03.03.11.007 CC:005B.03.03.11.008

If the Slow Refresh field is 1:
 A new Key Held Down notification MUST be sent every 55 seconds until the key is released.  The Sequence Number field MUST be updated at each notification refresh.  If not receiving a new Key Held Down notification within 60 seconds after the most recent Key
Held Down notification, a receiving node MUST respond as if it received a Key Release notification.

4.25 Climate Control Schedule Command Class, version 1 [DEPRECATED]
THIS COMMAND CLASS HAS BEEN DEPRECATED
A device MAY implement this command class, but it is RECOMMENDED that new implementations use the Schedule Command Class. If implementing this command class, it is RECOMMENDED that the Schedule Command Class is also implemented.

The Climate Control Schedule Command Class allows devices to exchange schedules and overrides, which specify when to perform a setback on the setpoint.

Note:

The setpoint is the temperature a device will try to maintain. The setback is a deviation from the setpoint. When a setback is in use the device will apply the setback to the setpoint, resulting in a different temperature. When using schedules and overrides it is possible to define several setbacks occurring at specific times.

Schedules are exchanged using the Schedule Commands. Overrides of schedules are exchanged using the Schedule Override Commands. Detection of updated schedules is done using the Schedule Changed Commands.

The Climate Control Schedule uses the Schedule State type to define each setback. The Schedule State type has the following format:

7

6

5

4

3

2

1

0

Schedule State

Schedule State (8 bits) The values are as follows:

Schedule State

Hexadecimal

Decimal

0x80

-128

...

...

0xFF

-1

0x00

0

0x01

1

...

...

0x78

120

0x79 0x7A 0x7B ­ 0x7E 0x7F

121 122 123 ­ 126 127

Description
The setback in 1/10 degrees (Kelvin)
Example: 0 = 0 degrees setback 1 = 0.1 degrees is added to the setpoint 2 = 0.2 degrees is added to the setpoint -1 = 0.1 degrees is subtracted from the setpoint -2 = 0.2 degrees is subtracted from the setpoint Frost Protection Energy Saving Mode Reserved Unused State

When converting between Celsius and Fahrenheit proper rounding MUST be applied with at least two decimals in the internal calculations of a device to avoid rounding errors.
When displaying converted Fahrenheit values it is RECOMMENDED that the displayed value is rounded to nearest quarter of a degree.

4.25.1 Schedule Set Command
This command is used to set the climate control schedule in a device for a specific weekday. A climate control schedule defines when to use a setback on the setpoint in a device. A schedule can hold a maximum of 9 switchpoints. A switchpoint defines one setback from the current setpoint.
The entire list of switchpoints in the Command MUST be ordered by time, ascending from 00:00 towards 23:59. Switchpoints which have a Schedule State set to "Unused" MUST be placed last. Duplicates MUST NOT be allowed for Switchpoints which have a Schedule State different from "Unused".

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE

Command = SCHEDULE_SET

Reserved

Weekday

Switchpoint 0 Byte 1

Switchpoint 0 Byte 2

Switchpoint 0 Byte 3

...

Switchpoint 8 Byte 1

Switchpoint 8 Byte 2

Switchpoint 8 Byte 3

Weekday (3 bits) This field MUST be encoded according to Table 28.
Table 28, Climate Control Schedule Set::Weekday encoding

Value
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07

Description
Reserved Monday Tuesday Wednesday Thursday Friday Saturday Sunday

Switchpoint (9*24 bits)

7

6

5

4

3

2

1

Reserved

Hour

Reserved

Minute

Schedule State

0 Byte 1 Byte 2 Byte 3

Hour (5 bits)
This field is used to specify the hour of the of the actual switchpoint. This field MUST be in the range 0..23.
Minute (6 bits)
This field is used to specifiy the minute of the actual switchpoint. This field MUST be in the range 0..59.
Schedule State (8 bits)
Schedule State uses the Schedule State type format, see section 4.25. If Schedule State has the value of "Unused", the Hour and Minute field MUST be ignored. Once a Schedule State of "Unused" is encountered, the parsing of switchpoints must stop.
4.25.2 Schedule Get Command
This command is used to request the climate control schedule in a device for a specific weekday.
The Schedule Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_CLIMATE_CONTROL_SCHEDULE

Command = SCHEDULE_GET

Reserved

Weekday

For fields' description, refer to 4.25.1 Schedule Set Command

4.25.3 Schedule Report Command This command is used to report the climate control schedule in a device for a specific weekday.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE

Command = SCHEDULE_REPORT

Reserved

Weekday

Switchpoint 0 Byte 1

Switchpoint 0 Byte 2

Switchpoint 0 Byte 3

...

Switchpoint 8 Byte 1

Switchpoint 8 Byte 2

Switchpoint 8 Byte 3 For fields' description, refer to 4.25.1 Schedule Set Command

4.25.4 Schedule Changed Get Command

This command is used to check if the climate control schedule has changed.

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

This command MUST NOT be issued via multicast addressing. 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_CLIMATE_CONTROL_SCHEDULE

Command = SCHEDULE_CHANGED_GET

4.25.5 Schedule Changed Report Command This command is used to report if the climate control schedule has changed.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE

Command = SCHEDULE_CHANGED_REPORT

ChangeCounter

ChangeCounter (8 bits)
The ChangeCounter is a timestamp for a climate control schedule and it is kept in devices which exchange climate control schedules.
One device holds a climate control schedule and other devices uses this climate control schedule. Whenever the climate control schedule changes, the device MUST update its ChangeCounter, and the other devices MUST regularly use the Schedule Changed Get Command on the device which holds the Climate Control Schedule to see if the ChangeCounter is different from last time ­ indicating a change in a climate control schedule.
The possible values are:

Value 0x00
0x01..0xFF

Description
The climate control schedule change mechanism is temporarily disabled by the override function.
The climate control schedule change mechanism is enabled. ChangeCounter is incremented by one every time climate control schedule changes. When ChangeCounter eventually reach 0xFF, the next increment MUST rollover to 0x01.

When a device is fresh and has no climate control schedule it MUST retrieve a climate control schedule using the Schedule Get Command and it MUST also use the Schedule Changed Get to get the first copy of the current ChangeCounter, thus avoiding getting the climate control schedule initially twice.
When a device is awake after sleep mode it SHOULD use this Command to detect if the schedule has been changed.
4.25.6 Schedule Override Set Command
This command is used to set the override in a device.
The purpose of an override is to inform a device to ignore its current climate control schedule and assume the setting provided by the Override Type and Override State fields.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE

Command = SCHEDULE_OVERRIDE_SET

Reserved

Override Type

Override State

Override Type (2 bits) This field MUST be encoded according to Table 29.
Table 29, Climate Control Schedule Override Set::Override Type encoding

Value
0x00 0x01 0x02 0x03

Description
No override Temporary override Permanent override Reserved

Note: The difference between a temporary and a permanent override is that a temporary override only overrides the current switchpoint in the climate control schedule.
Both temporary and permanent overrides MAY be cancelled in the device, which receives the SCHEDULE_OVERRIDE_SET. This cancellation MUST be notified in an unsolicited SCHEDULE_OVERRIDE_REPORT as specified in the following sequence diagram:

Controller

Thermostat

Schedule Override Set

SCHEDULE_OVERRIDE_SET

SCHEDULE_OVERRIDE_REPORT (unsolicited)

Schedule Override Set

Figure 12, Sequence diagram for cancellation of a Schedule Override Set
Override State (8 bits) The Override State uses the Schedule State type format, see section 4.25

4.25.7 Schedule Override Get Command
This command is used to request the override, currently in use in a device.
The Schedule Override Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_CLIMATE_CONTROL_SCHEDULE

Command = SCHEDULE_OVERRIDE_GET

4.25.8 Schedule Override Report Command The Schedule Override Report Command is used to report the override, currently in use in a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE

Command = SCHEDULE_OVERRIDE_REPORT

Reserved

Override Type

Override State

Override Type (2 bits)
This field MUST be encoded according to Table 29.
Both temporary and permanent overrides MAY be cancelled in the device, which receives the SCHEDULE_OVERRIDE_SET. This cancellation MUST be notified in an unsolicited SCHEDULE_OVERRIDE_REPORT as shown on figure in section 4.25.6
Override State (8 bits)
The Override State uses the Schedule State type format, see section 4.25

4.26 Clock Command Class, version 1 The Clock Command Class is used to implement a simple clock functionality. 1.1.1 Interoperability considerations CC:0081.01.00.32.001 A controlling node SHOULD configure the current time and weekday in a supporting node during node commissioning.

It has been found that some version 1 nodes issue Clock Get Command to controllers in order to learn the current time and use the returned Clock Report Command as a Clock Set Command.

CC:0081.01.00.32.002 A supporting node SHOULD NOT learn the current time with a Clock Get Command.

CC:0081.01.00.32.003 A node SHOULD control the Time Command Class to read the current time from supporting nodes (time servers) or support the Clock Command Class and wait to be set the current time by a controlling node.

CC:0081.01.00.32.004 A Z-Wave Plus node SHOULD issue a Clock Report Command via the Lifeline Association Group if they suspect to have inaccurate time and/or weekdays (e.g. after battery removal).

CC:0081.01.00.32.005

A controlling node SHOULD compare the received time and weekday with its current time and set the time again at the supporting node if a deviation is observed (e.g. different weekday or more than a minute difference)

4.26.1 Multi Channel Considerations

CC:0081.01.00.12.001

Multi Channel End Points SHOULD NOT support the Clock Command Class. 4.26.2 Clock Set Command

This command is used to set the current time in a supporting node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CLOCK

Command = CLOCK_SET

Weekday

Hour

Minute

Weekday (3 bits) CC:0081.01.04.11.001 This field is used to indicate the current weekday that the receiving node MUST assume. CC:0081.01.04.11.002 This field MUST comply with Table 30

Table 30, Clock Set Command::Weekday encoding

Value

Description

0x00 Unused/unknown This value may be specified if the weekday is not used or not known

0x01 Monday

0x02 Tuesday

0x03 Wednesday

0x04 Thursday

0x05 Friday

0x06 Saturday

0x07 Sunday

Hour (5 bits)

CC:0081.01.04.11.003 This field is used to indicate the hour of the current time that the receiving node MUST assume.

CC:0081.01.04.11.004 This field MUST be in the range 0..23.

Minute (8 bits)

CC:0081.01.04.11.005 This field is used to indicate the minute of the current time that the receiving node MUST assume.

CC:0081.01.04.11.006 This field MUST be in the range 0..59.

CC:0081.01.04.12.001 A sending node knowing the current time with seconds precision SHOULD round its current time to the nearest minute when sending this command.

1.1.2 Clock Get Command

This command is used to request the current time set at a supporting node.

CC:0081.01.05.11.001 The Clock Report Command MUST be returned in response to this command.

CC:0081.01.05.11.002 This command MUST NOT be issued via multicast addressing.

CC:0081.01.05.11.003

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_CLOCK

Command = CLOCK_GET

1.1.3 Clock Report Command This command is used to advertise the current time set at the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CLOCK

Command = CLOCK_REPORT

Weekday

Hour

Minute

CC:0081.01.06.11.001

For fields' description, refer to Clock Set Command A sending node MUST comply with fields' description from Clock Set Command

4.27 Color Switch Command Class, version 1

The Color Switch Command Class is used to control color capable devices.

The Color Switch Command Class manipulates the color components of a device. Each color component is scaled by the brightness level previously set by a Multilevel Switch Set, Binary Switch Set or Basic Set Command.

The Color Switch Command Class is an actuator control command class. Refer to 3.6.

4.27.1 Compatibility considerations

The Color Switch Command Class, version 1 was previously named the Color Control Command Class, version 1. The Color Switch Command Class, version 1 is binary compatible with the Color Control Command Class, version 1.

4.27.1.1 Command Class dependencies

CC:0033.01.00.21.001

Nodes supporting the Color Switch Command Class, version 1 MUST support one of the following command classes in order to control the color brightness:
 Multilevel Switch Command Class, version 2  Binary Switch Command Cass, version 2.

4.27.2 Interoperability considerations

CC:0033.01.00.31.001 The Color Switch Command Class MUST be treated as a separate Command Class.

CC:0033.01.00.31.002 Basic and Binary/Multilevel Switch Command Class commands MUST NOT affect color component levels controlled by the Color Switch Command Class.

CC:0033.01.00.31.003 The Color Switch Command Class commands MUST NOT affect the brightness level controlled by Basic or Binary/Multilevel Switch Command Classes.

CC:0033.01.00.31.004

If the brightness level is requested via a Basic Get or Binary/Multilevel Switch Get command, the reported value MUST reflect the brightness level previously set via Basic or Multilevel Switch commands.

CC:0033.01.00.31.005 If a color component is requested via the Color Switch Get command, the reported value MUST reflect the color component level previously set via Color Switch commands.

CC:0033.01.00.31.006

An implementation MUST scale color component levels by the brightness level . Thus, to achieve a resulting light level of 100% for a given color component, the color component level must be set to 100% (via the Color Switch Command Class) and the brightness level must be set to 100% (via Basic or Multilevel Switch Command Class).

CC:0033.01.00.32.001 A controlling device SHOULD specify the highest possible color component levels of a given color tone to achieve the highest light yield when scaled by the brightness level.

CC:0033.01.00.33.001 CC:0033.01.00.31.007

The controlling device MAY however limit color component levels to achieve the same brightness for blended color tones as for pure colors. For this reason, a supporting device MUST NOT normalize color components manipulated by the Color Switch Command Class. Likewise, a supporting device implementing indexed colors should reduce its internal color component levels for blended colors to achieve the same brightness for all color tones.

4.27.3 Color Switch Supported Get Command

This command is used to request the supported color components of a device.

CC:0033.01.01.11.001 The Color Switch Supported Report command MUST be returned in response to this command.

CC:0033.01.01.11.002 This command MUST NOT be issued via multicast addressing.

CC:0033.01.01.11.003

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_SWITCH_COLOR

Command = SWITCH_COLOR_SUPPORTED_GET

4.27.4 Color Switch Supported Report Command This command is used to report the supported color components of a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_COLOR

Command = SWITCH_COLOR_SUPPORTED_REPORT

Color Component Mask 1

Color Component Mask 2

CC:0033.01.02.11.001

Color Component Mask (variable length)
The Color Component Mask field MUST advertise the color components supported by the device.
 Bit 0 in Bit Mask 1 indicates if color component 0 is supported  Bit 1 in Bit Mask 1 indicates if color component 1 is supported ... For the definition of Color Component IDs, refer to section 4.27.7.

4.27.5 Color Switch Get Command

This command is used to request the status of a specified color component.

CC:0033.01.03.11.001 The Color Switch Report Command MUST be returned in response to this command.

CC:0033.01.03.11.002 This command MUST NOT be issued via multicast addressing.

CC:0033.01.03.11.003

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_SWITCH_COLOR

Command = SWITCH_COLOR_GET

Color Component ID

Color Component ID (8 bits) CC:0033.01.03.11.004 This field MUST specify the color component for which the status is requested.
For the definition of Color Component IDs, refer to section 4.27.7. 4.27.6 Color Switch Report Command This command is used to advertise the status of a color component.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_COLOR

Command = SWITCH_COLOR_REPORT

Color Component ID

Value

Color Component ID (8 bits) CC:0033.01.04.11.001 This field MUST advertise the color component covered by this report.
For the definition of Color Component IDs, refer to section 4.27.7. Value (8 bits) CC:0033.01.04.11.002 The Value field MUST advertise the value of the color component identified by the Color Component ID. CC:0033.01.04.12.001 The Value field SHOULD advertise the current value of the device hardware; also while in transition to a new target value. CC:0033.01.04.11.003 A controlling device MUST NOT assume that the Value is identical to a value previously issued with a Set command; not even when a transition has ended.

4.27.7 Color Switch Set Command This command is used to control one or more color components in a device. CC:0033.01.05.11.001 Color component levels MUST be scaled by the brightness level. Refer to 4.27.2.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_COLOR

Command = SWITCH_COLOR_SET

Reserved

Color Component Count

Color Component ID 1

Value 1

...

Color Component ID N

Value N

Reserved CC:0033.01.05.11.002 This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Color Component Count (5 bits) CC:0033.01.05.11.003 This field MUST specify the number of (Color Component ID, Value) datasets contained in the Color
Switch Set command.

CC:0033.01.05.11.004

Color Component ID (8 bits)
This field MUST specify the color component to receive a new value. This field MUST be encoded according to Table 31.
Table 31, Color Switch Component IDs

CC:0033.01.05.11.008

Component ID
0 1 2 3 4 5 6 7 8

Label
Warm White Cold White Red Green Blue Amber (for 6ch Color mixing) Cyan (for 6ch Color mixing) Purple (for 6ch Color mixing) Indexed Color [OBSOLETED] A supporting node MUST NOT support indexed colors

Value range
0x00..0xFF 0x00..0xFF 0x00..0xFF 0x00..0xFF 0x00..0xFF 0x00..0xFF 0x00..0xFF 0x00..0xFF 0x00 ­ 0xFF: Color Index 0255

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

Value (8 bits)

CC:0033.01.05.11.006 This field MUST specify the value of the color component identified by the Color Component ID field.

CC:0033.01.05.11.007

Unlike other actuator control command classes, the Value used by the Color Switch Command Class spans the entire range from 0x00 to 0xFF. Thus, except for the Indexed Color, the value 0x00 MUST yield to 0% and 0xFF MUST yield to 100% of the actual color component.

4.27.8 Color Switch Start Level Change Command This command is used to initiate a transition of one color component to a new level. CC:0033.01.06.11.001 A receiving device MUST initiate the transition to a new value for the specified Color Component ID. CC:0033.01.06.13.001 The device MAY apply a non-zero duration to the transition from one value to a new value.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_COLOR

Command = SWITCH_COLOR_START_LEVEL_CHANGE

Reserved

Up/ Down

Ignore Start Level

Reserved

Color Component ID

Start Level

Up/Down (1 bit)

CC:0033.01.06.11.002 This field MUST specify the direction of the level change.

CC:0033.01.06.11.003 If the Up/Down bit is set to 0 the level change MUST be increasing. CC:0033.01.06.11.004 If the Up/Down bit is set to 1 the level change MUST be decreasing.

Ignore Start Level (1 bit)

CC:0033.01.06.12.001 CC:0033.01.06.11.005 CC:0033.01.06.12.002

A receiving device SHOULD respect the Start Level if the Ignore Start Level bit is 0. A receiving device MUST ignore the Start Level if the Ignore Start Level bit is 1. A controlling device SHOULD set the Ignore Start Level bit to 1.

Reserved

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

Color Component ID (8 bits)

CC:0033.01.06.11.007 This field MUST specify the color component to start a transition.

For the definition of Color Component IDs, refer to section 4.27.7.

Start Level (8 bits)

CC:0033.01.06.11.008 The Start Level field MUST specify the initial value of the level change.

4.27.9 Color Switch Stop Level Change Command
This command is used to stop an ongoing transition initiated by a Color Switch Start Level Change Command.
CC:0033.01.07.11.001 A receiving device MUST stop the transition if the specified Color Component ID is currently in transition to a new value.
CC:0033.01.07.11.002 A receiving device MUST NOT stop ongoing transitions for other Color Component IDs than the one specified.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_COLOR

Command = SWITCH_COLOR_STOP_LEVEL_CHANGE

Color Component ID

CC:0033.01.07.11.003

Color Component ID (8 bits) This field MUST specify the color component to stop a transition. For the definition of Color Component IDs, refer to section 4.27.7.

4.28 Color Switch Command Class, version 2

The Color Switch Command Class, version 2 is used to control color capable devices.

The Color Switch Command Class is an actuator control command class. Refer to 3.6.

4.28.1 Compatibility considerations

CC:0033.02.00.21.001 A device supporting Color Switch Command Class, version 2 MUST support Color Switch Command Class, version 1.

Version 2 adds a duration parameter to the Color Switch Set Command.

Commands not described in this version remain unchanged from version 1.

4.28.1.1 Command Class dependencies

CC:0033.02.00.21.002

Nodes supporting the Color Switch Command Class, version 2 MUST support one of the following command classes in order to control the color brightness:
 Multilevel Switch Command Class, version 2  Binary Switch Command Cass, version 2.

4.28.2 Interoperability considerations

Refer to 4.27.2.

4.28.3 Color Switch Set Command

This command is used to control one or more color components in a device.

CC:0033.02.05.11.001 Color component levels MUST be scaled by the brightness level. Refer to 4.27.2.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_COLOR

Command = SWITCH_COLOR_SET

Reserved

Color Component Count

Color Component ID 1

Value 1

...

Color Component ID N

Value N

Duration

CC:0033.02.05.11.002

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

Color Component Count (5 bits)

CC:0033.02.05.11.003 This field MUST specify the number of (Color Component ID, Value) datasets contained in the Color Switch Set command.

Color Component ID (8 bits)

CC:0033.02.05.11.004 This field MUST specify the color component to receive a new value.

For the definition of Color Component IDs, refer to section 4.27.7.

Value (8 bits)

CC:0033.02.05.11.005 This field MUST specify the value of the color component identified by the Component ID field.

Refer to section Table 31.

Duration (8 bits)

CC:0033.02.05.11.006 The Duration field MUST specify the time that the transition should take from the current value to the new target value.

CC:0033.02.05.12.001 CC:0033.02.05.11.007 CC:0033.02.05.12.002

A supporting device SHOULD respect the specified Duration value. The encoding of the Duration field MUST be according to Table 7. The factory default duration SHOULD be the same as the duration used for the Color Switch Set command, version 1.

4.29 Color Switch Command Class, version 3

The Color Switch Command Class is used to control color capable devices.

The Color Switch Command Class manipulates the color components of a device. Each color component is scaled by the brightness level previously set by a Multilevel Switch Set or Basic Set command.

The Color Switch Command Class is an actuator control command class. Refer to 3.6.

4.29.1 Compatibility considerations

CC:0033.03.00.21.001 A node supporting Color Switch Command Class, version 3 MUST support the Color Switch Command Class, version 2.

Version 3 adds duration and target value reporting to the Color Switch Report Command and adds duration control to the Color Switch Start Level Change Command.

Commands not described in this version remain unchanged from version 2.

CC:0033.03.00.23.001 A node receiving a version 1 Color Switch Set command MAY apply a factory default duration to the transition.

4.29.1.1 Command Class dependencies

CC:0033.03.00.21.002

Nodes supporting the Color Switch Command Class, version 3 MUST support one of the following Command Classes in order to control the color brightness:
 Multilevel Switch Command Class, version 4  Binary Switch Command Cass, version 2.

4.29.2 Interoperability considerations

Refer to 4.27.2

4.29.3 Color Switch Report Command

This command is used to advertise the status of a color component.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_COLOR

Command = SWITCH_COLOR_REPORT

Color Component ID

Current Value

Target Value

Duration

CC:0033.03.04.11.001

Color Component ID (8 bits) This field MUST advertise the color component covered by this report.

Current Value (8 bits) CC:0033.03.04.11.002 The Current Value field MUST advertise the current value of the color component identified by the
Color Component ID. Refer to the Color Switch Set command for valid values. CC:0033.03.04.12.001 The Current Value SHOULD be identical to the Target Value when a transition has ended. Target Value (8 bits) CC:0033.03.04.11.003 The Target Value field MUST advertise the target value of an ongoing transition or the most recent transition for the advertised Color Component ID. Refer to the Color Switch Set command for valid values. If a transition is initiated in an interactive fashion via a local user interface or via a Start Level Change CC:0033.03.04.11.004 command, the advertised Target Value MUST be 0x00 or 0xFF, depending on the direction. CC:0033.03.04.12.002 The Current Value SHOULD be identical to the Target Value when a transition has ended. Duration (8 bits) CC:0033.03.04.12.003 The Duration field SHOULD advertise the time needed to reach the Target Value at the actual transition CC:0033.03.04.11.005 rate. The encoding of the Duration field MUST be according to Table 8. 4.29.4 Color Switch Start Level Change Command This command is used to initiate a transition of one color component to a new value.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_COLOR

Command = SWITCH_COLOR_START_LEVEL_CHANGE

Ignore

Up/

Res

Down

Start Level

Reserved

Color Component ID

Start Level

Duration

Up/Down (1 bit)

CC:0033.03.06.11.001 CC:0033.03.06.11.002 CC:0033.03.06.11.003

This field MUST specify the direction of the level change. If the Up/Down bit is set to 0 the level change MUST be increasing. If the Up/Down bit is set to 1 the level change MUST be decreasing.

Ignore Start Level (1 bit) CC:0033.03.06.12.001 A receiving device SHOULD respect the Start Level if the Ignore Start Level bit is 0. CC:0033.03.06.11.004 A receiving device MUST ignore the Start Level if the Ignore Start Level bit is 1. CC:0033.03.06.12.002 A controlling device SHOULD set the Ignore Start Level bit to 1.
Res CC:0033.03.06.11.005 This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Color Component ID (8 bits) Refer to Color Switch Set command. Start Level (8 bits) CC:0033.03.06.11.006 The Start Level field MUST specify the initial value of the level change. Duration (8 bits) CC:0033.03.06.11.007 The level change rate MUST be calculated to match a level change from 0x00 to 0xFF during the time specified by the Duration field. CC:0033.03.06.12.003 A supporting device SHOULD respect the specified Duration value. For encoding of the Duration value, refer to the Color Switch Set Command.

4.30 Configuration Command Class, version 1

The Configuration Command Class allows product specific configuration parameters to be changed. One example could be the default dimming rate of a light dimmer.

CC:0070.01.00.11.001 CC:0070.01.00.11.002

Configuration parameters MUST be specified in the product documentation. Configuration parameters accessed via this command class MUST NOT replace similar commands provided by other existing Command Classes.

CC:0070.01.00.11.003 A device MUST be able to operate with default factory configuration parameter values.

CC:0070.01.00.12.001 CC:0070.01.00.12.002

It is RECOMMENDED that configuration parameters can be manipulated via a local user interface. It is RECOMMENDED that default factory configuration parameter values can be restored via a local user interface.

4.30.1 Compatibility considerations

4.30.1.1 "Default" flag

CC:0070.01.00.23.001

Earlier text revisions of the Configuration Command Class, versions 1-3 presented conflicting interpretations of the default field. Controllers should be aware that nodes with version 3 or less MAY reset all configuration parameters to default when receiving a Configuration Set or Configuration Bulk Set Command with the Default bit set to 1.

CC:0070.01.00.22.001 A controller SHOULD probe a node in order to discover what behavior it implements. The following steps are RECOMMENDED:

 If the device is version 1- 2, scan the node for available configuration parameters. Else discover the available parameters thanks to the Configuration Properties Get Command.
 Determine how the default bit works if the node implements 2 or more parameters

Step 1:
 One at a time, issue a Configuration Set for a parameter number, and check whether the value can be read back. Try each parameter for 1, 2 and 4 bytes sizes.
 Store the discovered parameter list for future use.

Step 2:
 Choose 2 parameters and issue a Configuration Set with the default bit set to 1 for each parameter.
 Read back both parameters value with a Configuration Get.  Try to modify both parameters to non-default values (it is recommended to try the default
value ± 1)  Send a Configuration Set for one of parameters with the default bit set to 1.  Read back both parameters and check whether one or both returned to the default value

4.30.2 Configuration Set Command The Configuration Set Command is used to set the value of a configuration parameter.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CONFIGURATION

Command = CONFIGURATION_SET

Parameter Number

Default

Reserved

Size

Configuration Value 1

...

Configuration Value N

Parameter Number (8 bits)

CC:0070.01.04.13.001 This field is used to specify the actual configuration parameter. Parameter Numbers MAY be product CC:0070.01.04.12.001 specific. Parameter Numbers SHOULD be assigned in a sequence starting from 1.

Default (1 bit)

This field is used to specify if the default value is to be restored for the specified configuration parameter.

CC:0070.01.04.11.001 CC:0070.01.04.11.002

The value 1 MUST indicate that default factory settings must be restored for the specified Parameter Number. In this case, the Configuration Value field MUST be ignored and the receiving node MUST reset the specified parameter and SHOULD NOT reset any other parameters.

CC:0070.01.04.11.003 The value 0 MUST indicate that the specified Parameter Number must assume the value specified by the Configuration Value field.

Reserved

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

Size (3 bits)

This field is used to specify the size of the actual parameter. The advertised size of a given parameter CC:0070.01.04.11.005 MUST always be the same. The value of this field MUST comply with Table 32.

Table 32, Configuration Set::Size encoding
Size Size of Value field 1 8 bit 2 16 bit 4 32 bit

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

Configuration Value (N bytes)

CC:0070.01.04.11.007 This field carries the value to be assigned. The size of the field MUST comply with the size advertised by the Size field.

CC:0070.01.04.11.008 The field MUST carry a signed value. The binary encoding of the signed value MUST comply with Table 10. The field Value 1 MUST be the most significant byte.

4.30.3 Configuration Get Command

This command is used to query the value of a configuration parameter.

CC:0070.01.05.11.001 The Configuration Report Command MUST be returned in response to this command.

CC:0070.01.05.11.002 This command MUST NOT be issued via multicast addressing.

CC:0070.01.05.11.003

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_CONFIGURATION

Command = CONFIGURATION_GET

Parameter Number

Parameter Number (8 bits)
CC:0070.01.05.13.001 This field is used to specify the requested configuration parameter. Parameter Numbers MAY be CC:0070.01.05.12.001 product specific. Parameter Numbers SHOULD be assigned in a sequence starting from 1.
CC:0070.01.05.12.002 A node receiving this command for an unsupported parameter SHOULD return a Report advertising the value of the first available parameter in the node.

4.30.4 Configuration Report Command This command is used to advertise the actual value of the advertised parameter.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CONFIGURATION

Command = CONFIGURATION_REPORT

Parameter Number

Reserved

Size

Configuration Value 1

..

Configuration Value N

Refer to the Configuration Set Command for parameter details.

4.31 Configuration Command Class, version 2

The Configuration Command Class allows product specific configuration parameters to be changed. One example could be the default dimming rate of a light dimmer.

CC:0070.02.00.11.001 CC:0070.02.00.11.002

Configuration parameters MUST be specified in the product documentation. Configuration parameters accessed via this command class MUST NOT replace similar commands provided by other existing Command Classes.

CC:0070.02.00.11.003 A device MUST be able to operate with default factory configuration parameter values.

CC:0070.02.00.12.001 It is RECOMMENDED that configuration parameters can be manipulated via a local user interface.

CC:0070.02.00.12.002 It is RECOMMENDED that default factory configuration parameter values can be restored via a local user interface.

4.31.1 Compatibility considerations

Configuration Command Class, version 2 extends the addressing space to 65.535 product specific configuration parameters. Further, Configuration Command Class, version 2 makes it possible to set multiple configuration parameters with one Command.

CC:0070.02.00.21.001 A device supporting Configuration Command Class, version 2 MUST support Configuration Command Class, version 1.

4.31.1.1 "Default" flag

Refer to 4.30.1.1

4.31.2 Interoperability considerations

Configuration Command Class, version 2 is backwards compatible with Configuration Command Class, version 1.

CC:0070.02.00.31.001

Configuration Command Class, version 2 does not extend any existing commands of Configuration Command Class, version 1. The 255 parameters that can be addressed by the Configuration Set Command MUST be identical to the first 255 parameters that can be addressed by the (version 2) Configuration Bulk Set Command.

4.31.3 Configuration Set Command This Command is used to set the value of a configuration parameter.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CONFIGURATION

Command = CONFIGURATION_SET

Parameter Number

Default

Reserved

Size

Configuration Value 1

...

Configuration Value N

Parameter Number (8 bits)

CC:0070.02.04.13.001 This field is used to specify the actual configuration parameter. Parameter Numbers MAY be product CC:0070.02.04.12.001 specific. Parameter Numbers SHOULD be assigned in a sequence starting from 1.

Default (1 bit)

This field is used to specify if the default value is to be restored for the specified configuration parameter.

CC:0070.02.04.11.001 CC:0070.02.04.11.002

The value 1 MUST indicate that default factory settings must be restored for the specified Parameter Number. In this case, the Configuration Value field MUST be ignored and the receiving node MUST reset the specified parameter and SHOULD NOT reset any other parameters.

CC:0070.02.04.11.003 The value 0 MUST indicate that the specified Parameter Number must assume the value specified by the Configuration Value field.

Reserved

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

Size (3 bits)

This field is used to specify the size of the actual parameter. The advertised size of a given parameter CC:0070.02.04.11.005 MUST always be the same. The value of this field MUST comply with Table 32.

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

Configuration Value (N bytes)

CC:0070.02.04.11.007 This field carries the value to be assigned. The size of the field MUST comply with the size advertised by the Size field.

CC:0070.02.04.11.008 The field MUST carry a signed value. The binary encoding of the signed value MUST comply withTable 10. The field Value 1 MUST be the most significant byte.

4.31.4 Configuration Bulk Set Command This command is used to set the value of one or more configuration parameters.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CONFIGURATION

Command = CONFIGURATION_BULK_SET

Parameter Offset 1 (MSB)

Parameter Offset 2 (LSB)

Number of Parameters

Default Hand-

Reserved

Size

shake

Parameter 1 ­ Configuration Value 1 (MSB)

...

Parameter 1 ­ Configuration Value N (LSB)

...

Parameter M ­ Configuration Value 1 (MSB)

...

Parameter M ­ Configuration Value N (LSB)

Parameter Offset (16 bits)

This field is used to specify the first parameter in a range of one or more parameters. The first byte CC:0070.02.07.11.001 MUST carry the most significant byte of the 16 bit value.

Number of Parameters (8 bits)

This field is used to specify the number (M) of configuration parameters contained in this command.

CC:0070.02.07.11.002 The value of this field MUST be in the range 1..255.

CC:0070.02.07.11.010 The advertised parameters MUST be in a consecutive range. For example, Parameter Offset set to 4 and Number of Parameters set to 3 MUST represent parameters number 4, 5 and 6.

CC:0070.02.07.11.011 A receiving node MUST ignore values for non-existing parameters

Default (1 bit)

This field is used to specify if the default value is to be restored for the specified configuration parameters.

CC:0070.02.07.11.003 CC:0070.02.07.11.004

The value 1 MUST indicate that default factory settings must be restored for the Parameter Numbers defined by the Parameter Offset and Number of Parameters fields. In this case, the Configuration Value field MUST be ignored and the receiving node MUST reset the specified parameters and SHOULD NOT reset any other parameters.

CC:0070.02.07.11.005 The value 0 MUST indicate that the specified Parameter Numbers must assume the value specified by the Configuration Value field.

Handshake (1 bit)

This field is used to indicate if a Configuration Bulk Report Command is to be returned when the specified configuration parameters have been stored in non-volatile memory.

CC:0070.02.07.11.006 CC:0070.02.07.11.007 CC:0070.02.07.11.008 CC:0070.02.07.11.009
CC:0070.02.07.12.001

If the Handshake bit is set to 1, a Configuration Bulk Report Command MUST be returned. The command MUST echo all parameters found in this Configuration Bulk Set Command. A node returning a Configuration Bulk Report Command with the Handshake bit set MUST be ready to receive another Configuration Bulk Set Command. If the Handshake bit is set, an originating node MUST wait for the Configuration Bulk Report Command for at least one second. If not receiving a report, the originating node SHOULD assume that the operation failed and resend the same Configuration Bulk Set Command one more time.

CC:0070.02.07.11.00A If the Handshake bit is set to 0, a receiving node MUST NOT return a Configuration Bulk Report in response.

Reserved

CC:0070.02.07.11.00B This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

Size (3 bits)

This field is used to specify the size of the actual parameters. The advertised size of a given parameter CC:0070.02.07.11.00C MUST always be the same. The value of this field MUST comply with Table 32.

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

Parameter ­ Configuration Value (M*N bytes)

CC:0070.02.07.11.00E These fields carry the values to be assigned. Each field MUST have the same size. The size of each field MUST comply with the size advertised by the Size field.

CC:0070.02.07.11.00F The field MUST carry a signed value. The binary encoding of the signed value MUST comply withTable 10. The Value 1 field MUST be the most significant byte.

4.31.5 Configuration Bulk Get Command

This command is used to query the value of one or more configuration parameters.

CC:0070.02.08.11.001 The Configuration Bulk Report Command MUST be returned in response to this command.

CC:0070.02.08.11.002 This command MUST NOT be issued via multicast addressing.

CC:0070.02.08.11.003

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_CONFIGURATION

Command = CONFIGURATION_BULK_GET

Parameter Offset 1 (MSB)

Parameter Offset 2 (LSB)

Number of Parameters

Parameter Offset (16 bits) This field is used to specify the first parameter in a range of one or more parameters. The first byte CC:0070.02.08.11.004 MUST carry the most significant byte of the 16 bit value. CC:0070.02.08.12.001 Parameter Numbers SHOULD be assigned in a sequence starting from 1. Number of Parameters (8 bits) This field is used to specify the number of requested configuration parameters. CC:0070.02.08.11.005 The value of this field MUST be in the range 1..255. CC:0070.02.08.11.006 The advertised parameters MUST be in a consecutive range. For example, Parameter Offset set to 4 and Number of Parameters set to 3 MUST represent parameters number 4, 5 and 6.

4.31.6 Configuration Bulk Report Command This command is used to advertise the actual value of one or more advertised parameters.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CONFIGURATION

Command = CONFIGURATION_BULK_REPORT

Parameter Offset 1 (MSB)

Parameter Offset 2 (LSB)

Number of Parameters

Reports to follow

Default Hand-

Reserved

Size

shake

Parameter 1 ­ Configuration Value 1 (MSB)

...

Parameter 1 ­ Configuration Value N (LSB)

...

Parameter M ­ Configuration Value 1 (MSB)

...

Parameter M ­ Configuration Value N (LSB)

Parameter Offset (16 bits)

This field is used to advertise the first parameter in a range of one or more parameters. The first byte CC:0070.02.09.11.001 MUST carry the most significant byte of the 16 bit value.

Number of Parameters (8 bits)

This field is used to advertise the number (M) of configuration parameters contained in this command.

CC:0070.02.09.11.002 The value of this field MUST be in the range 1..255.

CC:0070.02.09.11.012

The advertised parameters MUST be in a consecutive range. For example, Parameter Offset set to 4 and Number of Parameters set to 3 MUST represent parameters number 4, 5 and 6, regardless of whether they exist at the sending node.

Reports to follow (8 bits)

CC:0070.02.09.11.003 This field MUST be used to advertise the number of reports left before all requested configuration parameters values have been transferred.

CC:0070.02.09.11.004 The value 0 MUST indicate that this is the last report.

CC:0070.02.09.11.005 If the Handshake field is 1 , this field MUST be set to 0.

CC:0070.02.09.11.006 The value of this field MUST be in the range 0..255.

Default (1 bit)

CC:0070.02.09.11.007 This field MUST be used to advertise if all advertised configuration parameters have the factory default value.

CC:0070.02.09.11.008 CC:0070.02.09.11.009

The value 1 MUST indicate that all advertised configuration parameters have the factory default value. The value 0 MUST indicate that one or more of the advertised configuration parameters do not have the factory default value.

Handshake (1 bit)

This field is used to indicate if this report is returned in response to a Configuration Bulk Set Command.

CC:0070.02.09.11.00A
CC:0070.02.09.11.00B CC:0070.02.09.11.00C

The value 1 MUST indicate that all configuration parameters have been stored in non-volatile memory and that the sending node is ready to receive another Configuration Bulk Set Command. Except for the Reports to Follow field, all other fields MUST echo the values received in the Configuration Bulk Set Command. The Reports to Follow field MUST be 0.

CC:0070.02.09.11.00D The value 0 MUST indicate that this report is returned in response to a Configuration Bulk Get Command.

Size (3 bits)

This field is used to advertise the size of the actual parameter. The advertised size of a given parameter CC:0070.02.09.11.00E MUST always be the same. The value of this field MUST comply with Table 32.

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

Parameter ­ Configuration Value (M*N bytes)

CC:0070.02.09.11.010

These fields carry the values advertised by the Parameter Offset and Number of Parameters fields. Each field MUST have the same size. The size of each field MUST comply with the size advertised by the Size field.

CC:0070.02.09.11.011 The field MUST carry a signed value. The binary encoding of the signed value MUST comply withTable 10. The Value 1 field MUST be the most significant byte.

CC:0070.02.09.12.001 A sending node SHOULD set this field to 0 for non-existing parameters.

4.32 Configuration Command Class, version 3

The Configuration Command Class, version 3 allows product specific configuration parameters to be changed. Examples include the default dimming rate of a light dimmer and the endpoints of a window covering device.

CC:0070.03.00.11.001
CC:0070.03.00.11.002 CC:0070.03.00.12.001

Configuration parameters accessed via this command class MUST NOT replace similar commands provided by other existing application Command Classes. Configuration parameter documentation MUST be provided in the product documentation. Configuration parameter documentation SHOULD be provided via Z-Wave via this command class version.

CC:0070.03.00.11.003 A device MUST be able to operate with default factory configuration parameter values.

CC:0070.03.00.12.002 It is RECOMMENDED that configuration parameters can be manipulated via a local user interface.

CC:0070.03.00.12.003 It is RECOMMENDED that default factory configuration parameter values can be restored via a local user interface.

4.32.1 Compatibility considerations

The following additions are made to the Configuration Command Class, version 3:

 Configuration Name Get Command  Configuration Name Report Command  Configuration Info Get Command  Configuration Info Report Command  Configuration Properties Get Command  Configuration Properties Report Command

The purpose of the above commands is to allow a manufacturer to advertise information relating to the use of a specific configuration parameter directly from the configuration interface. The advertised information should be the same as can be found in the printed documentation.

It should be emphasized that, just like versions 1 and 2, the Configuration Command Class, version 3 is intended only for access to product specific configuration parameters. The access to parameter information is only meant to facilitate access via Z-Wave to information which can also be found in the printed documentation.

Configuration Command Class versions 1 and 2 explicitly require that the binary value of all configuration parameters are represented as signed values encoded as binary 2's complement.

Configuration Command Class v3 allows for bit field, signed integer or unsigned integer representations of each individual parameter.

CC:0070.03.00.21.001 CC:0070.03.00.21.002

A device supporting the Configuration Command Class v3 MUST respond to a Configuration Properties Get command. If a Configuration Properties Report command is not returned in response to a Configuration Properties Get command, a controlling device MUST treat the parameter value as a signed integer.

Configuration Command Class version 2 extended the possible parameter range from 1..255 to 1..65535. The first 255 parameters of the two ranges are identical. Parameters in the range 1..255 can

be addressed using either the Bulk Set/Get Commands or Set/Get Commands while parameters in the range 256..65535 can only be addressed using the Bulk Set/Get Commands.

4.32.1.1 "Default" flag

Refer to 4.30.1.1.

4.32.1.2 Configuration Properties Report

CC:0070.03.00.21.003

Earlier text revisions of the Configuration Command Class, version 3 did not explicitly specify that the "Min Value", "Max Value" and "Default Value" fields MUST be omitted if the advertised size is 0 in the Configuration Properties Report Command.

CC:0070.03.00.22.001 CC:0070.03.00.22.002

Controlling nodes SHOULD be aware that some legacy nodes supporting version 3 could by error include the "Min Value", "Max Value" and "Default Value" fields and set them to 0x00 with an arbitrary size. If a controlling node receives a Report in which the "Next Parameter Number" field seems to be set to 0x0000 when requesting parameter number 0, the controlling node SHOULD inspect the last 2 bytes of the command frame in order to find out what is the Next Parameter Number.

4.32.2 Interoperability considerations

CC:0070.03.00.32.001 It is RECOMMENDED that the name and information stored in a supporting device are in English.

CC:0070.03.00.32.002 It is RECOMMENDED that the last line of the information field presents an Internet URL which points to updated information for the actual configuration parameter as well as other language variants.

4.32.3 Configuration Name Get Command

This command is used to request the name of a configuration parameter.

CC:0070.03.0A.11.001 The Configuration Name Report Command MUST be returned in response to this command.

CC:0070.03.0A.11.002 This command MUST NOT be issued via multicast addressing.

CC:0070.03.0A.11.003

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_CONFIGURATION

Command = CONFIGURATION_NAME_GET

Parameter Number 1 (MSB)

Parameter Number 2 (LSB)

Parameter Number (16 bits) This field is used to specify the requested configuration parameter. CC:0070.03.0A.11.004 The first byte MUST carry the most significant byte of the 16 bit value.

4.32.4 Configuration Name Report Command This command is used to advertise the name of a parameter.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CONFIGURATION

Command = CONFIGURATION_NAME_REPORT

Parameter Number 1 (MSB)

Parameter Number 2 (LSB)

Reports to follow

Name 1

..

Name N

Parameter Number (16 bits)

This field is used to advertise the actual configuration parameter.

CC:0070.03.0B.11.001 The first byte MUST carry the most significant byte of the 16 bit value.

CC:0070.03.0B.13.001 CC:0070.03.0B.12.001

If a non-existing parameter is specified in a Configuration Name Get Command, a receiving node MAY return a zero-length Name field in the Configuration Name Report Command. The receiving node SHOULD however return an error message e.g. "Unassigned parameter".

Parameter numbers above 255 can only be addressed using the Bulk Set/Get Commands. Parameter numbers in the range 1..255 can be addressed using either the Bulk Set/Get Commands or the Set/Get Commands.

CC:0070.03.0B.11.002

Reports to follow (8 bits)
This field is used to advertise the number of reports left before all parts of the command have been transferred.
The value 0 MUST indicate that this is the last report.

CC:0070.03.0B.12.002

Name (N bytes)
This field is used to advertise the name of the parameter. It is RECOMMENDED that the Name field advertises the name found in the documentation.

CC:0070.03.0B.11.003 The field MUST carry a byte string with no zero termination. The Name field MAY span multiple reports. The number of Name bytes transmitted MUST be determined from the length field in the frame.

CC:0070.03.0B.11.004 Bytes MUST be encoded in UTF-8 format.

CC:0070.03.0B.12.003 It is RECOMMENDED that the name stored in a supporting device is in English.

4.32.5 Configuration Info Get Command

CC:0070.03.0C.11.001 CC:0070.03.0C.11.002

This command is used to request usage information for a configuration parameter. The Configuration Info Report Command MUST be returned in response to this command. This command MUST NOT be issued via multicast addressing.

CC:0070.03.0C.11.003

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_CONFIGURATION

Command = CONFIGURATION_INFO_GET

Parameter Number 1 (MSB)

Parameter Number 2 (LSB)

Parameter Number (16 bits) This field is used to specify the requested configuration parameter. CC:0070.03.0C.11.004 The first byte MUST carry the most significant byte of the 16 bit value.

4.32.6 Configuration Info Report Command This command is used to advertise usage information for a configuration parameter.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CONFIGURATION

Command = CONFIGURATION_INFO_REPORT

Parameter Number 1 (MSB)

Parameter Number 2 (LSB)

Reports to follow

Info 1

...

Info N

Parameter Number (16 bits)

This field is used to advertise the actual configuration parameter.

CC:0070.03.0D.11.001 The first byte MUST carry the most significant byte of the 16 bit value.

CC:0070.03.0D.13.001 CC:0070.03.0D.12.001

If a non-existing parameter is specified in a Configuration Info Get Command, a receiving node MAY return a zero-length Info field in the Configuration Info Report Command. The receiving node SHOULD however return an error message, e.g. "Unassigned parameter".

Parameter numbers above 255 can only be addressed using the Bulk Set/Get Commands. Parameter numbers in the range 1..255 can be addressed using either the Bulk Set/Get Commands or the Set/Get Commands

Reports to follow (8 bits)

This field is used to advertise the number of reports left before all parts of the command have been transferred.

CC:0070.03.0D.11.002 The value 0 MUST indicate that this is the last report.

Info (N bytes)

CC:0070.03.0D.12.002 This field is used to advertise the detailed information available for the parameter. It is RECOMMENDED that the Info field carries all information found in the documentation.

CC:0070.03.0D.11.003 The field MUST carry a byte string with no zero termination.

CC:0070.03.0D.11.004 The number of Info bytes transmitted MUST be determined from the length field in the frame.

CC:0070.03.0D.13.002 The Info field MAY span multiple reports. The number of Info bytes MAY be zero.

CC:0070.03.0D.11.005 Bytes MUST be encoded in UTF-8 format.

CC:0070.03.0D.12.003 It is RECOMMENDED that the information stored in a supporting device is in English.

CC:0070.03.0D.12.004 It is RECOMMENDED that the last line of the information field presents an Internet URL which points to updated information for the actual configuration parameter as well as other language variants.
4.32.7 Configuration Properties Get Command
This command is used to request the properties of a configuration parameter.
The Configuration Properties Report Command MUST be returned in response to this command.
If a Configuration Properties Report command is not returned in response to a Configuration Properties Get command, a controlling device MUST treat the parameter value as a signed integer.
This command MUST NOT be issued via multicast addressing. 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_CONFIGURATION

Command = CONFIGURATION_PROPERTIES_GET

Parameter Number 1 (MSB)

Parameter Number 2 (LSB)

Parameter Number (16 bits)

This field is used to specify the requested configuration parameter.

CC:0070.03.0E.11.001 The first byte MUST carry the most significant byte of the 16 bit value.

CC:0070.03.0E.11.002 CC:0070.03.0E.11.003

If a non-existing parameter is specified in this command, a receiving node MUST advertise zero values in the Format and Size fields. The Next Parameter Number field MUST advertise the next available configuration parameter.

CC:0070.03.0E.12.001 It is RECOMMENDED that a controlling device initiates probing of supported configuration parameters by issuing this command for parameter number 0.

CC:0070.03.0E.12.002 If a Size field value of zero is returned, a controlling device SHOULD issue a Configuration Properties Get Command for the parameter advertised in the Next Parameter Number field.

4.32.8 Configuration Properties Report Command This command is used to advertise the properties of a configuration parameter.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CONFIGURATION

Command = CONFIGURATION_PROPERTIES_REPORT

Parameter Number 1 (MSB)

Parameter Number 2 (LSB)

Reserved

Format

Size

Min Value 1 (MSB)

..

Min Value N (LSB)

Max Value 1 (MSB)

..

Max Value N (LSB)

Default Value 1 (MSB)

..

Default Value N (LSB)

Next Parameter Number 1 (MSB)

Next Parameter Number 2 (LSB)

Parameter Number (16 bits)

This field is used to advertise the actual configuration parameter.

CC:0070.03.0F.11.001 The first byte MUST carry the most significant byte of the 16 bit value.

CC:0070.03.0F.11.002 CC:0070.03.0F.11.003

If this field advertises a non-existing parameter , a receiving node MUST advertise zero values in the Format and Size fields. The Next Parameter Number field MUST advertise the next available configuration parameter.

Parameter numbers above 255 can only be addressed using the Bulk Set/Get Commands. Parameter numbers in the range 1..255 can be addressed using either the Bulk Set/Get Commands or the Set/Get Commands.

Reserved

CC:0070.03.0F.11.004 This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

Format (3 bits)

This field is used to advertise the format of the parameter.

CC:0070.03.0F.11.005

The value of this field MUST comply with Table 33.
Table 33, Configuration Properties Report :: Format encoding

Value Parameter format and presentation

0x00 Signed Integer

0x01 Unsigned Integer

0x02 Enumerated (Radio buttons)

CC:0070.03.0F.11.006

0x03 Bit field (Checkboxes)
All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.

CC:0070.03.0F.11.007 If the parameter format is "Unsigned integer", normal binary integer encoding MUST be used.

CC:0070.03.0F.11.008 If the parameter format is "Signed integer", the binary encoding MUST comply with Table 10.

CC:0070.03.0F.11.009 If the parameter format is "Enumerated", the parameter MUST be treated as an unsigned integer. CC:0070.03.0F.12.001 A graphical configuration tool SHOULD present this parameter as a series of radio buttons [11].

CC:0070.03.0F.11.00A CC:0070.03.0F.12.002

If the parameter format is "Bit field" the parameter MUST be treated as a bit field where each individual bit can be set or reset. A graphical configuration tool SHOULD present this parameter as a series of checkboxes [11].

Size (3 bits)

This field is used to advertise the size of the actual parameter.

CC:0070.03.0F.11.00B The advertised size MUST also apply to the fields "Min Value", "Max Value", "Default Value" carried in this command.

CC:0070.03.0F.11.00C The value of this field MUST comply with Table 34.

Table 34, Configuration Properties Report :: Size encoding

Size

Size of parameter

0 0 bit (Unassigned parameter, Value fields omitted)

1 8 bit

2 16 bit

4 32 bit

CC:0070.03.0F.11.00D All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.

Min Value (N bytes)

CC:0070.03.0F.11.00E This field MUST advertise the minimum value that the actual parameter can assume.

CC:0070.03.0F.11.00F If the parameter is "Bit field", this field MUST be set to 0.

CC:0070.03.0F.11.010 The size of the field MUST comply with the size advertised by the Size field. This field MUST be omitted if the Size field is set to 0.

CC:0070.03.0F.11.011 The sign encoding MUST comply with the mode advertised by the Signed field.

Max Value (N bytes)

CC:0070.03.0F.11.012 This field MUST advertise the maximum value that the actual parameter can assume.

CC:0070.03.0F.11.013 CC:0070.03.0F.12.003

If the parameter is "Bit field", each individual supported bit MUST be set to `1', while each unsupported bit of MUST be set to `0'. A graphical configuration tool SHOULD NOT present checkboxes for un-supported bits.

CC:0070.03.0F.11.014 The size of the field MUST comply with the size advertised by the Size field. This field MUST be omitted if the Size field is set to 0.

CC:0070.03.0F.11.015 The sign encoding MUST comply with the mode advertised by the Signed field.

Default Value (N bytes)

CC:0070.03.0F.11.016 This field MUST advertise the default value of the actual parameter.

CC:0070.03.0F.11.017 The size of the field MUST comply with the size advertised by the Size field. This field MUST be omitted if the Size field is set to 0.

CC:0070.03.0F.11.018 The sign encoding MUST comply with the mode advertised by the Signed field.

Next Parameter Number (16 bits)

Configuration parameter identifiers may be assigned in a non-sequential order.

CC:0070.03.0F.11.019 This field MUST advertise the next available configuration parameter. The value 0x0000 MUST indicate that this is the last available configuration parameter.

CC:0070.03.0F.11.01A The first byte MUST carry the most significant byte of the 16 bit value.

4.33 Configuration Command Class, version 4

The Configuration Command Class, version 4 introduces the support of read-only parameters, parameters requiring network re-inclusion and advanced parameters as well as allows optional support for Bulk Commands.
A read-only parameter can be accessed with Get commands but cannot be modified with Set Commands. A parameter requiring re-inclusion is typically a parameter altering the node capabilities, which requires performing the inclusion again in order to have the controller to learn about the node capabilities once more. A parameter may be advertised as "advanced" to indicate to the controlling application that the actual parameter is intended only for advanced use, e.g. calibration.
The following commands are modified in version 4:
 Configuration Set Command  Configuration Bulk Set Command  Configuration Properties Report Command

The following new command is introduced:  Configuration Default Reset Command

All commands not mentioned in this version remain unchanged from previous versions.

4.33.1 Compatibility considerations

Configuration Command Class, version 4 is backwards compatible with the previous versions of Configuration Command Class.

CC:0070.04.00.21.001 A device supporting Configuration Command Class, version 4 MUST support Configuration Command Class, version 3.

4.33.1.1 Multi Channel Consideration

CC:0070.04.00.12.001

Multi Channel End Points SHOULD NOT support the Configuration Command Class. 4.33.1.2 "Default" flag

Refer to 4.30.1.1

CC:0070.04.00.21.002 From version 4 and onwards, a node MUST NOT reset all Configuration Parameters when receiving a Set or Bulk Set Command with the default flag set to 1.

4.33.1.3 Configuration Properties Report

Refer to 4.32.1.2.

The recommendation given in version 3 does not apply to version 4 supporting nodes as new fields are appended at the end of the Configuration Properties Report Command in version 4.

4.33.1.4 "Altering capabilities" flag

CC:0070.04.00.21.003 Configuration parameters modifying a node's and/or (non-dynamic) Multi Channel End Point capabilities MUST be advertised as "Altering capabilities".

CC:0070.04.00.21.004

When such a parameter is modified:
 A Z-Wave or Z-Wave Plus node MUST NOT advertise the new and/or Multi Channel End Point capabilities before being excluded from its current network.
 A Z-Wave Plus version 2 node MUST advertise its new capabilities immediately.

4.33.1.5 "Advanced" flag

The difference between normal and advanced parameters lies on the controlling node side.

CC:0070.04.00.23.001 A parameter MAY be advertised as "advanced" in order to simplify the configuration of a node by normally not showing such a parameter to the end user.

CC:0070.04.00.22.001 Advanced parameters SHOULD be presented to the user only when an [Advanced] option is selected in the controller user interface.

4.33.1.6 Parameters value and network inclusion/exclusion

CC:0070.04.00.21.005 From version 4 and onwards, a node MUST NOT modify or reset any configuration parameter when being included or excluded of a Z-Wave network.

CC:0070.04.00.21.006

A node MUST reset all its configuration parameters if either:
 It is manually reset to factory default  It receives a Configuration Default Reset Command.

CC:0070.04.00.21.007 A node MUST NOT reset all its configuration parameters in any other case.

4.33.1.7 Bulk commands support

CC:0070.04.00.22.002 A node supporting Configuration Command Class, version 4 MAY elect to ignore the following Commands:

 Configuration Bulk Set Command  Configuration Bulk Get Command  Configuration Bulk Report Command.

CC:0070.04.00.21.008

If it is the case, the node MUST:
 Return an Application Rejected Request Command when receiving one of the ignored commands (if received without Supervision encapsulation).
 Advertise that it ignores the Bulk Commands in the Configuration Properties Report.

CC:0070.04.00.21.009 If Bulk Commands are supported, they MUST be supported for all parameters. If Bulk Commands are ignored, they MUST be ignored for all parameters.

4.33.2 Configuration Set Command This command is used to set the value of a configuration parameter.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CONFIGURATION

Command = CONFIGURATION_SET

Parameter Number

Default

Reserved

Size

Configuration Value 1

...

Configuration Value N

CC:0070.04.04.11.001 A receiving node MUST ignore this command if the specified parameter is advertised as a Read-only parameter.

All fields not specified below are unchanged from version 2 Configuration Set Command.

Default (1 bit)

This field is used to specify if the default value is to be restored for the specified configuration parameter.

CC:0070.04.04.11.002 CC:0070.04.04.11.003

The value 1 MUST indicate that default factory settings must be restored for the specified Parameter Number. In this case, the Configuration value field MUST be ignored and any other parameters MUST NOT be reset by a receiving node.

CC:0070.04.04.11.004 The value 0 MUST indicate that the specified Parameter Number MUST assume the value specified by the Configuration Value field.

Configuration Value (N bytes)

CC:0070.04.04.11.005 This field carries the value to be assigned. The size of the field MUST comply with the size advertised by the Size field.

CC:0070.04.04.11.006 The configuration value MUST be encoded according to the Format field advertised in the Configuration Properties Report Command for the parameter number.

4.33.3 Configuration Bulk Set Command This command is used to set the value of one or more configuration parameters.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CONFIGURATION

Command = CONFIGURATION_BULK_SET

Parameter Offset 1 (MSB)

Parameter Offset 2 (LSB)

Number of Parameters

Defaul Hand-

Reserved

Size

t shake

Parameter 1 ­ Configuration Value 1 (MSB)

...

Parameter 1 ­ Configuration Value N (LSB)

...

Parameter M ­ Configuration Value 1 (MSB)

...

Parameter M ­ Configuration Value N (LSB)

CC:0070.04.07.11.001 A receiving node MUST ignore this command for parameters that are advertised as Read-only parameters.

All fields not specified below are unchanged from version 2 Configuration Bulk Set Command.

Default (1 bit)

This field is used to specify if the default value is to be restored for the specified configuration parameters.

CC:0070.04.07.11.002 CC:0070.04.07.11.003

The value 1 MUST indicate that default factory settings must be restored for all the Parameter Numbers defined by the Parameter Offset and Number of Parameters fields. In this case, the Configuration Value field MUST be ignored and any other parameters MUST NOT be reset by a receiving node.

CC:0070.04.07.11.004 The value 0 MUST indicate that the specified Parameter Numbers MUST assume the value specified by the Configuration Value field.

Parameter ­Configuration Value (M*N bytes)

CC:0070.04.07.11.005 These fields carry the parameter values to be assigned. Each parameter value field MUST have the same size. The size of each field MUST comply with the size advertised by the Size field.

CC:0070.04.07.11.006 The values MUST be encoded according to the Format field advertised in the Configuration Properties Report Command for each parameter number.

4.33.4 Configuration Properties Report Command This command is used to advertise the properties of a configuration parameter.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CONFIGURATION

Command = CONFIGURATION_PROPERTIES_REPORT

Parameter Number 1 (MSB)

Parameter Number 2 (LSB)

Altering Read-

Format

Size

capabilities only

Min Value 1 (MSB)

..

Min Value N (LSB)

Max Value 1 (MSB)

..

Max Value N (LSB)

Default Value 1 (MSB)

..

Default Value N (LSB)

Next Parameter Number 1 (MSB)

Next Parameter Number 2 (LSB)

Reserved

No Bulk Advanced support

All fields not specified below are unchanged from version 3 Configuration Properties Report Command. Read-only (1 bit) This field is used to indicate if the parameter is read-only. CC:0070.04.0F.11.001 The value 1 MUST indicate that the advertised parameter is read-only. CC:0070.04.0F.11.002 The value 0 MUST indicate that the advertised parameter is not read-only.

Altering capabilities (1 bit) This field is used to indicate if the advertised parameter triggers a change in the node's capabilities. CC:0070.04.0F.11.003 The value 1 MUST indicate that the advertised parameter alters the node capabilities when being changed. CC:0070.04.0F.11.004 The value 0 MUST indicate that the advertised parameter does not alter the node capabilities when being changed. Refer to 4.33.1.4 "Altering capabilities" flag. Advanced (1 bit) This field is used to indicate if the advertised parameter is to be presented in the "Advanced" parameter section in the controller GUI. CC:0070.04.0F.11.005 The value 1 MUST indicate that the advertised parameter is an Advanced parameter. CC:0070.04.0F.11.006 The value 0 MUST indicate that the advertised parameter is not an Advanced parameter. No Bulk support (1 bit) This field is used to advertise if the sending node supports Bulk Commands. CC:0070.04.0F.11.007 The value 1 MUST indicate that the Bulk Commands will be ignored by the sending node. CC:0070.04.0F.11.008 The value 0 MUST indicate that the Bulk Commands are supported by the sending node CC:0070.04.0F.11.009 A sending node MUST always advertise the same value in this field, regardless of the parameter number. 4.33.5 Configuration Default Reset Command This command is used to reset all configuration parameters to their default value.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CONFIGURATION

Command = CONFIGURATION_DEFAULT_RESET

CC:0070.04.01.11.001 A node receiving this command MUST reset all its Configuration Parameters to their default value.

4.34 Controller Replication Command Class, version 1
The Controller Replication Command Class is used to copy scene and group data to another controlling node. The Command Class may be used in conjunction with a controller shift or when including a new controller to the network. It is OPTIONAL to use this command class during a controller shift or when including a new controller to the network.
4.34.1 Transfer Group Command
This command is used to replicate mappings between Group ID and Node ID.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CONTROLLER_REPLICATION

Command = CTRL_REPLICATION_TRANSFER_GROUP

Sequence Number

Group ID

Node ID

Sequence Number (8 bits) Sequence Number of this particular command. Group ID (8 bits) Group ID of the group that the node is member of. Node ID (8 bits) Node ID of slave device. 4.34.2 Transfer Group Name Command This command is used to replicate group names.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CONTROLLER_REPLICATION

Command = CTRL_REPLICATION_TRANSFER_GROUP_NAME

Sequence Number

Group ID

Group Name 1

...

Group Name N

Sequence Number (8 bits) Sequence Number of this particular command. Group ID (8 bits) Group ID associated with a specific group. Group Name (N bytes) The Group Name fields contain the assign group name in ASCII characters. 4.34.3 Transfer Scene Command This command is used to replicate mappings between Scene ID and Node ID.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CONTROLLER_REPLICATION

Command = CTRL_REPLICATION_TRANSFER_SCENE

Sequence Number

Scene ID

Node ID

Level

Sequence Number (8 bits) Sequence Number of this particular command. Scene ID (8 bits) The scene ID is the parameter used to link together the different devices that takes part of a scene. Node ID (8 bits) The Node ID for a device that is part of the scene. Level (8 bits) The level is the parameter used for the specified scene.

4.34.4 Transfer Scene Name Command This command is used to replicate scene names.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_CONTROLLER_REPLICATION

Command = CTRL_REPLICATION_TRANSFER_SCENE_NAME

Sequence Number

Scene ID

Scene Name 1

...

Scene Name N

Sequence Number (8 bits) Sequence Number of this particular command. Scene ID (8 bits) Scene ID associated with a specific scene. Scene Name (N bytes) The Scene Name fields contain the assign scene name in ASCII characters.

4.35 Demand Control Plan Configuration Command Class, version 1
The Demand Control Plan Configuration Command Class allows Utility Suppliers to issue and manage a list of Demand Control Plan (DCP) events to the end consumer.
The DCP Configuration commands are separated for the DCP monitoring commands in the Demand Control Plan Monitor Command Class, allowing the classes to be optionally supported at different security levels. (E.g. DCP monitoring commands could be supported using non-secure communication, while enabling strict secure-only communication for the DCP Configuration Command Class). Refer to the Security and Security 2 command classes for more details.
A DCP event contains information regarding criticality, products involved, requested reduction, time duration and if a certain rate (identified by a Demand Control Plan Rate ID, refer to the Rate Table Configuration Command Class) is associated with the event. When a DCP event is outdated, it is removed from the list. It is the utility supplier responsibility to prevent overflow of the list by query the number of free positions in the list before submitting a new DCP event to the list. Each DCP event is uniquely identified by a timestamp issued the Utility Supplier.
A DCP event may also include information, which enables devices not supporting this class to use in the Demand Control Plan through the Start & Stop Association Group functionality. The installer, the end user or Utility Supplier (remote management) configures the Association groups. During the configuration process the devices are selected and the association entries are created. These associations can additionally be configured with the specific Z-Wave commands (through the Association Command Configuration Command Class). If no Z-Wave commands are specified in the Associations groups, it is the responsibility of the device to issue the relevant commands based on Utility Supplier specific algorithms.
4.35.1 DCP List Supported Get Command
This command is used to request the total size of the DCP list along with the number of free entries in the list.
The DCP List Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_DCP_CONFIG

Command = DCP_LIST_SUPPORTED_GET

4.35.2 DCP List Supported Report Command
This command is used to provide the total size of the DCP list along with the number of free entries in the list.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DCP_CONFIG

Command = DCP_LIST_SUPPORTED_REPORT

DCP List Size

Free DCP List entries

DCP List Size (8 bits) This value specifies the DCP list size. 0x00 is reserved Free DCP List entries (8 bits) This value specifics the number of free entries for new DCP events. The value 0x00 specifies a full list.

4.35.3 DCP List Set Command
This command is used to place a new DCP event in the DCP list. Each DCP event is time stamped for future reference.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DCP_CONFIG

Command = DCP_LIST_SET

Timestamp -Year 1

Timestamp -Year 2

Timestamp -Month

Timestamp -Day

Timestamp -Hour Local Time

Timestamp -Minute Local Time

Timestamp -Second Local Time

DCP Rate ID

Reserved

Number of DC

Generic Device Class 1

Specific Device Class 1

....

Generic Device Class N

Specific Device Class N

Start Year 1

Start Year 2

Start Month

Start Day

Start Hour Local Time

Start Minute Local Time

Start Second Local Time

Duration Hour Time

Duration Minute Time

Duration Second Time

Event Priority

Load shedding

Start Association Group Stop Association Group Randomization interval

Timestamp -Year (16 bits)

Specify the year in the usual Gregorian calendar. The first byte (Year 1) is the most significant byte.

Timestamp -Month (8 bits)

Specify the month of the year between 01 (January) and 12 (December).

Timestamp -Day (8 bits)

Specify the day of the month between 01 and 31.

Timestamp -Hour Local Time (8 bits)

Specify the number of complete hours that have passed since midnight (00-23) in local time.

Timestamp -Minute Local Time (8 bits)

Specify the number of complete minutes that have passed since the start of the hour (00-59) in local time.

Timestamp -Second Local Time (8 bits)

Specify the number of complete seconds since the start of the minute (00-59) in local time. The value 60 used to keep UTC from wandering away is not supported.

DCP Rate ID (8 bits)

Specify if a specific rate is applicable when participating in the DCP event. If an entry in the Rata table contains a matching DCP Rate ID this rate will be active for the duration of the event regardless of other parameters in the rate is not met.

DCP Rate ID usage Example

Prior to the DCP events a given rate table is configured defining when rates are active during a day. The Table contains two entries with DCP Rate IDs allowing the Utility Supplier to activate the rates outside of the time defined in the Table when a DCP event is placed in the DCP list with the corresponding DCP rate ID.

Prior to Jul14 2008 two DCP events are placed in the List by the Utility Supplier, which changes the Rate profile of Jul14 compared to an `standard' day.

Rate tabel 1: 7am-4pm, 2: 3am-5am, DCP ID=2 3: 4pm-8pm 4: 8pm-3am 5: 5am-6am, DCP ID=1

4 25

1

12am

Every day

3

4

12am

DCP#1 event: 'Green', Tuesday 14Jul 2008 Start: 9am, Duration 3 hours, DCPbandID=2 DCP#2 event: 'M2' Tuesday 14Jul 2008 Start: 3am, Duration 2 hours, DCPbandID=1

DCP #2

DCP #1

4 551

2

1

3

14Jul 2008 4

Randomization interval (8 bits) Specify the randomization interval in units of seconds, which must be applied as an offset to the start and stopping of the events as requested in the DCP event. E.g. A value of 0x10 specifies that every device should randomly select a start and stop time offset between 0 and 16 seconds. This offset SHOULD be applied to the start and duration fields in the DCP event. Number of DC (2 bits) Specify the number of Generic/Specific Device Classes, which are requested to participate in the DCP event Generic Device Class (8bits) Specify the Generic Device Class identifier. Refer to [10] and [22]. Specific Device Class (8 bits) Specify the Specific Device Class identifier. Refer to [10] and [22]. Start Year (16 bits) Specify the year in the usual Gregorian calendar for the start of the event. The first byte (Year 1) is the most significant byte. Start Month (8 bits) Specify the month of the year between 01 (January) and 12 (December) for the start of the event. Start Day (8 bits) Specify the day of the month for the start of the event between 01 and 31. Start Hour Local Time (8 bits) Specify the number of complete hours that have passed since midnight (00-23) in local time for the start of the event. Start Minute Local Time (8 bits) Specify the number of complete minutes that have passed since the start of the hour (00-59) in local time for the start of the event. Start Second Local Time (8 bits) Specify the number of complete seconds since the start of the minute (00-59) in local time. The value 60 used to keep UTC from wandering away is not supported.

Duration Hour Time (8 bits) Specify the number of complete hours of the event. Duration Minute Time (8 bits) Specify the number of complete minutes of the event. Duration Second Time (8 bits) Specify the number of complete seconds of the event. Event Priority (8 bits) The parameter specifies the priority of the DCP event. The High priority is used by the utility Supplier to mandate device participation and lower priorities are used by devices to voluntary to participate in the event and to which degree.

Event Priority Description Device participation

0x00

Reserved

Voluntary

0x01

V1 - Green Energy Voluntary

0x02

V2

Voluntary

0x03

V3

Voluntary

0x04

V4

Voluntary

0x05

V5

Voluntary

0x06

V6

Voluntary

0x07

V7

Voluntary

0x08

M1 - Emergency Mandatory

0x09

M2

Mandatory

0x0A

M3

Mandatory

0x0B

M4

Mandatory

0x0C

Utility defined Utility defined

0x0D

Utility defined Utility defined

0x0E

Utility defined Utility defined

0x0F

Utility defined Utility defined

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
Load shedding (8 bits)
Specify the load shedding in percentage of average consumption requested for the event. This load shedding will be applied to the devices with the device classes specified in the command.

This field MUST be in the range 0x01..0x64, which represents values in the range 1%..100%. All other values are reserved. Reserved values MUST NOT be used by a sending node and MUST be ignored by a receiving node.
Start Association group (8 bits)
Specify which association group (see the Association Command Class) should be activated when the event is started. The value 0x00 specifies no group should be activated.
If the device also supports the Association Command Configuration Command Class it possible to dynamically and remotely (from the Energy Supplier or others) to specify precisely which current and future Z-Wave commands should be send to which Z-Wave nodes.
The configuration of the Start Association group is done either manually by the installer or automatically when the device detect other relevant devices
Stop Association group (8 bits)
Specify which association group (see the Association Command Class) should be activated when the event is stopped. The value 0x00 specifies no group should be activated.
The configuration of the Stop Association group is done either manually by the installer or automatically when the device detect other relevant devices
Start Associating group and Stop Associating Group usage example
A small energy control system consisting of a device supporting the DCP command class and 3 z-wave devices which can participate in the application. NodeId 1: Setback Thermostat device, NodeId 8: Simple Thermostat device, NodeId 5: Multilevel Power Switch device.
Through the use of the Association Command Class and the Association Command Configuration Command Class the following Associations has been established in the device.
Group 1 Node1, Thermostat_Setback_SetPpermanent override,energy saving mode) Node8, Thermostat_Setpoint_Set(Heating setpoint#1, 19,5oC) Node5, Multilevel_Switch:Set (Dimlevel =0x20)
Group 2 Node1, Thermostat_Setback_Set(No override,Setback = 0oC) Node8, Thermostat_Setpoint_Set(Heating setpoint#1, 21,5oC) Node5, Multilevel_Switch:Set (Dimlevel =0x40)
A DCP event can now specifically invoke Group1 when starting the event and invoking group2 when stopping the event by specifying Start Association Group=0x01 and Stop Association Group=0x02.

4.35.4 DCP List Remove This command is used to remove a DCP event from the DCP list.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DCP_CONFIG

Command = DCP_LIST_REMOVE

Timestamp -Year 1

Timestamp -Year 2

Timestamp -Month

Timestamp -Day

Timestamp -Hour Local Time

Timestamp -Minute Local Time

Timestamp -Second Local Time

Refer to DCP List report command class (section 4.36.2) for description of fields

4.36 Demand Control Plan Monitor Command Class, version 1
The Demand Control Plan Monitor Command Class allows devices to monitor the list of Demand Control Plan (DCP). A DCP event contains information regarding criticality, products involved, requested reduction, time duration and if a certain rate (identified by a Demand Control Plan Rate ID, refer to the Rate Table Configuration Command Class) is associated with the event. When a DCP event is outdated, it is removed from the list. Each DCP event is uniquely identified by a timestamp issued the Utility Supplier.
4.36.1 DCP List Get Command
This command is used to request the pending DCP event in a device.
The DCP List Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_DCP_MONITOR

Command = DCP_LIST_GET

4.36.2 DCP List Report Command
This command reports the pending DCP event in a device. If more than one DCP event is pending ­ the reports will be submitted in chronically order as to when the events was placed on the list. Newest entry will be reported first.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DCP_MONITOR

Command = DCP_LIST_REPORT Reports to Follow Timestamp -Year 1 Timestamp -Year 2 Timestamp -Month Timestamp -Day
Timestamp -Hour Local Time Timestamp -Minute Local Time Timestamp -Second Local Time
DCP ID Reserved
Generic Device Class 1 Specific Device Class 1
.... Generic Device Class N Specific Device Class N
Start Year 1 Start Year 2 Start Month Start Day Start Hour Local Time Start Minute Local Time Start Second Local Time Duration Hour Time Duration Minute Time Duration Second Time Event Priority Load shedding Start Association Group Stop Association Group Randomization interval

Number of DC

Reports to Follow (8 bits)
This value indicates how many report frames there are left, the value 0xFF means that the number of reports have not been calculated yet or that there is more than 255 reports to follow.
Refer to DCP List Set command class (section 4.35.3) for detailed description of the fields.
4.36.3 DCP Event Status Get
This command is used to query the status of a specific DCP event in the DCP list.
The DCP Event Status Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_DCP_MONITOR

Command = DCP_EVENT_STATUS_GET

Timestamp -Year 1

Timestamp -Year 2

Timestamp -Month

Timestamp -Day

Timestamp -Hour Local Time

Timestamp -Minute Local Time

Timestamp -Second Local Time

Refer to DCP List Set command class (section 4.35.3) for detailed description of the fields.

4.36.4 DCP Event Status Report This command is used to provide the status of a specific DCP event in the DCP list.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DCP_MONITOR

Command = DCP_EVENT_STATUS_GET

Timestamp -Year 1

Timestamp -Year 2

Timestamp -Month

Timestamp -Day

Timestamp -Hour Local Time

Timestamp -Minute Local Time

Timestamp -Second Local Time

Event status

Refer to DCP List report command class (section 4.36.2) for description of fields Event Status (8 bits) The field contains the status of the event.
Table 35, DCP Event Status Report::Event Status encoding

Event status

Description

0x01 Event Started

0x02 Event Completed

0x03 Event Rejected by the user

0x04 Event not Applicable
All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.

4.37 Door Lock Command Class, version 1-2

The Door Lock Command Class is used to operate and configure a door lock device. The Door Lock Command Class is an actuator control command class. Refer to 3.6.

CC:0062.02.00.21.001 CC:0062.01.00.21.001

4.37.1 Compatibility considerations
A device supporting Door Lock CC, Version 2 MUST support Door Lock CC, version 1.
The Door Lock Command Class, version 2 adds the "unknown" state to the Door Lock Operation Report Command.
A supporting node MAY implement a subset of the features represented by the Door Lock Mode, Door Handles Mode and Door Condition fields which are provided by the commands of this Command Class.

4.37.2 Door Lock Operation Set Command This command is used to set the operation mode of a supporting door lock device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DOOR_LOCK

Command = DOOR_LOCK_OPERATION_SET

Door Lock Mode

CC:0062.01.01.11.001

Door Lock Mode (8 bits) The Door Lock Mode field is used to specify the operation mode of the door lock device. The encoding of this field MUST be according to Table 36.
Table 36, Door Lock Operation Set :: Mode

CC:0062.01.01.11.002 CC:0062.01.01.11.003

Mode

Description

Version

0x00 Door Unsecured 1)

1

0x01 Door Unsecured with timeout 2)

1

0x10 Door Unsecured for inside Door Handles 1)

1

0x11 Door Unsecured for inside Door Handles with timeout 2) 1

0x20 Door Unsecured for outside Door Handles 1)

1

0x21 Door Unsecured for outside Door Handles with timeout 2) 1

0xFF Door Secured

1

1) Constant mode. Door will be unsecured until set to secured mode by another command. 2) Timeout mode. Fallback to secured mode after timeout has expired.

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

A controlling node MUST NOT specify modes using timeout-based fall back if the Operation Type of the supporting device is set to Constant operation (set by Door Lock Configuration Set).

CC:0062.01.01.11.004 CC:0062.01.01.11.006 CC:0062.01.01.13.001 CC:0062.01.01.11.005

A supporting node MUST ignore modes using timeout-based fall back if Operation Type is set to Constant operation.
A supporting node MUST apply the constant modes without any timeout even if it is set to Timed Operation Type.
A supporting node MAY implement a subset of the Door Lock Modes defined by Table 36.
A supporting node MUST accept the Door Lock Mode values 0x00 and 0xFF.

CC:0062.01.02.11.001 CC:0062.01.02.11.002 CC:0062.01.02.11.003

4.37.3 Door Lock Operation Get Command This command is used to request the status of a door lock device. The Door Lock Operation Report command MUST be returned in response to this command. This command MUST NOT be issued via multicast addressing. 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_DOOR_LOCK

Command = DOOR_LOCK_OPERATION_GET

4.37.4 Door Lock Operation Report Command This command is used to advertise the status of a door lock device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DOOR_LOCK

Command = DOOR_LOCK_OPERATION_REPORT

Door Lock Mode

Outside Door Handles Mode

Inside Door Handles Mode

Door Condition

Lock Timeout Minutes Lock Timeout Seconds

CC:0062.01.03.11.001 CC:0062.01.03.11.002

Door Lock Mode (8 bits) The Door Lock Mode field MUST advertise the mode of the door lock device. The encoding of this field MUST be according to Table 37.
Table 37, Door Lock Operation Report :: Door Lock Mode

CC:0062.01.03.11.003 CC:0062.01.03.13.001 CC:0062.01.03.11.004 CC:0062.01.03.12.001
CC:0062.01.03.11.005 CC:0062.01.03.11.006

Mode

Description

Version

0x00 Door Unsecured 1)

1

0x01 Door Unsecured with timeout 2)

1

0x10 Door Unsecured for inside Door Handles 1)

1

0x11 Door Unsecured for inside Door Handles with timeout 2) 1

0x20 Door Unsecured for outside Door Handles 1)

1

0x21 Door Unsecured for outside Door Handles with timeout 2) 1

0xFE Door/Lock State Unknown 3)

2

0xFF Door Secured

1

1) Constant mode. Door will be unsecured until set back to secured mode by command 2) Timeout mode. Fallback to secured mode after timeout has expired 3) Bolt is not fully retracted/engaged

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

A supporing node MAY advertise a subset of the available Door Lock Mode values.

A controlling node MUST accept all Door Lock Mode values.

The Door Lock Mode field SHOULD advertise the current value of the device hardware; also while in transition to a new target value.

Outside Door Handles Mode (4 bits)

This field MUST advertise the status of each individual outside door handle.

The encoding of the Outside Door Handles Mode bitmask field MUST be according to Table 38 and Table 39.

Table 38, Door Handles Mode bitmask

Bit 3

Bit 2

Bit 1

Bit 0

Handle 4 Handle 3 Handle 2 Handle 1

Table 39, Door Handles Mode bit encoding

Bit value `0' `1'

Description Disabled Enabled

CC:0062.01.03.11.007 CC:0062.01.03.11.008 CC:0062.01.03.13.002 CC:0062.01.03.11.009
CC:0062.01.03.11.00A CC:0062.01.03.11.00B
CC:0062.01.03.13.003 CC:0062.01.03.11.00C
CC:0062.01.03.11.00D CC:0062.01.03.11.00E CC:0062.01.03.13.004 CC:0062.01.03.11.010
CC:0062.01.03.11.011 CC:0062.01.03.11.012

The value `0' MUST signify that the actual handle cannot open the door locally. The value `1' MUST signify that the actual handle can open the door locally. A supporting node MAY advertise just a subset of the available Door Handles Mode values. A controlling node MUST accept all Door Handles Mode values. Inside Door Handles Mode (4 bits) This field MUST advertise the status of each individual inside door handle. The encoding of the Inside Door Handles Mode bitmask field MUST be according to Table 38 and Table 39. A supporting node MAY advertise just a subset of the available Door Handles Mode values. A controlling node MUST accept all Door Handles Mode values. Door Condition (8 bits) The Door Condition field MUST advertise the status of the door lock components. The encoding of the Door Condition bitmask field MUST be according to Table 46. A supporting node MAY advertise just a subset of the available Door Condition values. A controlling node MUST accept all Door Condition values. Lock Timeout Minutes (8 bits) This field MUST advertise the remaining time before the door lock will automatically be locked again. The encoding of the Lock Timeout Minutes field MUST be according to Table 40. The time the supporting node stays unlocked MUST be determined by combining the Lock Timeout Minutes and Lock Timeout Seconds fields.
Table 40, Door Lock Operation Report :: Lock Timeout Minutes

Value 0x00..0xFD 0xFE

Operation Unlocked 0 .. 253 minutes (Operation Type = Timed Operation) No unlocked period (Operation Type = Constant Operation)

CC:0062.01.03.11.013
CC:0062.01.03.13.005 CC:0062.01.03.11.014

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node. A supporting node MAY advertise just a subset of the available Lock Timeout values. A controlling node MUST accept all Lock Timeout values.

CC:0062.01.03.11.015 CC:0062.01.03.11.016

Lock Timeout Seconds (8 bits)
This field MUST advertise the remaining time before the door lock will automatically be locked again.
The encoding of the Lock Timeout Seconds field MUST be according to Table 41. The time to stay unlocked MUST be determined by combining the Lock Timeout Minutes and Lock Timeout Seconds fields.
Table 41, Door Lock Operation Report :: Lock Timeout Seconds

Value 0..59 (0x00..0x3B) 254 (0xFE)

Operation Unlocked 0 .. 59 seconds (Operation Type = Timed Operation) No unlocked period (Operation Type = Constant Operation)

CC:0062.01.03.11.017
CC:0062.01.03.13.006 CC:0062.01.03.11.018

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node. A supporting node MAY advertise just a subset of the available Lock Timeout values. A controlling de MUST accept all Lock Timeout values.

CC:0062.01.04.11.001

4.37.5 Door Lock Configuration Set Command This command is used to set the configuration of a supporting door lock device. A door lock device MUST be able to operate with the factory default settings.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DOOR_LOCK

Command = DOOR_LOCK_CONFIGURATION_SET

Operation Type

Outside Door Handles Mode

Inside Door Handles Mode

Lock Timeout Minutes

Lock Timeout Seconds

CC:0062.01.04.11.002

Operation Type (1 byte)
The Operation Type field MUST be set according to Table 42. When timed operation is specified, the Lock Timeout Minutes and Lock Timeout Seconds fields MUST be set to valid values.
Table 42, Door Lock Operation Type

Operation Type Description

Valid Lock Timeout values

0x01

Constant operation Minutes = 0xFE

Seconds= 0xFE

0x02

Timed operation Minutes = 0x00..0xFD

Seconds= 0x00..0x3B

CC:0062.01.04.11.003 CC:0062.01.04.13.001 CC:0062.01.04.11.004
CC:0062.01.04.11.005 CC:0062.01.04.13.002 CC:0062.01.04.11.006 CC:0062.01.04.11.007 CC:0062.01.04.13.003

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node. A supporting node MAY accept just a subset of the available Operation Type values. A supporting node MUST accept the Operation Type value 0x01. Outside Door Handles Mode (4 bits) This field is used to advertise the status of each individual outside door handle. The encoding of the Outside Door Handles Mode bitmask field MUST be according to Table 38 and Table 39. A supporting node MAY ignore the Door Handles Mode value. Inside Door Handles Mode (4 bits) This field MUST advertise the status of each individual inside door handle. The encoding of the Inside Door Handles Mode bitmask field MUST be according to Table 38 and Table 39. A supporting node MAY ignore the Door Handles Mode value.

CC:0062.01.04.11.008 CC:0062.01.04.11.009
CC:0062.01.04.13.004
CC:0062.01.04.11.00A CC:0062.01.04.11.00B
CC:0062.01.04.13.005

Lock Timeout Minutes (1 byte)
This field MUST specify the time that a door lock must wait before automatically being locked again.
The encoding of the Lock Timeout Minutes field MUST be according to Table 40. The time to stay unlocked MUST be determined by combining the Lock Timeout Minutes and Lock Timeout Seconds fields.
A supporting node MAY ignore the Lock Timeout values if it implements only the Operation Type = 0x01 (Constant operation).
Lock Timeout Seconds (1 byte)
This field MUST specify the time that a door lock must wait before automatically being locked again.
The encoding of the Lock Timeout Seconds field MUST be according to Table 41. The time to stay unlocked MUST be determined by combining the Lock Timeout Minutes and Lock Timeout Seconds fields.
A supporting node MAY ignore the Lock Timeout values if it implements only the Operation Type = 0x01 (Constant operation).

CC:0062.01.05.11.001 CC:0062.01.05.11.002 CC:0062.01.05.11.003

4.37.6 Door Lock Configuration Get Command This command is used to request the configuration parameters of a door lock device. The Door Lock Configuration Report command MUST be returned in response to this command. This command MUST NOT be issued via multicast addressing. 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_DOOR_LOCK

Command = DOOR_LOCK_CONFIGURATION_GET

4.37.7 Door Lock Configuration Report Command This command is used to advertise the configuration parameters of a door lock device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DOOR_LOCK

Command = DOOR_LOCK_CONFIGURATION_REPORT

Operation Type

Outside Door Handles Mode

Inside Door Handles Mode

Lock Timeout Minutes

Lock Timeout Seconds

For fields' description, refer to 4.37.5 Door Lock Configuration Set Command.

4.38 Door Lock Command Class, version 3

The Door Lock Command Class is used to operate and configure a door lock device. The Door Lock Command Class is an actuator control command class. Refer to 3.6. Commands and fields not described in version 3 remain unchanged from version 2.

CC:0062.03.00.21.001

4.38.1 Compatibility considerations A node supporting the Door Lock Command Class, version 3 MUST support the Door Lock Command Class, version 2. Version 3 adds duration and target value reporting to the Door Lock Operation Report Command.

4.38.2 Door Lock Operation Report Command This command is used to advertise the status of a door lock device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DOOR_LOCK

Command = DOOR_LOCK_OPERATION_REPORT

Current Door Lock Mode

Outside Door Handles Mode

Inside Door Handles Mode

Door Condition

Lock Timeout Minutes

Lock Timeout Seconds

Target Door Lock Mode

Duration

CC:0062.03.03.11.001 CC:0062.03.03.11.002 CC:0062.03.03.12.001
CC:0062.03.03.11.003 CC:0062.03.03.11.004

Fields not described below remain unchanged from previous versions.
Current Door Lock Mode (8 bits)
The Current Door Lock Mode field MUST advertise the current mode of the door lock device.
The encoding of this field MUST be according to Table 37.
An Operation Set Command may be used to initiate a transition to a new target mode. The device may be queried for its current mode while in transition to a new mode. The response to an Operation Get SHOULD be the current mode of the device hardware, e.g. Door/Lock State Unknown. (applies to Version 2 and newer).
Target Door Lock Mode (8 bits)
The Target Door Lock Mode field MUST advertise the target mode of an ongoing transition or the most recent transition.
The encoding of this field MUST be according to Table 37.

CC:0062.03.03.12.002 CC:0062.03.03.11.005

Duration (8 bits) The Duration field SHOULD advertise the remaining time before the target mode is reached. The encoding of this field MUST be according to Table 8.

4.39 Door Lock Command Class, version 4
4.39.1 Terminology
A door lock supports at least 2 modes: secured (it cannot be opened with handles) and unsecured (it can be opened with handles). It may support more modes where the node is for example secured only for the inside handles.
A door lock may have several components such as a latch, a bolt and handles.
A latch, which can also be called a latch bolt or spring bolt, usually locks the door automatically when closing it. The latch bolt is disengaged (retracted) typically when the user turns the door handle, which via the lockset's mechanism, manually retracts the latch bolt, allowing the door to open.
Handles allow to retract the door's latch.
A bolt, also named dead bolt and hook bolt, allows to secure the door. When the bolt is out or extended, the door lock is usually secured (locked) but there are locks that are unlocked even then the bolt is out which will withdraw the bolt when user turns the door handle (which also retract the latch). The position of the bolt is not directly related to the Door Lock Mode.
A supporting door lock runs in constant operation by default. In constant operation, the door lock stays in the same mode until receiving a new command or being locally actuated. A door lock may support timed operation. Timed operation has its own subset of modes, which after being activated will automatically return to the secured mode after the configured Lock Timeout.
An auto-relock functionality can be supported for returning automatically to secured mode some given time after any operation mode change, including constant operation or changes initiated physically by a user (unlocking with key, thumb turn, etc). Auto-relock should not have any effect when the lock runs in Timed Operation
A door lock node may have a twist assist mechanism. When a user starts rotating a key or the thumb turn to unlock the door, a motor starts rotating to help the user completing the movement. It can be helpful for disabled users.
A node may support a hold and release functionality for spring latches. This is useful for locks having a handle that cannot retract the door spring latch on one side. This functionality defines how long the spring latch must be retracted after the door mode has been changed to unsecured.
A block-to-block functionality can be activated for locks having separate lock block on each side of the door and cannot sense local changes on one side. Enabling the block-to-block feature will make the door lock try to execute a lock or unlock command on both sides regardless of the last known lock mode (representing the side that can be sensed). When this feature is disabled, the lock will ignore a command indicating a mode if it is identical to the last known lock mode.

CC:0062.04.00.21.001

1.1.1 Compatibility considerations
The Door Lock Command Class, version 4 is backwards compatible with the Door Lock Command Class, version 3. Fields and commands not mentioned in this version MUST remain unchanged from the Door Lock Command Class, version 3.
Commands for advertising node capabilities are introduced in this version:
 Door Lock Capabilities Get Command  Door Lock Capabilities Report Command
These commands are extended in order to provide the auto-relock, twist assist and block-to-block functionalities.
 Door Lock Configuration Set Command  Door Lock Configuration Report Command

4.39.2 Door Lock Operation Set Command This command is used to set the mode of a supporting door lock node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DOOR_LOCK

Command = DOOR_LOCK_OPERATION_SET (0x01)

Door Lock Mode

Door Lock Mode (8 bits)

CC:0062.04.01.11.001

This field is used to specify the operation mode that the supporting node MUST assume. This field MUST be encoded according to Table 43.
Table 43, Door Lock Operation Set::Mode encoding

Value

Mode Description

Operation type Version

0x00 Door Unsecured

Constant

1

0x01 Door Unsecured with timeout

Timed

1

0x10 Door Unsecured for inside Door Handles

Constant

1

0x11 Door Unsecured for inside Door Handles with timeout Timed

1

0x20 Door Unsecured for outside Door Handles

Constant

1

0x21 Door Unsecured for outside Door Handles with timeout Timed

1

CC:0062.04.01.51.001

0xFF Door Secured

Constant

1

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

A controlling node MUST NOT specify modes using timeout-based fall back if the Operation Type of the supporting device is set to Constant operation (set by Door Lock Configuration Set).

CC:0062.04.01.11.002 CC:0062.04.01.11.003 CC:0062.04.01.11.004 CC:0062.04.01.11.005

A supporting node MUST ignore modes using timeout-based fall back if Operation Type is set to Constant operation.
A supporting node MUST apply the constant modes without any timeout even if it is configured to run in Timed Operation.
A supporting node MUST ignore the command if the value specified in this field is not advertised as supported in the Door Lock Capabilities Report Command.
A supporting node MUST support the door lock mode values 0x00 and 0xFF.

CC:0062.04.02.11.001 CC:0062.04.02.51.001 CC:0062.04.02.11.002

4.39.3 Door Lock Operation Get Command This command is used to request the mode of a supporting door lock node. The Door Lock Operation Report Command MUST be returned in response to this command. This command MUST NOT be issued via multicast addressing. 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_DOOR_LOCK

Command = DOOR_LOCK_OPERATION_GET (0x02)

4.39.4 Door Lock Operation Report Command This command is used to advertise the mode of a supporting door lock node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DOOR_LOCK

Command = DOOR_LOCK_OPERATION_REPORT (0x03)

Current Door Lock Mode

Outside Door Handles Mode

Inside Door Handles Mode

Door Condition

Lock Timeout Minutes

Lock Timeout Seconds

Target Door Lock Mode

Duration

CC:0062.04.03.11.001

Current Door Lock Mode (8 bits)
This field MUST advertise the current door lock mode of the sending node. This field MUST be encoded according to Table 44.

Table 44, Door Lock Operation Report::Mode encoding

Value

Mode Description

Operation type Version

0x00 Door Unsecured 0x01 Door Unsecured with timeout

Constant (or timed) 1

Timed

1

0x10 Door Unsecured for inside Door Handles

Constant (or timed) 1

0x11 Door Unsecured for inside Door Handles with timeout Timed

1

0x20 Door Unsecured for outside Door Handles

Constant (or timed) 1

0x21 Door Unsecured for outside Door Handles with timeout Timed

1

CC:0062.04.03.12.001 CC:0062.04.03.11.002

0xFE Door mode unknown (e.g. bolt not fully retracted)

N/A

2

0xFF Door Secured

Constant (or timed) 1

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

A sending node SHOULD set this field to 0xFE if sending this command while performing a transition between 2 modes.

Outside Door Handles Mode (4 bits)

This field is used to advertise the status of each individual outside door handle.

This field MUST be treated as a bitmask field and MUST be encoded according to Table 45.

Table 45, Door Lock Operation Report::Door Handles Mode bitmask encoding

Bit 3

Bit 2

Bit 1

Bit 0

Handle 4 Handle 3 Handle 2 Handle 1

CC:0062.04.03.11.003
CC:0062.04.03.11.004 CC:0062.04.03.11.005
CC:0062.04.03.11.006

The value 0 MUST indicate that the actual handle cannot open the door locally. The value 1 MUST indicate that the actual handle can open the door locally. Inside Door Handles Mode (4 bits) This field is used to advertise the status of each individual inside door handle. This field MUST be treated as a bitmask field and MUST be encoded according to Table 45. The value 0 MUST indicate that the actual handle cannot open the door locally. The value 1 MUST indicate that the actual handle can open the door locally. Door Condition (8 bits) This field is used to advertise the state of the door lock components. This field MUST be encoded according to Table 46.

Table 46, Door Lock Operation Report::Door Condition bitmask encoding

Value

Bit 7..3

Bit 2

Bit 1

Bit 0

bit set to `0' Reserved

Latch Open (out, engaged, extended)

Bolt Locked (out, extended)

Door Open

CC:0062.04.03.11.007 CC:0062.04.03.11.008

bit set to `1' Reserved

Latch Closed

(in, disengaged, retracted)

Bolt Unlocked (in, retracted)

Door Closed

All other bits are reserved and MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node.

If a door component is not advertised as supported in the Door Lock Capabilities Report Command, the corresponding bit MUST be set to 0 and MUST be ignored by a controlling node.

Lock Timeout Minutes (8 bits)

This field is used to advertise the remaining time before the door lock mode will automatically be changed to "secured" if operating in timed operation with a timed operation mode.

This field MUST be encoded according to Table 47. The remaining time that the sending node will stay in the current mode MUST be determined by combining this field and the Lock Timeout Seconds field.

Table 47, Door Lock Operation Report::Lock Timeout Minutes encoding

Value

Description

CC:0062.04.03.11.009 CC:0062.04.03.11.00A

0..253 (0x00..0xFC) 0..253 minutes (Operation Type and Current mode = Timed Operation)

254 (0xFE)

Undefined

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

A node currently set in a constant operation type mode MUST set this field to 0xFE.

Lock Timeout Seconds (8 bits)

This field is used to advertise the remaining time before the door lock mode will automatically be changed to "secured" if operating in timed operation with a timed operation mode.

This field MUST be encoded according to Table 48. The remaining time that the sending node will stay in the current mode MUST be determined by combining this field and the Lock Timeout Minutes field.

Table 48, Door Lock Operation Report::Lock Timeout Seconds encoding

Value

Description

0..59 (0x00..0x3B) 254 (0xFE)

0..59 seconds (Operation Type and mode= Timed Operation) Undefined

CC:0062.04.03.11.00B

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
A node currently set in a constant operation type mode MUST set this field to 0xFE.

CC:0062.04.03.11.00C CC:0062.04.03.11.00D
CC:0062.04.03.11.00E CC:0062.04.03.11.00F
CC:0062.04.03.12.002 CC:0062.04.03.11.010 CC:0062.04.03.11.011

Target Door Lock Mode (8 bits)
This field is used to advertise the target mode of an ongoing transition or of the most recent transition.
This field MUST be encoded according to Table 44. This field MUST be set to the mode specified in the most-recent received Door Lock Operation Set Command.
If the node is going to change mode due to the auto-relock functionality or a timed operation, this field MUST NOT advertise the future mode and MUST be set to the same value as the Current Door Lock Mode field.
If no transition is ongoing, this field MUST be set to the same value as the Current Door Lock Mode field.
If the Current Door Lock Mode is set to 0xFE, this field MUST indicate the mode is it going to assume when the ongoing transition has been completed.
Duration (8 bits)
This field SHOULD advertise the estimated remaining time before the mode indicated in the Target Door Lock Mode field is reached.
This field MUST be set to 0 if the Target Door Lock Mode and Current Door Lock Mode fields are set to the same value.
The encoding of this field MUST be according to Table 8.

CC:0062.04.04.11.001

4.39.5 Door Lock Configuration Set Command This command is used to set the configuration of a supporting door lock node. A supporting node MUST be able to operate with the factory default configuration.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DOOR_LOCK

Command = DOOR_LOCK_CONFIGURATION_SET (0x04)

Operation Type

Outside Door Handles Mode

Inside Door Handles Mode

Lock Timeout Minutes Lock Timeout Seconds Auto-relock time 1 (MSB)

Auto-relock time 2 (LSB)

Hold and release time 1 (MSB)

Hold and release time 2 (LSB)

Reserved

BTB TA

Operation Type (1 byte)

CC:0062.04.04.11.002

This field is used to set the operation type at the supporting node. This field MUST be encoded according to Table 49.
Table 49, Door Lock Configuration Set::Operation Type encoding

Value

Description

Version

0x01 Constant operation 1

CC:0062.04.04.11.003 CC:0062.04.04.11.004

0x02 Timed operation 1 All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
If this field is set to timed operation (0x02), the Lock Timeout Minutes and Lock Timeout Seconds fields MUST be set to values different than 0xFE.
A supporting node MUST ignore this field if it is set to an operation type that is not advertised as supported in the Door Lock Capabilities Report Command.

CC:0062.04.04.11.005 CC:0062.04.04.11.006 CC:0062.04.04.11.007
CC:0062.04.04.11.008 CC:0062.04.04.11.009 CC:0062.04.04.11.00A
CC:0062.04.04.11.00B CC:0062.04.04.11.00C CC:0062.04.04.11.00D CC:0062.04.04.11.00E
CC:0062.04.04.11.00F CC:0062.04.04.11.010 CC:0062.04.04.11.011 CC:0062.04.04.11.012

Outside Door Handles Mode (4 bits)
This field is used to enable or disable each individual outside door handle at the supporting node. This field MUST be treated as a bitmask and MUST encoded according to Table 45.
The value 0 MUST indicate that the actual handle cannot open the door locally. The value 1 MUST indicate that the actual handle can open the door locally.
A supporting node MUST ignore an outside door handle mode value if it advertises no support for the corresponding handle in the Door Lock Capabilities Report Command.
Inside Door Handles Mode (4 bits)
This field is used to enable or disable each individual inside door handle at the supporting node. This field MUST be treated as a bitmask and MUST encoded according to Table 45.
The value 0 MUST indicate that the actual handle cannot open the door locally. The value 1 MUST indicate that the actual handle can open the door locally.
A supporting node MUST ignore an inside door handle mode value if it advertises no support for the corresponding handle in the Door Lock Capabilities Report Command.
Lock Timeout Minutes (8 bits)
This field is used to specify the time that the supporting node must wait before returning to the secured mode when receiving timed operation modes in a Door Lock Operation Set Command.
Values in the range 0x00..0xFD MUST indicate the actual number of minutes. The value 0xFE MUST indicate that this field is undefined.
This field MUST be set to 0xFE if the Operation Type field is set to 0x01 (constant operation) This field MUST be in the range 0x00..0xFD if the Operation Type field is set to 0x02 (timed operation)
The time to stay unlocked MUST be determined by combining this field and the Lock Timeout Seconds fields.
A supporting node MUST ignore this field if it is set to the timed operation type is not advertised as supported in the Door Lock Capabilities Report Command.
Lock Timeout Seconds (8 bits)
This field is used to specify the time that the supporting node must wait before returning to the secured mode when receiving timed operation modes in a Door Lock Operation Set Command.
Values in the range 0x00..0x3B MUST indicate the actual number of seconds. The value 0xFE MUST indicate that this field is undefined.
This field MUST be set to 0xFE if the Operation Type field is set to 0x01 (constant operation) This field MUST be in the range 0x00..0x3B if the Operation Type field is set to 0x02 (timed operation)
The time to stay unlocked MUST be determined by combining this field and the Lock Timeout Minutes field.
A supporting node MUST ignore this field if it is set to the timed operation type is not advertised as supported in the Door Lock Capabilities Report Command.

CC:0062.04.04.11.013 CC:0062.04.04.11.014 CC:0062.04.04.11.015
CC:0062.04.04.11.016 CC:0062.04.04.11.017 CC:0062.04.04.11.018
CC:0062.04.04.11.019 CC:0062.04.04.11.01A CC:0062.04.04.11.01B
CC:0062.04.04.11.01C CC:0062.04.04.11.01D CC:0062.04.04.11.01E

Auto-relock time (16 bits)
This field is used to specify the time setting in seconds for auto-relock functionality.
This field MUST be ignored by a node advertising no support for the auto-relock functionality in the Door Lock Capabilities Report Command.
The value 0 MUST indicate that the auto-relock functionality is disabled and the door lock MUST NOT return to secured mode automatically. (unless using Timed Operation)
Values in the range 1..65535 MUST indicate that the auto-relock functionality is enabled and the supporting node MUST return to secured mode after the time in seconds indicated by this field.
Hold and release time (16 bits)
This field is used to specify the time setting in seconds for letting the latch retracted after the supporting node's mode has been changed to unsecured.
This field MUST be ignored by a node advertising no support for the hold and release functionality in the Door Lock Capabilities Report Command.
The value 0 MUST indicate that the hold and release functionality is disabled and the supporting node MUST NOT keep the latch retracted when the door lock mode becomes unsecured.
Values in the range 1..65535 MUST indicate that the hold and release functionality is enabled and the door lock latch MUST keep open according to the time in seconds indicated by this field.
TA (Twist assist) (1 bit)
This field MUST indicate if the twist assist functionality is enabled.
This field MUST be ignored by a node advertising no support for the twist assist functionality in the Door Lock Capabilities Report Command.
The value 0 MUST indicate that the twist assist functionality MUST be disabled at the supporting node. The value 1 MUST indicate that the twist assist functionality MUST be enabled at the supporting node.
BTB (Block-to-block) (1 bit)
This field is used to indicate if the block-to-block functionality is enabled.
This field MUST be ignored by a node advertising no support for the block-to-block functionality in the Door Lock Capabilities Report Command.
The value 0 MUST indicate that the block-to-block functionality is disabled and the supporting node MAY ignore Door Lock Operation Set Commands if it detects to be already in the specified mode.
The value 1 MUST indicate that the block-to-block functionality is enabled and the supporting node MUST activate its motors until blocked to try to reach the mode indicated by Door Lock Operation Set Commands, even if it detects to be already in the specified mode.

CC:0062.04.05.11.001 CC:0062.04.05.51.001 CC:0062.04.05.11.002

4.39.6 Door Lock Configuration Get Command This command is used to request the configuration parameters of a door lock device. The Door Lock Configuration Report Command MUST be returned in response to this command. This command MUST NOT be issued via multicast addressing. 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_DOOR_LOCK

Command = DOOR_LOCK_CONFIGURATION_GET (0x05)

4.39.7 Door Lock Configuration Report Command This command is used to advertise the configuration parameters of a door lock device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DOOR_LOCK

Command = DOOR_LOCK_CONFIGURATION_REPORT (0x06)

Operation Type

Outside Door Handles Mode

Inside Door Handles Mode

Lock Timeout Minutes

Lock Timeout Seconds

Auto-relock time 1 (MSB)

Auto-relock time 2 (LSB)

Hold and release time 1 (MSB)

Hold and release time 2 (LSB)

Reserved

BTB

TA

CC:0062.04.06.11.001 Fields in this command MUST be according to descriptions in 4.39.5 Door Lock Configuration Set Command

CC:0062.04.07.11.001 CC:0062.04.07.51.001 CC:0062.04.07.11.002

1.1.2 Door Lock Capabilities Get Command This command is used to request the Door Lock capabilities of a supporting node. The Door Lock Capabilities Report Command MUST be returned in response to this command. This command MUST NOT be issued via multicast addressing. 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_DOOR_LOCK

Command = DOOR_LOCK_CAPABILITIES_GET (0x07)

1.1.3 Door Lock Capabilities Report Command This command is used to advertise the Door Lock capabilities supported by the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DOOR_LOCK

Command = DOOR_LOCK_CAPABILITIES_REPORT (0x08)

Reserved

Supported Operation type Bit Mask Length

Supported Operation Type Bit Mask 1

...

Supported Operation Type Bit Mask N

Supported Door Lock Mode List Length

Supported Door Lock Mode 1

...

Supported Door Lock Mode M

Supported Outside Handle Modes Bitmask

Supported Inside Handle Modes Bitmask

Supported door components

Reserved

ARS HRS TAS BTBS

CC:0062.04.08.11.001

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Supported Operation Type Bit Mask Length (5 bits) This field is used to advertise the length in bytes of the Supported Operation Type Bit Mask field carried in the command.

CC:0062.04.08.11.002 CC:0062.04.08.11.003 CC:0062.04.08.11.004
CC:0062.04.08.11.005 CC:0062.04.08.11.006 CC:0062.04.08.11.007 CC:0062.04.08.11.008
CC:0062.04.08.11.009 CC:0062.04.08.11.00A CC:0062.04.08.11.00B

This field MUST be set to the minimum value which allows to advertise all supported Operation types. Supported Operation Type Bit Mask (N bytes) This field is used to advertise the supported Door Lock Operation Types values. The length of this field in bytes MUST match the value advertised in the Supported Operation Type Bit Mask Length field. This field MUST be encoded as follows:
 Bit 0 in Bit Mask 1 represents Operation Type 0x00 (Reserved)  Bit 1 in Bit Mask 1 represents Operation Type 0x01 (Constant operation)  Bit 2 in Bit Mask 1 represents Operation Type 0x02 (Timed operation) ... Valid Operation Type values are defined in Table 49. If an Operation Type is supported, the corresponding bit MUST be set to `1'. If an Operation Type is not supported, the corresponding bit MUST be set to `0'. All other bits are reserved and MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node. A node MUST support the constant operation type 0x01. Supported Door Lock Mode List Length (8 bits) This field MUST advertise the length in bytes of the Supported Door Lock Mode field carried in the command. Supported Door Lock Mode (M bytes) This field is used to advertise the supported Door Lock Modes values. The length of this field in bytes MUST match the value advertised in the Supported Door Lock Mode List Length field. Each byte MUST indicate the value of a supported Door Lock Mode that can be specified in a Door Lock Operation Set Command. Each byte MUST be encoded according to Table 43. A sending node MUST advertise support for the Door Lock modes 0x00 and 0xFF.

CC:0062.04.08.11.00C CC:0062.04.08.11.00D
CC:0062.04.08.11.00E CC:0062.04.08.11.00F
CC:0062.04.08.11.010 CC:0062.04.08.11.011

Supported Outside Handle Modes Bitmask (4 bits) This field is used to advertise which outside handles can be enabled and disabled using the Door Lock Configuration Set Command. This field MUST be treated as a bitmask and represent outside door handles as described in Table 45. If the corresponding handle can be enabled and disabled, the corresponding bit MUST be set to 1. If the corresponding handle cannot be enabled or disabled, the corresponding bit MUST be set to 0. Supported Inside Handle Modes Bitmask (4 bits) This field is used to advertise which inside handles can be enabled and disabled using the Door Lock Configuration Set Command. This field MUST be treated as a bitmask and represent inside door handles as described in Table 45. If the corresponding handle can be enabled, the corresponding bit MUST be set to 1. If the corresponding handle cannot be enabled, the corresponding bit MUST be set to 0. Supported Door components (8 bits) This field MUST advertise the supported door lock component that can be reported in the Door Lock condition field of the Door Lock Operation Report Command. This field MUST be treated as a bitmask and represent inside door handles as described in Table 50
Table 50, Door Lock Capabilities Report::Supported Door components encoding

Bit 7..3

Bit 2

Bit 1

Bit 0

Reserved

Latch

Bolt

Door

CC:0062.04.08.11.012 If the corresponding component is supported, the corresponding bit MUST be set to `1'. If the corresponding component is not supported, the corresponding bit MUST be set to `0'.

CC:0062.04.08.11.013
CC:0062.04.08.11.014 CC:0062.04.08.11.015
CC:0062.04.08.11.016 CC:0062.04.08.11.017
CC:0062.04.08.11.018

ARS (Auto-Relock support) (1 bit) This field is used to advertise if the sending node supports the auto-relock functionality. The value 1 MUST indicate that the auto-relock functionality is supported. The value 0 MUST indicate that the auto-relock functionality is not supported. HRS (Hold and release support) (1 bit) This field MUST advertise if the hold and release functionality is supported. The value 0 MUST indicate that the hold and release functionality is not supported The value 1 MUST indicate that the hold and release functionality is supported. TAS (Twist assist support) (1 bit) This field MUST advertise if the Twist Assist functionality is supported. The value 0 MUST indicate that the twist assist functionality is not supported The value 1 MUST indicate that the twist assist functionality is supported. BTBS (Block-to-block support) (1 bit) This field is used to advertise if the block-to-block functionality is supported. The value 0 MUST indicate that the block-to-block functionality is not supported The value 1 MUST indicate that the block-to-block functionality is supported.

4.40 Door Lock Logging Command Class, version 1
This Door Lock Logging Command Class provides an audit trail in an access control application. Each time an event takes place at the door lock, the system logs the user's ID, date, time etc.
4.40.1 Door Lock Logging Records Supported Get Command
This command is used to request the number of records that the audit trail supports.
The Door Lock Logging Records Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_DOOR_LOCK_LOGGING

Command = DOOR_LOCK_LOGGING_RECORDS_SUPPORTED_GET

4.40.2 Door Lock Logging Records Supported Report Command This command is used to report the maximum number of reports the audit trail supports.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DOOR_LOCK_LOGGING

Command = DOOR_LOCK_LOGGING_RECORDS_SUPPORTED_REPORT

Max records stored

Max records stored (8 bits) The number of records the audit trail supports stored in a queue.

4.40.3 Door Lock Logging Record Get Command
This command is used to request the audit trail.
The Door Lock Logging Record Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_DOOR_LOCK_LOGGING

Command = RECORD_GET

Record number

Record number (8 bits)
The Record number field indicates the record to be requested.
A value 0 ­ Max records stored is acceptable with a value of 0 being the most recent entry. When requesting with a value of 0, the report will contain the record number so the latest record is known.

4.40.4 Door Lock Logging Record Report Command
This command returns records from the audit trail.
To provide flexibility the user associated with the record may be identified by one of two methods: the user identifier or the user code.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_DOOR_LOCK_LOGGING

Command = RECORD_REPORT

Record number

Timestamp - Year 1

Timestamp - Year 2

Timestamp ­ Month

Timestamp ­ Day

Record status

Timestamp - Hour Local Time

Timestamp - Minute Local Time

Timestamp - Second Local Time

Event Type

User Identifier

User Code Length

USER_CODE 1

..

USER_CODE N

Record number (8 bits) Record number requested (1- 255). Timestamp - Year (16 bits) Specify the year in the usual Gregorian calendar. The first byte (Year 1) is the most significant byte. Timestamp - Month (8 bits) Specify the month of the year between 01 (January) and 12 (December). Timestamp - Day (8 bits) Specify the day of the month between 01 and 31.

Record status (3-bits) The Record Status field is used to indicate if legal data is stored in the record.

Record State 0 1

Description Requested record is empty. Requested record holds legal data.

Timestamp - Hour Local Time (8 bits)
Specify the number of complete hours that have passed since midnight (00-23) in local time.
Timestamp - Minute Local Time (8 bits)
Specify the number of complete minutes that have passed since the start of the hour (00-59) in local time.
Timestamp - Second Local Time (8 bits)
Specify the number of complete seconds since the start of the minute (00-59) in local time. The value 60 used to keep UTC from wandering away is not supported.
Note: If RTC (Real Time Clock) all values in Time Stamp record SHOULD be set to 0. Most recent Record MUST be stored under Record Number 1.
User Identifier (8 bits)
The User Identifier is used to recognize the user identity. A valid User Identifier MUST be a value starting from 1 to the maximum number of users supported by the device; refer to the User Code Command Class. A User Identifier of 0 is acceptable when the record does not need to identify a user or if the User Code is provided in this report.
User Code Length (8 bits)
The User Code Length field indicates the number of bytes used to hold the User Code. A length of 0 is acceptable when the record does not need to identify a User Code or when the User Identifier field is non-zero.
USER_CODE (N bytes)
These fields contain the user code. Minimum code length is 4 and maximum 10 ASCII digits. For further details about the user code, refer to the User Code Command Class.

Event Type (8 bits)

This field MUST be encoded according to Table 51.

Table 51, Door Lock Logging Record Report::Event Type encoding

Event type Description

1

Lock Command: Keypad access code verified lock command

2

Unlock Command: Keypad access code verified unlock command

3

Lock Command: Keypad lock button pressed

4

Unlock command: Keypad unlock button pressed

5

Lock Command: Keypad access code out of schedule

6

Unlock Command: Keypad access code out of schedule

7

Keypad illegal access code entered

8

Key or latch operation locked (manual)

9

Key or latch operation unlocked (manual)

10

Auto lock operation

11

Auto unlock operation

12

Lock Command: Z-Wave access code verified

13

Unlock Command: Z-Wave access code verified

14

Lock Command: Z-Wave (no code)

15

Unlock Command: Z-Wave (no code)

16

Lock Command: Z-Wave access code out of schedule

17

Unlock Command Z-Wave access code out of schedule

18

Z-Wave illegal access code entered

19

Key or latch operation locked (manual)

20

Key or latch operation unlocked (manual)

21

Lock secured

22

Lock unsecured

23

User code added

24

User code deleted

25

All user codes deleted

26

Master code changed

27

User code changed

28

Lock reset

29

Configuration changed

30

Low battery

31

New Battery installed

Not all events types are supported and it is up to manufacturer to decide which ones are to be supported.

4.41 Energy Production Command Class, version 1
The Energy Production Command Class is used to retrieve various production data from the device.
4.41.1 Energy Production Get Command
This command is used to request various production data from the device.
The Energy Production Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_ENERGY_PRODUCTION

Command = ENERGY_PRODUCTION_GET

Parameter Number

Parameter Number (8 bits)
The parameter number specifies the kind of production data to retrieve. Currently the following parameter numbers are defined:

Parameter Number

Description

0x00

Instant energy production

0x01

Total energy production

0x02

Energy production today

0x03

Total production time

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

4.41.2 Energy Production Report Command This command is used to retrieve various production data from the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_ENERGY_PRODUCTION

Command = ENERGY_PRODUCTION_REPORT

Parameter Number

Precision

Scale

Size

Value 1

...

Value N

Parameter Number (8 bits) Refer to description under the Energy Production Get Command. Precision (3 bits) The precision field describes what the precision of the value is. The number indicates the number of decimals. The decimal value 1025 with precision 2 is therefore equal to 10.25. Scale (2 bits) The Scale field indicates the scale used for the specified parameter number:

Parameter Number Scale Description

0x00

0x00 W

0x01

0x00 Wh

0x02

0x00 Wh

0x03

0x00 Seconds

0x01 Hours

Size (3 bits)
The size field indicates the number of bytes used for the value. This field can take values from 1 (001b), 2 (010b) or 4 (100b).
Value (N bytes)
The value is MUST be treated as a signed field (Table 10). The field MAY be 1, 2 or 4 bytes in size. The first byte is the most significant byte.

4.42 Entry Control Command Class, version 1
The Entry Control Command Class defines a method for advertising user input to a central Entry Control application and for the discovery of capabilities. User input may be button presses, RFID tags or other means.
It is RECOMMENDED that this command class is only supported via secure communication. This recommendation may be raised to a stronger requirement at the Device Class or Device Type level.
The Entry Control Command Class provides the following commands:
 Key Supported Get/Report ­ Used by the controller to request which ASCII keys are present on the Entry Control device.
 Event Supported Get/Report ­ Used by the controller to request which Event Types are supported by the Entry Control device.
 Configuration Set/Get/Report ­ Used by the controller to configure the Entry Control device  Notification Command ­ Used by the Entry Control device to notify the controller of inputs.
4.42.1 Interoperability Considerations
It is RECOMMENDED that an Entry Control input device that implements the Entry Control Command Class also implements the Indicator Command Class, version 2.
If implementing the Indicator Command Class, version 2, it is RECOMMENDED that all indicator resources are addressable via the Indicator Command Class, version 2.
The input device MAY implement local control of indicator resources. If the Indicator Command Class, version 2 is supported, the first received Indicator Set command MUST disable all local control of indicator resources ­ except for interface feedback functionality like a short beep on each button press.
Transmissions may fail due to central control application fault or due to RF jamming. It is RECOMMENDED that an Entry Control input device provides local user feedback if the transmission of notifications to the central control application fails.
If the device only features light indicators, it is RECOMMENDED that all light flashes at 2Hz for at least 5 seconds to indicate transmission error.
If the device features a buzzer, it is RECOMMENDED that the buzzer generates sound pulses at a rate of 2Hz for at least 5 seconds to indicate transmission error.
If implementing the indicator Command Class, version 2, in devices based on Role Type RSS (using Wakeup Command Class), the control of indicators must be synchronized with the Wakeup Notification. The controller must therefore wait for the Wakeup Notification, before it can control the indictors. The device implementing the indicator Command Class must therefore send the Wakeup Notification after sending the Entry Control Notification Command, in case the device expects to be controlled.
4.42.2 Security Considerations
An attacker could theoretically determine the length of manually entered user credentials even if they are transmitted via encryption. It is therefore MANDATORY to add padding bytes to ASCII strings so that all transferred ASCII strings are structured as one or more blocks of 16 characters. The ASCII code 0xFF MUST be reserved for padding purposes and it MUST NOT be used for any other purposes.

4.42.3 Handling user supplied data
The Entry Control device must cache the user input before sending the full entry in one Notification Frame. A user input MUST therefore have a termination, which MAY be determined by:
 The Key Cache Size is exceeded  The Key Cache Timeout is exceeded  A Command Button is pressed  User data is received by other means, e.g. from an RFID tag
Key Cached Size:
The Key Cached Size is configured to specify the number of user inputs before the Notification Frame is sent. After sending the Notification Frame the cache must be cleared and subsequent user inputs MUST be considered a new entry.
The Key Cached Size May be configured to 1, in which case a Notification Frame is send for each user input.
It is RECOMMENDED to have a default Key Cached Size of 4, in which case the Notification Frame will be send after 4 entries.
Key Timeout:
The Key Timeout is configured to specify the maximum time between user inputs. If the time between user inputs exceeds the Timeout, the cached user inputs will be send in a Notification Frame. After sending the Notification Frame the cache must be cleared and subsequent user inputs MUST be considered a new entry.
Based on Command Button:
A user input may be terminated by the user pressing on of the Command Buttons like ENTER or ARM_ALL. The cached entry will be sent in a Notification Frame immediately after the user presses the Command Button. After sending the Notification Frame the cache must be cleared and subsequent user inputs MUST be considered a new entry.
Based on RFID:
When presenting an RFID tag, the ID will be read from the tag, and this terminates the user input. So the cached ID `s from the RFID tag data can immediately be sent in a Notification Frame. After sending the Notification Frame the cache must be cleared and subsequent user inputs MUST be considered a new entry.
Presenting an RFID tag may also terminate an ongoing user input. For instance, a user may enter four characters and subsequently present an RFID tag. In that case, the four entries must first be sent in one Notification Frame, and subsequently the ID `s from the RFID tag data is sent in a second Notification Frame.
4.42.4 Handling Incorrect Entry
A user may do an incorrect entry e.g. the credential is 1234 but the user enters 1734. In this case the terminal may provide a "delete" option, to allow the user to fix or re-enter the credential. If a "delete" option is not provided, the invalid code must first be send, followed by a new (correct) entry.

The terminal must not assume that the receiving controller does error handling like 1+7+Delete+2+3+4 = 1234. 4.42.5 Entry Control Notification Command This command is used to advertise user input. Depending on the Event Type, this command MAY carry manually entered user credentials.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_ENTRY_CONTROL

Command = ENTRY_CONTROL_NOTIFICATION

Sequence Number

Reserved

Data Type

Event Type

Event Data Length

Event Data 1

(optional)

...

Event Data N

(optional)

Sequence Number (8 bit) The sequence number MUST be incremented each time a new command of this type is issued. The value MUST be in the range 0..255. The initial value MAY be any value in the range 0..255. A receiving device MUST use the Sequence Number to detect and ignore duplicates. Reserved This field MUST be set to 0 by a sending device and MUST be ignored by a receiving device.

Data Type (2 bits) This field is used to advertise the type of data (if any) that is appended to this command.
Table 52, Entry Control Notification :: Event Data Type

Data Type

0x00

NA

0x01 RAW

0x02 ASCII

0x03 MD5

Description
No data included
1 to 32 bytes of arbitrary binary data
1 to 32 ASCII encoded characters. ASCII codes MUST be in the value range 0x000xF7. The string MUST be padded with the value 0xFF to fit 16 byte blocks when sent in a notification.
16 byte binary data encoded as a MD5 hash value.

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

Event Type (4 bit) This field is used to advertise the actual Event Type. The field MUST be encoded according to section 4.42.13 Event Data Length (8 bit) This field MUST advertise the length of the Event Data field in bytes. The value MUST be in the range 0..32. If no data bytes are included, this field MUST be set to 0. Event Data (n bytes) This field is used to carry data related to the event, e.g. received from an RFID tag. The length of this field MUST comply with the length advertised by the Event Data Length field. The format of this field MUST comply with the data format advertised by the Data Type field.

4.42.6 Entry Control Key Supported Get Command
This command is used to query the keys that a device implements for entry of user credentials.
The Entry Control Key Supported Report command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_ENTRY_CONTROL

Command = ENTRY_CONTROL_KEY_SUPPORTED_GET

4.42.7 Entry Control Key Supported Report Command
This command is used to advertise the keys that a device implements for entry of user credentials.
A management interface may determine the available keys for credential entry from this command. The range of available Command Keys may be determined via the Entry Control Event Supported Report Command.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_ENTRY_CONTROL

Command = ENTRY_CONTROL_KEY_SUPPORTED_REPORT

Key Supported Bit Mask Length

Key Supported Bit Mask 1

...

Key Supported Bit Mask N

Key Supported Bit Mask Length
This field is used to advertise the number of Key Supported Bit Mask Bytes to follow.
Only the Key Supported Bit Mask bytes until the last supported ASCII key SHOULD be included.
Key Supported Bit Mask (Variable length)
This field is used to advertise the keys that a device implements for entry of user credentials.
The Key Supported Bit Mask field MUST advertise ASCII codes that represent the supported keys.  Bit 0 in Bit Mask 1 indicates that the supporting device may issue ASCII code 0  Bit 1 in Bit Mask 1 indicates that the supporting device may issue ASCII code 1 ...  Bit 7 in Bit Mask 16 indicates that the supporting device may issue ASCII code 127

4.42.8 Entry Control Event Supported Get Command
This command is used to request the supported Events of a device.
The Entry Control Event Supported Report command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_ENTRY_CONTROL

Command = ENTRY_CONTROL_EVENT_SUPPORTED_GET

4.42.9 Entry Control Event Supported Report Command This command is used to advertise the supported Event Types.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_ENTRY_CONTROL

Command = ENTRY_CONTROL_EVENT_SUPPORTED_REPORT

Reserved

Data Type Supported Bit Mask Length

Data Type Supported Bit Mask 1

...

Data Type Supported Bit Mask M

Reserved

Event Supported Bit Mask Length

Event Type Supported Bit Mask 1

...

Event Type Supported Bit Mask N

Key Cached Size supported Minimum

Key Cached Size supported Maximum

Key Cached Timeout supported Minimum

Key Cached Timeout supported Maximum

Data Type Supported Bit Mask Length (2 bits) This field is used to advertise the number of Data Type Supported Bit Mask Bytes to follow. Reserved This field MUST be set to 0 by a sending device and MUST be ignored by a receiving device. Data Type Supported Bit Mask (Variable length) This field is used to advertise the supported Data Types.
 Bit 0 in Bit Mask 1 indicates if Data Type 0 is supported  Bit 1 in Bit Mask 1 indicates if Data Type 1 is supported ... For the definition of Data Type IDs, refer to Table 52.

Event Type Supported Bit Mask Length (1 byte) This field is used to advertise the number of Event Type Supported Bit Mask Bytes to follow. Event Type Supported Bit Mask (variable length) This field is used to advertise the supported Event Type.
 Bit 0 in Bit Mask 1 indicates if Event Type 0 is supported  Bit 1 in Bit Mask 1 indicates if Event Type 1 is supported ... For the definition of Event Type IDs, refer to Table 53. Key Cached Size Supported Minimum The minimum configurable number of key entries before the CACHED_KEYS notification is sent. Refer to 4.42.10 Key Cached Size Supported Maximum The maximum configurable number of key entries before the CACHED_KEYS notification is sent. Refer to 4.42.10 Key Cached Timeout Supported Minimum The minimum configurable timeout before the CACHED_KEYS notification is sent. Refer to 4.42.10 Key Cached Timeout Supported Maximum The maximum configurable timeout before the CACHED_KEYS notification is sent. Refer to 4.42.10 4.42.10 Entry Control Configuration Set Command This command is used to configure Event Type specific parameters.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_ENTRY_CONTROL

Command = ENTRY_CONTROL_CONFIGURATION_SET

Key Cache Size

Key Cache Timeout

Key Cache Size (1 byte)
This field specifies the number of characters the key cache MUST store before sending data to the central control application. Data MUST be sent when the number of characters in the cache matches or exceeds the value of this field.
The value MUST be in the range 1..32. The default value of this field SHOULD be 4.
In deployments where characters are entered first and a command button is pressed subsequently, it is RECOMMENDED that this field is set to 32 and that the Key Cache Timeout is set to 2 seconds.
Key Cache Timeout (1 byte)
This field specifies the number of seconds the key cache MUST wait for additional characters before sending data to the central control application. Data MUST be sent if a Key Cache Timeout occurs.
The Key Cache Timeout MUST be measured from the most recent reception of a character.
The value SHOULD be in the range 1..10 seconds. The default value SHOULD be 2 seconds.
4.42.11 Entry Control Configuration Get Command
This command is used to request the operational mode of a device.
The Entry Control Configuration Report command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_ENTRY_CONTROL

Command = ENTRY_CONTROL_CONFIGURATION_GET

4.42.12 Entry Control Configuration Report Command This command is used to advertise the current operational mode of a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_ENTRY_CONTROL

Command = ENTRY_CONTROL_CONFIGURATION_REPORT

Key Cache Size

Key Cache Timeout

Key Cache Size (1 byte) Refer to 4.42.10 Entry Control Configuration Set Command. Key Cache Timeout (1 byte) Refer to 4.42.10 Entry Control Configuration Set Command. 4.42.13 Event Types The Event Types MUST be encoded according to Table 53.
Table 53, Event Type and Event identifiers

Event Type

0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13 0x14

CACHING CACHED_KEYS ENTER DISARM_ALL ARM_ALL ARM_AWAY ARM_HOME EXIT_DELAY ARM_1 ARM_2 ARM_3 ARM_4 ARM_5 ARM_6 RFID BELL FIRE POLICE ALERT_PANIC ALERT_MEDICAL GATE_OPEN

0x15 GATE_CLOSE

0x16 LOCK 0x17 UNLOCK 0x18 TEST

Recommended Button Label Enter Disarm Arm Away Home Arm_Delay Arm zone 1 Arm zone 2 Arm zone 3 Arm zone 4 Arm zone 5 Arm zone 6  Fire Police
Open, Up. 'O' or similar Close, Down, 'C' or similar
Test

Event Data (optional)
ASCII bytes ASCII bytes ASCII bytes ASCII bytes ASCII bytes ASCII bytes ASCII bytes ASCII bytes ASCII bytes ASCII bytes ASCII bytes ASCII bytes ASCII bytes As advertised by the Data Type field ASCII bytes
ASCII bytes
ASCII bytes ASCII bytes ASCII bytes

0x19 CANCEL

Cancel

ASCII bytes

All other values are reserved and MUST NOT be used by a sending device. Reserved values MUST be

ignored by a receiving device.

Event Type CACHING

The CACHING Event Type is used to indicate to the central controller that the user has started entering credentials, and that caching is initiated. This allows the central controller to change the indications on the Entry Control device through the indicator Command Class, or to change the status of the central controller user interface.

If Key Cached Size it set to 1, the CACHING event notification MUST NOT be sent. Instead each individual credential byte MUST be sent in its own CACHED_KEYS event notification.

Event Type CACHED_KEYS

The CACHED_KEYS Event Type is used to send user inputs in a Notification Frame. The CACHED_KEYS is sent when the user input is terminated by one of the following reasons:

 The Key Cache Size is exceeded  The Key Cache Timeout is exceeded  A command button is pressed  User data is received by other means, e.g. from an RFID tag

4.43 Generic Schedule Command Class, version 1

The Generic Schedule Command Class is used to define schedules.
Schedules defined in this command class are essentially time ranges or intervals. Each schedule is associated to a Schedule ID.
The Schedules defined in this Command Class can be used in other Command Classes, e.g. to schedule when user credentials are valid or when to apply a particular configuration.

4.43.1 Terminology
Schedules are composed by one or more Time Range(s). A time range is a composed of one or several scheduling parameters, such as weekdays, day of the month, hour of the day, etc.
Time ranges are defined individually with scheduling parameters. For example, it could be Time Range 1 representing weekdays during work hours and Time Range 2 representing public holidays at fixed dates. (e.g. 25th of December and 31st of October)
A schedule can then be set including or excluding each of its composing time ranges. Schedule ID 1 could include weekdays work hours (Time Range 1) and exclude public holidays (Time Range 2). It means that Schedule 1 must be active only on weekdays work hours when it is not a public holiday.
At least one of the included Time Ranges conditions must be fulfilled and none of the excluded Time Ranges must be fulfilled for a Schedule to be active.

4.43.2 Interoperability considerations
This Command Class relies on time and date synchronization between controlling and supporting nodes.
Nodes supporting this command class should also have correct time or date settings depending on their capabilities. Supporting nodes may support the Clock Command Class for this purpose. The Time Command Class may also be used for reading the current date and time at the supporting node.

1.1.1 Generic Schedule Capabilities Get Command
This command is used to request the scheduling capabilities of a supporting node.
The Generic Schedule Capabilities Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_GENERIC_SCHEDULE

Command = GENERIC_SCHEDULE_CAPABILITIES_GET

1.1.2 Generic Schedule Capabilities Report Command
This command is used to advertise the number of supported Schedule Slot IDs for each Schedule Type/User Identifier by the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_GENERIC_SCHEDULE

Command = GENERIC_SCHEDULE_CAPABILITIES_REPORT

Number of supported Schedule IDs (MSB)

Number of supported Schedule IDs (LSB)

Res

Number of supported Time Range IDs (MSB)

Number of supported Time Range IDs (LSB)

Number of supported Time Ranges per Schedule

Reserved

Week- Date Hour &

days

Minute

Number of supported Schedule IDs (16 bits) This field is used to indicate how many Schedule IDs are supported by a supporting node. This field MUST be in the range 1..65535. Number of supported Time Range IDs (15 bits) This field is used to indicate how many Time Ranges IDs are supported by a supporting node. This field MUST be in the range 1.. 32767. The number of supported Time Ranges IDs should be equal or greater than the (Number of supported Schedule IDs) x (Number of supported Time Ranges per Schedule) Number of supported Time Ranges per Schedule (8 bits) This field is used to indicate how many time ranges can be used as part of 1 schedule. This field MUST be in the range 1..255. Weekdays (1 bit) This field is used to indicate if the supporting node can accept weekdays in the time ranges. The value 0 MUST indicate that weekdays are not supported in time ranges and will be ignored. The value 1 MUST indicate that weekdays are supported in time ranges.

Date (1 bit)
This field is used to indicate if the supporting node can accept years, month and day parameters in the time ranges.
The value 0 MUST indicate that start/stop dates are not supported in time ranges and will be ignored. The value 1 MUST indicate that start/stop dates are supported in time ranges.
Hour & Minute (1 bit)
This field is used to indicate if the supporting node can accept start and stop hours/minutes in the time ranges.
The value 0 MUST indicate that start/stop hours/minutes are not supported in time ranges and will be ignored. The value 1 MUST indicate that start/stop hours/minutes are supported in time ranges.
A supporting node MUST advertise support for at least 1 scheduling parameter (Weekdays, Date, Hour & Minute).

1.1.3 Generic Schedule Time Range Set Command This command is used to configure a Time Range for a supporting node. A Time Range MUST be active when all the conditions indicated in its configuration are fulfilled. Some examples are provided in 4.43.2.1.

7

6

5

4

3

2

1

0

Res
In use In use
In use
In use In use In use In use In use In use In use In use In use In use In use In use

Command Class = COMMAND_CLASS_GENERIC_SCHEDULE

Command = GENERIC_SCHEDULE_TIME_RANGE_SET

Time Range ID 1 (MSB)

Time Range ID 2 (LSB)

Weekday bitmask

Start Year (MSB)

Start Year (LSB)

Stop Year (MSB)

Stop Year (LSB)

Reserved

Start Month

Reserved

Stop Month

Reserved

Start Day

Reserved

Stop Day

Reserved

Start Hour

Reserved

Stop Hour

Res

Start Minute

Res

Stop Minute

Reserved

Daily Start Hour

Reserved

Daily Stop Hour

Res

Daily Start Minute

Res

Daily Stop Minute

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

Time Range ID (15 bits)
This field is used to indicate which Time Range ID to use for the Time Range being set.
This field MUST be in the range 0..[Number of supported Time Range IDs].
The value 0 MUST indicate that the supporting node MUST erase all configured Time Ranges. In this case, all other fields MUST be set to 0 and ignored by a receiving node. Values in the range 1..[Number of supported Time Range IDs] MUST indicate the actual Time Range ID to configure.
If a non-supported Time Range ID is specified in this command, a receiving node MUST ignore the command.
In use (15 x 1 bit)
This field is used to indicate if the corresponding scheduling parameter must be used in the Time Range being set.
This field MUST apply to the scheduling parameter being part of the same byte. E.g. the "in use" field part of the byte comprising the Weekday bitmask field MUST indicate if the Weekday bitmask parameter MUST be used and applied to the current Time Range.
The value 0 MUST indicate that the corresponding field is set to 0 and MUST be ignored. The value 1 MUST indicate that the corresponding field is set to a valid value and MUST be applied for the actual Time Range ID.
All "in use" fields set to 0 MUST indicate to erase a Time Range configuration.

Weekday bitmask (7 bits) This field is used to indicate on which days the actual Time Range ID MUST be active. This field MUST be treated as a bitmask and encoded according to Table 54.
Table 54, Generic Schedule Set::Weekday bitmask encoding
Bit # Weekday
Bit 0 Sunday Bit 1 Monday Bit 2 Tuesday Bit 3 Wednesday Bit 4 Thursday Bit 5 Friday Bit 6 Saturday
If the corresponding In use field is set to 1:  The value 0 MUST indicate that the Time Range MUST NOT be active during the corresponding weekday.  The value 1 MUST indicate that the Time Range MUST be active during the corresponding weekday.
If the corresponding In use field is set to 0, the Time Range MUST be active regardless of the current weekday. A supporting node MUST ignore this field if it advertises no support for the weekday scheduling parameter in the Generic Schedule Capabilities Report Command Start Year (15 bits) This field is used to indicate the start year for the actual Time Range ID. If the corresponding In use field is set to 1, the fields MUST indicate that the Time Range ID MUST be use this field as parameter. Refer to 4.43.2.1 for details. This field MUST be encoded using unsigned representation. If the corresponding In use field is set to 0, the Time Range MUST ignore this parameter. A supporting node MUST ignore this field if it advertises no support for the Date scheduling parameters in the Generic Schedule Capabilities Report Command

Stop Year (15 bits)
This field is used to indicate the stop year for the actual Time Range ID.
If the corresponding In use field is set to 1, the fields MUST indicate that the Time Range ID MUST be use this field as parameter. Refer to 4.43.2.1 for details. This field MUST be encoded using unsigned representation.
If the corresponding In use field is set to 0, the Time Range MUST ignore this parameter.
A supporting node MUST ignore this field if it advertises no support for the Date scheduling parameters in the Generic Schedule Capabilities Report Command
Start Month (4 bits)
This field is used to indicate the start month for the actual Time Range ID.
If the corresponding In use field is set to 1, the fields MUST indicate that the Time Range ID MUST be use this field as parameter. Refer to 4.43.2.1 for details. The values 1..12 MUST represent respectively January..December.
If the corresponding In use field is set to 0, the Time Range MUST ignore this parameter.
A supporting node MUST ignore this field if it advertises no support for the Date scheduling parameters in the Generic Schedule Capabilities Report Command
Stop Month (4 bits)
This field is used to indicate the stop month for the actual Time Range ID.
If the corresponding In use field is set to 1, the fields MUST indicate that the Time Range ID MUST be use this field as parameter. Refer to 4.43.2.1 for details. The values 1..12 MUST represent respectively January..December.
If the corresponding In use field is set to 0, the Time Range MUST ignore this parameter.
A supporting node MUST ignore this field if it advertises no support for the Date scheduling parameters in the Generic Schedule Capabilities Report Command
Start Day (5 bits)
This field is used to indicate the start day of the month for the actual Time Range ID.
If the corresponding In use field is set to 1, the fields MUST indicate that the Time Range ID MUST be use this field as parameter. Refer to 4.43.2.1 for details. The field MUST be in the range 1..31.
If the corresponding In use field is set to 0, the Time Range MUST ignore this parameter.
A supporting node MUST ignore this field if it advertises no support for the Date scheduling parameters in the Generic Schedule Capabilities Report Command

Stop Day (5 bits)
This field is used to indicate the stop day of the month for the actual Time Range ID.
If the corresponding In use field is set to 1, the fields MUST indicate that the Time Range ID MUST be use this field as parameter. Refer to 4.43.2.1 for details. The field MUST be in the range 1..31.
If the corresponding In use field is set to 0, the Time Range MUST ignore this parameter.
A supporting node MUST ignore this field if it advertises no support for the Date scheduling parameters in the Generic Schedule Capabilities Report Command
Start Hour /Stop Hour (5 bits) & Start Minute / Stop Minute (6 bits)
These fields are used to indicate from and until which times the actual Time Range ID MUST be active.
If the corresponding In use field is set to 1:  The Start Hour / Stop Hour fields MUST be in the range 0..23.  The Start Minute / Stop Minute fields MUST be in the range 0..59.
If the corresponding In use field is set to 0, the corresponding field MUST be ignored by the Time Range.
A supporting node MUST ignore this field if it advertises no support for the Hour & Minute scheduling parameter in the Generic Schedule Capabilities Report Command
Daily Start Hour /Stop Hour (5 bits) & Daily Start Minute / Stop Minute (6 bits)
These fields are used to indicate in which time range the actual Time Range ID MUST be active.
If the corresponding In use field is set to 1:  The fields MUST indicate that the Time Range ID MUST be active daily between the 2 specified hour and minutes times. (e.g. from the 08:00 to 16:30)  The Start Hour / Stop Hour fields MUST be in the range 0..23.  The Start Minute / Stop Minute fields MUST be in the range 0..59.
If the corresponding In use field is set to 0, the corresponding field MUST be ignored by the Time Range.
A supporting node MUST ignore this field if it advertises no support for the Hour & Minute scheduling parameter in the Generic Schedule Capabilities Report Command

4.43.2.1 Time Range parameters and rules

Time Ranges MUST be active when all their scheduling parameters are matching the conditions. We define the parameter groups shown in Table 55.

Table 55, Generic Schedule Set Command::Parameter groups

Parameter group

Fields

Daily Start time

Daily Start Hour Daily Start Minute

Daily Stop time

Daily Stop Hour Daily Stop Minute

Start Datetime

Start Year Start Month Start Day Start Hour Start Minute

Stop Datetime

Stop Year Stop Month Stop Day Stop Hour Stop Minute

Weekday

Weekday bitmask

4.43.2.1.1 All parameters specified
If all Scheduling parameters are specified in a TimeRange, the Time Range MUST be active when the following condition is fulfilled:
 Daily Start Time <= Current time < Daily Stop Time  Start Datetime <= Current datetime <= Stop Datetime  Current weekday in (weekday bitmask)
For example, if Daily Start Time is set to 08:30, Daily Stop Time is set to 17:00, Start Datetime is set to 10th of January 2019 at 12:00, Stop Datetime is set to 5th of February 2019 at 12:00, Weekday bitmask is set to Monday to Friday, then the Time Range will be active:
 On the 10th of January 2019 from 12:00 to 17:00  On subsequent weekdays until the 4th of February 2019, between 08:30 and 17:00  On the 5th of February 2019 from 08:30 to 12:00

4.43.2.1.2 Some parameters undefined in parameter groups
If some of the parameters within a group are undefined, they are to be interpreted as wildcard and excluded from the comparison for the parameter group. For example, if Start Datetime has no Start Year and Start Month defined, but only Start Day set to 15, the time range MUST start on the 15th of every month also regardless of the year.
If Start Day is set to 15 and Stop Minute is set to 30, then the Time Range MUST be active every hour during 30 minutes from the 15th until the end of each month.

4.43.2.1.3 All parameters missing from a parameter group
If all fields are undefined (not in use) for a parameter group, the corresponding parameter group MUST NOT be used for the Time Range activation. For example, if none of the Stop Datetime parameters are defined, then the Time Range MUST be active when:
 Daily Start Time <= Current time < Daily Stop Time  Start Datetime <= Current datetime  Current weekday in (weekday bitmask)

1.1.4 Generic Schedule Time Range Get Command
This command is used to request the configuration of a Time Range ID for a supporting node.
The Generic Schedule Time Range Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_GENERIC_SCHEDULE

Command = GENERIC_SCHEDULE_TIME_RANGE_GET

Res

Time Range ID 1 (MSB)

Time Range ID 2 (LSB)

Time Range ID (16 bits) This field is used to specify the requested Time Range ID. The first byte MUST carry the most significant byte of the 15 bits. A supporting node MUST return this value in the Time Range ID field in the returned Generic Schedule Report Command.

1.1.5 Generic Schedule Time Range Report Command This command is used to advertise the configuration of a Time Range ID for a supporting node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_GENERIC_SCHEDULE

Command = GENERIC_SCHEDULE_TIME_RANGE_REPORT

Res
In use In use
In use
In use In use In use In use In use In use In use In use In use In use In use In use Res

Time Range ID 1 (MSB)

Time Range ID 2 (LSB)

Weekday bitmask

Start Year (MSB)

Start Year (LSB)

Stop Year (MSB)

Stop Year (LSB)

Reserved

Start Month

Reserved

Stop Month

Reserved

Start Day

Reserved

Stop Day

Reserved

Start Hour

Reserved

Stop Hour

Res

Start Minute

Res

Stop Minute

Reserved

Daily Start Hour

Reserved

Daily Stop Hour

Res

Daily Start Minute

Res

Daily Stop Minute

Next Time Range ID

Next Time Range ID

Fields not described below MUST remain identical to the description in 1.1.3 Generic Schedule Time Range Set Command. Res / Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

Time Range ID (15 bits) This field is used to indicate which Time Range ID configuration is being advertised. If this field is set to a non-supported or non-configured Time Range ID, all scheduling parameters fields MUST be set to 0. Next Time Range ID (15 bits) This field is used to indicate the next non-empty Time Range ID. This field MUST indicate the next non-empty Time Range ID. The value 0 MUST indicate that there is no following Time Range ID configured at the receiving node. Non-empty Time Range slot ID means that at least 1 In use flag is set to 1.

1.1.6 Generic Schedule Set Command This command is used to configure a Schedule for a supporting node. A schedule MUST be active when:
 At least one of the included Time Ranges is active  None of the excluded Time Ranges are active. Refer to 4.43.2.2 for details.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_GENERIC_SCHEDULE

Command = GENERIC_SCHEDULE_SET

Schedule ID 1 (MSB)

Schedule ID 2 (LSB)

Number of Time Range IDs

Include/ exclude

Time Range ID 1 (MSB)

Time Range ID 1 (LSB)

...

Include/ exclude

Time Range ID N (MSB)

Time Range ID N (LSB)

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

Schedule ID (16 bits)
This field is used to indicate which Schedule slot ID to use for the schedule being set.
This field MUST be in the range 0..[Number of supported Schedule IDs].
The value 0 MUST indicate that the supporting node MUST erase all configured schedules. In this case, the Number of Time Range IDs field MUST be set to 0 by a sending node. Values in the range 1..[Number of supported Schedule IDs] MUST indicate the actual Schedule ID to configure.
If a non-supported Schedule ID is specified in this command, a receiving node MUST ignore the command.
Number of Time Range IDs (8 bits)
This field is used to indicate the number of Time Range IDs included as part of the Schedule.
This field MUST be in the range 0..[Number of supported Time Range IDs per Schedule].
A supporting node MUST ignore this command if it is set to a value higher than the reported Number of supported Time Ranges per Schedule field in the Generic Schedule Capabilities Report Command
The number of Include/exclude and Time Range ID field blocks in this command MUST be according to this field.
Include/exclude (N x 1 bit)
This field is used to indicate if the Schedule ID must include or exclude the corresponding Time Range ID.
The value 0 MUST indicate that the corresponding Time Range is excluded and the schedule MUST be active outside of the Time Range. The value 1 MUST indicate that the corresponding Time Range is included and the schedule MUST be active during the defined Time Range.
Time Range ID (N x 15 bits)
This field is used to indicate which Time Range ID MUST be part of the Schedule ID.
Undefined Time Range IDs (all zeroed out) may be part of Schedules.
4.43.2.2 Schedules and Time Ranges examples
4.43.2.2.1 Example 1  Time Range 1 is from 24th to 26th of December  Time Range 2 is from 17:00 to 08:00 every day  Time Range 3 is weekend days.
If a schedule is set to:  Include Time Range 1  Exclude Time Range 2  Include Time Range 3
Then it MUST be active:  every week-end from 08:00 to 17:00

 on the 24th,25th and 26th of December from 08:00 to 17:00 regardless of the current weekday.
4.43.2.2.2 Example 2  Time Range 3 is undefined (all unused value).
If a schedule is set to:  Include Time Range 1  Include Time Range 2  Include Time Range 3
Then the schedule MUST be active at all times.
4.43.2.2.3 Example 3  Time Range 3 is undefined (all unused value).
If a schedule is set to:  Include Time Range 1  Exclude Time Range 2  Exclude Time Range 3
Then the schedule MUST never be active.
4.43.2.2.4 Example 4  Time Range 1 has no start time and finishes on the 30th of June  Time Range 2 is from 08:00 to 17:00 on week days  Time Range 3 is 10:00 to 15:00 on weekend days
If a schedule is set to:  Include Time Range 1  Include Time Range 2  Include Time Range 3
Then the schedule MUST be active:  All the time from the 1st of January until the 30th of June  From 08:00 to 17:00 on weekdays between the 1st of July and the 31st of December every year  From 10:00 to 15:00 on weekends between the 1st of July and the 31st of December every year

1.1.7 Generic Schedule Get Command
This command is used to request the configuration of a Schedule ID for a supporting node.
The Generic Schedule Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_GENERIC_SCHEDULE

Command = GENERIC_SCHEDULE_GET

Schedule ID 1 (MSB)

Schedule ID 2 (LSB)

Schedule ID (16 bits) This field is used to specify the requested Schedule ID. The first byte MUST carry the most significant byte of the 16 bits. A supporting node MUST return this value in the Schedule ID field in the returned Generic Schedule Report Command.

1.1.8 Generic Schedule Report Command This command is used to advertise the contents of a Schedule for a supporting node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_GENERIC_SCHEDULE

Command = GENERIC_SCHEDULE_REPORT

Schedule ID 1 (MSB)

Schedule ID 2 (LSB)

Number of Time Range IDs

Include/ exclude

Time Range ID 1 (MSB)

Time Range ID 1 (LSB)

...

Include/ exclude

Time Range ID N (MSB)

Time Range ID N (LSB)

Next Schedule ID 1 (MSB)

Next Schedule ID 2 (LSB)

Fields not described below MUST remain identical to the description in 1.1.8 Generic Schedule Report Command. Res / Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

Schedule ID (16 bits) This field is used to indicate which Schedule ID configuration is being advertised. If this field is set to a non-supported or non-configured Schedule ID, all the Number of Time Range IDs field MUST be set to 0. Number of Time Range IDs (8 bits) This field is used to indicate the number of Time Range IDs included as part of the Schedule. This field MUST be in the range 0..[Number of supported Time Range IDs per Schedule]. The number of Include/exclude and Time Range ID field blocks in this command MUST be according to this field. Include/exclude (N x 1 bit) This field is used to indicate if the Schedule ID must include or exclude the corresponding Time Range ID. The value 0 MUST indicate that the corresponding Time Range is excluded and the schedule MUST be active outside of the Time Range. The value 1 MUST indicate that the corresponding Time Range is included and the schedule MUST be active during the defined Time Range. Time Range ID (N x 15 bits) This field is used to indicate which Time Range ID MUST be part of the Schedule ID. Undefined Time Range IDs (all zeroed out) may be part of Schedules. Next Schedule ID (16 bits) This field is used to indicate the next non-empty Schedule ID. This field MUST indicate the next non-empty Schedule slot ID. The value 0 MUST indicate that there is no following Schedule Slot ID configured at the supporting node.

4.44 Geographic Location Command Class, version 1 The Geographic Location Command Class is used to read latitude and longitude from another device. The latitude and longitude may also be set according to the geographic location in question. Date and geographic location may be used to calculate sunrise and sunset for e.g. automatic lighting control. 4.44.1 Multi Channel Considerations Multi Channel End Points SHOULD NOT support the Geographic Location Command Class. 4.44.2 Geographic Location Set Command This command is used to set latitude and longitude.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_GEOGRAPHIC_LOCATION

Command = GEOGRAPHIC_LOCATION_SET

Longitude Degrees

Long. Sign

Longitude Minutes

Latitude Degrees

Lat.

Latitude Minutes

Sign

Longitude (16 bits)
The longitude determines one's location on the earth's surface, East or West of the Greenwich Meridian. The Greenwich Meridian is located at the Greenwich observatory, in Greenwich, England to be the geographic point for where East and West meet. Therefore, Greenwich Meridian is indicated as 0° longitude. Longitude values for points East of the Meridian are always positive, while points West of the Meridian are always negative. Valid ranges are for degrees (from -180 to 180) and minutes (0-59). Other values will be interpreted as 0.
Latitude (16 bits)
The latitude determines one's location on the earth's surface, North or South of the Equator. Latitude is measured between -90° South, and +90° North of the Equator point (0°). Valid ranges are for degrees (from -90 to 90) and minutes (0-59). Other values will be interpreted as 0.

4.44.3 Geographic Location Get Command
This command is used to request latitude and longitude from a device.
The Geographic Location Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_GEOGRAPHIC_LOCATION

Command = GEOGRAPHIC_LOCATION_GET

4.44.4 Geographic Location Report Command This command returns latitude and longitude from a device in a Z-Wave network.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_GEOGRAPHIC_LOCATION

Command = GEOGRAPHIC_LOCATION_REPORT

Longitude Degrees

Long. Sign

Longitude Minutes

Latitude Degrees

Lat.

Latitude Minutes

Sign

Refer to description under the Geographic Location Set Command.

4.45 HRV Status Command Class, version 1
The residential Heat Recovery Ventilation (HRV) Status Command Class is used to read out a number of parameters in the ventilation system.
4.45.1 HRV Status Get Command
This command is used to request specific parameters from the ventilation system.
The HRV Status Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_HRV_STATUS

Command = HRV_STATUS_GET

Status Parameter

Status Parameter (8 bits) The status parameter used to indicate which status parameter that is requested.
Value Status Parameter 0x00 Outdoor Air temperature 0x01 Supply Air (to room) temperature 0x02 Exhaust Air (from room) temperature 0x03 Discharge Air temperature 0x04 Room temperature 0x05 Relative Humidity in room 0x06 Remaining filter life

4.45.2 HRV Status Report Command This command is used to report a specific status parameter in response to a HRV Status Get.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HRV_STATUS

Command = HRV_STATUS_REPORT

Status Parameter

Precision

Scale

Size

Value 1

....

Value N

Status Parameter (8 bits) The status parameter used to indicate which status parameter that is reported. Refer to 4.45.1 HRV Status Get for possible values. Precision (3 bits) The precision field describes what the precision of the setpoint value is. The number indicates the number of decimals. The decimal value 1025 with precision 2 is therefore equal to 10.25. Scale (2 bits) The scale field indicates the scale used the list of possible scales are given below:

Status Parameter Outdoor Air temperature Supply Air (to room) temperature Exhaust Air (from room) temperature Discharge Air temperature Room temperature Relative Humidity in room Remaining filter life

Scale Celsius (C) Fahrenheit (F) Celsius (C) Fahrenheit (F) Celsius (C) Fahrenheit (F) Celsius (C) Fahrenheit (F) Celsius (C) Fahrenheit (F) Percentage (%) Percentage (%)

Value 0 1 0 1 0 1 0 1 0 1 0 0

Size (3 bits)
The size field indicates the number of bytes used for the sensor value. This field can take values from 1 (001b), 2 (010b) or 4 (100b).

Value (N bytes)
The value MUST be treated as a signed field (Table 10). The value MAY be 1, 2 or 4 bytes in size. This first byte is the most significant byte.
4.45.3 HRV Status Supported Get Command
This command is used to request a bitmap of the supported status parameters.
The HRV Status Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_HRV_STATUS

Command = HRV_STATUS_SUPPORTED_GET

4.45.4 HRV Status Supported Report Command This command is used to report a bitmap indicating the supported status parameters.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HRV_STATUS

Command = HRV_STATUS_SUPPORTED_REPORT

Bit Mask 1

...

Bit Mask N

Bit Mask (N bytes)
The Bit Mask fields describe the supported status parameters from the ventilation system. Bit 0 in the Bit Mask 1 field used to indicate if the status parameter "Outdoor Air Temperature" is supported, 0 indicating not supported and 1 indicating supported. Bit 1 in the Bit Mask 1 field used to indicate if the status parameter "Supply Air Temperature" is supported and so forth. All available status parameters are given in Section 4.45.1 HRV Status Get.
It is only necessary to send the Bit Mask fields 1 and up to the one indicating the last support status parameter. The number of Bit Mask fields transmitted MUST be determined from the length field in the frame.

4.46 HRV Control Command Class, version 1 The Heat Recovery Ventilation (HRV) Control Command Class is introducing control of Heat Recovery Ventilation systems via the Z-Wave interface. 4.46.1 HRV Mode Set This command is used to set the desired mode in the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HRV_CONTROL

Command = HRV_CONTROL_MODE_SET

Reserved

Mode

Mode (5 bits) The mode identifier MAY be set to the following values:

Mode

Name

Description

0 Off

The HRV system is in the off state, frost protection can occur.

1 Demand / Automatic The HRV system is controlled based on sensor input.

2 Schedule

The HRV system is controlled based on predefined input from the factory and/or user/installer.

3 Energy Savings Mode The HRV system will be put into a reduced heat / ventilation mode.

4 Manual

The HRV system is in manual mode. The command HRV Manual Control Set may be used to manually control the device.

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

Reserved

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

4.46.2 HRV Mode Get Command
This command is used to request the current mode from the device.
The HRV Mode Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_HRV_CONTROL

Command = HRV_CONTROL_MODE_GET

4.46.3 HRV Mode Report Command The HRV Mode Report Command is used to report the mode from the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HRV_CONTROL

Command = HRV_CONTROL_MODE_REPORT

Reserved

Mode

Mode (8 bits) Refer to description under the HRV Mode Set command. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. 4.46.4 HRV Bypass Set Command This command is used to set the bypass mode when the ventilation system is set to manual mode. If the system is not in manual mode while receiving this command it MUST be ignored.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HRV_CONTROL

Command = HRV_CONTROL_BYPASS_SET

Bypass

Bypass (8 bits)
The value MAY be 0x00 (close) or 0xFF (open).
Furthermore, the field MAY carry a percentage value between 1 to 99 (0x01 - 0x63). If the ventilation system supports modulated bypass, the percentage value will represent the aperture of the bypass. If the system does not support the full range of aperture steps, the values SHOULD be mapped linearly over the entire scale.
If ventilation system does support modulated bypass the values from 1 to 99 MUST be interpreted as fully open.
The value 254 (0xFE) MAY be used to set the bypass into automatic mode.
4.46.5 HRV Bypass Get Command
This command is used to request the current bypass setting.
The HRV Bypass Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_HRV_CONTROL

Command = HRV_CONTROL_BYPASS _GET

4.46.6 HRV Bypass Report Command This command is used to report the current bypass parameters.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HRV_CONTROL

Command = HRV_CONTROL_BYPASS_REPORT

Bypass

Bypass (8 bits) See description in 4.46.4 HRV Bypass Set.

4.46.7 HRV Ventilation Rate Set Command
This command is used to set the ventilation rate when the ventilation system is set to manual mode. If the system is not in manual mode while receiving this command it MUST be ignored.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HRV_CONTROL

Command = HRV_CONTROL_VENTILATION_RATE_SET

Ventilation Rate

Ventilation Rate (8 bits)
The value MAY be 0x00 (off) or 0xFF (on).
The field MAY carry a percentage value between 1 to 99 (0x01 - 0x63). A ventilation system MAY map the values 1..99 to less than 99 steps.
4.46.8 HRV Ventilation Rate Get Command
This command is used to request the current ventilation rate setting.
The HRV Ventilation Rate Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_HRV_CONTROL

Command = HRV_CONTROL_VENTILATION_RATE_GET

4.46.9 HRV Ventilation Rate Report Command This command is used to report the current ventilation rate setting.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HRV_CONTROL

Command = HRV_CONTROL_VENTILATION_RATE_REPORT

Ventilation Rate

Ventilation Rate (8 bits) See description under Section 4.46.7 HRV Ventilation Rate Set Command.

4.46.10 HRV Mode Supported Get Command
This command is used to request the supported modes from the device.
The HRV Mode Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_HRV_CONTROL

Command = HRV_CONTROL_MODE_SUPPORTED_GET

4.46.11 HRV Mode Supported Report Command This command is used to report the supported modes from the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HRV_CONTROL

Command = HRV_CONTROL_MODE_SUPPORTED_REPORT

Reserved

Manual Control Supported

Bit Mask 1

...

Bit Mask N

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Manual Control Supported (3 bits) The manual control supported bits describes the supported manual control modes of the ventilation system. The mode is supported if the bit is 1. If the bit is 0, the mode is not supported. The bits are mapped to the following controls:

Bit

Name

0 Bypass Open / Close

1 Bypass Auto

2 Modulated Bypass

3 Ventilation Rate

E.g. a ventilation system supporting only open and close would report Manual Control Supported = 0x01.
Bit Mask (N bytes)
The Bit Mask fields describe the supported modes by the device.  Bit 0 in Bit Mask 1 field indicates if Mode = 0 (Off) is supported.  Bit 1 in Bit Mask 1 field indicates if Mode = 1 (Demand / Automatic) is supported. ...
If the Mode is supported the bit MUST be set to 1. If the Mode is not supported the bit MUST be set to 0. It is only necessary to send the Bit Mask fields from 1 and up to the one indicating the last supported mode. The number of Bit Mask fields transmitted MUST be determined from the length field in the frame.
All available modes are given in Section 4.46.1 HRV Mode Set.

4.47 Humidity Control Mode Command Class, version 1-2

The Humidity Control Mode Command Class is used to control a humidity control device. 4.47.1 Humidity Control Mode Set Command

This command is used to set the humidity control mode in the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HUMIDITY_CONTROL_MODE

Command = HUMIDITY_CONTROL_MODE_SET

Reserved

Mode

Reserved The reserved field is for future use. Reserved bits MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node. Mode (4 bits) The encoding of the humidity control mode field MUST be according to Table 56.
Table 56, Mode

Mode

Description

Version

0

Off ­ Humidity control system is off.

1

1

Humidify ­ The system will attempt to raise humidity to the humidifier

1

setpoint.

2

De-humidify ­ The system will attempt to lower the humidity to the de-

1

humidifier setpoint.

3

Auto - The system will automatically switch between humidifying and de-

2

humidifying in order to satisfy the humidify and de-humidify setpoints

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

4.47.2 Humidity Control Mode Get Command

This command is used to request the supported humidity control modes from the device.
The Humidity Control Mode Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_HUMIDITY_CONTROL_MODE

Command = HUMIDITY_CONTROL_MODE_GET

4.47.3 Humidity Control Mode Report Command

This command is used to report the humidity control mode from the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HUMIDITY_CONTROL_MODE

Command = HUMIDITY_CONTROL_MODE_REPORT

Reserved

Mode

Reserved The reserved field is for future use. Reserved bits MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node. Mode (4 bits) The encoding of the humidity control mode field MUST be according to Table 56.

4.47.4 Humidity Control Mode Supported Get Command

This command is used to request the supported modes from the device.
The Humidity Control Mode Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_HUMIDITY_CONTROL_MODE

Command = HUMIDITY_CONTROL_MODE_SUPPORTED_GET

4.47.5 Humidity Control Mode Supported Report Command

This command is used to report the supported humidity control modes from the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HUMIDITY_CONTROL_MODE

Command = HUMIDITY_CONTROL_MODE_SUPPORTED_REPORT

Bit Mask 1

...

Bit Mask N

Bit Mask (N bytes)
The Bit Mask fields MUST advertise the supported humidity control modes by the device. The encoding of the Size field MUST be according to Table 57.
Table 57, Supported Humidity Control Mode

Field Bit Support for Control Mode Version

Bit Mask 1 0 Reserved

1

Bit Mask 1 1 1 (Humidifier)

1

Bit Mask 1 2 2 (De-humidifer)

1

Bit Mask 1 3 3 (Auto)

2

All Bit Mask fields and bits not specified above are reserved. Reserved bits MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node.
For each individual bit, The value `0' MUST signify that the actual Mode is not supported. The value `1' MUST signify that the actual Mode is supported.
A sending node MAY omit trailing Bit Mask fields if they are not needed. The number of Bit Mask fields MUST be determined from the length field in the frame.

4.48 Humidity Control Operating State Command Class, version 1

The Humidity Control Operating State Command Class is used to obtain the operating state of the humidity control device.
4.48.1 Humidity Control Operating State Get Command

This command is used to request the operating state of the humidity control device.
The Humidity Control Operating State Report Command MUST be returned in response to thiscommand.
This command MUST NOT be issued via multicast addressing. 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_HUMIDITY_CONTROL_OPERATING_STATE

Command = HUMIDITY_CONTROL_OPERATING_STATE_GET

4.48.2 Humidity Control Operating State Report Command

This command is used to report the operating state of the humidity control device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HUMIDITY_CONTROL_OPERATING_STATE

Command = HUMIDITY_CONTROL_OPERATING_STATE_REPORT

Reserved

Operating State

Reserved The reserved field is for future use. Reserved bits MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node. Operating State (4 bits) The Operating State field MUST advertise the current operating state. The encoding of the Operating State field MUST be according to Table 58.

Operating State
0 1 2

Table 58, Operating State
Description
Idle Humidifying De-humidifying

Version
1 1 1

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

4.49 Humidity Control Setpoint Command Class, version 1-2

The Humidity Control Setpoint Command Class is used for humidity control setpoint handling. 4.49.1 Humidity Control Setpoint Set Command

This command is used to set the humidity control setpoint in the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT

Command = HUMIDITY_CONTROL_SETPOINT_SET

Reserved

Setpoint Type

Precision

Scale

Size

Value 1

...

Value N

Reserved The reserved field is for future use. Reserved bits MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node. Setpoint Type (4 bits) The Setpoint Type field MUST specify the humidity control setpoint to be set in the humidity control device. The encoding of the Setpoint Type field MUST be according to Table 59.
Table 59, Setpoint Type

Setpoint Type

Description

Version

1

Humidifier

1

2

De-humidifier

1

3

Auto

2

All other values are reserved. Reserved values MUST NOT be used by a sending node and MUST be ignored by a receiving node.
Precision (3 bits)
The precision field MUST specify the precision of the setpoint value. The number indicates the number of decimals. As an example, the decimal value 1025 with precision two (2) is equal to 10.25.

Scale (2 bits)
The Scale field MUST specify the humidity scale used. The encoding of the Scale field MUST be according to Table 60.
Table 60, Scale values

Scale

Description

Version

0 Percentage value

1

1 Absolute humidity (g/m3)

1

All other values are reserved. Reserved values MUST NOT be used by a sending node and MUST be ignored by a receiving node.
Size (3 bits)
The Size field MUST specify the number of bytes used for the Value field. The encoding of the Size field MUST be according to Table 61.
Table 61, Size values

Size

Description

Version

1 Value field is 1 byte long

1

2 Value field is 2 bytes long

1

4 Value field is 4 bytes long

1

All other values are reserved. Reserved values MUST NOT be used by a sending node and MUST be ignored by a receiving node.
Value (N bytes)
The value is a signed field. The field MAY be one, two, or four bytes in size as specified by the Size field. Value 1 is the most significant byte.

4.49.2 Humidity Control Setpoint Get Command

This command is used to request the given humidity control setpoint type in a device.
The Humidity Control Setpoint Report MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_HUMIDITY_CONTROL_SETPOINT

Command = HUMIDITY_CONTROL_SETPOINT_GET

Reserved

Setpoint Type

Reserved The reserved field is for future use. Reserved bits MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node. Setpoint Type (4 bits) This field MUST indicate which humidity control setpoint MUST be returned by the supporting node. The encoding of the Setpoint Type field MUST be according to Table 59.
4.49.3 Humidity Control Setpoint Report Command

This command is used to report the value of the humidity control setpoint type in the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT

Command = HUMIDITY_CONTROL_SETPOINT_REPORT

Reserved

Setpoint Type

Precision

Scale

Size

Value 1

...

Value N

Reserved
The reserved field is for future use. Reserved bits MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node.

For fields' description, refer to 4.49.1 Humidity Control Setpoint Set Command 4.49.4 Humidity Control Setpoint Supported Get Command

This command is used to request the humidity control setpoint types supported by the device.
The Humidity Control Setpoint Supported Report Command MUST be returned in response to a this command.
This command MUST NOT be issued via multicast addressing. 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_HUMIDITY_CONTROL_SETPOINT

Command = HUMIDITY_CONTROL_SETPOINT_SUPPORTED_GET

4.49.5 Humidity Control Setpoint Supported Report Command

This command is used to report the humidity control setpoint types supported by the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT

Command = HUMIDITY_CONTROL_SETPOINT_SUPPORTED_REPORT

Bit Mask 1

...

Bit Mask N

Bit Mask (N bytes)
The Bit Mask fields MUST advertise the humidity control setpoint types supported by the device.The encoding of the Size field MUST be according to Table 62.
Table 62, Humidity Control Setpoint Supported Report values

Field

Bit

Support for Setpoint Type

Version

Bit Mask 1

0

Reserved

1

Bit Mask 1

1

1 (Humidifier)

1

Bit Mask 1

2

2 (De-humidifer)

1

Bit Mask 1

3

3 (Auto)

2

All Bit Mask fields and bits not specified above are reserved. Reserved bits MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node.
For each individual bit, The value `0' MUST signify that the actual Setpoint Type is not supported. The value `1' MUST signify that the actual Setpoint Type is supported.
A sending node MAY omit trailing Bit Mask fields if they are not needed. The number of Bit Mask fields MUST be determined from the length field in the frame.

4.49.6 Humidity Control Setpoint Scale Supported Get Command

This command is used to retrieve the supported scales of the humidity control setpoints in the device.
The Humidity Control Scale Supported Report Command MUST be returned in response to this command.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT

Command = HUMIDITY_CONTROL_SETPOINT_SCALE_SUPPORTED_GET

Reserved

Setpoint Type

Reserved The reserved field is for future use. Reserved bits MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node. Setpoint Type (4 bits) Refer to the description under the Humidity Control Setpoint Set Command.
4.49.7 Humidity Control Setpoint Scale Supported Report Command

This command indicates the supported scales of the humidity control setpoint in a bit mask format.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT

Command = HUMIDITY_CONTROL_SETPOINT_SCALE_SUPPORTED_REPORT

Reserved

Scale Bit Mask

Reserved The reserved field is for future use. Reserved bits MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node. Scale Bit Mask (4 bits) Refer to the description under the Humidity Control Setpoint Set Command.

4.49.8 Humidity Control Setpoint Capabilities Get Command

This command is used to request the minimum and maximum setpoint values for a given humidity control Setpoint Type.
The Humidity Control Setpoint Capabilities Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_HUMIDITY_CONTROL_SETPOINT

Command = HUMIDITY_CONTROL_SETPOINT_CAPABILITIES_GET

Reserved

Setpoint Type

Reserved The reserved field is for future use. Reserved bits MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node. Setpoint Type (4 bits) Refer to the description under the Humidity Control Setpoint Set Command.

4.49.9 Humidity Control Setpoint Capabilities Report Command

This command is used to report the minimum and maximum values of the requested humidity control setpoint type.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT

Command = HUMIDITY_CONTROL_SETPOINT_CAPABILITIES_REPORT

Reserved

Setpoint Type

Precision

Scale

Size

Minimum Value 1

...

Minimum Value N

Precision

Scale

Size

Maximum Value 1

...

Maximum Value N

Refer to the description under the Humidity Control Setpoint Set Command for other parameter/field descriptions.

4.50 IR Repeater Command Class, version 1
The IR Repeater Command Class is used to get supporting nodes to learn and/or repeat IR signals used to control appliances.

A supporting node MUST have the capability to issue or receive IR signals.

1.1.1 IR Repeater Capabilities Get Command

This command is used to request the IR Repeater capabilities of a node.
The IR Repeater Capabilities Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_IR_REPEATER (0xA0)

Command = IR_REPEATER_CAPABILITIES_GET (0x01)

1.1.2 IR Repeater Capabilities Report Command

This command is used to advertise the IR Repeater capabilities of the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IR_REPEATER (0xA0)

Command = IR_REPEATER_CAPABILITIES_REPORT (0x02)

Number of IR Code identifiers for learning

IRR

LCR

RLC

PES

BES

Duty Cycle bitmask

Carrier

Minimum Sub Carrier

Maxium Sub Carrier

Minimum Pulse time unit (MSB)

Minimum Pulse time unit (LSB)

Maximum Pulse time unit (MSB)

Maximum Pulse time unit (LSB)

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

Number of IR Code identifiers for learning (8 bits)
This field indicates how many slots the sending node supports for learning and repeating IR Codes.
The value 0 MUST indicate that the no code can be learned and repeated. Values in the range 1..255 MUST indicate the number of codes that can be learnt and repeated.
A node advertising a value greater than 0 MUST support the following commands:
- IR Repeater IR Code Learning Start Command - IR Repeater IR Code Learning Stop Command - IR Repeater IR Code Learning Status Command - IR Repeater Learnt IR Code Remove Command - IR Repeater Learnt IR Code Get Command - IR Repeater Learnt IR Code Report Command
A node advertising a value greater than 0 MUST set the LCR field and/or RLC field to 1.
IRR (IR Repeater Repeat Command) (1 bit)
This field indicates if the nodes supports the following commands:
 IR Repeater Repeat Command The value 0 MUST indicate that the commands above are not supported. The value 1 MUST indicate that the commands above are supported.
LCR (Learnt Code Readback) (1 bit)
This field indicates if the supporting node can be read back learnt codes, so that a controlling node can read back current learnt codes. This field indicates if the nodes supports the following commands:
 IR Repeater Learnt IR Code Readback Get Command  IR Repeater Learnt IR Code Readback Report Command The value 0 MUST indicate that the commands above are not supported. The value 1 MUST indicate that the commands above are supported.
If this field is set to 1, the Number of IR Code Identifiers for learning field MUST be set to a value greater than 0.
If this field is set to 1, the IRR field MUST also be set to 1.

RLC (Repeat Learnt Code) (1 bit)
This field indicates if the supporting node can be repeat learnt codes. This field indicates if the nodes supports the following commands:
 IR Repeater Repeat Learnt Code Command The value 0 MUST indicate that the command above is not supported. The value 1 MUST indicate that the command above is supported.
If this field is set to 1, the Number of IR Code Identifiers for learning field MUST be set to a value greater than 0.
If this field is set to 1, the IRR field MUST also be set to 1.
PES (Pulse Encoding Support) (1 bit)
This field indicates if the supporting node supports Pulse Encoding of the repeat and/or learn codes.
The value 0 MUST indicate that Pulse Encoding of IR signals is not supported. The value 1 MUST indicate that Pulse Encoding of IR signals is supported.
If this field is set to 0, the BES field MUST be set to 1.
BES (Bit Encoding Support) (1 bit)
This field indicates if the supporting node supports Bit Encoding of the repeat and/or learn codes.
The value 0 MUST indicate that Bit Encoding of IR signals is not supported. The value 1 MUST indicate that Bit Encoding of IR signals is supported.
If this field is set to 0, the PES field MUST be set to 1.
If this field is set to 1, the sending node MUST support the following commands:  IR Repeater Configuration Set Command  IR Repeater Configuration Get Command  IR Repeater Configuration Report Command.
Duty Cycle bitmask (3 bits)
This field is used to advertise the supported Duty Cycles.
This field MUST be treated as a bitmask and encoded as follows:  Bit 0 in Duty Cycle field MUST represent `1/2 Duty Cycle'.  Bit 1 in Duty Cycle field MUST represent `1/3 Duty Cycle'.  Bit 2 in Duty Cycle field MUST represents `1/4 Duty Cycle'.
If a Duty Cycle is supported, the corresponding bit MUST be set to `1'. If a Duty Cycle is not supported, the corresponding bit MUST be set to `0'.
Carrier (8 bits)
This field is used to indicate the IR Carrier that the supporting node will use for repeating IR Codes indicated when receiving the IR Repeater Repeat Command.

This field MUST be expressed as 820 + x nm (nanometers). The values 0x00..0xFF MUST represents 820nm..1075nm. Minimum Sub Carrier (8 bits) This field MUST indicates the lower limit value that can be set at the supporting node in the IR Repeater Repeat Command for the Sub Carrier field. This field MUST be expressed in kHz (kilo Hertz). Maximum Sub Carrier (8 bits) This field MUST indicates the upper limit value that can be set at the supporting node in the IR Repeater Repeat Command for the Sub Carrier field. This field MUST be expressed in kHz (kilo Hertz).

Minimum Pulse time Unit (12 bits) This field MUST indicates the lower limit value that can be set at the supporting node in the IR Repeater IR Code Learning Start Command and IR Repeater Repeat Command for the Pulse time unit field. If the PES field is set to 0, this field MUST set to 0. Maximum Pulse time Unit (12 bits) This field MUST indicates the upper limit value that can be set at the supporting node in the IR Repeater IR Code Learning Start Command and IR Repeater Repeat Command for the Pulse time unit field. If the PES field is set to 0, this field MUST set to 0. 1.1.3 IR Repeater IR Code Learning Start Command This command is used to instruct a supporting node to start learning an IR Code. This command MUST be ignored by a receiving node if it advertises 0 Number of IR Code identifiers for learning in the IR Repeater Capabilities Report Command. A supporting node MUST stop learning IR Code and return a IR Repeater IR Code Learning Status Command a when a code has been received/learnt. This command MUST be ignored if the supporting node is already learning an IR code.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IR_REPEATER (0xA0)

Command = IR_REPEATER_IR_CODE_LEARNING_START (0x03)

IR Code identifier

Timeout

Reserved

Pulse time unit (MSB)

Pulse time unit (LSB)

IR Code identifier (8 bits)
This field indicates which IR Code identifier to use for storing the IR Code that will be learnt. Values in the range 1..255 MUST indicate the actual IR Code identifier to use for learning a new code.
This command MUST be ignored if this field is set to 0 or a larger value than the Number of IR Code identifiers for learning field advertised in the IR Repeater Capabilities Report Command.
Timeout (8 bits)
This field is used to indicate how long the supporting node MUST wait for an IR code to learn.
If no IR code is learnt within the time in seconds indicated by this field, a supporting node MUST stop learning codes and return a IR Repeater IR Code Learning Status Command with the status field set to 0x02 (Failed:timeout).

Pulse time unit (12 bits)
This field is used to configure the IR Code learning Pulse Encoding time unit. This field MUST be expressed in (µs) and be in the range 1..4096. Values lower than the Minimum Pulse time unit advertised by the supporting node in the IR Repeater Capabilities Report Command MUST be ignored by a supporting node. Values higher than the Maximum Pulse time unit advertised by the supporting node in the IR Repeater Capabilities Report Command MUST be ignored by a supporting node.
1.1.4 IR Repeater IR Code Learning Stop Command
This command is used to instruct a supporting node to stop learning an IR Code.
This command MUST be ignored by a receiving node if it advertises 0 Number of IR Code identifiers for learning in the IR Repeater Capabilities Report Command.
A supporting node MUST stop learning IR Code if a learning process was ongoing when this command is received.
A supporting node MUST return a IR Repeater IR Code Learning Status Command in response to this command.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IR_REPEATER (0xA0)

Command = IR_REPEATER_IR_CODE_LEARNING_STOP (0x04)

1.1.5 IR Repeater IR Code Learning Status Command
This command is used to report the status of the last IR Code learning operation. It MUST be issued by a supporting node when it stops learning IR Codes.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IR_REPEATER (0xA0)

Command = IR_REPEATER_IR_CODE_LEARNING_STATUS (0x05)

IR Code identifier

Status

IR Code identifier (8 bits)
This field indicates which IR Code identifier has been used for storing the IR Code during IR Code learning.
If a learning process was completed, interrupted or timed out, this field MUST be in the range 1..255 and MUST be set to the same value as the IR Code identifier field of the IR Repeater IR Code Learning Start Command that initiated IR Code learning.
If a no learning process was ongoing and a IR Repeater IR Code Learning Stop Command was received, this field MUST be set to 0.
Status(8 bit)
This field is used to indicate the status of the IR Code learning operation. This field MUST encoded according to Table 63.
Table 63,IR Code Learning Status::Status encoding

Value

Description

0x00 Failed: Learning buffer overflow The node learning buffer is too small to learnt the entire IR Code.

0x01 Failed: Forced learning stop The node has received an IR Repeater IR Code Learning Stop Command before any code was learnt

0x02 Failed: timeout The node has timed out and did not learn any code

0xFF Success A new code was learnt.

1.1.6 IR Repeater Learnt IR Code Remove Command
This command is used to instruct a supporting node to erase a previously learnt an IR Code.
This command MUST be ignored by a receiving node if it advertises 0 Number of IR Code identifiers for learning in the IR Repeater Capabilities Report Command.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IR_REPEATER (0xA0)

Command = IR_REPEATER_LEARNT_IR_CODE_REMOVE (0x06)

IR Code identifier

IR Code identifier (2 bytes)
This field indicates which IR Code identifier to erase. Values in the range 1..255 MUST indicate the actual IR Code identifier that MUST be erased by the supporting node.
The value 0 MUST indicate to erase all IR codes.
This command MUST be ignored if this field is set to a larger value than the Number of IR Code identifiers for learning field advertised in the IR Repeater Capabilities Report Command.
1.1.7 IR Repeater Learnt IR Code Get Command
This command is used to request a supporting node which IR Code identifiers have a valid IR Code learnt.
This command MUST be ignored by a receiving node if it advertises 0 Number of IR Code identifiers for learning in the IR Repeater Capabilities Report Command.
The IR Repeater Learnt IR Code Report Command MUST be returned in response to this command if it was not ignored.
This command MUST NOT be issued via multicast addressing.
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_IR_REPEATER (0xA0)

Command = IR_REPEATER_LEARNT_IR_CODE_GET (0x07)

1.1.8 IR Repeater Learnt IR Code Report Command This command is used to advertise the current IR learnt code stored at the supporting node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IR_REPEATER (0xA0)

Command = IR_REPEATER_LEARNT_IR_CODE_REPORT (0x08)

Reserved

IR Code idenfier status length

IR Code identifier status bitmask 1

...

IR Code identifier status bitmask N

IR Code idenfier status length (5 bits)

This field is used to indicate the length in bytes of the IR Code identifier status bitmask field.

This field MUST be set to the minimum value which allows advertising all IR Code currently set at the supporting node.

IR Code identifier status bitmask (N bytes)

This field advertises the supported IR Code identifier status values. The length of this field in bytes MUST match the value advertised in the IR Code Identifier Status Length field.

This field MUST be encoded as a bitmask:

·

Bit 0 in Bit Mask 1 represents IR Code Identifier 0x01.

·

Bit 1 in Bit Mask 1 represents IR Code Identifier 0x02.

·

...

If an IR Code is stored for the IR Code Identifier, the corresponding bit MUST be set to `1'. If no IR Code is stored for the IR Code Identifier, the corresponding bit MUST be set to `0'.

Only IR Codes with their bit set to `1' can be repeated with the IR Repeater Repeat Learnt Code Command

1.1.9 IR Repeater Learnt IR Code Readback Get Command
This command is used to request a supporting node has learnt an IR Code to return the code details to a controlling node.
This command MUST be ignored by a receiving node if it advertises no support for LCR (Learnt Code Readback) in the IR Repeater Capabilities Report Command.
The IR Repeater Learnt IR Code Report Command MUST be returned in response to this command if it was not ignored.
This command MUST NOT be issued via multicast addressing.
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_IR_REPEATER (0xA0)

Command = IR_REPEATER_LEARNT_IR_CODE_READBACK_GET (0x09)

IR Code identifier

Res

Report Number (MSB)

Report Number (LSB)

IR Code identifier (8 bits)
This field is used to indicate the IR Code identifier that the supporting node MUST return in response to this command.
A supporting node receiving a not supported IR Code Identifier or current unset/empty IR Code Identifier MUST return a report with Report Number set to 0, Last set to 1 and no Data block field.
Report Number (15 bits)
This field indicates the data block sequence number of the requested Learnt IR Code. The first data block MUST be identified by the Report Number value 1.
If this field is set to 0 or a value higher than the total number of reports (indicated with the last field in the report), a supporting node MUST return a report with no Data block field.

1.1.10 IR Repeater Learnt IR Code Readback Report Command This command is used to advertise the "contents" of a Learn IR Code.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IR_REPEATER (0xA0)

Command = IR_REPEATER_LEARNT_IR_CODE_READBACK_REPORT (0x0A)

IR Code identifier

Sub Carrier

Reserved

Duty Cycle

Pulse time unit (MSB)

Pulse time unit (LSB)

Last

Report Number (MSB)

Report Number (LSB)

Data block type 1

Data block length 1

Data block value 1, 1

...

Data block value 1, N

...

Data block type M

Data block length M

Data block value M, 1

...

Data block value M, N

IR Code identifier (8 bits) This field is used to indicate the IR Code identifier that the supporting node is currently sending. Sub Carrier (8 bits) For field description, refer to 1.1.15 IR Repeater Repeat Command Duty Cycle (2 bits) For field description, refer to 1.1.15 IR Repeater Repeat Command Pulse time unit (12 bits) For field description, refer to 1.1.15 IR Repeater Repeat Command Report Number(15 bits) For field description, refer to 1.1.15 IR Repeater Repeat Command

Last (1 bit) For field description, refer to 1.1.15 IR Repeater Repeat Command Data block type (2 bits) For field description, refer to 1.1.15 IR Repeater Repeat Command Data Block Length (5 bits) For field description, refer to 1.1.15 IR Repeater Repeat Command Data Block value (N bytes) For field description, refer to 1.1.15 IR Repeater Repeat Command 1.1.11 IR Repeater Configuration Set Command This command is used to configure the IR signal properties before the supporting node would repeat IR Codes. This command MUST be ignored by a receiving node if it advertises no support for Bit Encoding Support (BES) in the IR Repeater Capabilities Report Command. A supporting node MUST have a default bit 1, bit 0 and period configured after reset.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IR_REPEATER (0xA0)

Command = IR_REPEATER_CONFIGURATION_SET (0x0B)

Period (MSB)

Reserved

Period (LSB)

Data bit 0 encoding length (MSB)

Data bit 0 encoding length (LSB)

Data bit 0 encoding 1

...

Data bit 0 encoding N

Data bit 1 encoding length (MSB)

Data bit 1 encoding length (LSB)

Data bit 1 encoding 1

...

Data bit 1 encoding M

Period (12 bits)
This field is used to indicate the time period used for data bit encoding. This field MUST be expressed in micro seconds (µs). This field MUST be in the range 1..4096 Data bit '0' encoding length (2 bytes)
This field is used to indicate the length in bits of the Data bit '0' encoding field.
This field MUST be set to the exact number of bits to be interpreted from the Data bit '0' encoding field.
This field MUST be ignored by a supporting node if the BES field is set to 0 in the IR Repeater Capabilities Report Command. Data bit '0' encoding (N bytes)
This field advertisesthe Hi/Low polarization encoding to apply to encode a 0 in an IR Code using the IR Repeater Repeat Command and IR Repeater Learnt IR Code Readback Report Command.
This field MUST be ignored by a supporting node if the BES field is set to 0 in the IR Repeater Capabilities Report Command. The length of this field MUST be the minimum amount of full bytes allowing to have the number of bits indicated in the the Data bit '0' encoding Length field. .e.g if the Data bit '0' encoding field is set to 13, this field MUST be 2 bytes long.
Bits MUST be encoded as follows:  The value 0 MUST indicate a Low polarization  The value 1 MUST indicate a High polarization.
The whole sequence indicated in this field MUST be repeated by a supporting node when receiving a IR Repeater Repeat Command indicating to repeat a bit 0.
Data bit '1' encoding length (2 bytes)
This field is used to indicate the length in bits of the Data bit '1' encoding field.
This field MUST be set to the exact number of bits to be interpreted from the Data bit '1' encoding field.
This field MUST be ignored by a supporting node if the BES field is set to 0 in the IR Repeater Capabilities Report Command.

Data bit '1' encoding (N bytes)
This field advertisesthe Hi/Low polarization encoding to apply to encode a 1 in an IR Code using the IR Repeater Repeat Command and IR Repeater Learnt IR Code Readback Report Command.
This field MUST be ignored by a supporting node if the BES field is set to 0 in the IR Repeater Capabilities Report Command.
The length of this field MUST be the minimum amount of full bytes allowing to have the number of bits indicated in the the Data bit '1' encoding Length field. .e.g if the Data bit '1' encoding field is set to 13, this field MUST be 2 bytes long.
Bits MUST be encoded as follows:
 The value 0 MUST indicate a Low polarization  The value 1 MUST indicate a High polarization.
The whole sequence indicated in this field MUST be repeated by a supporting node when receiving a IR Repeater Repeat Command indicating to repeat a bit 1.

1.1.12 IR Repeater Configuration Get Command
This command is used to request the IR signal configuration at the supporting node.
The IR Repeater Configuration Report Command MUST be returned in response to this command.
This command MUST be ignored by a receiving node if it advertises no support for Bit Encoding Support (BES) in the IR Repeater Capabilities Report Command.
This command MUST NOT be issued via multicast addressing.
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_IR_REPEATER

Command = IR_REPEATER_CONFIGURATION_GET (0x0C)

1.1.13 IR Repeater Configuration Report Command This command is used to advertise the current IR signal repeating configuration at the supporting node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IR_REPEATER (0xA0)

Command = IR_REPEATER_CONFIGURATION_REPORT (0x0D)

Period (MSB)

Reserved

Period (LSB)

Data bit 0 encoding length (MSB)

Data bit 0 encoding length (LSB)

Data bit 0 encoding 1

...

Data bit 0 encoding N

Data bit 1 encoding length (MSB)

Data bit 1 encoding length (LSB)

Data bit 1 encoding 1

...

Data bit 1 encoding M

For fields' description, refer to 1.1.11 IR Repeater Configuration Set Command

1.1.14 IR Repeater Repeat Learnt Code Command This command is used to request the receiving node to send an IR Code.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IR_REPEATER (0xA0)

Command = IR_REPEATER_REPEAT_LEARNT_CODE (0x0E)

IR Code identifier

IR Code identifier (8 bits)
This field indicates which learnt IR Code identifier to repeat. Values in the range 1..255 MUST indicate the actual IR Code identifier to use for repeating the learnt code.
This command MUST be ignored if this field is set to 0, if no IR Code is learnt for the received Identifier or if this field is set to a larger value than the Number of IR Code identifiers for learning field advertised in the IR Repeater Capabilities Report Command.
A supporting node MUST repeat the IR code if a code has been learnt for the actual IR Code identifier.

1.1.15 IR Repeater Repeat Command
This command is used to request the receiving node to send/repeat an IR Code.
This command MUST be ignored if the supporting node advertises no support for IR Code Repeating (IRR) in the IR Repeater Capabilities Report Command.
This command MUST NOT be issued via multicast addressing.
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_IR_REPEATER (0xA0)

Command = IR_REPEATER_REPEAT (0x0F)

Sequence number

Sub carrier

Reserved

Duty Cycle

Pulse time unit (MSB)

Pulse time unit (LSB)

Last

Report number (MSB)

Report number (LSB)

Data block type 1

Data block length 1

Data block value 1, 1

...

Data block value 1, N

...

Data block type M

Data block length M

Data block value M, 1

...

Data block value M, N

Sequence number (8 bits) This field is used to keep track of the command that initiated the IR Repeat Command.

Sub carrier (8 bits) This field is used to indicate the IR Sub carrier that the supporting node MUST use for repeating IR Codes. This field MUST be expressed in kHz (kiloHertz). Duty cycle (2 bits) This field is used to indicate the IR Carrier that the supporting node MUST use for repeating IR Codes. This field MUST be encoded according to Table 64.
Table 64,IR Repeater Repeat::Duty Cycle encoding
Value Description 0x00 1/2 Duty Cycle 0x01 1/3 Duty Cycle 0x02 1/4 Duty Cycle 0x03 Reserved.
Values not advertised as supported in the IR Repeater Capabilities Report Command MUST be ignored by a supporting node. Pulse time unit (12 bits) This field is used to interpret the data blocks using Pulse Encoding type. This field MUST be expressed in (µs) and be in the range 1..4096. Values lower than the Minimum Pulse Time Unit advertised by the supporting node in the IR Repeater Capabilities Report Command MUST be ignored by a supporting node. Values higher than the Maximum Pulse Time Unit advertised by the supporting node in the IR Repeater Capabilities Report Command MUST be ignored by a supporting node. Report number (15 bits) A sending node typically needs several report commands to describe or encode an entire IR Code. This field is used to indicate the current report number being issued. The first report MUST have this field set to 1 and incremented at every new unique report Command. A receiving node MUST reassemble the IR Code by concatenating the data blocks of each repeat command. Data block 1,1 of the first report MUST represent the beginning of the IR Code signal and data block M,N of the last report MUST represent the end of the IR Code signal. Last (1 bit) This field is used to indicate that this is the Last report.

The value 0 MUST indicate that this is not the last report and more are to follow. The value 1 MUST indicate that this is the last report and the supporting node MUST start repeating the IR Code. Data block type (2 bits) This field indicates how to interpret the corresponding Data block Value field.
 0 : bit encoding (0/1)  1 : pulse encoding Data block length (6 bits) This field indicates the length in bytes of the corresponding Data block Value field. Data block value (6 bits) This field MUST interpreted according to the corresponding Data Block Type field. If the corresponding Data Block Type field is set to 0, this field MUST be interpreted as follow:

7

6

5

4

3

2

1

0

Number of bits 1

Number of bits 2

Data bits 1

...

Data bits L

Number of bits (2 bytes)
This subfield indicates how many bits to take from the Data bits subfield, starting from the LSB. For example, if this subfield is set to 12, a receiving node MUST interpret the first byte and the bits 0..3 of the second byte as data bits.
Data bits (L bytes)
This subfield is used to describe successive bits to be transmitted as part of the IR Code. Each data bit (bit 0 or bit 1) MUST be repeated/interpreted according to the IR Configuration set at the supporting node. (IR Repeater Configuration Set Command)

If the corresponding Data Block Type is set to 1, this field MUST be interpreted as follow:

7

6

5

4

3

2

1

0

Number of time units 1

...

Number of time units P

Number of time units (8 bits)
This subfield MUST represent the amount of time to use for an IR code pulse. The time unit is set in the Pulse time unit field.
This field MUST be interpreted byte-by-byte. The first byte is the first to be interpreted. It represents how long to transmit a Hi or Lo polarity.
The first byte (1) MUST represents a Hi Polarity.
If a byte of this field is in the range 0..255, it MUST be intrepreted as a multiplier of the time unit.
If a byte of this field is in the range 0..254, the polarity MUST be toggled for the next byte (from Hi to Lo or Lo to Hi)
If a byte of this field is set to 255, the polarity MUST be the same for the next byte (Hi stays Hi and Lo stays Lo)If a byte of this field is set to 0, it must ignored. The value 0 can be used for example at the first byte to start an IR Code with a Lo polarity.

4.51 Irrigation Command Class, version 1
The Irrigation Command Class provides commands to manage irrigation systems.
4.51.1 Terminology
In an irrigation system, a zone valve is turned on to allow a certain group of sprinklers to water an area (or zone) for a specified duration. The terms zone valve and valve are used synonymously, whereas a master valve is always identified as such.
A valve that is on or open lets the water run through the valve. A valve that is off or closed blocks the water from running through the valve.
A master valve allows water to flow to a set of zone valves, and must be turned on before water flows to the zone valves. In version 1 of this Command Class, there is only one master valve in an irrigation system.
A valve is identified with a ValveID. The master valve and zone valves have their own ID pools, each starting with 1.
In some cases a master valve switch may drive a pump relay rather than an actual irrigation valve. In this case, there may be a configurable delay between the master valve (or pump) being turned on and the rest of the zone valves being turned on. When a given zone is turned on, a master valve (if present) should automatically turn on. The master valve should also automatically turn off after a device specific duration of zone valve inactivity.
A valve can be physically connected or disconnected. Attach points where valves can be connected always keep the same valve ID. A disconnected valve cannot be operated and the water does not run through a disconnected valve.
In an irrigation system, a scheduled run or run is when a set of zone valves are open and closed sequentially, one after another. Each zone valve will be turned on for a specified duration and once complete, that valve will be turned off and the next zone valve will be turned on. In a (scheduled) run, each zone valve has its own specified run duration, which is unique to that zone valve and that specific (scheduled) run. At the end of a scheduled run, the Irrigation System Shutoff Command can also be used to turn everything off.
A master valve remains on/open for the entire duration of any run, so that all zone valves will be able to provide water to their associated sprinklers.
A valve table is a list of zone valves and their corresponding run durations. A valve table can be created, configured and stored in an irrigation device. The valve table can subsequently be executed (or run) using a single command.
4.51.2 Compatibility considerations
4.51.2.1 Multi Channel considerations
CC:006B.01.00.22.001 Multi Channel End Points SHOULD NOT support the Irrigation Command Class.
4.51.3 Interoperability considerations
CC:006B.01.00.32.001 A node supporting the Irrigation Command Class SHOULD be implemented as a Multi Channel Device with the master valve and each zone valve implemented as a separate Multi Channel End Point.

CC:006B.01.00.32.002 The Root Device SHOULD support the following Command Classes:
 Irrigation Command Class  Schedule Command Class
CC:006B.01.00.32.003 Each End Point SHOULD support the following Command Class:
 Binary Switch Command Class.
CC:006B.01.00.32.004 A node supporting optional sensors SHOULD implement each sensor as a separate Multi Channel End Point.
The Notification Command Class, version 7 or newer can be used for reporting Irrigation events/states, using the Irrigation Notification Type.
Scheduling can be done using the Schedule Command Class. If supported, the Schedule Command Class CC:006B.01.00.32.005 SHOULD support alternating days and odd/even date processing.
CC:006B.01.00.33.001 Some supporting nodes MAY support having only 1 zone valve open at a time. A controlling node CC:006B.01.00.32.006 SHOULD be aware that opening a zone valve may cause another currently open zone valve to close.
4.51.3.1 Controlling methods
A system integrator should be aware that if an irrigation control device is controlled using both End Point Binary Switch Command Class and Root Device Irrigation Command Class at the same time, this may cause unpredictable behavior. This applies whether commands are issued instantly or scheduled.
CC:006B.01.00.32.007 It is RECOMMENDED that an irrigation controlling system is managed either via direct End Point control or via the Irrigation Command Class.
An irrigation device can be driven directly from a Z-Wave controlling node, turning on the master valve and sequentially turning on each zone valve for a specified duration.
The controlling node can also use the concept of a valve table to turn on a set of valves sequentially. A valve table allows a single command, the Irrigation Valve Table Run Command, to trigger a run. The controlling node must first create the valve tables, using the Irrigation Valve Table Set Command. The run can triggered by sending the Irrigation Valve Table Run Command at the desired time. The irrigation device will sequentially run the valves in each of the specified valve tables for their associated runtimes. Depending on the irrigation system, the controlling node may need to turn on the master valve manually using the Irrigation Valve Run Command.

4.51.4 Irrigation System Info Get Command

This command is used to request a receiving node about its irrigation system information.

CC:006B.01.01.11.001 The Irrigation System Info Report Command MUST be returned in response to this command.

CC:006B.01.01.11.002 This command MUST NOT be issued via multicast addressing.

CC:006B.01.01.11.003

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_IRRIGATION

Command = IRRIGATION_SYSTEM_INFO_GET

4.51.5 Irrigation System Info Report Command

This command is used to advertise irrigation system information.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IRRIGATION

Command = IRRIGATION_SYSTEM_INFO_REPORT

Reserved

Master Valve

Total Number of Valves

Total Number of Valve Tables

Reserved

Valve Table Max Size

Reserved CC:006B.01.02.11.001 This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Master Valve (1 bit) This field is used to indicate if a master valve is supported by the sending node. CC:006B.01.02.11.002 The value 1 MUST indicate that the sending node supports a master valve. CC:006B.01.02.11.003 The value 0 MUST indicate that the sending node does not support a master valve. Total Number of Valves (8 bits) This field is used to advertise the total number of zone valves supported by the device CC:006B.01.02.11.004 The implemented Valve ID values MUST be in a sequence starting from 1, i.e. a node supporting 10 valves MUST accept Valve ID values in the range 1..10.

Total Number of Valve Tables (8 bits) This field is used to advertise the total number of valve tables that can be created/stored in the device. CC:006B.01.02.11.005 The implemented Valve Table ID MUST be in a sequence starting from 1, i.e. a node supporting 10 valve tables MUST accept Valve Table ID values in the range 1..10. Valve Table Max Size (4 bits) This field is used to advertise the maximum number of entries per valve table supported by the sending node. CC:006B.01.02.11.006 The value MUST be in the range 1..15. 4.51.6 Irrigation System Status Get Command

This command is used to request a receiving node about its irrigation system status.

CC:006B.01.03.11.001 The Irrigation System Status Report Command MUST be returned in response to this command.

CC:006B.01.03.11.002 This command MUST NOT be issued via multicast addressing.

CC:006B.01.03.11.003

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_IRRIGATION

Command = IRRIGATION_SYSTEM_STATUS_GET

4.51.7 Irrigation System Status Report Command

This command is used to advertise irrigation system status.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IRRIGATION

Command = IRRIGATION_SYSTEM_STATUS_REPORT

System Voltage

Sensor Status

Flow Precision

Flow Scale=l/h

Flow Size

Flow Value 1

...

Flow Value N

Pressure Precision

Pressure Scale=kPa

Pressure Size

Pressure Value 1

...

Pressure Value N

Shutoff Duration

System Error Status

Reserved

Master Valve

Valve ID

System Voltage (8 bits) This field advertises the voltage level applied at the sending node. CC:006B.01.04.11.001 The advertised value MUST be expressed in Volt. This field does not indicate the voltage type (AC or DC). CC:006B.01.04.11.002 If the node does not have a voltage sensor measuring the voltage, this field MUST be set to 0. Sensor Status (8 bits) This field is used to advertise if optional sensors are currently reporting values or detecting events at the sending node. CC:006B.01.04.11.003 This field MUST be treated as a bit mask and MUST comply with Table 65

Table 65, Irrigation System Status Report::Sensor Status encoding

Bit

Sensor Status

Flow Sensor currently active 0
If this bit is set to 1, the Flow Value field value MUST advertise a valid sensor reading.

Pressure Sensor currently active 1 If this bit is set to 1, the Pressure Value field value MUST advertise a valid sensor
reading.

Rain Sensor attached and active 2 If a rain sensor is currently attached to the device and detecting rain, this bit MUST be
set to 1.

Moisture Sensor attached and active 3 If a moisture sensor is currently attached to the device and detecting moisture, this bit
MUST be set to 1.

4..7 Reserved

CC:006B.01.04.11.004 All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.

Flow Precision (3 bits)

CC:006B.01.04.11.005

This field MUST indicate how many decimals are contained in the "Flow Value" field value. For example, if the "Flow Value" field is set to 1025 and the "Flow Precision" field is set to 2, the Flow Value MUST be interpreted as 10.25.

CC:006B.01.04.11.006 If the Sensor Status field's bit 0 is set to 0, this field MUST be set to 0.

Flow Scale (2 bits)

CC:006B.01.04.11.007 This field MUST indicate which unit is used for the "Flow Value" field. This field MUST be set to 0.

CC:006B.01.04.11.008 The value 0 MUST indicate that the unit is l/h (liter/hour)

Flow Size (3 bits)

CC:006B.01.04.11.009 This field is used to advertise the length in bytes of the "Flow Value" field. This field MUST be set to 1, 2 or 4. All other values are reserved and MUST NOT be used by a sending node.

CC:006B.01.04.11.00A If the Sensor Status field's bit 0 is set to 0, this field MUST be set to 1.

Flow Value (N bytes)

This field is used to advertise the Flow value measured by the flow sensor.

CC:006B.01.04.11.00B The length of this field in byte MUST comply with the value advertised in the Flow Size field.

CC:006B.01.04.11.00C If the Sensor Status field's bit 0 is set to 0, this field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

Pressure Precision (3 bits)

CC:006B.01.04.11.00D

This field MUST indicate how many decimals are contained in the "Pressure Value" field value. For example, if the "Pressure Value" field is set to 1025 and the "Pressure Precision" field is set to 2, the Pressure Value MUST be interpreted as 10.25.

CC:006B.01.04.11.00E If the Sensor Status field's bit 1 is set to 0, this field MUST be set to 0.

Pressure Scale (2 bits)

CC:006B.01.04.11.00F This field MUST indicate which unit is used for the "Pressure Value" field. This field MUST be set to 0.

CC:006B.01.04.11.010 The value 0 MUST indicate that the unit is kPa (kilopascal)

Pressure Size (3 bits)

CC:006B.01.04.11.011 This field is used to advertise the length in bytes of the "Pressure Value" field. This field MUST be set to 1, 2 or 4. All other values are reserved and MUST NOT be used by a sending node.

CC:006B.01.04.11.012 If the Sensor Status field's bit 1 is set to 0, this field MUST be set to 1.

Pressure Value (N bytes)

This field is used to advertise the Pressure value measured by the pressure sensor.

CC:006B.01.04.11.013 The length of this field in bytes MUST comply with the value advertised in the Pressure Size field.

CC:006B.01.04.11.014 If the Sensor Status field's bit 1 is set to 0, this field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

Shutoff Duration (8 bits)

This field is used to indicate how many hours are left in the "shut off" mode.

For description, refer to 4.51.21 Irrigation System Shutoff Command.

System Error Status (8 bits)

This field is used to advertise if any system error is being active at the sending node.

CC:006B.01.04.11.015 This field MUST be treated as a bit mask and MUST comply with Table 66.

Table 66, System Status Report::System Error Status encoding

Bit

Description

0

The device has not been programmed

1

The device has experienced an emergency shutdown.

2

The device's pressure high threshold has been triggered.

3

The device's pressure low threshold has been triggered.

A valve or the master valve is reporting error.

4

Valves can be individually checked using the

Irrigation Valve Info Get Command

5..7 Reserved

In some cases, errors are no longer active. Any inactive errors (except valve errors) can be cleared by sending an Irrigation System Config Set Command. Refer to the Irrigation Valve Info Report Command for more details on valve specific errors. Master Valve (1 bit) This field is used to indicate if a master valve is currently open or closed. CC:006B.01.04.11.016 The value 1 MUST indicate that the master valve is On / Open. CC:006B.01.04.11.017 The value 0 MUST indicate that the master valve is Off / Closed. Valve ID (8 bits) This field is used to indicate the Valve ID of the first open zone valve currently On / Open. CC:006B.01.04.11.018 If no zone valve is On / Open, this field MUST be set to 0. CC:006B.01.04.11.019 Else, this field MUST be to a value in the range 1..{Total number of supported zone valves} by a sending node

4.51.8 Irrigation System Config Set Command

This command allows the irrigation system to be configured accordingly.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IRRIGATION

Command = IRRIGATION_SYSTEM_CONFIG_SET

Master Valve Delay

High Pressure Threshold Precision

High Pressure Threshold Scale=kPa

High Pressure Threshold Size

High Pressure Threshold Value 1

...

High Pressure Threshold Value N

Low Pressure Threshold Precision

Low Pressure Threshold Scale=kPa

Low Pressure Threshold Size

Low Pressure Threshold Value 1

...

Low Pressure Threshold Value N

Sensor Polarity

Master Valve Delay (8 bits)

This field is used to configure a delay in seconds between turning on the master valve and turning on any "zone" valve.

CC:006B.01.05.11.001 This field MUST ignored by a receiving node if it does not implement a master valve.

CC:006B.01.05.11.002 The value MUST be expressed in seconds and the value 0 MUST indicate that no delay is applied when turning master and zone valves on.

Pressure High Threshold

These fields are used to configure the pressure high threshold at the receiving node.

CC:006B.01.05.13.001 A receiving node having no support for pressure sensor MAY ignore this field.

CC:006B.01.05.11.003

If the receiving node supports a Pressure Sensor, the node MUST issue an Irrigation System Status Report Command with the System Error Status indicating high pressure when the pressure crosses above this threshold.

CC:006B.01.05.11.004 The format of the Pressure High Threshold fields MUST comply with the format used by the Multilevel Sensor Command Class and MUST be expressed in kPa.

Pressure Low Threshold

These fields are used to configure the pressure low threshold at the receiving node.

CC:006B.01.05.13.002 A receiving node having no support for pressure sensor MAY ignore this field.

CC:006B.01.05.11.005

If the receiving node supports a Pressure Sensor, the node MUST issue an Irrigation System Status Report Command with the System Error Status indicating low pressure when the pressure crosses below this threshold.

CC:006B.01.05.11.006 The format of the Pressure Low Threshold fields MUST comply with the format used by the Multilevel Sensor Command Class and MUST be expressed in kPa.

Sensor Polarity (8 bits)

This field is used to configure optional sensors' polarity at the receiving node.

CC:006B.01.05.11.007 This field MUST be treated as a bit mask and MUST comply with Table 67. This field MUST be ignored if the `valid' bit (bit 7) is set to 0.

Table 67, Irrigation System Config Set::Sensor Polarity encoding

Bit

Description

Rain Sensor Polarity (0 LOW, 1 HIGH) 0
A receiving node having no support for rain sensor MAY ignore this field.

Moisture Sensor Polarity (0 LOW, 1 HIGH) 1
A receiving node having no support for moisture sensor MAY ignore this field

2..6 Reserved

Valid 7 This bit MUST be set to 1 to indicate that the other bits in the bitmask contain valid
data.

CC:006B.01.05.11.008 All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.

4.51.9 Irrigation System Config Get Command

This command is used to request a receiving node about its current irrigation system configuration.

CC:006B.01.06.11.001 The Irrigation System Config Report Command MUST be returned in response to this command.

CC:006B.01.06.11.002 This command MUST NOT be issued via multicast addressing.

CC:006B.01.06.11.003

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_IRRIGATION

Command = IRRIGATION_SYSTEM_CONFIG_GET

4.51.10 Irrigation System Config Report Command

This command is used to advertise the current irrigation system configuration.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IRRIGATION

Command = IRRIGATION_SYSTEM_CONFIG_REPORT

Master Valve Delay

High Pressure Threshold Precision

High Pressure Threshold Scale=kPa

High Pressure Threshold Size

High Pressure Threshold Value 1

...

High Pressure Threshold Value N

Low Pressure Threshold Precision

Low Pressure Threshold Scale=kPa

Low Pressure Threshold Size

Low Pressure Threshold Value 1

...

Low Pressure Threshold Value N

Sensor Polarity

CC:006B.01.07.11.001 For fields' description, refer to 4.51.8 Irrigation System Config Set Command. A sending node MUST comply with field descriptions in 4.51.8 Irrigation System Config Set Command.

4.51.11 Irrigation Valve Info Get Command

This command is used to request general information about the specified valve.

CC:006B.01.08.11.001 The Irrigation Valve Info Report Command MUST be returned in response to this command.

CC:006B.01.08.11.002 CC:006B.01.08.11.003

This command MUST NOT be issued via multicast addressing. 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_IRRIGATION

Command = IRRIGATION_VALVE_INFO_GET

Reserved

Master Valve

Valve ID

Reserved
CC:006B.01.08.11.004 This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Master Valve (1 bit)
This field is used to indicate whether the sending node requests the information of the master valve or of a zone valve.
CC:006B.01.08.11.005 The value 1 MUST indicate that the sending node requests the master valve information.
CC:006B.01.08.11.006 The value 0 MUST indicate that the sending node requests information related to the zone valve corresponding to Valve ID field.
Valve ID (8 bits)
This field is used to indicate the Valve ID if the sending node requests the information about a zone valve.
CC:006B.01.08.11.007 This field MUST be set to a Valve ID supported by the receiving node.
CC:006B.01.08.12.001 A node receiving this command for an unsupported zone valve ID SHOULD return a report for the first supported zone valve.
CC:006B.01.08.11.008 If the Master Valve field is set to 1, this field MUST be set to 1. Other values MUST be ignored by a receiving node.

4.51.12 Irrigation Valve Info Report Command

This command is used to advertise general information about a given valve.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IRRIGATION

Command = IRRIGATION_VALVE_INFO_REPORT

Reserved

Conn- Master ected Valve

Valve ID

Nominal Current

Valve Error Status

Reserved

CC:006B.01.09.11.001 This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

Master Valve (1 bit)

This field is used to indicate whether the sending node advertises the information of the master valve or of a zone valve.

CC:006B.01.09.11.002 CC:006B.01.09.11.003

The value 1 MUST indicate that the sending node advertises the master valve information. The value 0 MUST indicate that the sending node advertises information related to the zone valve corresponding to Valve ID field.

Connected (1 bit)

This field indicates if the actual valve is currently connected to the node or not.

CC:006B.01.09.11.004 The value 0 MUST indicate that the valve is disconnected from the node. CC:006B.01.09.11.005 The value 1 MUST indicate that the valve is connected to the node.

Valve ID (8 bits)

This field is used to indicate the Valve ID if the sending node requests the information about a zone valve.

CC:006B.01.09.11.006 This field MUST be set to a Valve ID supported by the receiving node.

CC:006B.01.09.11.007 If the Master Valve field is set to 1, this field MUST be set to 1. Other values MUST be ignored by a receiving node.

Nominal Current (8 bits)
This field is used to advertise the valve's nominal electric current when the valve is On / Open.
CC:006B.01.09.11.008 This field MUST be expressed as a multiple of 10mA. E.g. the value 23 represents 230 mA.
CC:006B.01.09.11.009 This field MUST be set to 0 if the Connected field is set to 0.
CC:006B.01.09.11.00A This field MUST advertise the last measured current (measured when the valve was on) when the valve is Off / Closed.
Valve Error Status (8 bits)
CC:006B.01.09.11.00B This bit mask provides valve error status fields. The field MUST be encoded according the following:
 Bit 0 indicates short circuit has been detected.  Bit 1 indicates current high threshold has been detected.  Bit 2 indicates current low threshold has been detected.  Bit 3 indicates maximum flow has been detected (zone valves only).  Bit 4 indicates flow high threshold has been detected (zone valves only).  Bit 5 indicates flow low threshold has been detected (zone valves only).  Bits 6-7 are reserved.
Any inactive errors can be cleared by sending an Irrigation Valve Config Set Command. Also, if the valve is turned on again, any inactive errors should be cleared as the valve is turned on.

4.51.13 Irrigation Valve Config Set Command

This command allows an irrigation valve to be configured accordingly.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IRRIGATION

Command = IRRIGATION_VALVE_CONFIG_SET

Reserved

Master Valve

Valve ID

Nominal Current High Threshold

Nominal Current Low Threshold

Maximum Flow Maximum Flow Precision
Scale=l/h

Maximum Flow Size

Maximum Flow Value 1

...

Maximum Flow Value N

Flow High Threshold Precision

Flow High Threshold Scale=l/h

Flow High Threshold Size

Flow High Threshold Value 1

...

Flow High Threshold Value N

Flow Low Threshold Precision

Flow Low Threshold Scale=l/h

Flow Low Threshold Size

Flow Low Threshold Value 1

...

Flow Low Threshold Value N

Sensor Usage

Reserved CC:006B.01.0A.11.001 This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

Master Valve (1 bit)

This field is used to indicate whether the valve to configure is the master valve or a zone valve.

CC:006B.01.0A.11.002 The value 1 MUST indicate that the valve to configure is the master valve. CC:006B.01.0A.11.003 The value 0 MUST indicate that the valve to configure is the zone valve corresponding to Valve ID field.

Valve ID (8 bits)

This field is used to indicate the Valve ID to configure.

CC:006B.01.0A.11.004 This field MUST be set to a Valve ID supported by the receiving node.

CC:006B.01.0A.11.005 If the Master Valve field is set to 1, this field MUST be set to 1. Other values MUST be ignored by a receiving node.

Nominal Current High Threshold (8 bits)

This field is used to configure the nominal current high threshold for the actual valve.

CC:006B.01.0A.11.006 The receiving node MUST issue an Irrigation System Status Report Command with the System Error Status indicating that a valve is reporting errors when the current crosses above this threshold.

CC:006B.01.0A.11.007 This field MUST be expressed as a multiple of 10mA. E.g. the value 23 represents 230 mA.

Nominal Current Low Threshold (8 bits)

This field is used to configure the nominal current low threshold for the actual valve at the receiving node.

CC:006B.01.0A.11.008 The receiving node MUST issue an Irrigation System Status Report Command with the System Error Status indicating that a valve is reporting errors when the current crosses below this threshold.

CC:006B.01.0A.11.009 This field MUST be expressed as a multiple of 10mA. E.g. the value 23 represents 230 mA.

Maximum Flow

These fields are used to configure the maximum allowed water flow for the specified valve.

CC:006B.01.0A.11.00A These fields MUST be ignored if the Master Valve field is set to 1.

CC:006B.01.0A.13.001 A receiving node having no support for flow sensor MAY ignore these fields.

CC:006B.01.0A.11.00B

If the receiving node supports a flow sensor, the node MUST issue an Irrigation System Status Report Command with the System Error Status indicating that a valve is reporting errors when the water flow crosses above this threshold.

CC:006B.01.0A.11.00C This field MUST be expressed in l/h (liter/hour).

Flow High Threshold

These fields are used to configure the flow high threshold for the specified valve.

CC:006B.01.0A.11.00D These fields MUST be ignored if the Master Valve field is set to 1.

CC:006B.01.0A.13.002 A receiving node having no support for flow sensor MAY ignore these fields.

CC:006B.01.0A.11.00E

If the receiving node supports a flow sensor, the node MUST issue an Irrigation System Status Report Command with the System Error Status indicating that a valve is reporting errors when the water flow crosses above this threshold.

CC:006B.01.0A.11.00F The format of the Flow High Threshold fields MUST comply with the format used by the Multilevel Sensor Command Class and MUST be expressed in l/h (liter/hour).

Flow Low Threshold

These fields are used to configure the flow low threshold for the specified valve.

CC:006B.01.0A.11.010 These fields MUST be ignored if the Master Valve field is set to 1.

CC:006B.01.0A.13.003 A receiving node having no support for flow sensor MAY ignore these fields.

CC:006B.01.0A.11.011

If the receiving node supports a flow sensor, the node MUST issue an Irrigation System Status Report Command with the System Error Status indicating that a valve is reporting errors when the water flow crosses below this threshold.

CC:006B.01.0A.11.012 The format of the Flow Low Threshold fields MUST comply with the format used by the Multilevel Sensor Command Class and MUST be expressed in l/h (liter/hour).

Sensor Usage (8 bits)

This field is used to configure if the actual valve must turn off / close when the specified sensors are active.

CC:006B.01.0A.11.013 This field MUST be ignored if the Master Valve field is set to 1.

CC:006B.01.0A.11.014 This field MUST be treated as a bit mask and MUST comply with Table 68, Irrigation Valve Config Set::Sensor Usage.

Table 68, Irrigation Valve Config Set::Sensor Usage encoding

Bit

Description

Use Rain Sensor

0

The valve MUST turn off / close if rain is detected

A receiving node having no support for rain sensor MAY ignore this field.

Use Moisture Sensor

1

The valve MUST turn off / close if moisture is detected

A receiving node having no support for moisture sensor MAY ignore this field.

2..7 Reserved

CC:006B.01.0A.11.015 All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.

4.51.14 Irrigation Valve Config Get Command

This command is used to request the current configuration of an irrigation valve.

CC:006B.01.0B.11.001 The Irrigation Valve Config Report Command MUST be returned in response to this command.

CC:006B.01.0B.11.002 CC:006B.01.0B.11.003

This command MUST NOT be issued via multicast addressing. 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_IRRIGATION

Command = IRRIGATION_VALVE_CONFIG_GET

Reserved

Master Valve

Valve ID

Reserved

CC:006B.01.0B.11.004 This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

Master Valve (1 bit)

This field is used to indicate whether the sending node requests the configuration of the master valve or of a zone valve.

CC:006B.01.0B.11.005 CC:006B.01.0B.11.006

The value 1 MUST indicate that the sending node requests the master valve configuration. The value 0 MUST indicate that the sending node requests the configuration related to the zone valve corresponding to Valve ID field.

Valve ID (8 bits)

This field is used to indicate the Valve ID if the sending node requests the information about a zone valve.

CC:006B.01.0B.11.007 This field MUST be set to a Valve ID supported by the receiving node. A node receiving this command CC:006B.01.0B.12.001 for an unsupported zone valve ID SHOULD return a report for the first supported zone valve.

CC:006B.01.0B.11.008 If the Master Valve field is set to 1, this field MUST be set to 1. Other values MUST be ignored by a receiving node.

4.51.15 Irrigation Valve Config Report Command

This command is used to advertise the configuration of a valve.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IRRIGATION

Command = IRRIGATION_VALVE_CONFIG_REPORT

Reserved

Master Valve

Valve ID

Nominal Current High Threshold

Nominal Current Low Threshold

Maximum Flow Precision Maximum Flow Scale=l/h

Maximum Flow Size

Maximum Flow Value 1

...

Maximum Flow Value N

Flow High Threshold Precision

Flow High Threshold Scale=l/h

Flow High Threshold Size

Flow High Threshold Value 1

...

Flow High Threshold Value N

Flow Low Threshold Precision

Flow Low Threshold Scale=l/h

Flow Low Threshold Size

Flow Low Threshold Value 1

...

Flow Low Threshold Value N

Sensor Usage

For fields' description, refer to 4.51.13 Irrigation Valve Config Set Command. CC:006B.01.0C.11.001 A sending node MUST comply with field descriptions in 4.51.13 Irrigation Valve Config Set Command.

4.51.16 Irrigation Valve Run Command

The Irrigation Valve Run Command will run the specified valve for a specified duration.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IRRIGATION

Command = IRRIGATION_VALVE_RUN

Reserved

Master Valve

Valve ID

Duration MSB

Duration LSB

Reserved

CC:006B.01.0D.11.001 This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

Master Valve (1 bit)

This field is used to indicate if the specified valve is the master valve or a zone valve.

CC:006B.01.0D.11.002 The value 1 MUST indicate that the specified valve is the master valve. CC:006B.01.0D.11.003 The value 0 MUST indicate that the specified valve is the zone valve corresponding to Valve ID field.

Valve ID (8 bits)

This field is used to specify the actual Valve ID.

CC:006B.01.0D.11.004 CC:006B.01.0D.11.005

This field MUST be set to a Valve ID supported by the receiving node. If the Master Valve field is set to 1, this field MUST be set to 1. Other values MUST be ignored by a receiving node.

Duration (16 bits)

This field is used to specify the duration of the run in seconds.

CC:006B.01.0D.11.006 The value 0 MUST indicate that the valve MUST be turned off / Closed immediately.

4.51.17 Irrigation Valve Table Set Command

This command is used to set a valve table with a list of valves and durations.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IRRIGATION

Command = IRRIGATION_VALVE_TABLE_SET

Valve Table ID

Valve ID 1

Duration MSB 1

Duration LSB 1

...

Valve ID N

Duration MSB N

Duration LSB N

Valve Table ID (8 bits) This field is used to specify the valve table ID. CC:006B.01.0E.11.001 This field MUST be set to a Valve Table ID supported by the receiving node. Valve ID and Duration (N * 3 bytes) These fields are used to specify valve IDs and their associated run duration. CC:006B.01.0E.11.002 A sending node MUST NOT specify more Valve IDs than the "Valve Table Max Size" advertised by a receiving node in the Irrigation System Info Report Command CC:006B.01.0E.11.003 The duration MUST be expressed in seconds. CC:006B.01.0E.13.001 This field MAY be omitted in order to erase/empty the specified valve table.

4.51.18 Irrigation Valve Table Get Command

This command is used to request the contents of the specified Valve Table ID.

CC:006B.01.0F.11.001 The Irrigation Valve Table Report Command MUST be returned in response to this command.

CC:006B.01.0F.11.002 CC:006B.01.0F.11.003

This command MUST NOT be issued via multicast addressing. 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_IRRIGATION

Command = IRRIGATION_VALVE_TABLE_GET

Valve Table ID

Valve Table ID (8 bits) This field is used to specify the valve table ID. CC:006B.01.0F.11.004 Valves tables MUST be identified sequentially from 1 to the total number available on the device. 4.51.19 Irrigation Valve Table Report Command

This command provides the contents of the specified Valve Table ID.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IRRIGATION

Command = IRRIGATION_VALVE_TABLE_REPORT

Valve Table ID

Valve ID 1

Duration MSB 1

Duration LSB 1

...

Valve ID N

Duration MSB N

Duration LSB N

For fields' description, refer to 4.51.17 Irrigation Valve Table Set Command. CC:006B.01.10.11.001 A sending node MUST comply with field descriptions in 4.51.17 Irrigation Valve Table Set Command.

4.51.20 Irrigation Valve Table Run Command This command is used to run the specified valve tables sequentially.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IRRIGATION

Command = IRRIGATION_VALVE_TABLE_RUN

Valve Table ID 1

...

Valve Table ID N

Valve Table ID (N bytes)
This field is used to specify the list of Valve Tables to run sequentially.
CC:006B.01.11.11.001 A receiving node MUST run the indicated Valve Table ID starting by the entry 1. These fields contain a variable list of valve table IDs that will be run sequentially in the order they are listed.

4.51.21 Irrigation System Shutoff Command

This command is used to prevent any irrigation activity triggered by the Schedule CC for a specified duration.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_IRRIGATION

Command = IRRIGATION_SYSTEM_SHUTOFF

Duration

Duration (8 bits)

This field is used to indicate the duration of the system shutoff.

CC:006B.01.12.11.001 CC:006B.01.12.11.002 CC:006B.01.12.11.003

Values in the range 1..254 MUST indicate how many hours the irrigation system MUST stay shut off after reception of this command. While active, the shutoff duration MUST prevent all enabled schedules (including the back-up schedule) from running. After the shutoff duration is over, any enabled schedule MUST run as configured.

CC:006B.01.12.11.004 The value 0 MUST indicate to turn off any running valve (including the master valve) as well as cancel CC:006B.01.12.11.005 any active Irrigation Valve Table Run or Schedule. Any subsequent schedule MUST run as configured.

CC:006B.01.12.11.006 The value 255 MUST indicate that the irrigation system MUST stay permanently shut off until the node receives one of the following commands:

 Irrigation System Shutoff Command with a Duration different than 255.  Irrigation Valve Run Command  Irrigation Valve Table Run Command

CC:006B.01.12.11.007 When permanently shut off, the node MUST NOT run any schedule

CC:006B.01.12.11.008 A receiving node MUST cancel the current shutoff and advertise a shutoff duration of 0 in the Irrigation System Status Report Command after receiving one of the following commands:

 Irrigation Valve Run Command  Irrigation Valve Table Run Command

4.52 Language Command Class, version 1 The Language Command Class is used to specify the language settings on a device. 4.52.1 Language Set Command This command is used to set the language at the receiving node. The receiving node SHOULD use the default language in case the received language is not supported.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_LANGUAGE

Command = LANGUAGE_SET

Language 1

Language 2

Language 3

Country 1

Country 2

Language (24 bits)
The code definition of the languages may be found in ISO 639-2:1998 `Codes for the representation of names of languages ­ Part 2: Alpha-3 code'. In the table below are some examples of the alpha-3 codes listed:

Language Language 1 Language 2 Language 3

English

e

n

g

Flemish; Dutch

d

u

t

French

f

r

e

German

g

e

r

Italian

i

t

a

Polish

p

o

l

Russian

r

u

s

Walloon

w

l

n

Country (16 bits)
The code definition of the countries may be found in ISO 3166-1 `Country Codes: Alpha-2 codes'. The use of the country field is OPTIONAL and only defined in case it is necessary for distinguishing geographical variants. The number of data fields transmitted MUST be determined from the length field in the frame. In the table below are some examples of the alpha-2 codes listed:

Language Country 1 Country 2

Belgium

B

E

Italy

I

T

Netherlands

N

L

Poland

P

L

United Kingdom

G

B

United States

U

S

4.52.2 Language Get Command
This command is used to request the current language setting in a device.
The Language Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_LANGUAGE

Command = LANGUAGE_GET

4.52.3 Language Report Command This commandreturns the current language setting in a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_LANGUAGE

Command = LANGUAGE_REPORT

Language 1

Language 2

Language 3

Country 1

Country 2 For fields' description, refer to 4.52.1 Language Set Command.

4.53 Lock Command Class, version 1 [DEPRECATED]
THIS COMMAND CLASS HAS BEEN DEPRECATED
A device MAY implement this command class, but it is RECOMMENDED that new implementations use the Door Lock Command Class. If implementing this command class, it is RECOMMENDED that the Door Lock Command Class is also implemented.

The Lock Command Class is used to lock and unlock a "lock" type device, e.g. a door or window lock 4.53.1 Lock Set Command This command is used to set the lock state in a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_LOCK

Command = LOCK_SET

Lock State

Lock State (8 bits)
The lock state field used to set the lock state of the device. The value 0 indicates that the device is unlocked. The value 1 indicates that the device is locked.
4.53.2 Lock Get Command
This command is used to request the lock state from a device.
The Lock Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_LOCK

Command = LOCK_GET

4.53.3 Lock Report Command This command is used to report the lock state of a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_LOCK

Command = LOCK_REPORT

Lock State

Lock State (8 bits)
The Lock state field used to report the lock state of the device. The value 0 indicates that the device is unlocked. The value 1 indicates that the device is locked.

4.54 Manufacturer Proprietary Command Class, version 1
The Manufacturer Proprietary Command Class is used to transfer data between devices in the Z-Wave network. The data content MUST be vendor specific and MUST be non-value added with respect to the Home Automation application in general. An example could be data used to diagnose the hardware in a device.
Note: Do not use the Manufacturer Proprietary Command Class without written approval from Silicon Labs.
4.54.1 Manufacturer Proprietary Command
Thiscommand is used to transfer proprietary commands between devices. The Command features a manufacturer specific identifier to allow the receiving device to check if this Command can be interpreted. The vendor is responsible for establishing a Command structure to differ between the set of Commands supported.
In order not to congest the Z-Wave network, large data transfers MUST leave transmit opportunities for other nodes in the network. If sending a command longer than two frames, a node MUST implement a delay between every transmitted frame. The minimum required time delay and number of frames before a delay must be inserted depends on the actual bit rate.
 40 kbit/s: At least 35 ms if sending more than 2 frames back-to-back  100 kbit/s: At least 15 ms if sending more than 2 frames back-to-back

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_MANUFACTURER_PROPRIETARY

Manufacturer ID 1

Manufacturer ID 2

Data 1

...

Data N

Manufacturer ID (16 bits)
The Manufacturer ID is a unique ID identifying the manufacturer of the device. Manufacturer identifiers can be found in [12].
The first byte (Manufacturer ID 1) is the most significant byte.
Data (N bytes)
The data fields may be used for data transfer etc. The number of data fields transmitted MUST be determined from the length field in the frame.

4.55 Meter Command Class, version 1
The Meter Command Class is used to advertise instantaneous and accumulated numerical readings.
The Command Class is intended for accumulated values in physical units from a water meter or metering device (gas, electric etc.) and thereby enabling some automatic meter reading capabilities.
4.55.1 Terminology
A meter is used to monitor a resource. The meter accumulates the resource flow over time. As an option, the meter may report not only the most recent accumulated reading but also the previous reading and the time that elapsed since then. A meter may also be able to report the current resource flow. This is known as the instant value.
Meters may report two rate types. A utility installs production meters in its production facilities, while it installs consumption meters at consumer premises. The difference is the mapping of the physical flow direction to the forward direction of the meter:
 The accumulated value of a production meter grows when more resources are produced  The accumulated value of a production meter drops when more resources are consumed
 The accumulated value of a consumption meter grows when more resources are consumed  The accumulated value of a consumption meter drops when more resources are produced
If a meter only supports one rate type, the meter may run backwards. If a meter runs backwards, the accumulated value may eventually become negative. While the production meter of a power generator rarely runs backwards, the consumption meter in a private household with solar panels runs backwards every time the solar panels deliver more than is consumed in the household. The actual reading of a one-rate type meter reflects the net accumulated value since the meter was installed with a factory default reading of zero. The accumulated value over an arbitrary interval may be calculated by subtracting a previous accumulated value from the current accumulated value. Normal arithmetic rules ensure that this also works in case of negative values.
A production meter may be used as a consumption meter by applying a sign change to all production meter readings before using the values as consumption meter readings.
A meter device may advertise that it implements two separate registers for the production and consumption, respectively. In that case, both of these meters are always running forward: Production makes the production meter run forward while consumption makes the consumption meter run forward. Two meter reports must be used to report the values of the respective meters.

1.1.1 Meter Get Command
This command is used to request the current meter reading to a supporting node.
The Meter Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_METER

Command = METER_GET (0x01)

1.1.2 Meter Report Command This command is used to advertise the current meter reading at the sending node. This command MUST NOT be issued using broadcast addressing.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER

Command = METER_REPORT (0x02)

Meter Type

Precision

Scale

Size

Meter Value 1

...

Meter Value N

Meter Type (8 bits) This field is used to specify what type of metering physical unit is being reported. This field MUST be encoded according to Table 75. Precision (3 bits) This field MUST indicate how many decimal places are included in the Meter Value field. For example, the Meter Value field set to 1025 and this field set to 2 MUST be interpreted as equal to 10.25. The value of the precision field MUST be in the range 0..7.

Scale (2 bits) This field MUST advertise the unit used for the Meter Value field. This field MUST be encoded according to Table 76. Size (3 bits) This field indicates the length in bytes of the Meter Value field. This field MUST be set to 1, 2 or 4. Meter Value (N bytes) This field is used to advertise the actual meter reading. The length of this field in bytes MUST be according to the Size field. The first byte MUST be the most significant byte. This field MUST be encoded using signed representation and comply with Table 10.
4.56 Meter Command Class, version 2 The Meter Command Class is used to advertise instantaneous and accumulated numerical readings. The Command Class is intended for accumulated values in physical units from a water meter or metering device (gas, electric etc.) and thereby enabling some automatic meter reading capabilities. 4.56.1 Compatibility Considerations The Meter Command Class, version 2 introduces the following functionalities:
 Commands to interview supporting nodes Meter capabilities  New field `Previous Meter Value' added to the Meter Report indicating consumption since
previous report.  An optional Meter Reset Command for resetting accumulated consumption.  New meter scales have been added Commands and fields not mentioned in this version MUST remain unchanged from version 1. Supporting nodes MAY support several scales. A manufacturer MUST define which scale is the default scale and it MUST be described in the product manual.

4.56.2 Meter Supported Get Command
This command is used to request the supported scales in a sub meter.
The Meter Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_METER

Command = METER_SUPPORTED_GET (0x03)

4.56.3 Meter Supported Report Command This command is used to advertise the supported scales and capabilities of the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER

Command = METER_SUPPORTED_REPORT (0x04)

Meter Reset

Reserved

Meter Type

Reserved

Scale Supported

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Meter Reset (1 bit) This field is used to indicate if the sending node supports the Meter Reset Command. The value 1 MUST indicate that the Meter Reset Command is supported. The value 0 MUST indicate that the Meter Reset Command is not supported and MUST be ignored by the sending node. Meter Type (5 bits) This field is used to advertise the implemented meter type by the sending node. This field MUST be encoded according to Table 75. Scale Supported (4 bits)

This field is used to advertise the supported scales of the sending node.
The bit value `1' MUST indicate support for the actual scale. The bit value `0' MUST indicate that there is no support for the actual scale.
This MUST be interpreted as a bitmask in combination with the Meter Type field and MUST be according to Table 74.
4.56.4 Meter Reset Command
This command is used to reset all accumulated values stored at the receiving node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER

Command = METER_RESET (0x05)

A supporting node MUST reset all its supported accumulated values when receiving this command if it advertises support for Meter Reset in the Meter Supported Report Command.
A supporting node MUST ignore this command if it advertises no support for Meter Reset in the Meter Supported Report Command
4.56.5 Meter Get Command
This command is used to request the current meter reading to a supporting node .
The Meter Report Command MUST be returned in response to this command if the requested scale is supported.
This command MUST NOT be issued via multicast addressing. 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_METER

Command = METER_GET (0x01)

Reserved

Scale

Reserved

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

Scale (2 bits) This field is used to request an actual scale for the meter reading. This field MUST be encoded according to Table 76. If this field is not present or set to 0x00, a supporting node MUST return a report using its default scale. A supporting node MUST ignored this command if this field is set to a non-supported scale. For improved compatibility with version 1 controlling nodes, a supporting node receiving this command without this field (version 1 format) SHOULD either return a version 1 Report Command or a Report Command with the Rate Type field set to 0x00 4.56.6 Meter Report Command This command is used to advertise the current meter reading at the sending node. This command MUST NOT be issued using broadcast addressing.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER

Command = METER_REPORT (0x02)

Res

Rate Type

Meter Type

Precision

Scale

Size

Meter Value 1

...

Meter Value N

Delta Time 1

Delta Time 2

Previous Meter Value 1 (optional)

...

Previous Meter Value N (optional)

Fields not described below MUST remain unchanged from version 1. Res This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

Rate Type (2 bits) This field is used to indicate if the actual reading advertises import or export values. The Import value for a meter reading MUST indicate that the reading represents a consumed amount. The Export value for a meter reading MUST indicate that the reading represents a produced amount. This field MUST be encoded according to Table 69.
Table 69, Meter Report::Rate Type encoding

Value Rate Type 0x00 Unspecified 0x01 Import (consumed) 0x02 Export (produced) 0x03 Reserved

Version 1 2 2 -

Meter Type (5 bits) This field is used to specify what type of metering physical unit is being reported. This field MUST be encoded according to Table 75. Precision (3 bits) This field MUST indicate how many decimal places are included in the Meter Value and Previous Meter Value fields. For example, the Meter Value set to 1025 and this field set to 1 MUST be interpreted as equal to 102.5. The value of the precision field MUST be in the range 0..7. Scale (2 bits) This field MUST advertise the unit used for the Meter Value and Previous Meter Value fields. This field MUST be encoded according to Table 76. Size (3 bits) This field MUST indicate the length in bytes of the Meter Value and Previous Meter Value fields. This field MUST be set to 1, 2 or 4. Meter Value (N bytes) This field is used to advertise the actual meter reading. The length of this field in bytes MUST be according to the Size field. The first byte MUST be the most significant byte. The field MUST be encoded using signed representation and comply with Table 10.

Delta Time (16 bits)
This field MUST advertise the elapsed time in seconds between the readings advertised by the Meter Value and the Previous Meter Value fields. This field MUST be according to Table 70.
Table 70, Meter Report v2::Delta Time encoding

Value

Description

0x0000

No Previous Meter Value field is included in this command

0x0001..0xFFFE 1..65534 seconds have elapsed between reporting the Previous Meter Value reading and the current meter reading

0xFFFF

Unknown elapsed time between the Previous Meter Value reading and the current meter reading

Previous Meter Value (N bytes) This field is used to advertise the last issued meter reading for the actual scale. This field MUST be omitted if the Delta Time field is set to the value 0. The length of this field in bytes MUST be according to the Size field if the Delta Time field is set to a nonzero value. The length of this field in bytes MUST be according to the Size field. The first byte MUST be the most significant byte. The field MUST be encoded using signed representation and comply with Table 10.

4.57 Meter Command Class, version 3 The Meter Command Class is used to advertise instantaneous and accumulated numerical readings. The Command Class is intended for accumulated values in physical units from a water meter or metering device (gas, electric etc.) and thereby enabling some automatic meter reading capabilities. 4.57.1 Compatibility Considerations The Meter Command Class, version 3 introduces the following functionalities:
 New meter scales have been added. Commands and fields not mentioned in this version MUST remain unchanged from version 2. The manufacturer MUST define which scale is the default scale and it MUST be described in the product manual. The default scale MUST be in the range 0..3 as version 1 and version 2 controlling nodes will not be able to interpret scale values in the range 4..7.

4.57.2 Meter Supported Report Command This command is used to advertise the supported scales and capabilities of the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER

Command = METER_SUPPORTED_REPORT (0x04)

Meter Reset

Reserved

Meter Type

Scale Supported

Fields not described below MUST remain unchanged from version 2.
Scale Supported (8 bits)
This field is used to advertise the supported scales by the sending node.
The field MUST be treated as a bitmask in combination with the Meter Type field and MUST be according to Table 74.
The bit value `1' MUST indicate support for the actual scale. The bit value `0' MUST indicate that there is no support for the actual scale.
4.57.3 Meter Get Command
This command is used to request the current meter reading to a supporting node.
The Meter Report Command MUST be returned in response to this command if the requested scale is supported.
This command MUST NOT be issued via multicast addressing. 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_METER

Command = METER_GET (0x01)

Reserved

Scale

Reserved

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Scale (3 bits) This field is used to request an actual scale for the meter reading. This field MUST be encoded according to Table 76.

If this field is not present or set to 0x00, a supporting node MUST return a report using its default scale. A supporting node MUST ignored this command if this field is set to a non-supported scale. For improved compatibility with version 1 controlling nodes, a supporting node receiving this command without this field (version 1 format) SHOULD either return a version 1 Report Command or a Report Command with the Rate Type field set to 0x00 4.57.4 Meter Report Command This command is used to advertise the current meter reading at the sending node. This command MUST NOT be issued using broadcast addressing.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER

Command = METER_REPORT (0x02)

Scale (2)

Rate Type

Meter Type

Precision

Scale (1:0)

Size

Meter Value 1

...

Meter Value N

Delta Time 1

Delta Time 2

Previous Meter Value 1 (optional)

...

Previous Meter Value N (optional)

Fields not described below MUST remain unchanged from version 2. Scale (3 bits) This field MUST advertise the unit used for the Meter Value and Previous Meter Value fields. This field is composed of two sub-fields Scale (2) and Scale (1:0) which MUST be composed and interpreted as one unit. Scale (2) MUST be the most significant bit. This field MUST be encoded according to Table 76.

4.58 Meter Command Class, version 4 The Meter Command Class is used to advertise instantaneous and accumulated numerical readings. The Command Class is intended for accumulated values in physical units from a water meter or metering device (gas, electric etc.) and thereby enabling some automatic meter reading capabilities. 4.58.1 Compatibility Considerations The Meter Command Class, version 4 introduces the following functionalities:
 A supporting node can now support several rate types  New meter scales have been added Commands and fields not mentioned in this version MUST remain unchanged from version 3. The manufacturer MUST define which scale and rate types are the default and it MUST be described in the product manual. The default scale MUST be in the range 0..3 as version 1 and version 2 controlling nodes will not be able to interpret scale values in the range 4..7. 4.58.2 Meter Supported Report Command This command is used to advertise the supported scales and capabilities of the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER

Command = METER_SUPPORTED_REPORT (0x04)

Meter Reset

Rate Type

Meter Type

M.S.T

Scale Supported "Byte 1"

Number of Scale Supported Bytes to Follow (optional)

Scale Supported "Byte 2" 1 (optional)

...

Scale Supported "Byte N+1" N (optional)

Fields not described below MUST remain unchanged from version 3. Rate Type (2 bits) This field is used to indicate the supported rate types by the sending node. This field MUST be encoded according to Table 71.

Table 71, Meter Supported Report::Rate Type encoding

Value Supported rate types Version

0x00 Reserved

1..3

0x01 Import only (consumed) 4

0x02 Export only (produced) 4

0x03 Both Import and Export 4

Scale Supported "Byte 1" (7 bits)
This field is used to advertise the supported scales by the sending node.
The field MUST be treated as a bitmask in combination with the Meter Type field and MUST be according to Table 74.
The bit value `1' MUST indicate support for the actual scale. The bit value `0' MUST indicate that there is no support for the actual scale.
M.S.T. (More Scale Types) (1 bit)
This field is used to indicate if the Number of Scale Supported Bytes to Follow field is included in the command.
The value 0 MUST indicate that the Number of Scale Supported Bytes to Follow and subsequent optional Scale Supported fields are omitted from the command.
The value 1 MUST indicate that the Number of Scale Supported Bytes to Follow field is present in the command.
Number of Scale Supported to Follow (8 bits)
This field MUST indicate the length in bytes of the subsequent Scale Supported (bytes 2..N+1) field.
This field MUST be omitted if the M.S.T. field is set to 0.
Scale Supported (bytes 2..N+1) (N bytes)
This field is used to advertise the supported scales by the sending node.
The length of this field in bytes MUST be according to the Number of Scale Supported Bytes to Follow field.
This field MUST be omitted if the M.S.T. field is set to 0 or if the Number of Scale Supported Bytes to Follow field is set to 0.
The field MUST be treated as a bitmask in combination with the Meter Type field and MUST be according to Table 74.
The bit value `1' MUST indicate support for the actual scale. The bit value `0' MUST indicate that there is no support for the actual scale.

4.58.3 Meter Get Command
This command is used to request the current meter reading to a supporting node.
The Meter Report Command MUST be returned in response to this command if the requested scale and rate type are supported.
This command MUST NOT be issued via multicast addressing.
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_METER

Command = METER_GET (0x01)

Rate Type

Scale

Reserved

Scale 2

Fields not described below MUST remain unchanged from version 3. Rate Type (2 bits) This field is used to request a rate type for the meter reading. This field MUST be encoded according to Table 72.
Table 72, Meter Get::Rate Type encoding

Value Description

Version

0x00 Default

1

0x01 Import (consumed) 4

0x02 Export (produced) 4

0x03 Reserved

-

If supported, a receiving node MUST return a report for the requested Rate Type.
If this field is not present or set to 0x00, a receiving node MUST return a Report using its default Rate Type.

Scale (3 bits) This field is used to request an actual scale for the meter reading. This field MUST be encoded according to Table 76. If this field is not present or set to 0x00, a supporting node MUST return a report using its default scale. A supporting node MUST ignored this command if this field is set to a non-supported scale. For improved compatibility with version 1 controlling nodes, a supporting node receiving this command without this field (version 1 format) SHOULD either return a version 1 Report Command or a Report Command with the Rate Type field set to 0x00 The value 7 MUST indicate that the scale of the requested meter reading is advertised by the Scale 2 field. Scale 2 (8 bits) This field is used to request an actual scale for the meter reading. This field MUST be encoded according to Table 76. This field MUST be present in the command if the Scale field is set to 7 (M.S.T). This field MUST be omitted if the Scale field is set to a different value than 7.

4.58.4 Meter Report Command This command is used to advertise the current meter reading at the sending node. This command MUST NOT be issued using broadcast addressing.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER

Command = METER_REPORT (0x02)

Scale (2)

Rate Type

Meter Type

Precision

Scale (1:0)

Size

Meter Value 1

...

Meter Value N

Delta Time 1

Delta Time 2

Previous Meter Value 1 (optional)

...

Previous Meter Value N (optional)

Scale 2

Fields not described below MUST remain unchanged from version 3.

Scale (3 bits) This field MUST advertise the unit used for the Meter Value and Previous Meter Value fields. This field is composed of two sub-fields Scale (2) and Scale (1:0) which MUST be composed and interpreted as one unit. Scale (2) MUST be the most significant bit. This field MUST be encoded according to Table 76. The value 7 MUST indicate that the scale of the advertised meter reading is advertised by the Scale 2 field. Scale 2 (8 bits) This field is used to advertise the unit used for the Meter Value and Previous Meter Value fields. This field MUST be present in the command if the Scale field is set to 7 (M.S.T). This field MUST be omitted if the Scale field is set to a different value than 7. This field MUST be encoded according to Table 73.
Table 73, Meter Report::Scale 2 encoding

Meter Type Scale

Value

Version

kVar

0x00

4

Electric meter kVarh 0x01

4

Reserved 0x02..0xFF -

Gas meter

Reserved 0x00..0xFF -

Water meter Reserved 0x00..0xFF -

Heating meter Reserved 0x00..0xFF -

Cooling meter Reserved 0x00..0xFF -

Reserved values MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.

4.59 Meter Command Class, version 5 The Meter Command Class is used to advertise instantaneous and accumulated numerical readings. The Command Class is intended for accumulated values in physical units from a water meter or metering device (gas, electric etc.) and thereby enabling some automatic meter reading capabilities. 4.59.1 Compatibility considerations The Meter Command Class, version 5 adds support for Heating and Cooling Meter types. The Meter Command Class, version 5 is backwards compatible with version 4. Commands and fields not described in this version MUST remain unchanged from version 4. 4.59.2 Meter Supported Report Command This command is used to advertise supported scales and capabilities of the sending.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER

Command = METER_SUPPORTED_REPORT (0x04)

Meter Reset

Rate Type

Meter Type

M.S.T

Scale Supported "Byte 1"

Number of Scale Supported Bytes to Follow (Version 4 Extension)

Scale Supported 1 "Byte 2"

...

Scale Supported N "Byte N+1"

All fields not described below MUST remain unchanged from version 4.

Meter Type
Electric meter

Table 74, Meter Supported Report::Scale Supported Bitmask encoding

Scale
kWh kVAh W Pulse count V A Power factor

Scale Supported Scale Supported Bit Measurement

Byte number

position

mode

Byte 1

Bit 0

Accumulated

Byte 1

Bit 1

Accumulated

Byte 1

Bit 2

Instant

Byte 1

Bit 3

Accumulated

Byte 1

Bit 4

Instant

Byte 1

Bit 5

Instant

Byte 1

Bit 6

Instant

Version
1 2 2 2 3 3 3

kVar

kVarh

Reserved

Gas meter Cubic meters

Cubic feet

Reserved

Pulse count

Reserved

Reserved

Water meter

Cubic meters Cubic feet

US gallons

Pulse count

Reserved

Heating meter

Reserved kWh Reserved

Cooling meter

Reserved kWh Reserved

Reserved

Byte 2 Byte 2 Byte 2 Byte 1 Byte 1 Byte 1 Byte 1 Byte 1 Byte 2 Byte 1 Byte 1 Byte 1 Byte 1 Byte 1 Byte 2 Byte 1 Byte 1 Byte 2 Byte 1 Byte 1 Byte 2

Bit 0 Bit 1 Bit 2-7 Bit 0 Bit 1 Bit 2 Bit 3 Bit 4-6 Bit 0-7 Bit 0 Bit 1 Bit 2 Bit 3 Bit 4-6 Bit 0-7 Bit 0 Bit 1-6 Bit 0-7 Bit 0 Bit 1-6 Bit 0-7

Instant

4

Accumulated

4

Reserved

-

Accumulated

1

Accumulated

2

n/a

-

Accumulated

2

Reserved

-

Reserved

-

Accumulated

1

Accumulated

1

Accumulated

1

Accumulated

2

Reserved

-

Reserved

-

Accumlated

5

Reserved

-

Reserved

-

Accumlated

5

Reserved

-

Reserved

-

4.59.3 Meter Report Command This command is used to advertise the current meter reading at the sending node. This command MUST NOT be issued using broadcast addressing.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER

Command = METER_REPORT (0x02)

Scale (2)

Rate Type

Meter Type

Precision

Scale (1:0)

Size

Meter Value 1

...

Meter Value N

Delta Time 1

Delta Time 2

Previous Meter Value 1 (optional)

...

Previous Meter Value N (optional)

Scale 2

Fields not described below MUST remain unchanged from version 4. Meter Type (5 bits) This field is used to specify what type of metering physical unit is being reported. This field MUST be encoded according to Table 75.
Table 75,Meter Report::Meter Type encoding

Value Meter Type 0x01 Electric meter 0x02 Gas meter 0x03 Water meter 0x04 Heating meter 0x05 Cooling meter

Version 1 1 1 5 5

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

Scale (3 bits)

This field MUST advertise the unit used for the Meter Value and Previous Meter Value fields . This field is composed of two sub-fields Scale (2) and Scale (1:0), which MUST be composed and interpreted as one unit. Scale (2) MUST be the most significant bit.

This field MUST be encoded according to Table 76.

The value 0x07 MUST indicate that the scale of the advertised meter reading is advertised through the Scale 2 field.

Table 76, Meter Report::Scale encoding

Meter Type Scale

Value

Version

Electric meter kWh

0x00

1

kVAh

0x01

2

W

0x02

2

Pulse count 0x03

2

V

0x04

3

A

0x05

3

Power Factor 0x06

3

M.S.T

0x07

4

Gas meter

Cubic meters 0x00

1

Cubic feet 0x01

2

Reserved

0x02

-

Pulse count 0x03

2

Reserved

0x04..0x06 -

M.S.T

0x07

4

Water meter Cubic meters 0x00

1

Cubic feet 0x01

1

US gallons 0x02

1

Pulse count 0x03

2

Reserved

0x04..0x06 -

M.S.T

0x07

4

Heating meter kWh

0x00

5

Cooling meter kWh

0x00

5

4.60 Meter Command Class, version 6
The Meter Command Class is used to advertise instantaneous and accumulated numerical readings.
The Command Class is intended for accumulated values in physical units from a water meter or metering device (gas, electric etc.) and thereby enabling some automatic meter reading capabilities.
4.60.1 Compatibility Considerations
The Meter Command Class, version 6 adds a functionality to reset the accumulated value stored at receiving node to specific.values.
The Meter Command Class, version 6 is backwards compatible with version 5.
Commands and fields not described in this version MUST remain unchanged from version 5.
4.60.2 Meter Reset Command
This command is used to reset the accumulated values stored at the receiving node.
If the node advertises support for Meter Reset in the Meter Supported Report Command, the supporting node MUST reset the accumulated values to specific values, instead of setting to zero, when receiving this command.
A supporting node MUST ignore this command if it advertises no support for Meter Reset in the Meter Supported Report Command.
When a supporting node resets the value, it MUST use the scale that was used in the last issued Meter Report Command.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER

Command = METER_RESET (0x05)

Size

Meter Type

Meter Value 1

...

Meter Value N

Size (3 bits) This field MUST indicate the length in bytes of the Meter Value field. This field MUST be set to 1, 2 or 4. Meter Type (5 bits) This field is used to specify which Meter type values are being reseted. This field MUST be encoded according to Table 75. Meter Value (N bytes)

This field is used to advertise the actual meter values to set.
The length of this field in bytes MUST be according to the Size field. The first byte MUST be the most significant byte. The field MUST be encoded using signed representation and comply with Table 10.

4.61 Meter Table Configuration Command Class, version 1
The Meter Table Configuration Command Class defines the Commands necessary to configure the fundamental properties of the meter.
The Meter Table configuration commands are separated from the Meter Table monitoring commands in the Meter Table Monitor Command Class, allowing the classes to be optionally supported at different Z-Wave security levels. (E.g. Meter table monitoring commands could be supported in any device, while enabling a strict and certificate based security solution for the Meter Table Configuration Command class). Refer to [14] for more details about Z-Wave security.
4.61.1 Meter Table Point Adm Number Set Command
This command is used to set the Meter Point Administration Number in the metering device. The Meter Point Administration Number is used to identify the customer.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_TBL_CONFIG

Command = METER_TBL_TABLE_POINT_ADM_NO_SET

Reserved

Number of Meter Point Adm Number Characters

Meter Point Adm Number Character 1

...

Meter Point Adm Number Character N

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Number of Meter Point Adm Number Characters (5 bits) Number of characters in the meter point administration number(1...32). Meter Point Adm Number Character (N bytes) The Meter Point Adm Number character fields hold the string identifying the customer. The character presentation uses standard ASCII codes (values 128-255 are ignored).

4.62 Meter Table Monitor Command Class, version 1
The Meter Table Monitor Command Class defines the Commands necessary to read historical and accumulated values in physical units from a water meter or other metering device (gas, electric etc.) and thereby enabling automatic meter reading capabilities
4.62.1 Meter Table Point Adm. Number Get Command
This command is used to request the Meter Point Administration Number to identify customer.
The Meter Table Adm. Number Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing.
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_METER_TBL_MONITOR

Command = METER_TBL_TABLE_POINT_ADM_NO_GET

4.62.2 Meter Table Point Adm. Number Report Command This command reports parameters used for identification of customer and metering device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_TBL_MONITOR

Command = METER_TBL_TABLE_POINT_ADM_NO_REPORT

Reserved

Number of Meter Point Adm. Number Characters

Meter Point Adm. Number Character 1

...

Meter Point Adm. Number Character N

Fields MUST be according to descriptions in the Meter Table Point Adm Number Set Command from the Meter Table Configuration Command Class, version 1.

4.62.3 Meter Table ID Get Command
This command is used to request the parameters used for identification of customer and metering device.
The Meter Table ID Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing.
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_METER_TBL_MONITOR

Command = METER_TBL_TABLE_ID_GET

4.62.4 Meter Table ID Report Command This command reports parameters used for identification of customer and metering device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_TBL_MONITOR

Command = METER_TBL_TABLE_ID_REPORT

Reserved

Number of Meter ID Characters

Meter ID Character 1

...

Meter ID Character N

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Number of Meter ID Characters (5 bits) This field is used to indicate the length of the Meter ID Character field in bytes. This field MUST be in the range 1..32.

Meter ID Character (N bytes) This field is used to identify the individual metering device. The length of this field in bytes MUST be according to the Number of Meter ID Characters field. Each byte of this field MUST be encoded with ASCII representation and be in the range 0x00..0x7F. A controlling node can use the Manufacturer Specific Command Class in conjunction for product identification. 4.62.5 Meter Table Capability Get Command This command is used to request the meter table capabilities of a supporting device. The Meter Table Capability Report Command MUST be returned in response to this command. This command MUST NOT be issued via multicast addressing. 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_METER_TBL_MONITOR

Command = METER_TBL_TABLE_CAPABILITY_GET

4.62.6 Meter Table Capability Report Command This command is used to advertise meter table capabilities of the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_TBL_MONITOR

Command = METER_TBL_REPORT

Rate Type

Meter Type

Reserved

Pay Meter

Dataset Supported 1

Dataset Supported 2

Dataset Supported 3

Dataset History Supported 1

Dataset History Supported 2

Dataset History Supported 3

Data History Supported 1

Data History Supported 2

Data History Supported 3

Rate Type (2 bits) This field is used to indicate if the actual reading advertises import or export values. The Import value for a meter reading MUST indicate that the reading indicates a consumed amount. The Export value for a meter reading MUST indicate that the reading indicates a produced amount. This field MUST be encoded according to the Rate Types values defined in [21]. Meter Type (6 bits) This field is used to specify the type of metering physical unit that is being reported. This field MUST be encoded according to the Meter Types values defined in [21]. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Pay Meter (4 bits) This field is used to indicate the type of payment that is used for the meter. This field MUST be encoded according to the Pay meter values defined in [21].

Dataset Supported (24 bits)
This field is used to advertise which datasets are supported and can be requested from the metering node with the Meter Table Current Data Get Command.
This field MUST be encoded according to the Meter dataset bitmask values defined in [21].
Dataset History Supported (24 bits)
This field is used to advertise which datasets are supported and can be requests from the metering node with the Meter Table Historical Data Get Command.
This field MUST be encoded according to the Meter dataset bitmask values defined in [21].
Data History Supported (24 bits)
This field is used to advertise the total number of entries that the supporting node can hold in memory for historical values.
This field MUST be in the range 0..16777215. The value 0 MUST indicate that Historical data cannot be requested to the sending node.
4.62.7 Meter Table Status Supported Get Command
This command is used to request the supported operating status event parameters and logging depth of the metering device.
The Meter Table Status Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing.
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_METER_TBL_MONITOR

Command = METER_TBL_STATUS_SUPPORTED_GET

4.62.8 Meter Table Status Supported Report Command
This command is used to report the supported operation status and logging depth of these in the meter.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_TBL_MONITOR

Command = METER_TBL_STATUS_SUPPORTED_REPORT

Supported Operating Status 1

Supported Operating Status 2

Supported Operating Status 3

Status Event Log Depth

Supported Operating Status (24 bits) This field is used to advertise which operating statuses are supported and can be sent by the metering node in the Meter Table Status Report Command. This field MUST be encoded as a bitmask according to the Operating status values defined in [21]. If the Operating Status event is supported, the corresponding bit MUST be set to 1. If the Operating Status event is not supported, the corresponding bit MUST be set to 0. A supporting node MAY support no operating status event and set this field to 0. Status Event Log Depth (8 bits) This field MUST indicate the supported depth of the event log. This field MUST be in the range 0..255. If the supporting node can only return the current status, this field MUST be set to 0.

4.62.9 Meter Table Status Depth Get Command
This command is used to request the current operating status of the metering device or to request a number of the latest status event from the logs.
The Meter Table Status Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing.
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_METER_TBL_MONITOR

Command = METER_TBL_STATUS_DEPTH_GET

Status Event Log Depth

Status Event Log Depth (8 bits) This field is used to indicate the number of last recorded events that should be returned. The value 0x00 MUST indicate that the receiving node MUST return the current status only. Values in the range 0x01..0xFE MUST indicate the number of last recorded event that the receiving node SHOULD return. The value 0xFF MUST indicate that the receiving node SHOULD return its entire status event log.

4.62.10 Meter Table Status Date Get Command
This command is used to request a number of status events recorded in a certain time interval.
The Meter Table Status Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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.
If a supporting node does not support a status event log history, it MUST return the current state of the meter (refer to the Meter Table Status Report Command).

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_TBL_MONITOR

Command = METER_TBL _STATUS_DATE_GET

Maximum Reports

Start - Year 1

Start - Year 2

Start - Month

Start - Day

Start - Hour Local Time

Start - Minute Local Time

Start - Second Local Time

Stop - Year 1

Stop - Year 2

Stop - Month

Stop - Day

Stop - Hour Local Time

Stop - Minute Local Time

Stop - Second Local Time

Maximum Reports (8 bits)
This field is used to indicate the maximum number of Meter Table Status Report Command that can be returned to advertise the requested status event history. The most recent recorded log entries MUST be returned first.
The value 0x00 MUST indicate that there is no maximum number of reports for returning the event log and the supporting node MUST return as many Reports as necessary to advertise the requested entry logs.
Values in the range 0x01..0xFF MUST indicate an actual upper limit number of reports to advertise the requested entry logs.
Start/Stop - Year (16 bits)
Specify the year in the usual Gregorian calendar. The first byte (Year 1) is the most significant byte.
Start/Stop - Month (8 bits)
Specify the month of the year between 01 (January) and 12 (December).
Start/Stop - Day (8 bits)
Specify the day of the month between 01 and 31.
Start/Stop - Hour Local Time (8 bits)
Specify the number of complete hours that have passed since midnight (00-23) in local time.
Start/Stop - Minute Local Time (8 bits)
Specify the number of complete minutes that have passed since the start of the hour (00-59) in local time.
Start/Stop - Second Local Time (8 bits)
Specify the number of complete seconds since the start of the minute (00-59) in local time. The value 60 used to keep UTC from wandering away is not supported.

4.62.11 Meter Table Status Report Command This command is used to advertise the current status and optionally historical status data of the meter.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_TBL_MONITOR

Command = METER_TBL_STATUS_REPORT

Reports to follow

Current Operating Status 1

Current Operating Status 2

Current Operating Status 3

Event 1 Type

Reserved

Event 1 - Operating Status Event ID

Event 1 - Year 1

Event 1 - Year 2

Event 1 - Month

Event 1 - Day

Event 1 - Hour Local Time

Event 1 - Minute Local Time

Event 1 - Second Local Time

...

Event N -Type

Reserved

Event N - Operating Status Event ID

Event N - Year 1

Event N - Year 2

Event N - Month

Event N - Day

Event N - Hour Local Time

Event N -Minute Local Time

Event N - Second Local Time

Reports to follow (8 bits)
This field MUST be used if multiple Meter Table Status Report Commands are used to report the requested Operating status.

Values in the range 0x00..0xFE MUST indicate the actual number of commands following the actual command. The value 0xFF MUST indicate that the number of remaining commands have not been calculated yet or is higher than 255. Current Operating Status (24 bits) This field is used to advertise which operating statuses are currently active at the sending node. This field MUST be encoded as a bitmask according to the Operating status values defined in [21]. If the Operating Status event is active, the corresponding bit MUST be set to 1. If the Operating Status event is not active, the corresponding bit MUST be set to 0. Event ­ Type (N * 1 bit) This field is used to advertise the type of the actual event in the event log. It represents the transition to or from a state. The value 0 MUST indicate that the sending node entered the state described by the corresponding Operating Status Event ID at the reported time. The value 1 MUST indicate that the sending node left the state described by the corresponding Operating Status Event ID at the reported time. Event ­ Operating Status Event ID (N * 5 bits) This field is used to advertise the identifier of the actual event in the event log. This field MUST be encoded according to the Operating status Event identifier values defined in [21]. Event - Year (N * 16 bits) This field is used to specify the year in the usual Gregorian calendar for the actual event. The first byte (Year 1) MUST be the most significant byte. Event - Month (N * 8 bits) This field is used to specify the month of the year between 01 (January) and 12 (December) for the actual event. This field MUST be in the range 1..12. Event - Day (N * 8 bits) This field is used to specify the day of the month for the actual event. This field MUST be in the range 1..31

Event - Hour Local Time (N * 8 bits)
This field is used to specify the number of complete hours that have passed since midnight in local time for the actual event. This field MUST be in the range 0..23.
Event - Minute Local Time (N * 8 bits)
This field is used to specify the number of complete minutes that have passed since the start of the hour in local time for the actual event. This field MUST be in the range 0..59.
Event - Second Local Time (N * 8 bits)
This field is used to specify the number of complete seconds since the start of the minute in local time for the actual event. The value 60 used to keep UTC from wandering away is not supported. This field MUST be in the range 0..59.
4.62.12 Meter Table Current Data Get Command
This command is used to request a number of time stamped values (current) in physical units according to the dataset mask.
The Meter Table Current Data Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing.
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_METER_TBL_MONITOR

Command = METER_TBL_CURRENT_DATA_GET

Dataset Requested 1

Dataset Requested 2

Dataset Requested 3

Dataset Requested (24 bits)
This field is used to indicate which datasets are requested from the supporting node.
This field MUST be encoded as a bitmask and according to the Meter dataset bitmask values defined in [21].

4.62.13 Meter Table Current Data Report Command This command is is used to report a number of time stamped values.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_TBL_MONITOR

Command = METER_TBL_CURRENT_DATA_REPORT

Reports to Follow

Reserved

Rate Type

Dataset 1

Dataset 2

Dataset 3

Year 1

Year 2

Month

Day

Hour Local Time

Minute Local Time

Second Local Time

Current Meter Precision 1

Current Meter Scale 1

Current Value 1,1

Current Value 1,2

Current Value 1,3

Current Value 1,4

...

Current Meter Precision N

Current Meter Scale N

Current Value N,1

Current Value N,2

Current Value N,3

Current Value N,4

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

Reports to follow (8 bits)
This field MUST be used if multiple Meter Table Current Data Report Commands are used to report the requested values.
Values in the range 0x00..0xFE MUST indicate the actual number of commands following the actual command.
The value 0xFF MUST indicate that the number of remaining commands have not been calculated yet or is higher than 255.
Rate Type (2 bits)
This field is used to specify the type of parameters advertised in this command. This field MUST be encoded according to the rate types values defined in [21].
Dataset (24 bits)
This field is used to indicate which datasets are included in this command. This field MUST be encoded as a bitmask and according to the Meter dataset bitmask values defined in [21].
The length of the Current Meter Precision, Current Meter Scale and Current Value fields MUST be according to the number of bits set in this field.
Year (16 bits)
This field is used to specify the year in the usual Gregorian calendar. The first byte (Year 1) MUST be the most significant byte. A year equal to 0x0000 MUST indicate that an accumulated value is not determined yet.
Month (8 bits)
This field is used to specify the month of the year between 01 (January) and 12 (December). This field MUST be in the range 1..12.
Day (8 bits)
This field is used to specify the day of the month. This field MUST be in the range 1..31.
Hour Local Time (8 bits)
This field is used to specify the number of complete hours that have passed since midnight in local time. This field MUST be in the range 0..23.
Minute Local Time (8 bits)
This field is used to specify the number of complete minutes that have passed since the start of the hour in local time. This field MUST be in the range 0..59.
Second Local Time (8 bits)
This field is used to specify the number of complete seconds since the start of the minute in local time. The value 60 used to keep UTC from wandering away is not supported. This field MUST be in the range 0..59.

Meter Precision (N * 3 bits)
This field is used to indicate how many decimal places are included in the corresponding Current Value field. For example, the Current Value field set to 1025 with this field set to 2 MUST be interpreted as equal to 10.25.
Meter Scale (N * 5 bits)
This field is used to indicate the scale (unit) for the corresponding Current Value field reading. This field MUST be encoded according to the Meter Scale values defined in [21].
Current Value (N * 4 bytes)
This field is used to advertise an actual meter reading.
The first byte MUST be the most significant byte.
This field MUST be encoded using signed representation and comply with Table 10, Signed field encoding (two's complement representation).
Readings MUST be advertised according to the Dataset field. The first reading MUST correspond to the first bit set in the Dataset field, the second reading MUST correspond to the second bit set in the Dataset field, and so on.
A controlling node MUST always show the value even if the reading type or scale are unknown.
A controlling node SHOULD implement the capability to update its list of Meter datasets and scales, so that new Meter readings and scales added in [21] are not presented as unknown. If a controlling node receives an unknown Meter reading or scale, it SHOULD allow the user to assign a free-text description to that Meter reading

4.62.14 Meter Table Historical Data Get Command
This command is used to request a number of time stamped values (historical) in physical units according to rate type, dataset bitmask and time interval.
The Meter Table Historical Data Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing.
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_METER_TBL_MONITOR

Command = METER_TBL_HISTORICAL_DATA_GET

Maximum Reports

Historical Dataset Requested 1

Historical Dataset Requested 2

Historical Dataset Requested 3

Start Year 1

Start Year 2

Start Month

Start Day

Start Hour Local Time

Start Minute Local Time

Start Second Local Time

Stop Year 1

Stop Year 2

Stop Month

Stop Day

Stop Hour Local Time

Stop Minute Local Time

Stop Second Local Time

Maximum Reports (8 bits)
This field is used to indicate the maximum number of Meter Table Historical Data Report Commands that can be returned to advertise the requested historical data. The most recent recorded values MUST be returned first.
The value 0x00 MUST indicate that there is no maximum number of reports for returning the event log and the supporting node MUST return as many Reports as necessary to advertise the requested historical values.
Values in the range 0x01..0xFF MUST indicate an actual upper limit number of reports to advertise the requested historical values.
Dataset History (24 bits)
This field is used to indicate which datasets are requested from the supporting node.
This field MUST be encoded as a bitmask and according to the Meter dataset bitmask values defined in [21].
Start/Stop Year (16 bits)
This field is used to specify the year in the usual Gregorian calendar. The first byte (Year 1) MUST be the most significant byte.
Start/Stop Month (8 bits)
This field is used to specify the month of the year between 01 (January) and 12 (December). This field MUST be in the range 1..12.
Start/Stop Day (8 bits)
This field is used to specify the day of the month. This field MUST be in the range 1..31.
Start/Stop Hour Local Time (8 bits)
Specify the number of complete hours that have passed since midnight (00-23) in local time.
Start/Stop Minute Local Time (8 bits)
This field is used to specify the number of complete minutes that have passed since the start of the hour (00-59) in local time. This field MUST be in the range 0..59.
Start/Stop Second Local Time (8 bits)
This field is used to specify the number of complete seconds since the start of the minute in local time. The value 60 used to keep UTC from wandering away is not supported. This field MUST be in the range 0..59.

4.62.15 Meter Table Historical Data Report Command This command is used to report a number of time stamped values.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_TBL_MONITOR

Command = METER_TBL_HISTORICAL_DATA_REPORT

Reports to Follow

Reserved

Rate Type

Dataset 1

Dataset 2

Dataset 3

Historical Year 1

Historical Year 2

Historical Month

Historical Day

Historical Hour Local Time

Historical Minute Local Time

Historical Second Local Time

Historical Precision 1

Historical Scale 1

Historical Value 1,1

Historical Value 1,2

Historical Value 1,3

Historical Value 1,4

...

Historical Precision N

Historical Scale N

Historical Value N,1

Historical Value N,2

Historical Value N,3

Historical Value N,4

Reports to Follow (8 bits)
This field MUST be used if multiple Meter Table Current Data Report Commands are used to report the requested values.
Values in the range 0x00..0xFE MUST indicate the actual number of commands following the actual command.
The value 0xFF MUST indicate that the number of remaining commands have not been calculated yet or is higher than 255.
Reserved
This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Rate Type (2 bits)
This field is used to specify the type of parameters advertised in this command. This field MUST be encoded according to the rate types values defined in [21].
Dataset (24 bits)
This field is used to indicate which datasets are included in this command. This field MUST be encoded as a bitmask and according to the Meter dataset bitmask values defined in [21].
If no historical data has been registered for the requested period, this field MUST be set to 0 and the Historical Scale, Historical Precision and Historical Value fields MUST be omitted from the command.
Historical Year (16 bits)
This field is used to specify for the dataset the year in the usual Gregorian calendar. The first byte (Year 1) MUST be the most significant byte. A year equal to 0x0000 indicates that an accumulated value is not determined yet.
Historical Month (8 bits)
This field is used to specify for the dataset the month of the year between 01 (January) and 12 (December). This field MUST be in the range 1..12.
Historical Day (8 bits)
This field is used to specify for the dataset the day of the month. This field MUST be in the range 1..31.

Historical Hour Local Time (8 bits)
This field is used to specify for the dataset the number of complete hours that have passed since midnight in local time. This field MUST be in the range 0..23.
Historical Minute Local Time (8 bits)
This field is used to specify for the dataset the number of complete minutes that have passed since the start of the hour in local time. This field MUST be in the range 0..59.
Historical Second Local Time (8 bits)
This field is used to specify for the dataset the number of complete seconds since the start of the minute in local time. The value 60 used to keep UTC from wandering away is not supported. This field MUST be in the range 0..59.
Historical Precision (N * 3 bits)
This field is used to specify how many decimal places are included in the corresponding Historical Value field. For example, the Historical Value field set to 1025 with this field set to 2 MUST be interpreted as equal to 10.25.
Historical Scale (5 bits)
This field is used to indicate the scale (unit) of the corresponding Historical Value field reading. This field MUST be encoded according to the Meter Scale values defined in [21].
Historical Value
This field is used to advertise an actual historical meter reading.
The first byte MUST be the most significant byte.
This field MUST be encoded using signed representation and comply with Table 10, Signed field encoding (two's complement representation).
Readings MUST be advertised according to the Dataset field. The first reading MUST correspond to the first bit set in the Dataset field, the second reading MUST correspond to the second bit set in the Dataset field, and so on.
A controlling node MUST always show the value even if the reading type or scale are unknown.
A controlling node SHOULD implement the capability to update its list of Meter datasets and scales, so that new Meter readings and scales added in [21] are not presented as unknown. If a controlling node receives an unknown Meter reading or scale, it SHOULD allow the user to assign a free-text description to that Meter reading
4.63 Meter Table Monitor Command Class, version 2
The Meter Table Monitor Command Class defines the Commands necessary to read historical and accumulated values in physical units from a water meter or other metering device (gas, electric etc.) or electric sub-metering device and thereby enabling automatic meter reading capabilities.

4.63.1 Compatibility Considerations
The Meter Table Monitor Command Class, version 2 is backwards compatible with the Meter Table Monitor Command Class, version 1.
All commands and fields not mentioned in this version MUST remain unchanged from the Meter Table Monitor Command Class, version 1.
4.63.2 Meter Table Point Adm. Number Report Command
This command reports parameters used for identification of customer and metering device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_TBL_MONITOR

Command = METER_TBL_TABLE_POINT_ADM_NO_REPORT

Reserved

Number of Meter Point Adm. Number Characters

Meter Point Adm. Number Character 1

...

Meter Point Adm. Number Character N

Fields not described below MUST remain unchanged from version 1.
Number of Meter Point Adm. Number Characters (5 bits)
If the Meter Table Point Adm, Number has not been set using the Meter Table Configuration Command Class, this field MUST be set to 0x00 and the Meter Point Adm. Numbers Character field MUST be omitted.

4.63.3 Meter Table ID Report Command This command reports parameters used for identification of customer and metering device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_TBL_MONITOR

Command = METER_TBL_TABLE_ID_REPORT

Reserved

Number of Meter ID Characters

Meter ID Character 1

...

Meter ID Character N

Fields not described below MUST remain unchanged from version 1. Number of Meter ID Characters (5 bits) This field is used to indicate the length of the Meter ID Character field in bytes. This field MUST be in the range 0..32. The value 0 MUST indicate that the Meter ID is not used and the Meter ID Character field MUST be omitted from the command. 4.63.4 Meter Table Capability Report Command This command is used to advertise meter table capabilities.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_TBL_MONITOR

Command = METER_TBL_REPORT

Rate Type

Meter Type

Reserved

Pay Meter

Dataset Supported 1

Dataset Supported 2

Dataset Supported 3

Dataset History Supported 1

Dataset History Supported 2

Dataset History Supported 3

Data History Supported 1

Data History Supported 2

Data History Supported 3

Fields not described below MUST remain unchanged from version 1. Rate Type (2 bits) This field is used to indicate if the actual reading advertises import or export values. The Import value for a meter reading MUST indicate that the reading indicates a consumed amount. The Export value for a meter reading MUST indicate that the reading indicates a produced amount. This field MUST be encoded according tothe Rate Types values defined in [21]. If the Meter Type field is set to Submeter (0x0B), this field MUST be set to Import (0x01).

4.63.5 Meter Table Current Data Report Command This command is used to report a number of time stamped values.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_TBL_MONITOR

Command = METER_TBL_CURRENT_DATA_REPORT

Reports to Follow

Operating Status
Indication

Reserved

Rate Type

Dataset 1

Dataset 2

Dataset 3

Year 1

Year 2

Month

Day

Hour Local Time

Minute Local Time

Second Local Time

Current Meter Precision 1

Current Meter Scale 1

Current Value 1,1

Current Value 1,2

Current Value 1,3

Current Value 1,4

...

Current Meter Precision N

Current Meter Scale N

Current Value N,1

Current Value N,2

Current Value N,3

Current Value N,4

Fields not described below MUST remain unchanged from version 1.

Operating Status Indication (1 bit) This field is used to indicate that the reported meter data is measured while the meter is in an operating status different from Normal (0x00) e.g. accuracy warning or clock not accurate. The value 1 MUST indicate that the meter is operating in a status different from Normal The value 0 MUST indicate that the meter is operating in Normal mode (Operating status=0x00). Rate Type (2 bits) This field is used to indicate the type of parameters in the report. This field MUST be encoded according to the Rate Types values defined in [21]. If the Meter Type field is set to Submeter (0x0B), this field MUST be set to Import (0x01).

4.63.6 Meter Table Historical Data Report Command This command is used to report a number of time stamped values.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_TBL_MONITOR

Command = METER_TBL_HISTORICAL_DATA_REPORT

Reports to Follow

Operating Status
Indication

Reserved

Rate Type

Dataset 1

Dataset 2

Dataset 3

Historical Year 1

Historical Year 2

Historical Month

Historical Day

Historical Hour Local Time

Historical Minute Local Time

Historical Second Local Time

Historical Precision 1

Historical Scale 1

Historical Value 1,1

Historical Value 1,2

Historical Value 1,3

Historical Value 1,4

...

Historical Precision N

Historical Scale N

Historical Value N,1

Historical Value N,2

Historical Value N,3

Historical Value N,4

Fields not described below MUST remain unchanged from version 1.

Operating Status Indication (1 bit) This field is used to indicate that the reported meter data is measured while the meter is in an operating status different from Normal (0x00) e.g. accuracy warning or clock not accurate. The value 1 MUST indicate that the meter is operating in a status different from Normal The value 0 MUST indicate that the meter is operating in Normal mode (Operating status=0x00). Rate Type (2 bits) This field is used to indicate the type of parameters in the report. This field MUST be encoded according to the Rate Types values defined in [21]. If the Meter Type field is set to Submeter (0x0B), this field MUST be set to Import (0x01).
4.64 Meter Table Monitor Command Class, version 3 The Meter Table Monitor Command Class, version 3 is used for advanced metering applications. It allows reading historical and accumulated values in physical units from a water meter or other metering device (gas, electric etc.) or electric sub-metering device and thereby enabling automatic meter reading capabilities 4.64.1 Compatibility Considerations The Meter Table Monitor Command Class, version 3 is backwards compatible with the Meter Table Monitor Command Class, version 2. All commands and fields not mentioned in this version MUST remain unchanged from the Meter Table Monitor Command Class, version 2. The list of supported Meter Types, Meter scales and Meter dataset bitmasks is moved to [21]. Values not defined in [21] are reserved and MUST NOT be used by a supporting node.
4.65 Meter Table Push Configuration Command Class version 1 The Meter Table Push Configuration Command Class is used to configure the meter to send a Current Data Report at a given interval. The meter may be configured to return different data sets at different intervals using both the primary and secondary push commands.

4.65.1 Meter Table Push Configuration Set Command
This command is used to request the meter to send a Current Data Report at a given interval. The meter may be configured to return different data sets at different intervals using both the primary and secondary push commands.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_TBL_PUSH

Command = METER_TBL_PUSH_CONFIGURATION_SET

Reserved

P/S

Operating Status Push Mode

Push Dataset 1

Push Dataset 2

Push Dataset 3

Interval Months

Interval Days

Interval Hours

Interval Minutes

Push Node ID

Operating Status Push Mode (4 bits)
This field is used to configure if the Meter Table Status Report Command (refer to 4.62.11) participates in the Push Functionality

Operating Status Push Mode Identifier

Description

0x00

Operating Status push disabled

0x01

Operating Status push based on Interval

0x02

Operating Status push based on Status Change

0x03

Operating Status push Based on Interval AND status change

0x04-0x0F

Reserved

P/S (1 bit)

P/S

Description

0x00

Primary push configuration

0x01

Secondary push configuration

Push Dataset (24 bits) The Push Dataset parameter is use to indicate which parameters are requested to be pushed from the meter. This field MUST be encoded according to the Meter Dataset defined in [21]. Interval Months (8 bits) Specify the number of months between pushing the push dataset. Interval Day (8 bits) Specify the number of days between pushing the push dataset. Interval Hours (8 bits) Specify the number of hours between pushing the push dataset. Interval Minute (8 bits) Specify the number of minutes between pushing the push dataset. Push Node ID (8 bits) Specify the node ID of the node to receive push dataset in the given interval. 4.65.2 Meter Table Push Configuration Get Command This command is used to request the meters push configuration The Meter Table Push Configuration Report Command MUST be returned in response to this command. This command MUST NOT be issued via multicast addressing. 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_METER_TBL_PUSH

Command = METER_TBL_PUSH_CONFIGURATION_GET

4.65.3 Meter Table Push Configuration Report Command This command is used report the current Push Configuration

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_TBL_PUSH

Command = METER_TBL_PUSH_CONFIGURATION_REPORT

Reserved

P/S

Operating Status Push Mode

Push Dataset 1

Push Dataset 2

Push Dataset 3

Interval Months

Interval Days

Interval Hours

Interval Minutes

Push Node ID

Refer to Meter Table Push Configuration Set Command (section 4.65.1) for detailed description of the fields.

4.66 Move To Position Window Covering Command Class, version 1 [OBSOLETED]
THIS COMMAND CLASS HAS BEEN OBSOLETED New implementations MUST NOT support this command class. Window covering device implementations SHOULD support the Window Covering Command Class.
The Move To Position Window Covering Command Class is used to control the position of a window covering device. The Move To Position Window Covering Command Class is an actuator control command class. Refer to 3.6.

4.66.1 Move To Position Set Command This command is used to instruct a window covering to move to a new position.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_MTP_WINDOW_COVERING

Command = MOVE_TO_POSITION_SET

Value

Value (8 bits) The encoding of the Value field MUST be according to Table 77.
Table 77, Move To Position Set :: Value

Value

0

(0x00)

1..99 (0x01..0x63)

...

255 (0xFF)

Level

State

0%

Closed

Almost closed .. 100% Open Open

reserved

reserved

100% Open

Open

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
4.66.2 Move To Position Get Command
This command is used to request the status of a window covering device.
The Move To Position Report command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_MTP_WINDOW_COVERING

Command = MOVE_TO_POSITION_GET

4.66.3 Move To Position Report Command This command is used to advertise the status of a window covering device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_MTP_WINDOW_COVERING

Command = MOVE_TO_POSITION_REPORT

Value

Value (8 bits)
The encoding of the Value field MUST be according to Table 77.
The Value field SHOULD advertise the current value of the device hardware; also while in transition to a new target value.
A controlling device MUST NOT assume that the Value is identical to a value previously issued with a Set command when a transition has ended.

4.67 Multilevel Sensor Command Class, version 1-4 The Multilevel Sensor Command Class is used to advertise numerical sensor readings.. 4.67.1 Multilevel Sensor Get Command This command is used to request the current reading from a multilevel sensor.

CC:0031.01.04.11.001 The Multilevel Sensor Report Command MUST be returned in response to this command.

CC:0031.01.04.11.002 CC:0031.01.04.11.003

This command MUST NOT be issued via multicast addressing. 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_SENSOR_MULTILEVEL

Command = SENSOR_MULTILEVEL_GET

4.67.2 Multilevel Sensor Report Command
This command is used by a supporting node to advertise its current sensor reading for its supported sensor type.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SENSOR_MULTILEVEL

Command = SENSOR_MULTILEVEL_REPORT

Sensor Type

Precision

Scale

Size

Sensor Value 1

...

Sensor Value N

Sensor Type (8 bits)

CC:0031.01.05.11.001 CC:0031.01.05.11.002

This field is used to specify the sensor type of the actual sensor reading.
This field MUST be set to a value defined in [17]. Values not defined in [17] are reserved and MUST NOT be used.
A node MUST support as a minimum the highest Multilevel Sensor Command Class version associated with the Scale and Type it supports. The minimum required version for each Scale and Type is specified in [17].

Precision (3 bits)

This field is used to indicate how many decimal places are included the Sensor Value field. For example, CC:0031.01.05.11.003 the Sensor Value 1025 with precision 2 MUST be interpreted as equal to 10.25.

Scale (2 bits)

CC:0031.01.05.11.004 CC:0031.01.05.11.005

This field is used to indicate what scale is used for the actual sensor reading.
This field MUST be set to a value defined in [17]. Values not defined in [17] are reserved and MUST NOT be used.
A node MUST implement as a minimum the highest Multilevel Sensor Command Class version associated with the Scale and Type it supports. The minimum required version for each Scale and Type is specified in [17].
Size (3 bits)

This field is used to indicate the length in bytes of the Sensor Value field. CC:0031.01.05.11.006 This field MUST be set to 1, 2 or 4.

Sensor Value (N bytes)

CC:0031.01.05.11.007 CC:0031.01.05.11.008 CC:0031.01.05.11.009
CC:0031.01.05.11.00A
CC:0031.01.05.12.001 CC:0031.01.05.12.002

This field is used to advertise the value of the actual sensor reading.
The length of this field in bytes MUST be according to the Size field value.
The first byte MUST be the most significant byte.
This field MUST be encoded using signed representation and comply with Table 10, Signed field encoding (two's complement representation).
A controlling node receiving this command MUST always show the sensor value as is even though the Sensor Type and/or Scale are unknown.
A controlling node SHOULD implement the capability to update its list of Sensor Type and Scales, so that new Sensor Types and Scales added in [17] are not presented as unknown. If a controlling node receives an unknown Sensor Type or Scale, it SHOULD allow the user to assign a free-text description to the sensor reading.

4.68 Multilevel Sensor Command Class, Version 5-11 The Multilevel Sensor Command Class is used to advertise numerical sensor readings .

4.68.1 Compatibility considerations
A node supporting version 5 or newer may support several sensor types and advertise the readings for each of them. Version 5 of this command class is extended with the following functionality:
 A "get-supported" mechanism for the controlling device to interview the multilevel sensor for its supported sensor types and/or scales
 Additional sensor type and scale fields to the Multilevel Sensor Get command to request for a specific sensor report
 Additional sensor types and/or scales to the list of multilevel sensors Version 6 of this command class is extended with the following functionality:
 Additional sensor types Version 7 of this command class is extended with the following functionality:
 Additional sensor types Version 8 of this command class is extended with the following functionality:
 New Sensor Types and Scale Values for rotation and linear movement.  New Sensor Types and Scale Values for Smoke Density Multilevel Sensor Command Class, version 8 deprecates the Sensor Type "Angle Position". Version 9 of this command class is extended with the following functionality:  New Sensor Types and Scale Values for Water Flow and Water Pressure  New Sensor Types and Scale Values for RF Signal Strength

Version 10 of this command class is extended with the following functionality:
 New Sensor Types and Scale Values for Particulate Matter 10 and Respiratory rate  New Scale Values for CO and VOC Sensors Types
Version 11 of this command class is extended with the following functionality:
 New Sensor Types and Scale Values.  Moved the list of assigned Sensor Types and Scale Values to an external registry [17].  Deprecated the "General Purpose" Sensor Type

CC:0031.05.05.22.001 CC:0031.05.05.22.002

4.68.1.1 Unknown Multilevel Sensor Types and Scales
A controlling node SHOULD implement the capability to update its Multilevel sensor types and scales list, so that new Types and Scales added in [17] are not presented as unknown. If a controlling node receives an unknown Type or Scale, it SHOULD allow the user to assign a free-text description to that Type or Scale.

4.68.2 Multilevel Sensor Get Supported Sensor Command

CC:0031.05.01.11.001
CC:0031.05.01.11.002 CC:0031.05.01.11.003

This command is used to request the supported Sensor Types from a supporting node.
The Multilevel Sensor Supported Sensor Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SENSOR_MULTILEVEL

Command = SENSOR_MULTILEVEL_SUPPORTED_GET_SENSOR

4.68.3 Multilevel Sensor Supported Sensor Report Command This command is used to advertise the supported Sensor Types by a supporting node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SENSOR_MULTILEVEL

Command = SENSOR_MULTILEVEL_SUPPORTED_SENSOR_REPORT

Bit Mask 1

...

Bit Mask N

Bit Mask (N bytes)

CC:0031.05.02.11.001

This field is used to advertise the supported sensor types by sending node.
This field MUST be treated as a bit mask and interpreted as follows:
 Bit 0 in Bit Mask 1 indicates if Sensor Type = Air Temperature (0x01) is supported  Bit 1 in Bit Mask 1 indicates if Sensor Type = General Purpose (0x02) is supported  Bit 2 in Bit Mask 1 indicates if Sensor Type = luminance (0x03) is supported ...

CC:0031.05.02.11.002 CC:0031.05.02.11.003

The list of Sensor Types is defined in [17].
The value 1 MUST indicate that the corresponding Sensor Type is supported.
The value 0 MUST indicate that the corresponding Sensor Type is not supported.
It is only necessary to send the Bit Mask fields from 1 and up to the Bit Mask N indicating the last supported Sensor Type. The number of Bit Mask fields transmitted MUST be determined from the length field in the frame.
Note that the mapping of bit 0 to Sensor Type = 1 differs from the support mapping used by the Notification Command Class. The Notification Command Class maps bit 1 to Notification Type =1.

CC:0031.05.03.11.001
CC:0031.05.03.11.002 CC:0031.05.03.11.003

4.68.4 Multilevel Sensor Get Supported Scale Command
This command is used to retrieve the supported scales of the specific sensor type from the Multilevel Sensor device.
The Multilevel Sensor Supported Scale Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SENSOR_MULTILEVEL

Command = SENSOR_MULTILEVEL_SUPPORTED_GET_SCALE

Sensor Type

Sensor Type (8 bits)

CC:0031.05.03.12.001

This field is used to request a given sensor type.
If the specified sensor type is not supported, a receiving node SHOULD set the Scale Bit Mask field to 0 in the returned response.

4.68.5 Multilevel Sensor Supported Scale Report Command This command is used to advertise the supported scales of a specified multilevel sensor type.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SENSOR_MULTILEVEL

Command = SENSOR_MULTILEVEL_SUPPORTED_SCALE_REPORT

Sensor Type

Reserved

Scale Bit Mask

Sensor Type (8 bits)

This field is used to indicate the actual Sensor Type for which the supported scales are being advertised.

Scale Bit Mask (4 bits)

CC:0031.05.06.11.001 CC:0031.05.06.11.002

This field is used to advertise the supported scales for the actual sensor type.
This field MUST be treated as a bit mask and interpreted as follow:
 Bit 0 indicates support for the first scale of the actual Sensor Type  Bit 1 indicates support for the second scale of the actual Sensor Type ...
The list of scales for a given sensor type is defined in [17].
The value 1 MUST indicate that the corresponding scale is supported for the sensor type. The value 0 MUST indicate that the corresponding scale is not supported for the sensor type.

Reserved

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

4.68.6 Multilevel Sensor Get Command

CC:0031.05.04.11.001
CC:0031.05.04.11.002 CC:0031.05.04.11.003

This command is used to request the current reading from a multilevel sensor.
The Multilevel Sensor Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SENSOR_MULTILEVEL

Command = SENSOR_MULTILEVEL_GET

Sensor Type

Reserved

Scale

Reserved

Sensor Type (8 bits)

CC:0031.05.04.11.004

This field is used to request a node to report a reading for the specified sensor type.
If this field is unspecified or a receiving node does not support the specified Sensor Type, it MUST reply with a pre-defined default Sensor Type and Scale.

Scale (2 bits)

CC:0031.05.04.11.005 CC:0031.05.04.11.006

This field is used to request a node to report a reading with a particular scale for the actual Sensor Type.
A node receiving a non-supported scale for the actual Sensor Type MUST reply with a supported scale within the Sensor type.
A sending node MUST ensure that the receiver supports the requested Sensor Types and/or Scales using the Multilevel Sensor Get Supported Sensor/Scale commands.
Reserved

CC:0031.05.04.11.007 These fields MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

4.68.7 Multilevel Sensor Report Command This command is used to advertise a multilevel sensor reading.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SENSOR_MULTILEVEL

Command = SENSOR_MULTILEVEL_REPORT

Sensor Type

Precision

Scale

Size

Sensor Value 1

...

Sensor Value N

Sensor Type (8 bits)

CC:0031.05.05.11.001 CC:0031.05.05.11.002

This field is used to specify the sensor type of the actual sensor reading.
This field MUST be set to a value defined in [17]. Values not defined in [17] are reserved and MUST NOT be used.
A node MUST support as a minimum the highest Multilevel Sensor Command Class version associated with the Scale and Type it supports. The minimum required version for each Scale and Type is specified in [17].
Precision (3 bits)

CC:0031.05.05.11.003

This field is used to indicate how many decimal places are included the Sensor Value field. For example, the Sensor Value 1025 with precision 2 MUST be interpreted as equal to 10.25.
Scale (2 bits)

CC:0031.05.05.11.004 CC:0031.05.05.11.005

This field is used to indicate what scale is used for the actual sensor reading.
This field MUST be set to a value defined in [17]. Values not defined in [17] are reserved and MUST NOT be used.
A node MUST implement as a minimum the highest Multilevel Sensor Command Class version associated with the Scale and Type it supports. The minimum required version for each Scale and Type is specified in [17].

Size (3 bits)

CC:0031.05.05.11.006

This field is used to indicate the length in bytes of the Sensor Value field. This field MUST be set to 1, 2 or 4.

Sensor Value (N bytes)

CC:0031.05.05.11.007 CC:0031.05.05.11.008 CC:0031.05.05.11.009
CC:0031.05.05.11.00A
CC:0031.05.05.12.001 CC:0031.05.05.12.002

This field is used to advertise the value of the actual sensor reading.
The length of this field MUST be according to the Size field value. The first byte MUST be the most significant byte. This field MUST be encoded using signed representation and comply with Table 10, Signed field encoding (two's complement representation).
A controlling node receiving this command MUST always show the sensor value as is even though the Sensor Type and/or Scale are unknown.
A controlling node SHOULD implement the capability to update its list of Sensor Type and Scales, so that new Sensor Types and Scales added in [17] are not presented as unknown. If a controlling node receives an unknown Sensor Type or Scale, it SHOULD allow the user to assign a free-text description to the sensor reading.

4.68.7.1 Detailed description: Sensor Types for Movement and Rotation
A device may report position, velocity (position change over time) or acceleration (velocity change over time). Position, velocity and acceleration may all refer to a linear scale following an axis or a polar scale circling an axis. Position may be reported in an absolute or relative fashion.
The 3D reference coordinate system outlined below MUST be used for reporting changes in the physical orientation.

CC:0031.05.05.11.00B CC:0031.05.05.11.00C

Figure 13, 3D reference coordinate system
Information relating to linear position, velocity and acceleration MUST refer to the zero position on a given axis. Thus a position change or a velocity MUST be positive if moving towards a larger position, measured from the zero position.
Information relating to an angle or change in angle MUST use the right-hand rule. This means that if one (virtually) grabs around an axis with the right hand, with the thumb in the direction of the axis, the angle increases in the direction of the index finger.

Table 78, Definition of position, velocity or acceleration

Application

Definition

Linear position, absolute

Position with reference to 0 (e.g. 1 meter)

Linear position, relative Position with reference to previous position (e.g. 1 meter)

Linear velocity

Position change per time unit (e.g. 1 meter/second)

Linear acceleration

Velocity change per time unit (e.g. 1 meter/second2)

Polar position, absolute Angle with reference to 0 (e.g. 45 degrees)

Polar position, relative Angle with reference to previous angle (e.g. 45 degrees)

Polar velocity (rotation) Angle change per time unit (e.g. 1 degree/second)

Polar acceleration

Velocity change per time unit (e.g. 1 degree/second2)

Depending on the number of axes supported by a given device, changes in the physical orientation are mapped to one, two or three axes as outlined in Table 79.
Table 79, Mapping of 1D, 2D and 3D movement and rotation

Dimensions

Movement

1

Along X axis

2

Along X and Y axes

3

Along X, Y and Z axes

Rotation Around X axis Around X and Y axes Around X, Y and Z axes

A number of Sensor Types allow a device to report changes in the physical orientation.
Table 80, Recommended Sensor Types for reporting movement and rotation

Application

Sensor Type

1D Linear position, absolute

Distance (v3)

1D Linear position, relative

(no support)

1D Linear velocity

Velocity (v2)

1D Linear accelleration Acceleration, X (v8)

1D Polar position, absolute

Direction (v2)

1D Polar position, relative

(no support)

1D Polar velocity

Rotation (v5)

1D Polar accelleration (no support)

2D Linear position, absolute

(no support)

2D Linear position, relative

(no support)

2D Linear velocity

(no support)

2D Linear accelleration

Acceleration, X (v8), Acceleration, Y (v8)

2D Polar position, absolute

(no support)

2D Polar position, relative

(no support)

2D Polar velocity

(no support)

2D Polar accelleration (no support)

Intended usage Single axis measurement of position (m)
Single axis measurement of position change (m)
Single axis measurement of velocity (m/s) Single axis measurement of acceleration (m/s2)
Single axis measurement of angle (degrees)
Single axis measurement of angle change
Single axis measurement of velocity (RPM) Single axis measurement of acceleration (degree/s2) Two axis measurement of position (m)
Two axis measurement of position change (m)
Two axis measurement of velocity (m/s) Two axis measurement of acceleration (m/s2)
Two axis measurement of angle (degrees from North) Two axis measurement of angle change
Two axis measurement of velocity (RPM) Two axis measurement of acceleration (degree/s2)

Application

Sensor Type

3D Linear position, absolute

(no support)

3D Linear position, relative

(no support)

3D Linear velocity

(no support)

3D Linear accelleration

Acceleration, X (v8), Acceleration, Y (v8), Acceleration, Z (v8)

3D Polar position, absolute

(no support)

3D Polar position, relative

(no support)

3D Polar velocity

(no support)

3D Polar accelleration (no support)

Intended usage Three axis measurement of position (m) Three axis measurement of position change (m) Three axis measurement of velocity (m/s) Three axis measurement of acceleration (m/s2)
Three axis measurement of angle (degrees from North) Three axis measurement of angle change Three axis measurement of velocity (RPM) Three axis measurement of acceleration (degree/s2)

4.68.7.1.1 Sensor Type = Acceleration

CC:0031.05.05.11.00D CC:0031.05.05.11.00E
CC:0031.05.05.11.00F

The sensor types "Acceleration, X", "Acceleration, Y" and "Acceleration, Z" are used to advertise the acceleration of a device along the X, Y and Z axes, respectively.
A one-dimensional device MUST report acceleration using the "Acceleration, X" type.
A two-dimensional device MUST report acceleration using the "Acceleration, X" and "Acceleration, Y" types.
The Scale used MUST be m/s2. An Acceleration value reported with the Scale m/s2 may be converted by a receiving node to a "g-force" level by using the formula below:

1g = 9.81m/s2 (g represents the unit of Earth Gravity; NOT the weight unit "gram")

4.68.7.2 Detailed description: Smoke Density
Figure 14 shows the principle of how a photoelectric smoke detector works. As shown the smoke sensor uses the smoke to reflect the light onto a photo cell. So when no smoke is present, the light will not be reflected onto the photo cell. When smoke is present, the light will be reflected onto the photo cell. Dependent on the smoke density, more light will be reflected onto the photo cell. So by measuring the received light strength on the photo cell, it is possible to estimate the smoke density.

It is not possible to determine an accurate unit for this, as it is estimated from the light strength on the photo cell. So the exact particle density of the smoke is not known. Also the light strength interval measured on the photo cell, may vary between sensors. So it is decided to report the smoke density in percent, where 0% is no smoke and 100% is the maximum received light strength on the photo cell.
Figure 14, Photoelectric smoke detector
4.68.7.3 Detailed description: RF Signal Strength The RF Signal Strength sensor type may report values using two different scales. While the dBm is a well-defined unit, the RSSI value represents a relative measurement where the internal sampling circuits and the actual sampling method is product specific. CC:0031.05.05.11.010 The RSSI value MUST be reported in the range 0..100, where the value 100 represents the highest power level that can be measured.
4.69 Multilevel Switch Command Class, version 1 The Multilevel Switch Command Class is used to control devices with multilevel capability. The Multilevel Switch Command Class is an actuator control command class. Refer to 3.6.

4.69.1 Multilevel Switch Set Command This command is used to set a multilevel value in a supporting device. The device MAY apply a non-zero duration to the transition from one value to a new value.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_MULTILEVEL

Command = SWITCH_MULTILEVEL_SET

Value

Value (8 bits) The encoding of the Value field MUST be according to Table 81.
Table 81, Multilevel Switch Set :: Value

Value

0

(0x00)

1..99 (0x01..0x63)

...

255 (0xFF)

Level

State

0%

Off

Lowest non-zero level .. 100%

On

Reserved

Reserved

Restore most recent (non-zero) level. On

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
The above mapping of the Multilevel Switch Command Class Value to hardware levels allows a controlling device to control a mixed group of Binary Switch and Multilevel Switch devices via Basic Set commands. Devices implementing the Binary Switch CC turn On or Off while devices implementing the Multilevel Switch CC sets the specified level.
The values 0x00 and 0xFF are special values which MUST be treated as state control commands indicating "Off" and "On", respectively. A supporting device MUST restore the most recent (non-zero) value in response to the "On" state control command.
A device MAY implement up to 100 hardware levels (including 0). If a device implements less than 100 hardware levels, the hardware levels SHOULD be distributed uniformly over the entire range. The mapping of command values to hardware levels MUST be monotonous, i.e. a higher value MUST be mapped to either the same or a higher hardware level. Refer to 3.6.2.

4.69.2 Multilevel Switch Get Command
This command is used to request the status of a multilevel device.
The Multilevel Switch Report command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SWITCH_MULTILEVEL

Command = SWITCH_MULTILEVEL_GET

4.69.3 Multilevel Switch Report Command This commandis used to advertise the status of a multilevel device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_MULTILEVEL

Command = SWITCH_MULTILEVEL_REPORT

Value

Value (8 bits) The encoding of the Value field MUST be according to Table 82.
Table 82, Multilevel Switch Report :: Value

0 1..99
254 255

Value (0x00) (0x01..0x63)
... (0xFE) (0xFF)

Hardware level

State

0%

Off

Lowest non-zero level .. 100% On

Reserved

On

Unknown

Unknown

(100%)

On [Deprecated]

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
The value 255 (0xFF) has been deprecated as it provides no information on the actual value in the device. A sending node MUST NOT use the value 255. A receiving node MUST interpret the value 255 as 100%.
The Value field SHOULD advertise the current value of the device hardware; also while in transition to a new target value.
A controlling device MUST NOT assume that the Value is identical to a value previously issued with a Set command when a transition has ended.
4.69.4 Multilevel Switch Start Level Change Command
This command is used to initiate a transition to a new level.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_MULTILEVEL

Command = SWITCH_MULTILEVEL_START_LEVEL_CHANGE

Reserved

Up/ Down

Ignore Start Level

Reserved

Start Level

Up/Down (1 bit) This field MUST specify the direction of the level change. If the Up/Down bit is set to 0 the level change MUST be increasing. If the Up/Down bit is set to 1 the level change MUST be decreasing. Ignore Start Level (1 bit) A receiving device SHOULD respect the start level if the Ignore Start Level bit is 0. A receiving device MUST ignore the start level if the Ignore Start Level bit is 1. A controlling device SHOULD set the Ignore Start Level bit to 1. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Start Level (8 bits) The Start Level field MUST specify the initial level of the level change.

4.69.5 Multilevel Switch Stop Level Change Command This command is used to stop an ongoing transition.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_MULTILEVEL

Command = SWITCH_MULTILEVEL_STOP_LEVEL_CHANGE

4.70 Multilevel Switch Command Class, version 2 The Multilevel Switch Command Class is used to control devices with multilevel capability. The Multilevel Switch Command Class is an actuator control command class. Refer to 3.6. 4.70.1 Compatibility considerations A device supporting Multilevel Switch CC, version 2 MUST support Multilevel Switch CC, version 1. Version 2 adds a "Duration" parameter to the Multilevel Switch Set and Multilevel Switch Start/Stop Level Change commands. Commands not described in Version 2 remain unchanged from Version 1. 4.70.2 Multilevel Switch Set Command This command is used to set a multilevel value in a supporting device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_MULTILEVEL

Command = SWITCH_MULTILEVEL_SET

Value

Duration

Value (8 bits)
Refer to Multilevel Switch Set V1 command.
Duration (8 bits)
The Duration field MUST specify the time that the transition should take from the current value to the new target value. A supporting device SHOULD respect the specified Duration value.
The encoding of the Duration field MUST be according to Table 7.
The factory default duration SHOULD be the same as the duration used for the Multilevel Switch Set command, version 1.

4.70.3 Multilevel Switch Start Level Change Command This command is used to initiate a transition to a new level.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_MULTILEVEL

Command = SWITCH_MULTILEVEL_START_LEVEL_CHANGE

Reserved

Up/ Down

Ignore Start Level

Reserved

Start Level

Duration

Up/Down (1 bit) This field MUST specify the direction of the level change. If the Up/Down bit is set to 0 the level change MUST be increasing. If the Up/Down bit is set to 1 the level change MUST be decreasing. Ignore Start Level (1 bit) A receiving device SHOULD respect the start level if the Ignore Start Level bit is 0. A receiving device MUST ignore the start level if the Ignore Start Level bit is 1. A controlling device SHOULD set the Ignore Start Level bit to 1. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Start Level (8 bits) The Start Level field MUST specify the initial level of the level change. Duration (8 bits) The dimming rate to use MUST be calculated to match a transition from 0 to 99 during the time specified by the Duration field. A supporting device SHOULD respect the specified Duration value. For encoding of the duration value refer to section 4.70.2.

4.71 Multilevel Switch Command Class, version 3
The Secondary Switch Type of the Multilevel Switch Command Class, version 3 has been DEPRECATED.
The Primary Switch Type 0x00, indicating "Not supported", of the Multilevel Switch Command Class, version 3 has been OBSOLETED.
The implementation of Secondary Switch Type functionality is NOT RECOMMENDED.
While the functionality related to the Secondary Switch Type of the Multilevel Switch Command Class, version 3 is deprecated, a supporting device claiming compliance with this version MUST implement support for the Multilevel Switch Supported Get Command.
For backwards compatibility reasons, a device MAY implement Secondary Switch Type functionality. It is however RECOMMENDED that Multi Channel Command Class support is also implemented if a device provides multiple controllable resources in the same physical entity.
The Multilevel Switch Command Class is used to control devices with multilevel capability.
The Multilevel Switch Command Class is an actuator control Command Class. Refer to 3.6.
Multilevel Switch CC, version 3 adds two-dimensional resource control capabilities to the Multilevel Switch Start/Stop Level Change commands and introduces two new commands for the discovery of those capabilities.
The Secondary Switch Type is intended for devices providing two-dimensional control, e.g. Window blinds, where the Primary Switch Type is used for Up/Down control and the Secondary Switch Type is used for controlling the slat tilt angle.
The Multilevel Switch Set, Get and Report commands MUST address the primary device functionality. The Multilevel Switch Start/Stop Level Change commands MUST manipulate the Primary Switch Type functionality based on the Up/Down parameter.
The Multilevel Switch Start/Stop Level Change commands MUST manipulate the Secondary Switch Type functionality based on the Inc/Dec parameter. If the Secondary Switch Type is 0x00 (Undefined / Not supported), the Multilevel Switch Start/Stop Level Change (Inc/Dec) command parameter MUST be ignored.
4.71.1 Compatibility considerations
A device supporting Multilevel Switch CC, version 3 MUST support Multilevel Switch CC, version 2.
A device supporting Multilevel Switch CC, version 3 MUST implement the Primary Switch type.
Commands not described in Version 3 remain unchanged from Version 2.

4.71.2 Multilevel Switch Supported Get Command
This command is used to request the supported Switch Types of a supporting device.
The Multilevel Switch Supported Report command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SWITCH_MULTILEVEL

Command = SWITCH_MULTILEVEL_SUPPORTED_GET

4.71.3 Multilevel Switch Supported Report Command This command is used to advertise the supported Switch Types implemented by a supporting device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_MULTILEVEL

Command = SWITCH_MULTILEVEL_SUPPORTED_REPORT

Reserved

Primary Switch Type

Reserved

Secondary Switch Type

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Primary Switch Type (5 bits) The Primary Switch Type field MUST represent the primary device functionality.
Primary Switch Type 0x00, indicating "Not supported", has been OBSOLETED. Previous revisions of this specification allowed that a device may (theoretically) be implemented with no primary device functionality, i.e. Primary Switch Type 0x00, and specified that such a device should indicate this situation by returning Multilevel Switch Report commands carrying the value 0xFE. The value 0xFE is incompatible with Versions 1 and 2 of the Multilevel Switch Command Class and MUST NOT be used in a Multilevel Switch Report.
The Primary Switch Type MUST comply with Table 83.

A supporting device MUST implement the Primary Switch type. The Primary Switch Type SHOULD be 0x02 (Up/Down). The Primary Switch Type MUST NOT be 0x00 (Undefined).
Table 83, Encoding of Primary and Secondary Switch Types

Switch Type Value 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
0x08-0x1F

0x00

0x63/0xFF

(Direction/Endpoint A) (Direction/Endpoint B)

Undefined / Not supported (Secondary only)

Off

On

Down

Up

Close

Open

Counter-Clockwise

Clockwise

Left

Right

Reverse

Forward

Pull

Push

Reserved

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
Secondary Switch Type (5 bits)
The Secondary Switch Type field MUST represent the secondary device functionality. The Secondary Switch Type MUST comply with Table 83
A supporting device MAY implement the Secondary Switch type.

4.71.4 Multilevel Switch Start Level Change Command
This command is used to initiate a transition to a new level.
The Multilevel Switch Command Class, version 3 adds a "Secondary Switch Inc/Dec" and a "Secondary Switch Step Size" field to this command to support motor controlled devices featuring two-dimensional motion.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_MULTILEVEL

Command = SWITCH_MULTILEVEL_START_LEVEL_CHANGE

Primary Switch Ignore Secondary Switch

Up/Down Start Level

Inc/Dec

Reserved

Primary Switch Start Level

Duration

Secondary Switch Step Size

Primary Switch Up/Down (2 bits) The Up/Down field MUST be used for manipulating the primary device functionality. This field MUST be encoded according to Table 84.
Table 84, Encoding of the Up/Down field

Value

Description

Details

0x00 Up

Increase level for Primary Switch Type

0x01 Down

Decrease level for Primary Switch Type

0x02 Reserved

0x03 No Up/Down motion Maintain current level for Primary Switch Type

Ignore Start Level (1 bit)
A receiving device SHOULD respect the start level if the Ignore Start Level bit is 0. A receiving device MUST ignore the start level if the Ignore Start Level bit is 1.

Secondary Switch Inc/Dec (2 bits) The Inc/Dec field MUST be used for controlling the secondary device functionality. If the Secondary Switch Type is 0x00 (Undefined / Not supported), the Inc/Dec field MUST be ignored. This field MUST be encoded according to Table 85.
Table 85, Encoding of the Inc/Dec field

Value Description

Details

0x00 Increment Increase level for Secondary Switch Type

0x01 Decrement Decrease level for Secondary Switch Type

0x02 Reserved

0x03 No Inc/Dec Maintain current level for Secondary Switch Type

As this field defines the value "00" of two previously reserved bits as the code "Increment", a supporting device implementing Multilevel Switch CC, version 3 MUST correctly identify the Multilevel Switch Start Level Change command to be version 3 (by the presence of the <Secondary Switch Step Size> field) before interpreting the <Secondary Switch Inc/Dec> field. Failing to do so will cause a device to start incrementing the Secondary Switch Type in response to version 1 and version 2 variants of the Multilevel Switch Start Level Change command.
Reserved
This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Primary Switch Start Level (8 bits)
The Start Level field MUST be used for controlling the primary device functionality.
Duration (8 bits)
This field is unchanged from version 2.

Secondary Switch Step Size (8 bits)
The Step Size field MAY be used for controlling a secondary device functionality. If the Secondary Switch Type is 0x00 (Undefined / Not supported), the Step Size field MUST be ignored. If the Secondary Switch Type is not 0x00, the Step Size field MUST be used for controlling the secondary device functionality.
If the Inc/Dec field is set to 3 (No Inc/Dec), the Step Size field MUST be set to 0.
This field MUST carry a value in the range {0x00..0x63, 0xFF}. All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node. A receiving device MUST accept any of the values in the above range. 0x01 MUST represent the lowest non-zero level and 0x63 MUST represent the highest level
A device MAY implement 100 hardware levels (including 0). If a device implements less than 100 hardware levels, the mapping to hardware levels SHOULD be distributed equally over the entire range of 1..99 (0x01..0x63). The mapping of command values to hardware levels MUST be monotonous, i.e. a higher value MUST be mapped to either the same or a higher hardware level.
An implementation MUST interpret the combined Inc/Dec and Step Size fields as outlined in Table 86.
Table 86, Interpretation of the Inc/Dec and Step Size fields

(Secondary Switch Type) (undefined) 0x01..0x07 0x01..0x07 0x01..0x07

Inc/Dec Step Size

Interpretation

(ignore) (ignore) No Inc/Dec (ignore) Increment x Decrement y

Secondary Switch Type is undefined  ignore fields No Inc/Dec  Maintain current Secondary Switch level Increase Secondary Switch level by x steps Decrease Secondary Switch level by y steps

The requested level change SHOULD take the time specified by the Duration field.

4.72 Multilevel Switch Command Class, version 4 The Multilevel Switch Command Class is used to control devices with multilevel capability. The Multilevel Switch Command Class is an actuator control Command Class. Refer to 3.6. 4.72.1 Compatibility considerations Version 4 adds reporting of target value and duration. A device supporting Multilevel Switch CC, Version 4 MUST support Multilevel Switch CC, Version 3. A device receiving a V1 Multilevel Set command MAY apply a factory default duration to the transition to a new value.

4.72.2 Multilevel Switch Report Command This command is used to advertise the status of a multilevel device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_MULTILEVEL

Command = SWITCH_MULTILEVEL_REPORT

Current Value

Target Value

Duration

Current Value (8 bits)
The encoding of the Value field MUST be according to Table 82.
The device may be queried for its current value while in transition to a new value. The response to a Get command SHOULD be the current value of the device hardware.
A controlling device MUST NOT assume that the Value is identical to a value previously issued with a Set command when a transition has ended.
Target Value (8 bits)
The Target Value field MUST advertise the target value of an ongoing transition or the most recent transition.
The encoding of the Target Value field MUST be according to Table 82.
If queried after receiving a Set command, the Target Value field MUST advertise the target value specified in the Set command. The Target Value may change at a later time due to local control or a Multilevel Switch Stop Level Change command.
If the device is in a motion controlled transition, the Target Value field MUST advertise the value 0x00 or 0x63.
Duration (8 bits)
The Duration field SHOULD advertise the time needed to reach the Target Value at the actual transition rate. The encoding of the Duration field MUST be according to Table 8.

4.73 Multilevel Toggle Switch Command Class, version 1 [DEPRECATED]
THIS COMMAND CLASS HAS BEEN DEPRECATED A device MAY implement this command class, but it is RECOMMENDED that new implementations use the Multilevel Switch Command Class. If implementing this command class, it is RECOMMENDED that the Multilevel Switch Command Class is also implemented.

The Multilevel Toggle Switch Command Class is used for multilevel toggle-style actuator devices. 4.73.1 Multilevel Toggle Switch Set Command This command is used to set the level in a device that supports the multilevel switch functionality.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_TOGGLE_MULTILEVEL

Command = SWITCH_TOGGLE_MULTILEVEL_SET

4.73.2 Multilevel Toggle Switch Get Command
This command is used to request the state of the load controlled by the device.
The Multilevel Toggle Switch Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SWITCH_TOGGLE_MULTILEVEL

Command = SWITCH_TOGGLE_MULTILEVEL_GET

4.73.3 Multilevel Toggle Switch Report Command This command is used to advertise the level of a toggle switch.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_TOGGLE_MULTILEVEL

Command = SWITCH_TOGGLE_MULTILEVEL_REPORT

Value

Value (8 bits)
The value MAY be 0x00 (off/disable) or 0xFF (on/enable). The field MAY carry values from 1 to 99.
4.73.4 Multilevel Toggle Switch Start Level Change Command
This command is used to inform a multilevel toggle switch, that it should start changing the level. The speed that the switch increases or decreases the level with is implementation specific.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_TOGGLE_MULTILEVEL

Command = SWITCH_TOGGLE_MULTILEVEL_START_LEVEL_CHANGE

Roll

Reser-

Ignore Start

Over ved

Level

Reserved

Start Level

Roll Over (1 bit)
If the Roll Over bit is set to 0, the switch SHOULD stop when reaching the max or min level. If the roll over bit is set to 1, the switch SHOULD continually increase and decrease the level until otherwise instructed.
Ignore Start Level (1 bit)
If the Ignore Start Level bit is set to 0 the switch SHOULD use the start level specified in the Command. If field is set to 1 the switch SHOULD start from the actual level in the device.
Reserved
This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Start Level (8 bits)
The Start Level field contains the initial level that the switch should assume when it start to change the level.

4.73.5 Multilevel Toggle Switch Stop Level Change Command This command is used to inform a multilevel toggle switch, that it should stop changing the level.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SWITCH_TOGGLE_MULTILEVEL

Command = SWITCH_TOGGLE_MULTILEVEL_STOP_LEVEL_CHANGE

4.74 Notification Command Class, version 3-8
THIS COMMAND CLASS VERSIONS 3-7 HAVE BEEN DEPRECATED CC:0071.03.00.13.001 A device MAY implement version 3 to 7, but it is RECOMMENDED that new implementations comply CC:0071.03.00.12.001 with Notification Command Class, version 8 CC:0071.03.00.12.002 Pull Mode has been deprecated; it is RECOMMENDED that new implementations support Push Mode
The Notification Command Class is used to advertise events or states, such as movement detection, door open/close or system failure. The Notification Command Class supersedes the Alarm Command Class. 4.74.1 Terminology Sensors may be designed for several purposes. A multilevel sensor advertises measurements or readings. A notification sensor sends event or state notifications. This Command Class is used for notification sensors. The Multilevel Sensor Command Class is used for multilevel sensors. Notifications are categorized into logical groups called Notification Types. A Notification is denoted with its type and event/state: {Notification Type::event/state}. A node may send Notifications from several Notification Types. An event only has a meaning in the moment it happens. An event does not indicate the value of a state variable. An example is given in Figure 15

Figure 15, Event notifications inform only about instantaneous situations
A state variable may assume two or more states. Some state variables are returned to their idle state via a generic "State idle" Notification.

For example, a controlling node receiving a {Smoke alarm::Smoke detected} Notification will consider that the state has not changed until it receives a {Smoke alarm::State idle(Smoke detected)} Notification. An illustration is given in Figure 16.
Figure 16, Binary state variable with generic "State idle" Notification
The "State idle" notification may also be used to return a multi-value state variable to its idle state. An example is given inFigure 17.
Figure 17, Multi-value state variable with generic "State idle" Notification
Some state variables use a specific Notification defined for each state change. Figure 18 shows an example of such a state variable.
Figure 18, Binary state variable with specific idle state Notification

Some notifications are complemented with event/state parameters. For example, the {System::System software failure} Notification may be accompanied with the manufacturer's failure/error codes as event parameters.
Event/state parameters may also affect state variables and their states. For example, the Notification {Irrigation::Schedule started} takes a 1-byte parameter which identifies the Schedule ID that is started. In that case, each state variable is identified using the state parameters, thus creating a state variable array.
An illustration is given in Figure 19, where the same Notifications with different parameters advertise the state of different state variables.

Figure 19, State variable array defined by additional Event/State Parameters

A complete list of Notifications (including state variables, event parameters, etc.) is given in [18].

A notification node operates either in Push or in Pull mode.

A Push node sends unsolicited Notifications. The transmission of unsolicited notifications may be disabled or enabled. When enabled, unsolicited Notifications are transmitted via an Association Group. It is not possible to subsequently retrieve Notifications issued by a Push node.

A Pull sensor collects events and state changes in a queue of pending Notifications. Notifications are retrieved one by one from the Pull sensor queue via the Notification Get Command. The Pull sensor advertises that its queue is empty when all Notifications have been retrieved. A persistent Pull Notification is not removed from the Pull sensor queue until it is actively cleared by a controlling node.

4.74.2 Compatibility considerations

4.74.2.1 Notifications and Command Class version

CC:0071.03.00.21.001

New Notification Types and Notifications have been added to each new version of this Command Class. A node MUST implement as a minimum the Notification Command Class version associated with the Notifications it sends. The minimum required version for each Notification is specified in [18].

4.74.2.2 Push mode requirements

CC:0071.03.00.22.001 A node supporting the Notification Command Class SHOULD implement Push mode.

CC:0071.03.00.21.002 A Push node MUST implement the Association Command Class.

CC:0071.03.00.22.002 A Push node SHOULD advertise Association Groups through the Association Group Information (AGI) Command Class.

CC:0071.03.00.21.003

A Z-Wave Plus Push node MUST:
 Provide all supported Notifications via the Lifeline Association group.  Advertise Association Groups through the Association Group Information (AGI) Command Class.

4.74.2.3 Pull mode requirements

CC:0071.03.00.22.003

Earlier text revisions presented inconsistencies and undefined behaviors for Pull nodes. Thus, existing Pull nodes may behave differently than expected by a controlling node. A node supporting the Notification Command Class SHOULD NOT implement Pull mode.

CC:0071.03.00.23.001 CC:0071.03.00.22.004

A Pull node MAY reorder Notifications according to priority so that the first detected event is not the first to be reported. A Pull node SHOULD NOT reorder states of the same state variable in the event queue. For example, the "Program in progress" and "Program completed" Notifications SHOULD stay in the same order.

CC:0071.03.00.22.005 A Pull node having its queue full SHOULD remove the oldest notification entry from the queue.

CC:0071.03.00.22.006 Persistent notifications SHOULD carry a sequence number.

4.74.2.4 Multi Channel considerations

CC:0071.03.00.21.004

If several End Points within a Multi Channel device support the Notification Command Class, they MUST all operate in the same mode (i.e. either all End Points operate in Push mode or all End Points operate in Pull mode).

4.74.2.4.1 Multi Channel Push nodes

CC:0071.03.00.23.002 CC:0071.03.00.21.005

While End Points MAY send identical notifications via the Root Device Lifeline Group, the Root Device MUST NOT send identical Notifications on behalf of multiple End Points. Illustrations are given in Figure 20 and Figure 21.

Figure 20, Multi Channel device aggregating Notifications (Lifeline group)

Figure 21, Multi Channel device with End Point notification overlap (Lifeline group)

CC:0071.03.00.23.003

A Multi Channel node with identical End Points issuing the same binary state notification with generic state idle Notification MAY be an exception and issue binary Notifications representing the state all End Points.

CC:0071.03.00.21.008

If doing so, the Root Device MUST issue the active state notification if any of the End Points has the active binary state and MUST issue the event inactive Notification when all End Points are back to the "State idle".

Figure 22, Notification representing all End Points for Binary State with generic State Idle notification

CC:0071.03.00.21.006 Z-Wave Plus Multi Channel devices MUST send End Point Push notifications via the Root Device Lifeline Association Group (if notifications are not identical).

CC:0071.03.00.22.007

A controlling node SHOULD create a Multi Channel Association to the Lifeline group of a supporting node. Thus Notifications will be sent Multi Channel encapsulated via the Root Device Lifeline group, allowing End Points to send identical Notifications.

Individual End Point Notifications can be enabled/disabled by sending a Multi Channel encapsulated Notification Set Command to an End Point, even when End Point Notifications are actually sent via the Root Device Lifeline group.

4.74.2.5 State idle

Every Notification Type has the same generic Notification 0x00 "State idle", (also known as "Event Inactive" in older specification text) which was introduced in version 4. The Notification allows the device to advertise that a state variable returned to its idle state.

CC:0071.04.00.23.001

A Push sensor MAY send repeated state Notifications without sending any "State idle" Notification to indicate that a given state is still active. For instance, a smoke sensor can send a "Smoke Detected" Notification every five minutes to indicate that the state variable has not returned to idle (refer to Figure 16.).

Notification Command Class, version 8 increases the requirement level for the use of the "State idle" CC:0071.08.00.21.001 Notification from OPTIONAL to REQUIRED. Refer to 4.74.2.11.

CC:0071.04.00.22.001

A supporting node SHOULD NOT send a "State idle" notification for an event or for a state variable to which state idle does not apply. Refer to [18] for state variables to which the "State idle" notification applies

4.74.2.6 Version 3 [DEPRECATED]

The Notification Command Class version 3 is an extension of the Alarm Command Class version 2 and adds the following:

 Additional Notifications (refer to [18])

 Interview process includes Events (Event Supported Get / Event Supported Report)

 Sequence field added for collection management of reports

 The queue empty status (=0xFE) for Pull nodes. A Pull node can now advertise Notification Status = "no pending notifications"

Commands not mentioned in this version are unchanged from Alarm Command Class version 1 and/or Alarm Command Class version 2.

The CC identifier for Notification CC V3 is the same as the Alarm CC V1 and V2. However, the Notification Command Class is not fully backwards compatible with the Alarm Command Class, versions 1 and 2. Clarifications for ensuring backwards compatibility with version 1 and 2 are given in version 4 of this Command Class.

CC:0071.03.00.21.007

An implementation supporting Alarm CC V1 fields MUST map proprietary alarm types and levels to a similar Notification Type and Notification CC V3 where possible. In addition, all Alarm CC V1 alarm types and levels MUST be described in the product manual.

4.74.2.7 Version 4 [DEPRECATED]

Version 4 of this Command Class introduces the following:

 Additional Notifications (refer to [18])

 Event/State = 0x00 (State idle) for a given Notification Type to indicate that all state variables of that Notification Type returned to idle
 The Zensor Net Source Node ID field has been discontinued. It is now a reserved field.  Clarification to expected behavior in regards to:
o V1 and V2 Alarm Get Command handling o Notification Status field description o Notification Type = 0xFF, "Return first detected notification on supported list" o Event = 0xFE in Event Supported Report Command, which must not be advertised.

The support for state idle (event/state=0x00) cannot be advertised in the Event Supported Get Command and version 4 nodes will appear to use reserved values for version 3 controlling nodes.

CC:0071.04.00.21.001 A version 4 node MUST comply with the rules outlined in Table 87 and Table 88.

Table 87 outlines the required behavior when receiving an Alarm Get command, Version 1. Table 88 outlines the required behavior when receiving an Alarm Get command, Version 2. The version of an Alarm Get Command can be determined from the command length.
Table 87, Required behavior when receiving Alarm Get, version 1

Received Command: V1, ALARM_GET (Alarm Type = x)

V1 Alarm Type supported (x)?

Response

YES

V1, ALARM_REPORT (Alarm Type = x, Alarm Level = level)

NO

V1, ALARM_REPORT (Alarm Type = 0x00, Alarm Level = 0x00)

Table 88, Required behavior when receiving Alarm Get, version 2

CC:0071.04.00.21.002 CC:0071.04.00.21.003

Received Command: V2, ALARM_GET (Alarm Type = x, Z-Wave Alarm Type = y)

Z-Wave Alarm Type supported (y)?

V1 Alarm Type supported (x)?

Response

NO

NO

NO RESPONSE

NO

YES

V2, ALARM_REPORT (
Alarm Type = x Alarm Level = level Reserved = 0x00 Z-Wave Alarm Status = 0x00 Z-Wave Alarm Type = 0x00 Z-Wave Alarm Event = 0x00 Number of Event Param = 0x00 )

YES or y = 0xFF YES/NO

Notifications newer than V2, idle states or empty queues MUST be represented with the unknown notification (Notification event/state field set to 0xFE).
If no state is detected (push nodes) or no event/state queued (pull nodes), the Notification Type MUST be set to one of the supported Notification Type in response to a Get (Type = 0xFF)

CC:0071.04.00.21.004
CC:0071.04.00.21.005 CC:0071.04.00.21.006

Push nodes:
A supporting node MUST return the current states compatible with V2. Table 90 shows a Push node example returning responses to different V2 Alarm Get Commands.
Pull nodes:
A supporting node MUST return only V2 notifications from its queue when receiving a V2 Alarm Get Command. A supporting node MUST set the status to 0x00 and event to 0xFE when its queue is empty. Table 91 shows a Pull node example returning responses to different V2 Alarm Get Commands.

Table 90 and Table 91 show the responses of a node supporting Notification Types and Notifications described in Table 89:
Table 89, V2 Alarm Get node capabilities example

Node capabilities

Notifications Types

Notifications

0x01: Smoke Alarm

0x01: Smoke detected 0x03: Smoke alarm test 0x06: Alarm silenced

0x03: CO2 Alarm

0x01: Carbon dioxide detected

Table 90, Push node responses to V2 Alarm Get (example)

Received Get

Current states at the receiving node

Returned response

V1

Smoke Alarm:: Smoke Alarm:: CO2 Alarm::

Alarm Type

Type

Type

Sensor status Alarm status Sensor status

Status

Event/ State

-* 0x01

Idle

Idle

-

0x01 0x00 or 0xFF 0xFE

Smoke

- 0x01 detected (V2)

Idle

-

0x01 0x00 or 0xFF 0x01

- 0x01

Smoke

Alarm silenced

-

detected (V2)

(V8)

0x01 0x00 or 0xFF 0x01

Smoke alarm

- 0x01

Idle

test (V3)

-

0x01 0x00 or 0xFF 0xFE

0x00 0x02

-

-

-

No Report

No Report, unless V1 alarm is

0x01 0x02

-

-

-

supported. Refer to Table 88

- 0xFF

Idle

Idle

Idle

0x01 or 0x03**

0x00 or 0xFF

0xFE

Smoke

- 0xFF

Idle

detected (V2)

Idle

0x01 0x00 or 0xFF 0x01

-

0xFF

Smoke detected (V2)

Alarm silenced (V8)

Idle

0x01 0x00 or 0xFF 0x01

Smoke alarm

- 0xFF

Idle

Idle

0x01 0x00 or 0xFF 0xFE

test (V3)

-

0xFF

Smoke detected (V2)

Idle

Carbon dioxide detected (V2)

0x01 or 0x03**

0x00 or 0xFF

0x01

*) The symbol `-' indicates that the value has no impact on the V2 fields of the returned response **) It is up to the node to decide which Notification Type to report.

Table 91, Pull node responses to V2 Alarm Get (example)

Received Get Before returning a report Returned response

After returning a report

V1 Alarm Type Type

Node's queue

Event/ Type Status
State

Node's queue

-* 0x01 Empty

0x01 0x00 0xFE Empty

Carbon dioxide detected (V2)

- 0x01

0x01 0x00 0x01 Carbon dioxide detected (V2)

Smoke detected (V2)

Alarm silenced (V8) - 0x01
Smoke detected (V2)

0x01 0x00 0x01 Alarm silenced (V8)

- 0x01 Alarm silenced (V8)

0x01 0x00 0xFE Alarm silenced (V8)

0x00 0x02 -

No Report

-

0x01 0x02 -

No Report, unless V1 alarm is supported. Refer to Table 88

- 0xFF Empty

0x01 or 0x00 0xFE Empty
0x03**

Carbon dioxide detected (V2)

- 0xFF

0x03 0x00 0x01 Smoke detected (V2)

Smoke detected (V2)

- 0xFF Alarm silenced (V8)

0x01 0x00 0xFE Alarm silenced (V8)

*) The symbol `-' indicates that the value has no impact on the V2 fields of the returned response **) It is up to the node to decide which Notification Type to report.

4.74.2.8 Version 5 [DEPRECATED]

Version 5 of this Command Class introduces additional Notifications (refer to [18]) and the event/state parameters for the special purpose State idle 0x00, allowing to specify which state variable returned to idle.

A version 4 controlling node will conclude that all state variables have returned to idle when a version 5 node advertises that a single state variable has returned to idle.

4.74.2.9 Version 6 [DEPRECATED] Version 6 of this Command Class introduces additional Notifications (refer to [18])

Version 6 clarifies how to use the `User Code Report' Event Parameter. The User Code Report Command is used as Event Parameter for the Notification {Access Control::Keypad Lock/Unlock Operation} Command.

An example of Notification Event/State Parameter encapsulation is given in 4.74.6.1

4.74.2.10Version 7 [DEPRECATED]

Version 7 of this Command Class introduces additional Notifications (refer to [18]).

4.74.2.11Version 8

CC:0071.08.00.22.001 It is RECOMMENDED that new nodes support version 8 of this Command Class.

CC:0071.08.00.23.001

Requirements for backwards compatibility with version 2 nodes introduced in version 4 have been found to be ambiguous and challenging to be observed correctly by newer nodes. Therefore, it is OPTIONAL for a version 8 node to comply with Table 88 when receiving a V2 Get Command.

Version 8 of this Command Class introduces additional Notifications (refer to [18]).

CC:0071.08.00.21.002 Version 8 increases the requirement level for the use of the "State idle" Notification from OPTIONAL to REQUIRED.

CC:0071.08.00.21.003 CC:0071.08.00.21.004

Supporting nodes implementing version 8 or newer of the Notification Command Class MUST issue a "State idle" Notification when a state variable returns to idle. For instance, the {Smoke alarm::Smoke Detected} Notification MUST be followed by a {Smoke alarm::State idle(Smoke detected)} Notification when the smoke is no longer detected by the sensor. (refer to Figure 16).

4.74.3 Interoperability considerations

4.74.3.1 Push nodes Basic control

CC:0071.03.00.32.001

For Push nodes, it is RECOMMENDED to implement additional association groups for relevant Notifications, which issue a Basic Set Command. It allows configuring a device to control other nodes directly, e.g., turn on lights when motion is detected and turn off when there is no more motion.

4.74.3.2 Event flood

CC:0071.03.00.32.002

Certain sensors may trigger repeatedly within a short amount of time. It is RECOMMENDED to implement timers to arbitrate the transmission of notifications. Illustrations are given in Figure 23 and Figure 24.

Figure 23, recommended timer mechanism for sending notifications (1)

Figure 24, recommended timer mechanism for sending notifications (2)

4.74.4 Notification Set Command Push nodes:
This command is used to enable or disable the unsolicited transmission of a specific Notification Type. Pull nodes: This command is used to clear a persistent Notification in the notification queue.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_NOTIFICATION

Command = NOTIFICATION_SET

Notification Type

Notification Status

Notification Type (8 bits) This field is used to specify a Notification Type. Assigned values are defined in [18]. CC:0071.03.06.11.001 A sending node MUST specify a Notification Type that is supported by a receiving node.

CC:0071.03.06.11.002

A receiving node MUST ignore the command if this field is set to a non-supported Notification Type or if this field set to 0xFF.
Notification Status (8 bits)
Push nodes:

CC:0071.03.06.11.003

This field is used to set the Status of a Notification Type. This field MUST comply with Table 92.
Table 92, Notification Set::Notification Status (push mode)

CC:0071.03.06.11.004 CC:0071.03.06.11.005 CC:0071.03.06.11.006

Value

Description

Version

0x00 Unsolicited messages MUST be disabled for the specified Notification Type 2

0xFF Unsolicited messages MUST be enabled for the specified Notification Type 2
All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.

CC:0071.03.06.13.001 CC:0071.03.06.11.007 CC:0071.03.06.11.008
CC:0071.03.06.12.001

A receiving node MAY deny the deactivation of a specific Notification Type. In that case, the receiving node MUST respond to this command with an Application Rejected Request Command. Thus, if a node can deny the deactivation of a Notification Type, the node MUST implement the Application Status CC. A sending node should be aware that a receiving node may return a response to the Set Command and thus SHOULD apply a back-off timer before sending a subsequent command.

Pull nodes:

CC:0071.03.06.11.009

A sending node MUST set this field to 0x00 to indicate that a persistent Notification for the specified Notification Type MUST be cleared in the receiving node's queue.

CC:0071.03.06.11.00A

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

4.74.5 Notification Get Command

Push nodes:

This command is used to request if the unsolicited transmission of a specific Notification Type is enabled.

Some supporting nodes will also advertise a current state in response to this command.

Pull nodes:

CC:0071.03.04.11.001

This command is used to retrieve the next Notification from the receiving node's queue.
The Notification Report Command MUST be returned in response to this command unless this command is to be ignored. Refer to the fields description.

CC:0071.03.04.11.002 CC:0071.03.04.11.003

This command MUST NOT be issued via multicast addressing. 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_NOTIFICATION

Command = NOTIFICATION_GET

V1 Alarm Type

Notification Type

Notification Event / State

V1 Alarm Type (8 bits)

The use of this field depends on the V1 Alarm field advertised in the Alarm Type Supported Report Command.

CC:0071.03.04.12.001

A sending node MAY specify a V1 Alarm Type if the receiving node supports the actual alarm type. A sending node MUST specify the value 0x00 if the receiving node does not support V1 alarms.
The receiving node behavior SHOULD comply with Table 87 and Table 88.

Notification Type (8 bits)

This field is used to specify a Notification Type. Assigned values are defined in [18].

CC:0071.03.04.11.004 This field MUST be set to a Notification Type that is supported by the receiving node or to 0xFF.

CC:0071.03.04.11.005 A receiving node MUST ignore the command if this field is different than 0xFF and set to a nonsupported Notification Type.

Push nodes:

CC:0071.03.04.12.002

The value 0xFF indicates to the receiving node that it MUST select a supported Notification Type and SHOULD advertise the current state of one of its state variables within the chosen Notification Type.

CC:0071.03.04.11.006

A supported Notification Type value indicates that the receiving node MUST advertise the unsolicited transmission status for the requested Notification Type and MAY advertise the current state of one of its state variables within the Notification Type.

Pull nodes:

CC:0071.03.04.11.007

The value 0xFF indicates to the receiving node that it MUST retrieve the next Notification in its queue.

CC:0071.03.04.12.003

A Notification Type value indicates to the receiving node that it SHOULD retrieve the next Notification in its Notification queue matching the specified Notification Type value.

Notification Event / State (8 bits)
This field is used to optionally specify a Notification Event/State within the Notification Type. Assigned values are defined in [18]. This field allows receiving nodes to differentiate between V2 Alarm Get Command and V3 or newer Notification Get Command.

CC:0071.03.04.11.008 If the Notification Type is set to 0xFF, this field MUST be set to 0x00 by a sending node and SHOULD be ignored by a receiving node.

Push nodes:

CC:0071.03.04.13.001 CC:0071.03.04.13.002

A sending node MAY set this field to 0x00. A sending node MAY specify a value that is supported by the receiving node within the specified Notification Type. In this case, a receiving node:
 MAY advertise a current state related to the indicated state  MAY return the same value in response to a supported Notification Event.

CC:0071.03.04.11.009

A receiving node MUST return the "Unknown notification" value (0xFE) in response to a nonsupported Notification Event.

Pull nodes:

CC:0071.03.04.12.004

This field SHOULD be ignored by a receiving node.

4.74.6 Notification Report Command

Push nodes:

This command is used for two purposes:

 If this command is returned in response to a Notification Get Command, this command advertises if the unsolicited transmission of the advertised Notification Type is enabled and optionally advertises a currently active state.
 If this command is sent unsolicited, it advertises an event or state Notification.

The use of the command's fields is the same in both cases.

Pull nodes:
This command is used by a sending node to return a Notification from its queue or indicate that its queue is empty.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_NOTIFICATION

Command = NOTIFICATION_REPORT

V1 Alarm Type

V1 Alarm Level

Reserved

Notification Status

Notification Type

Notification Event / State

Sequence

Reserved

Event / State Parameters Length

Event /State Parameter 1 (optional)

...

Event / State Parameter N (optional)

Sequence Number (optional)

Reserved

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

V1 Alarm Type (8 bits) & V1 Alarm Level (8 bits)

CC:0071.03.05.11.002

These fields carry the proprietary Alarm Type and Alarm Level fields originally introduced with Alarm Command Class, Version 1. V1 Alarm Type and V1 Alarm Level fields MUST be specified in the product manual.

CC:0071.03.05.11.003 If the V1 Alarm Type is not supported, these fields MUST be set to 0x00.

Notification Status (8 bits)

Push nodes:

This field is used to advertise the status of the Notification Type indicated in this command.

CC:0071.03.05.11.004

This field MUST comply with Table 93.

Table 93, Notification Report::Notification Status (push nodes)

Value

Description

Version

0x00 Unsolicited transmissions are disabled for the specified Notification Type 2

0xFF Unsolicited transmissions are enabled for the specified Notification Type 2

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

CC:0071.03.05.11.005

This field is used to advertise the status of the sending node's Notification queue. This field MUST comply with Table 94
Table 94, Notification Report::Notification Status (pull nodes)

Value

Description

Version

0x00 This command carries a valid Notification returned from the queue. 2 There may be more Notifications queued up. This Notification MAY be persistent.

0xFE This command does not carry any valid Notification and the event

3

queue is empty

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

CC:0071.03.05.11.006

Notification Type (8 bits) This field is used to advertise the Notification Type. Assigned values are defined in [18]. A sending node MUST set this field to the Notification Type of the actual Notification. Notification Event / State (8 bits) This field is used to specify a Notification Event/State for the advertised Notification Type. Assigned values are defined in [18].

CC:0071.03.05.11.007 A node advertising a Notification MUST set this field to the actual Notification event/state.

Sequence (1 bit)

This field is used to advertise the presence of the "Sequence Number" field.

CC:0071.03.05.11.008 CC:0071.03.05.11.009

The value 0 MUST indicate that no "Sequence Number" field is appended after the "Event / State Parameter" field. The value 1 MUST indicate that a "Sequence Number" field is appended after the "Event / State Parameter" field.

Event / State Parameters Length (5 bits)

This field is used to advertise the length in bytes of the Event / State Parameters field.

CC:0071.03.05.11.00A CC:0071.03.05.11.00B

The value 0 MUST indicate that no Event / State Parameter field is appended after the Event Parameters Length field. Values in the range 1..31 MUST indicate the length of the Event / State Parameter field appended after the Event / State Parameters Length field.

Event / State Parameter (N bytes)

The Event / State Parameter field is used to specify associated parameters to a Notification.

Parameters for each Event/State Notification are defined in [18].

CC:0071.03.05.13.001 This field MAY carry an encapsulated command. In this case, the field MUST include the complete CC:0071.03.05.11.00C command structure, i.e. Command Class, Command and all mandatory command fields.

CC:0071.03.05.11.00D If a node encapsulates a command in this field, the corresponding Command Class MUST be supported by the node and advertised in the Node Information Frame (NIF) or S0/S2 Supported Command Report.

CC:0071.03.05.11.00E This field MUST be omitted if the "Event Parameter Length" field is set to 0.

4.74.6.1 provides an example of Event Parameter encapsulation.

Sequence Number (8 bits)

CC:0071.03.05.13.002 This field is used to advertise a sequence number for the actual Notification. This command MAY carry a Sequence Number field.

CC:0071.03.05.11.00F This field MUST be omitted if the Sequence flag is set to 0.

CC:0071.03.05.11.010

The first sequence number for each distinct Notification MUST be 1. A sending node MUST increment the sequence number for a Notification each time it issues a Notification Report for that given Notification.

CC:0071.03.05.11.011 The Sequence Number range MUST be in the range 0..255. The value after 255 MUST be 0.

Example:

1. Notification {Smoke Alarm::Smoke Detected}, ..., Seq. Number = 254 2. Notification {Smoke Alarm::Smoke Detected}, ..., Seq. Number = 255 3. Notification {Heat Alarm::Overheat Detected}, ..., Seq. Number = 6 4. Notification {Smoke Alarm::Smoke Detected}, ..., Seq. Number = 0 5. Etc.

CC:0071.03.05.11.012

4.74.6.1 Event / State parameter encapsulation
Event / State parameter encapsulation of commands MUST comprise the entire command, starting from the Command Class identifier.
For example, a "User Code Report" is used as Event / State Parameter in a "Keypad Lock/Unlock Operation". The "User Code Report" has the following format:
 Command Class =COMMAND_CLASS_USER_CODE = 0x63  Command = USER_CODE_REPORT = 0x03  User Identifier = 0x01  User ID Status = 0x01  User Code = 0x30, 0x30, 0x30, 0x30
The complete User Code Report therefore comprises the following Bytes: [0x63, 0x03, 0x01, 0x01, 0x30, 0x30, 0x30, 0x30].
Another example with the Node naming and location Command class is given in Table 95.

Table 95, Notification Report::Event / State parameter encapsulation (example)

Notification Report Command fields 1 COMMAND_CLASS_NOTIFICATION 2 NOTIFICATION_REPORT 3 V1 Alarm Type 4 V1 Alarm Level 5 Reserved 6 Notification Status 7 Notification Type 8 Notification Event
Sequence Number / 9
Event Parameters Length 10 Event Parm 1 11 Event Parm 2 12 Event Parm 3 13 Event Parm 4 14 Event Parm 5 15 Event Parm 6 16 Event Parm 7 17 Event Parm 8 18 Event Parm 9 19 Event Parm 10 20 Sequence Number

Value

Explanation

0x71 Notification CC id

0x05 Notification Report command id

0x00 Not implemented

0x00 Not implemented

0x00 Reserved field

0xFF Unsolicited report is activated

0x01 Smoke Alarm

0x01 Smoke Detected

Sequence Number is appended / 0x1A
Event Parm Length = 10

0x77 Node Naming & Location CC id

0x06 Node Location Report command id

0x00 Cmd Parm: Char = ASCII

0x4B Cmd Parm: Node Location Char 1 = K

0x49 Cmd Parm: Node Location Char 2 = I

0x54 Cmd Parm: Node Location Char 3 = T

0x43 Cmd Parm: Node Location Char 4 = C

0x48 Cmd Parm: Node Location Char 5 = H

0x45 Cmd Parm: Node Location Char 6 = E

0x4E Cmd Parm: Node Location Char 7 = N

0x0F Sequence Number = 15

4.74.7 Notification Supported Get Command

This command is used to request supported Notification Types.

CC:0071.03.07.11.001 The Notification Supported Report Command MUST be returned in response to this command.

CC:0071.03.07.11.002 CC:0071.03.07.11.003

This command MUST NOT be issued via multicast addressing. 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_NOTIFICATION

Command = NOTIFICATION_SUPPORTED_GET

4.74.8 Notification Supported Report Command This command is used to advertise supported Notification Types.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_NOTIFICATION

Command = NOTIFICATION_SUPPORTED_REPORT

V1 Alarm

Reserved

Number of Bit Masks

Bit Mask 1

...

Bit Mask N

V1 Alarm (1 bit)

This field is used to indicate if the node implements proprietary Alarms from version 1.

CC:0071.03.08.11.001 CC:0071.03.08.11.002

The value 0 MUST indicate that the device implements only Notification CC V2 or newer Notification Types. The value 1 MUST indicate that the device implements Notification CC V2 Notification Types as well as proprietary Alarm CC V1 Alarm Types and Alarm Levels.

Number of Bit Masks (5 bits)

CC:0071.03.08.11.003 This field MUST advertise the length in bytes of the Bit Mask field. The value MUST be in the range 1..31.

Bit Mask (N bytes) The Bit Mask field describes the supported Notification Types by the node. The length of this field in CC:0071.03.08.11.004 bytes MUST match the value advertised in the Number of Bit Masks field.
 Bit 0 in Bit Mask 1 is not allocated to any Notification Type and MUST be set to zero.  Bit 1 in Bit Mask 1 indicates if Notification Type = Smoke Alarm (0x01) is supported.  Bit 2 in Bit Mask 1 indicates if Notification Type = CO Alarm (0x02) is supported.  Bit 3 in Bit Mask 1 indicates if Notification Type = CO2 Alarm (0x03) is supported ...

For Notification Types, refer to [18].

CC:0071.03.08.11.005 If the Notification Type is supported, the corresponding bit MUST be set to 1. If the Notification Type is not supported, the corresponding bit MUST be set to 0.

CC:0071.03.08.11.006

The Notification Type values 0x00 and 0xFF are special-purpose values. Reserved values and specialpurpose values MUST NOT be advertised in the Bit Mask field by a sending node and MUST be ignored by a receiving node.

4.74.9 Event Supported Get Command

This command is used to request the supported Notifications for a specified Notification Type.

CC:0071.03.01.11.001 The Event Supported Report Command MUST be returned in response to this command.

CC:0071.03.01.11.002 CC:0071.03.01.11.003

This command MUST NOT be issued via multicast addressing. 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_NOTIFICATION

Command = EVENT_SUPPORTED_GET

Notification Type

CC:0071.03.01.11.004

Notification Type (8 bits)
For Notifications Types, refer to [18].
If a node receives an unsupported Notification Type or a special-purpose value, the receiving node MUST respond with Event Supported Report Command with the Notification Type specified in the this command and the Number of Bit Masks field set to 0.

4.74.10 Event Supported Report Command This command is used to advertise supported events/states for a specified Notification Type.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_NOTIFICATION

Command = EVENT_SUPPORTED_REPORT

Notification Type

Reserved

Number of Bit Masks

Bit Mask 1

...

Bit Mask N

CC:0071.03.02.11.001
CC:0071.03.02.11.002 CC:0071.03.02.11.003

Notification Type (8 bits) For Notifications Types, refer to [18]. Number of Bit Masks (5 bits) This field is used to advertise the length (in bytes) of the Bit Mask field. The value MUST be in the range 0..31. The value 0 MUST indicate that the Notification Type is not supported. Bit Mask (N bytes) This field is used to advertise the supported Events/States for the actual advertised Notification Type. The length of this field (in bytes) MUST match the value advertised in the Number of Bit Masks field. This field MUST be omitted if the "Number of Bit Masks" field is set to 0. The bit value `1' MUST indicate that the actual Event/State is supported. The bit value `0' MUST indicate that the actual Event/State is not supported. Example: Notification Type = Heat Alarm (0x04):
 Bit 0 in Bit Mask 1 field is not allocated to any event and must therefore be set to zero.  Bit 1 in Bit Mask 1 field indicates support for Overheat detected (0x01).  Bit 2 in Bit Mask 1 field indicates support for Overheat, unknown loc. (0x02).  Bit 3 in Bit Mask 1 field indicates support for Rapid temp rise (0x03). ...

For Notification Types and their Events/States, refer to [18].

CC:0071.03.02.11.004

The Event/State values 0x00 and 0xFE are special-purpose values. Reserved values and special-purpose values MUST NOT be advertised in the Bit Mask field by a sending node and MUST be ignored by a receiving node.

4.75 Prepayment Command Class, version 1
The Prepayment Command Class defines the Commands necessary to implement a Z-Wave encapsulation of Prepayment data and to distribute prepayment information between devices
4.75.1 Prepayment Balance Get Command
This command is used to request the balance of the Prepayment.
The Prepayment Balance Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_PREPAYMENT

Command = PREPAYMENT_BALANCE_GET

Balance Type

Reserved

Balance Type (2 bits)
The field specifies which balance type is requested in the response report. The available balance types may be requested using the Prepayment Supported Get Command.
Table 96, Prepayment Balance Get::Balance Type encoding

Value

Balance Type

0x00 Utility Balance

0x01 Monetary Balance

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

4.75.2 Prepayment Balance Report Command
This command is used to report the current balances.
The report includes the following main elements:  Balance  Debt  Emergency Credit
The elements MAY be given in monetary values or in utility units depending on the Balance Type field.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_PREPAYMENT

Command = PREPAYMENT_BALANCE_REPORT

Balance Type

Meter type

Balance Precision

Scale

Balance Value 1

Balance Value 2

Balance Value 3

Balance Value 4

Debt Precision

Reserved

Debt 1

Debt 2

Debt 3

Debt 4

Emer. Credit Precision

Reserved

Emer. Credit 1

Emer. Credit 2

Emer. Credit 3

Emer. Credit 4

Currency 1

Currency 2

Currency 3

Debt Recovery Percentage

Balance Type (2 bits)
The field specifies which type of balance is given in the report.
All available Balance Types may be found in the section 4.75.1 Prepayment Balance Get Command.
Meter Type (6 bits)
Meter Type specifies the type of metering device the command originates. This field MUST be encoded according to the Meter Types defined in [21].
Scale (5 bits)
The Scale used to indicate the scale (unit) of the balance, debt and emergency credit value in the report. Scale field only used for a report of type "Utility Balance", for other reports set the scale to 0x1F. The Scale parameter is of the variable type Meter Scale; refer to 4.62.13 Meter Table Current Data Report Command.
Currency (3 bytes)
This field advertises the currency code. Reports of the type "Monetary Balance" MUST advertise currency codes complying with ISO 4217. Other report types MUST advertise a currency code of "XXX".
Table 97, Prepayment Balance Report::Currency examples

Currency Code

Currency 1 Currency 2 Currency 3

Pound sterling (ISO 4217)

G

B

P

US Dollar (ISO 4217)

U

S

D

No Currency

X

X

X

Balance, Debt and Emergency Credit Precision (3 bits)
The precision field describes what the precision of the value is. The number indicates the number of decimals. The decimal value 1025 with precision 2 is therefore equal to 10.25.
Balance, Debt and Emergency Credit (32 bits)
The Balance, Debt and Emergency Credit fields MUST be encoded as 32-bit signed integers. The first byte MUST carry most significant byte. Table 10, Signed field encoding (two's complement representation) shows signed decimal values together with their hexadecimal equivalents.
Debt Recovery Percentage (8 bits)
The Debt Recovery Percentage indicates the percentage of the payment that is for debt recovery. This can take the value from 0 ­ 50%, the value is always given with a precision of 0 decimal places. The value 0xFF indicates that this field is unspecified.
This field is only used for only used for a report of type "Monetary Balance". For other reports this field MUST be set to 0xFF (unspecified).

4.75.3 Prepayment Supported Get Command
The Prepayment Supported Get Command is used to request type of Balance Reports that are available in the device.
The Prepayment Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_PREPAYMENT

Command = PREPAYMENT_SUPPORTED_GET

4.75.4 Prepayment Supported Report Command
The Prepayment Supported Report Command reports the types of Balance Reports that are available in the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_PREPAYMENT

Command = Command = PREPAYMENT_SUPPORTED_REPORT

Reserved

Bit Mask Balance Types Supported

Bit Mask - Balance Types Supported (8 bits)
The Bit Mask - Balance Types Supported byte describes the type of Balance Reports that are available in the device.
Bit 0 in Bit Mask is used to indicate if the Balance Report Type "Utility Balance" is supported, 0 indicating not supported and 1 indicating supported. Bit 1 in the Bit Mask is used to indicate if the Balance Report Type "Monetary Balance" is available in the device, 0 indicating not supported and 1 indicating supported.
All available Balance Types may be found in the section 4.75.1 Prepayment Balance Get Command.

4.76 Prepayment Encapsulation Command Class, version 1
The Prepayment Encapsulation Command Class is used to smartcard preinstalled security mechanisms.
4.76.1 Prepayment Encapsulation Command
This command is used to encapsulate Smart card related data communication (e.g. between a Card reader and Meter), allowing the smartcard preinstalled security mechanisms to be applied transparently to Z-Wave.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_PREPAYMENT_ENCAPSULATION

Command = CMD_ENCAPSULATION

Data 1

...

Data N

Data (N bytes) This field contains prepayment smart card data.

4.77 Proprietary Command Class, version 1 [DEPRECATED]
THIS COMMAND CLASS HAS BEEN DEPRECATED
A device MAY implement this command class, but it is RECOMMENDED that new implementations use the Manufacturer Proprietary Command Class. If implementing this command class, it is RECOMMENDED that the Manufacturer Proprietary Command Class is also implemented.

The Proprietary Command Class is used to transfer data between devices. The data content MUST be vendor specific and commands MUST NOT provide any value-add with respect to the Home Automation application in general.
4.77.1 Proprietary Set Command
This command is used to transfer data to a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_PROPRIETARY

Command = PROPRIETARY_SET

Data 1

...

Data N

Data (N bytes)
The data fields may be used to set various data in the device. The number of data fields transmitted MUST be determined from the length field in the frame.

4.77.2 Proprietary Get Command
This command is used to request data from a device.
The Proprietary Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_PROPRIETARY

Command = PROPRIETARY_GET

Data 1

...

Data N

Data (N bytes) Refer to explanation under the Proprietary Set Command. 4.77.3 Proprietary Report Command This command is used to retrieve various data from a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_PROPRIETARY

Command = PROPRIETARY_REPORT

Data 1

...

Data N

Data (N bytes) Refer to explanation under the Proprietary Set Command.

4.78 Protection Command Class, version 1 The Protection Command Class version 1 used to protect a device against unintentional control by e.g. a child. 4.78.1 Protection Set Command This command is used to set the protection state in a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_PROTECTION

Command = PROTECTION_SET

Protection State

Protection State (8 bits) The Protection State field used to set the protection state of the device.

Table 98, Protection Set::Protection State encoding

Protection State

Description

0x00

Unprotected - The device is not protected, and may be operated

normally via the user interface.

0x01

Protection by sequence - The device is protected by altering the

way the device normally is operated into a more complicated

sequence of actions, e.g. if a device normally is controlled by a

single press of a button on the device it might be changed to

require 3 rapid presses on a button to control it.

0x02

No operation possible - It is not possible at all to control a device

directly via the user interface.

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
Control via Z-Wave is always possible independently of the protection state.
4.78.2 Protection Get Command
This Command is used to request the protection state from a device.
The Protection Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_PROTECTION

Command = PROTECTION_GET

4.78.3 Protection Report Command This command is used to report the protection state of a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_PROTECTION

Command = PROTECTION_REPORT

Protection State

Protection State (8 bits) Refer to explanation under Protection Get Command.

4.79 Protection Command Class, version 2
The Protection Command Class version 2 is extended to specify whether a device may be controlled via RF Commands or not. When a video recorder is powered by an outlet that can be controlled by RF the user would like to prevent the video recorder from being turned off when it is recording her/his favorite show. In this case the Protection Command Class version 2 may be used to protect the outlet from being turned off by setting the outlet in "No RF Control" state.
The following Commands have been added or changed in version 2. The Commands not mentioned remain unchanged.
This Command Class is intended for convenience applications. The Command Class SHOULD NOT be used for safety critical applications.
4.79.1 Protection Set Command
This command is used to set the protection state in a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_PROTECTION

Command = PROTECTION_SET

Reserved

Local Protection State

Reserved

RF Protection State

Local Protection State (4 bits) The Local Protection State field used to set the protection state of the device.

Table 99, Protection Set::Local Protection State encoding

Local Protection State

Description

0

Unprotected - The device is not protected, and may be operated normally via the

user interface.

1

Protection by sequence - The device is protected by altering the way the device

normally is operated into a more complicated sequence of actions, e.g. if a

device normally is controlled by a single press of a button on the device it might

be changed to require 3 rapid presses on a button to control it.

2

No operation possible - It is not possible at all to control a device directly via the

user interface.

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node. Note: Local Protection can only protect a device from "normal operation". This means only the operation that is intended by the application of the device. It is NOT allowed to protect the device from network functionalities. The device cannot be protected from being put into learn mode nor from sending out the NIF.
RF Protection State (4 bits)
The RF Protection State field used to set the RF protection state of the device. In the case where a device set into a RF Protection State which instructs the device not to answer to a "normal operation" Command, the device MUST return the Application Rejected Request Command (Status = 0) of the Application Status Command Class. Refer to the Application Status Command Class.
Table 100, Protection Set::RF Protection State

RF Protection State 0 1
2

Description
Unprotected - The device MUST accept and respond to all RF Commands. No RF control - all runtime Commands are ignored by the device. The device MUST still respond with status on requests. No RF response at all. The device will not even reply to status requests.

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.Note: ­ It is only possible to un-protect the device with the Protection Set Command. It is not allowed ignore Protection Commands. If a device is excluded from the network, the protection states MUST be reset.

4.79.2 Protection Report Command This command is used to report the protection state of a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_PROTECTION

Command = PROTECTION_REPORT

Reserved

Local Protection State

Reserved

RF Protection State

For field description, refer to 4.79.1 Protection Set Command.
4.79.3 Protection Supported Get Command
This command is used to query supported protection capabilities.
The Protection Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_PROTECTION

Command = PROTECTION_SUPPORTED_GET

4.79.4 Protection Supported Report Command This command is used to advertise supported protection capabilities.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_PROTECTION

Command = PROTECTION_SUPPORTED_REPORT

Reserved

Exclusive Timeout Control

Local Protection State Byte 1

Local Protection State Byte 2

RF Protection State Byte 1

RF Protection State Byte 2

Local Protection State Byte (2 bytes)
The list of all Local Protection States may be found in section 4.79.1. The two bytes MUST be interpreted as bit masks where byte 1 bit 0 represent Local Protection State 0, byte 1 bit 1 represent Protection State 1, byte 2 bit 0 represent Protection State 8 etc.
RF Protection State Byte (2 bytes)
The list of all RF Protection States may be found in section 4.79.1. The two bytes MUST be interpreted as bit masks where byte 1 bit 0 represent RF Protection State 0, byte 1 bit 1 represent Protection State 1, byte 2 bit 0 represent Protection State 8 etc.
Exclusive Control (1 bit)
When this bit is set to 1 the device support Exclusive Control. When Exclusive Control is supported the device MUST support the Commands Protection Exclusive Control Set, Get and Report described below.
Timeout (1 bit)
When this bit is set to 1 the device supports a timeout for RF Protection State. When the timeout is supported the device MUST support the Commands Protection Timeout Set, Get and Report described below.
4.79.5 Protection Exclusive Control
The Protection Exclusive Control is an optional feature. The Commands in this chapter can only be implemented if the device supporting Protection Command Class version 2 announces support for Exclusive Control in the Protection Supported Report Command.
4.79.5.1 Protection Exclusive Control Set Command
This command is used to set the NodeID of a Z-Wave device that can override the protection state in a protected device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_PROTECTION

Command = PROTECTION_EC_SET

NodeID

NodeID
The NodeID that has exclusive control can override the RF protection state of the device and can control it regardless of the protection state. Commands from any other nodes in the network may be restricted by the RF protection state. In that case, the Application Rejected Request Command MUST be returned.
All of the Protection Command Class commands will be accepted and processed regardless of whether or not a node has exclusive control.

Factory default setting of the NodeID for exclusive control MUST be set to 0. To reset the exclusive control state in a device an Exclusive Control Set Command with NodeID 0 as parameter MUST be send to the device.
4.79.5.2 Protection Exclusive Control Get Command
This command is used to request a Protection Exclusive Control Report Command from the device.
The Protection Exclusive Control Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_PROTECTION

Command = PROTECTION_EC_GET

4.79.5.3 Protection Exclusive Control Report Command
This command is used to return the NodeID of a Z-Wave device that has exclusive control over this device in protection mode.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_PROTECTION

Command = PROTECTION_EC_REPORT

NodeID

NodeID
See description under the Protection Exclusive Control Set Command section 4.79.5.1.
4.79.6 Protection Timeout
The Protection Timeout is an optional feature. The Commands in this section MAY be implemented if the device supporting Protection Command Class version 2 announces support for Timeout in the Protection Supported Report Command.

4.79.6.1 Protection Timeout Set Command This command is used to set the timeout for protection mode in a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_PROTECTION

Command = PROTECTION_TIMEOUT_SET

Timeout

Timeout
The timeout describes the time that a device MUST remain in RF Protection mode. Factory default setting for the Timeout parameter MUST be 0x00. This field MUST be encoded according to Table 101.
Table 101, Protection Timeout Set::Timeout encoding

Timeout

Description

0x00

No timer is set. All "normal operation" Commands MUST be accepted.

0x01-0x3C

Timeout is set from 1 second (0x01) to 60 seconds (0x3C) in 1-second resolution.

0x41-0xFE

Timeout is set from 2 minutes (0x41) to 191 minutes (0xFE) in 1-minute resolution.

0xFF

No Timeout ­ The Device will remain in RF Protection mode infinitely.

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

4.79.6.2 Protection Timeout Get Command

This command is used to request a Protection Timeout Report Command from the device.

The Protection Timeout Report Command MUST be returned in response to this command.

This command MUST NOT be issued via multicast addressing. 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_PROTECTION

Command = PROTECTION_TIMEOUT_GET

4.79.6.3 Protection Timeout Report Command This command is used to return the remaining time that a device will remain in protection mode.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_PROTECTION

Command = PROTECTION_TIMEOUT_REPORT

Timeout

Timeout This field indicates the remaining timeout set in the Node. It MUST be encoded as described in Table 101
4.80 Pulse Meter Command Class, version 1 [DEPRECATED]
THIS COMMAND CLASS HAS BEEN DEPRECATED
A device MAY implement this command class, but it is RECOMMENDED that new implementations use the Meter Command Class. If implementing this command class, it is RECOMMENDED that the Meter Command Class is also implemented.

The Pulse Meter Command Class defines the Commands necessary to implement the pulse meter functionality. The Pulse Meter Command Class is intended for all kinds of meters that generate pulses, such as gas and water meters.
4.80.1 Pulse Meter Get Command
This command is used to request the number of pulses that has been counted.
The Pulse Meter Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_METER_PULSE

Command = METER_PULSE_GET

4.80.2 Pulse Meter Report Command This command is used to report the number of pulses detected.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_METER_PULSE

Command = METER_PULSE_REPORT

Pulse Count 1

Pulse Count 2

Pulse Count 3

Pulse Count 4

Pulse Count (32 bits)
The Pulse Count field contains the number of pulses generated by the meter. The first byte is the most significant byte.

4.81 Rate Table Configuration Command Class, version 1
The Rate Table Configuration Command Class defines the parameter sets for a range of rates.
The Rate Table configuration commands are separated for the Rate Table monitoring commands in the rate Table Monitor Command Class, allowing the classes to be optionally supported at different Z-Wave security levels.
Every rate is described as a combination of time, maximum consumption, maximum demand and DCP Rate ID.
 Time: Time of day. E.g. 7.15am to 9.20am  Maximum Consumption: E.g. 200kWh. This allows the Utility Supplier to provide special rates
for `utility conserving' end users.  Maximum Demand: E.g. 4000W. This allows the Utility Supplier to provide special rates for end-
users which manages to keep the `peak' demand under `control'.  DCP Rate ID: E.g. DCP Rate ID = 16. This allows the Utility Supplier to provide special rates for
end-users participating in DCP event with a specific DCP Rate ID.
4.81.1 Rate Table Set Command
This command adds a rate parameter set to a given rate parameter set identifier.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_RATE_TBL_CONFIG

Reserved

Command = RATE_TBL_SET

Rate Parameter Set ID

Rate Type

Number of Rate Char.

Rate Character 1

...

Rate Character N

Start Hour Local Time

Start Minute Local Time

Duration Minute 1

Duration Minute 2

The following part of the command is OPTIONAL depending on the parameters supported. Use the Rate Table Supported Get Command to obtain supported parameters beside the default above. A not supported parameter is not included into the command layout.

Consumption Precision 1

Consumption Scale 1

Min. Consumption Value 1

Min. Consumption Value 2

Min. Consumption Value 3

Min. Consumption Value 4

Max. Consumption Value 1

Max. Consumption Value 2

Max. Consumption Value 3

Max. Consumption Value 4

Max. Demand Precision 1

Max. Demand Scale 1

Max. Demand Value 1

Max. Demand Value 2

Max. Demand Value 3

Max. Demand Value 4

DCP Rate ID

Rate Parameter Set ID (8 bits) The Rate Parameter Set ID indicates the requested parameter set. Rate Type (2 bits) Rate Type specifies the type of parameters in the report. This field MUST be encoded according to Table 69. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Number of Rate Characters (5 bits) Number of characters defining the rate text (1..32). Rate Character (N bytes) The Rate character fields hold the string identifying the rate parameter set. The character presentation uses standard ASCII codes (values in the range 128..255 MUST be ignored). Start Hour Local Time (8 bits) Specify the number of complete hours that have passed since midnight (00..23) in local time. Start Minute Local Time (8 bits) Specify the number of complete minutes that have passed since the start of the hour (00..59) in local time.

Duration Minute (16 bits)
Specify the duration in minutes (1..1440) since the start in local time. The value 1440 indicates that the parameter set applies the entire day.
Consumption Precision (3 bits)
The precision field describes what the precision of the value is. The number indicates the number of decimals. The decimal value 1025 with precision 2 is therefore equal to 10.25.
Consumption Scale (5 bits)
The Consumption Scale used to indicate the scale (unit) is applicable for the rate. The Consumption Scale parameter is of the variable type Meter Scale; refer to 4.62.13 Meter Table Current Data Report Command.
Minimum / Maximum Consumption Value (4 * 8 bits)
The Minimum / Maximum Consumption Value are a 32 bit unsigned field. The first byte is the most significant byte.
The Minimum / Maximum Consumption Value are used in the Rate Table when Block Tariffs are used. Block tariffs assign blocks of energy at a set cost. The billing period is defined by the Utility Supplier.
Example of Block Tariff based Rate Table: (Two Block tariff system)
The first block from 0 kWh to 200 kWh is charged at 2 USD/kWh and all other units consumed over 200kWh will be charged at 2.5 USD/kWh
Rate1: Min Consumption value = 0kWh, Max Consumption Value = 200kWh Rate2: Min Consumption value = 200kWh, Max Consumption Value = 2147483648kWh
NOTE: The actual charge is set using the Tariff Table Configuration Command Class, version 1.
NOTICE: The device receiving the Rate Table Report MUST show the value even though the Scale is not supported.
Max. Demand Precision (3 bits)
The Maximum Demand Precision field describes what the precision of the value is. The number indicates the number of decimals. The decimal value 1025 with precision 2 is therefore equal to 10.25.
Max. Demand Scale (5 bits)
The Maximum Demand Scale field describes what unit is applicable for the rate. The Maximum Demand Scale parameter is of the variable type Meter Scale; refer to 4.62.13 Meter Table Current Data Report Command.
Max. Demand Value (4 * 8 bits)
The Maximum Demand Value is a 32 bit unsigned field. The first byte is the most significant byte.
The maximum demand value 0xFFFFFFFF is reserved and represents an unlimited maximum demand value.

NOTICE: The device receiving the Rate Table Report MUST show the value even though the Scale is not supported.
DCP Rate ID (8 bits)
The DCP Rate ID addresses the Demand Control Plan parameters, which will overrule other parameter sets defined in the Rate Table Command Class. A DCP Rate ID equal to zero disables Demand Control Plan mapping.
4.81.2 Rate Table Remove Command
This command is used to remove rate parameter set(s).

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_RATE_TBL_CONFIG

Command = RATE_TBL_REMOVE

Reserved

Rate Parameter Set IDs

Rate Parameter Set ID 1

...

Rate Parameter Set ID N

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Rate Parameter Set IDs (6 bits) The Rate Parameter Set IDs indicates the number of rate parameter set IDs in the command. Rate Parameter Set ID (N bytes) These fields contain a list of Rate Parameter Set ID's that should be removed from the Rate Table. All Rate Parameter Set ID's are cleared in case no Rate Parameter Set ID's are supplied.

4.82 Rate Table Monitor Command Class, version 1
The Rate Table Monitor Command Class defines the parameter sets for a range of rates.
4.82.1 Rate Table Supported Get Command
This command is used to request the number of rates and parameter sets supported by the Rate Table Command Class.
The Rate Table Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_RATE_TBL_MONITOR

Command = RATE_TBL_SUPPORTED_GET

4.82.2 Rate Table Supported Report Command This command is used to advertise the number of rates and parameter sets supported.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_RATE_TBL_MONITOR

Command = Command = RATE_TBL_SUPPORTED_REPORT

Rates Supported

Parameter Set Supported Bit Mask 1

Parameter Set Supported Bit Mask 2

Rates Supported (8 bits) Number of rates supported (1..255).

Parameter Set Supported Bit Mask 1, 2 (16 bits)
The Bit Mask field describes the supported parameter set in addition to the default-supported parameter set. The default parameter set comprises of Rate Parameter Set ID, Rate text, Start time and Duration.
It is possible to extend the default parameter set as follows:
Table 102, Rate Table Supported Report::Parameter Set Supported Bit Mask encoding

Parameter Set
Supported 1 1
1
1
1

Bit Map Bit 0 Bit 1
Bit 2
Bit 3 Bit 4

Description
Reserved
Supports Block tariffs if the bit is 1 and the opposite if 0. Block tariffs assign blocks of energy at a set cost, for example in a two block tariff the first block say from 0 kWh to 200 kWh is charged at X currency per unit(kWh) all other units consumed over 200kWh will be charged at Y currency per unit for the billing period.
Supports Maximum demand tariffs if the bit is 1 and the opposite if 0. Maximum demand tariffs are based on the maximum load that is measured for example 20kw over an averaging period. The charge is based on the max load; hence a 30kW maximum demand would be more costly than a 20kW maximum demand.
Supports Subscribed demand tariffs if the bit is 1 and the opposite if 0. This type of tariff is used in France and Italy primarily; the standing charge is calculated from the maximum load, for example 10A = 10 currency/month, 20A = 20 currency / month.
Supports Demand Control Plan mapping (DCP ID) if the bit is 1 and the opposite if 0.

All other bits are reserved and MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node.

4.82.3 Rate Table Get Command
This command is used to request the rate parameter set for a given rate parameter set identifier.
The Rate Table Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_RATE_TBL_MONITOR

Command = RATE_TBL_GET

Rate Parameter Set ID

Rate Parameter Set ID (8 bits) The Rate Parameter Set ID addresses the wanted parameter set. The rate parameter set identifier MUST be a sequence starting from 1 to Rates Supported. 4.82.4 Rate Table Report Command This command reports rate parameter set for a given rate parameter set identifier.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_RATE_TBL

Command = RATE_TBL_REPORT

Reserved

Rate Parameter Set ID

Rate Type

Number of Rate Char.

Rate Character 1

...

Rate Character N

Start Hour Local Time

Start Minute Local Time

Duration Minute 1

Duration Minute 2

The following part of the command is OPTIONAL depending on the parameters supported. Use the Rate Table Supported Get Command to obtain supported parameters beside the default above. A not supported parameter is removed from the command layout.

Consumption Precision 1

Consumption Scale 1

Min. Consumption Value 1

Min. Consumption Value 2

Min. Consumption Value 3

Min. Consumption Value 4

Max. Consumption Value 1

Max. Consumption Value 2

Max. Consumption Value 3

Max. Consumption Value 4

Max. Demand Precision 1

Max. Demand Scale 1

Max. Demand Value 1

Max. Demand Value 2

Max. Demand Value 3

Max. Demand Value 4

DCP Rate ID

Refer to description of fields under the Rate Table Set Command (section 4.81.1).
4.82.5 Rate Table Active Rate Get Command
This command is used to retrieve the rate currently active in the meter.
The Rate Table Active Rate Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_RATE_TBL_MONITOR

Command = RATE_TBL_ACTIVE_RATE _GET

4.82.6 Rate Table Active Rate Report Command This command is used to advertise the rate parameter set ID of the rate currently active in the meter.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_RATE_TBL_MONITOR

Command = RATE_TBL_ACTIVE_RATE _REPORT

Rate Parameter Set ID

Rate Parameter Set ID (8 bits)
The Rate Parameter Set ID of the rate currently active in the meter.
4.82.7 Rate Table Current Data Get Command
This command is used to request a number of time stamped values (current) in physical units according to the dataset mask.
The Rate Table Current Data Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_RATE_TBL_MONITOR

Command = RATE_TBL_CURRENT_DATA_GET

Rate Parameter Set ID

Dataset Requested 1

Dataset Requested 2

Dataset Requested 3

Rate Parameter Set ID (8 bits)
The Rate Parameter Set ID addresses the wanted parameter set. The rate parameter set identifier MUST be a sequence starting from 1 to Rates Supported.
Dataset Requested (24 bits)
The dataset requested parameter indicates which data is requested by the command. This field MUST be encoded according to the Meter Datasets defined in [21].

4.82.8 Rate Table Current Data Report Command
This command is used to report a number of time stamped values (current) in physical units in the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_RATE_TBL_MONITOR

Command = RATE_TBL_CURRENT_DATA_REPORT

Reports to Follow

Rate Parameter Set ID

Dataset 1

Dataset 2

Dataset 3

Year 1

Year 2

Month

Day

Hour Local Time

Minute Local Time

Second Local Time

Current Precision 1

Current Scale 1

Current Value 1,1

Current Value 1,2

Current Value 1,3

Current Value 1,4

...

Current Precision N

Current Scale N

Current Value N,1

Current Value N,2

Current Value N,3

Current Value N,4

Reports to Follow (8 bits)
This value indicates how many report frames there are left, the value 0xFF means that the number of reports have not been calculated yet or that there is more than 255 reports to follow.

Rate Parameter Set ID (8 bits)
The Rate Parameter Set ID addresses the wanted parameter set. The rate parameter set identifier MUST be a sequence starting from 1 to Rates Supported.
Dataset (24 bits)
The dataset parameter indicates which data is included in the report. This field MUST be encoded according to the Meter Dataset defined in [21].
Year (16 bits)
Specify the year in the usual Gregorian calendar. The first byte (Year 1) is the most significant byte.
Month (8 bits)
Specify the month of the year between 01 (January) and 12 (December). A year equal to 0x0000 indicates that a accumulated value is not determined yet.
Day (8 bits)
Specify the day of the month between 01 and 31.
Hour Local Time (8 bits)
Specify the number of complete hours that have passed since midnight (00..23) in local time.
Minute Local Time (8 bits)
Specify the number of complete minutes that have passed since the start of the hour (00..59) in local time.
Second Local Time (8 bits)
Specify the number of complete seconds since the start of the minute (00..59) in local time. The value 60 used to keep UTC from wandering away is not supported.
Precision (N * 3 bits)
The precision field describes what the precision of the value is. The number indicates the number of decimals. The decimal value 1025 with precision 2 is therefore equal to 10.25.
Current Scale (N*5 bits)
The Current Scale is used to indicate the scale (unit) of the following value. This field MUST be encoded according to the Meter Dataset and Scales defined in [21].
Current Value (N * 32 bits)
The Current Value advertises a value corresponding to the Dataset Requested field of the Get Command. The field MUST be encoded as a 32-bit signed integer. The first byte (Value 1) MUST carry most significant byte. Table 10, Signed field encoding (two's complement representation) shows signed decimal values together with their hexadecimal equivalents.
NOTICE: The device receiving the Rate Table Current Data Report MUST show the value even though the Scale is not supported.

4.82.9 Rate Table Historical Data Get Command
This command is used to request a number of time stamped values (historical) in physical units according to rate type, dataset mask and time interval.
The Rate Table Historical Data Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_RATE_TBL_MONITOR

Command = RATE_TBL_HISTORICAL_DATA_GET

Maximum Reports

Rate Parameter Set ID

Dataset Requested 1

Dataset Requested 2

Dataset Requested 3

Start Year 1

Start Year 2

Start Month

Start Day

Start Hour Local Time

Start Minute Local Time

Start Second Local Time

Stop Year 1

Stop Year 2

Stop Month

Stop Day

Stop Hour Local Time

Stop Minute Local Time

Stop Second Local Time

Maximum Reports (8 bits) The maximum reports parameter is used to indicate the maximum number of reports to return based on the get. Reports are always returned with the most recently recorded value first. If set to 0x00 the meter will return all reports based on the request. Rate Parameter Set ID (8 bits) The Rate Parameter Set ID addresses the wanted parameter set. The rate parameter set identifier MUST be a sequence starting from 1 to Rates Supported. Dataset Requested (24 bits) The dataset requested parameters indicate data requested. This field MUST be encoded according to the Meter Dataset defined in [21]. Start/Stop Year (16 bits) Specify the year in the usual Gregorian calendar. The first byte (Year 1) is the most significant byte. Start/Stop Month (8 bits) Specify the month of the year between 01 (January) and 12 (December). A year equal to 0x0000 indicates that an accumulated value is not determined yet. Start/Stop Day (8 bits) Specify the day of the month between 01 and 31. Start/Stop Hour Local Time (8 bits) Specify the number of complete hours that have passed since midnight (00..23) in local time. Start/Stop Minute Local Time (8 bits) Specify the number of complete minutes that have passed since the start of the hour (00..59) in local time. Start/Stop Second Local Time (8 bits) Specify the number of complete seconds since the start of the minute (00..59) in local time. The value 60 used to keep UTC from wandering away is not supported.

4.82.10 Rate Table Historical Data Report Command
This command is used to report a number of time stamped values (historical) in physical units in the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_RATE_TBL_MONITOR

Command = RATE_TBL_HISTORICAL_DATA_REPORT

Reports to Follow

Rate Parameter Set ID

Dataset 1

Dataset 2

Dataset 3

Year 1

Year 2

Month

Day

Hour Local Time

Minute Local Time

Second Local Time

Historical Precision 1

Historical Scale 1

Historical Value 1,1

Historical Value 1,2

Historical Value 1,3

Historical Value 1,4

...

Historical Precision N

Historical Scale N

Historical Value N,1

Historical Value N,2

Historical Value N,3

Historical Value N,4

Reports to follow (8 bits)
This value indicates how many report frames there are left, the value 0xFF means that the number of reports have not been calculated yet or that there is more than 255 reports to follow.

Rate Parameter Set ID (8 bits) The Rate Parameter Set ID addresses the wanted parameter set. The rate parameter set identifier MUST be a sequence starting from 1 to Rates Supported. Dataset (24 bits) The dataset parameter indicates which data is included in the report. This field MUST be encoded according to the Meter Dataset defined in [21]. Year 1, 2 (16 bits) Specify the year in the usual Gregorian calendar. The first byte (Year 1) is the most significant byte. Month (8 bits) Specify the month of the year between 01 (January) and 12 (December). A year equal to 0x0000 indicates that a accumulated value is not determined yet. Day (8 bits) Specify the day of the month between 01 and 31. Hour Local Time (8 bits) Specify the number of complete hours that have passed since midnight (00..23) in local time. Minute Local Time (8 bits) Specify the number of complete minutes that have passed since the start of the hour (00..59) in local time. Second Local Time (8 bits) Specify the number of complete seconds since the start of the minute (00..59) in local time. The value 60 used to keep UTC from wandering away is not supported. Historical Precision (N * 3 bits) The Historical Precision field describes what the precision of the value is. The number indicates the number of decimals. The decimal value 1025 with precision 2 is therefore equal to 10.25. Historical Scale (N * 5 bits) The Historical Scale used to indicate the scale (unit) of the following value. The Historical Scale parameter is of the variable type Meter Scale; refer to 4.62.13 Meter Table Current Data Report Command. Historical Value (N * 32 bits) The Historical Value is a 32 bit signed field defined by dataset requested field. The first byte (Value 1) is the most significant byte. shows signed decimal values together with their hexadecimal equivalents. NOTICE: The device receiving the Rate Table Historical Data Report MUST show the value even though the Scale is not supported.

4.83 Scene Activation Command Class, version 1
The Scene Activation Command Class used for launching scenes in a number of actuator nodes e.g. another scene-controlling unit, a multilevel switch, a binary switch etc.
4.83.1 Compatibility considerations
A node supporting this Command Class MUST also support the Scene Actuator Configuration Command Class.
This command class requires an initial configuration of the scenes to be launched by the Scene Actuator Configuration Set.
Since a common identifier that is sent out, multicast addressing may be used. Multicast addressing may eliminate the potential popping effect which could be the result if individual Set Commands were send out to a large number of nodes distributed over a vast area. The multicast transmission MUST be followed by individual singlecast transmissions to ensure all the nodes have received the command.
4.83.2 Scene Activation Set Command
This command is used to activate the setting associated to the scene ID.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCENE_ACTIVATION

Command = SCENE_ACTIVATION_SET

Scene ID

Dimming Duration

Scene ID (8 bits) This field is used to specify the Scene ID that the receiving node MUST activate This field MUST be in the range 1..255. Dimming Duration (8 bits) This field MUST specify the time that the transition from the current level to the target level (indicated by the Scene ID) should take. Supporting actuator nodes without duration capabilities MUST ignore this field. Supporting actuator nodes with a duration capabilities SHOULD respect the indicated dimming duration to reach the target level. This field MUST be encoded according to Table 103.

Value 0x00 0x01..0x7F
0x80..0xFE
0xFF

Table 103, Scene Activation Set:: Dimming Duration encoding
Description
Instantly
Obtain dimming durations from 1 second (0x01) to 127 seconds (0x7F) in 1-second resolution
Specify dimming durations from 1 minute (0x80) to 127 minutes (0xFE) in 1-minute resolution.
Specify dimming duration configured by the Scene Actuator Configuration Set and Scene Controller Configuration Set Command depending on device used.

4.84 Scene Actuator Configuration Command Class, version 1 The Scene Actuator Configuration Command Class is used to configure scenes settings for a node supporting an actuator Command Class, e.g. a multilevel switch, binary switch etc. 4.84.1 Compatibility considerations A node supporting this Command Class MUST support 255 Scene IDs (Scene ID 1 to 255). The Scene ID 0 MUST NOT be supported.. 4.84.2 Scene Actuator Configuration Set Command This command is used to associate the specified scene ID to the defined actuator settings.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCENE_ACTUATOR_CONF

Command = SCENE_ACTUATOR_CONF_SET

Scene ID

Dimming Duration

Override

Reserved

Level

Scene ID (8 bits) This field is used to specify the Scene ID to be associated with the current actuator settings. This field MUST be in the range 1..255. Dimming Duration (8 bits) This field MUST specify the time it MUST take to reach the target level associated to the actual Scene ID.

A receiving node always starts from current level. The dimming duration MUST be the same independently of the number of levels to be changed.
Supporting actuator nodes without duration capabilities MUST ignore this field.
Supporting actuator nodes with duration capabilities SHOULD respect the indicated duration to reach the target level.
This field MUST be encoded according to Table 7, Actuator Command Class Duration Set encoding.
Override (1 bit)
This field is used to specify if the current actuator settings MUST be used as settings for the actual Scene ID.
If this field is set to 0, the current actuator settings at the supporting nodeMUST be associated to the actual Scene ID. In this case, the Level field MUST be ignored.
If this field is set to 1, the value indicated by the Level field MUST be associated to the actual Scene ID.
Reserved
This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Level (8 bits)
This field is used to specify the actuator setting that MUST be used as setting for the actual Scene ID. This field MUST correspond and be interpreted as the Value field of the Basic Set Command. i.e. the supporting node receiving a Scene Activation Set for the actual Scene ID specified in this command MUST react as if it had received a Basic Set Command with the Value field set to the value indicated by this field.
4.84.3 Scene Actuator Configuration Get Command
This command is used to request the settings for a given scene identifier or for the scene currently active.
The Scene Actuator Configuration Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SCENE_ACTUATOR_CONF

Command = SCENE_ACTUATOR_CONF_GET

Scene ID

Scene ID (8 bits) This field is used to specify the requested Scene ID settings.

Values in the range 1..255 MUST indicate that the receiving node MUST return settings associated to the actual Scene ID.. The value 0 MUST indicate that the current active scene (if any). 4.84.4 Scene Actuator Configuration Report Command This command is used to advertise the settings associated to a scene identifier.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCENE_ACTUATOR_CONF

Command = SCENE_ACTUATOR_CONF_REPORT

Scene ID

Level

Dimming Duration

Scene ID (8 bits)
This field is used to specify the actual Scene ID for which the settings are being advertised.
Values in the range 1..255 MUST indicate an actual Scene ID.
The value 0 MUST indicate that no scene is currently active at the sending node and no scene setting is advertised in this command. In this case, the Level and Dimming Duration fields SHOULD be ignored.
Level (8 bits)
This field is used to advertise the actuator setting that MUST be used by the node when activating the actual Scene ID.
The value advertised by the sending node MUST correspond to the format of the Value field when returning a Basic Report Command.
Dimming Duration (8 bits)
This field MUST specify the time it MUST take to reach the target level associated to the actual Scene ID..
Supporting actuator nodes without duration capabilities MUST ignore this field and SHOULD set it to 0x00.
Supporting actuator nodes with duration capabilities SHOULD respect the indicated duration to reach the target level.
This field MUST be encoded according to Table 104.

Table 104, Scene Actuator Configuration Report::Dimming Duration encoding

Dimming Duration

Description

0x00

Instantly

0x01..0x7F

Dimming durations from 1 second (0x01) to 127 seconds (0x7F) in 1-second resolution

0x80..0xFE

Specify dimming durations from 1 minute (0x80) to 127 minutes (0xFE) in 1-minute resolution.

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

4.85 Scene Controller Configuration Command Class, version 1
The Scene Controller Configuration Command Class is used to configure nodes launching scenes using their association groups
4.85.1 Compatibility Considerations
A node supporting this Command Class MUST support 255 scene IDs (Scene ID 1 to 255). The Scene ID 0 MUST NOT be supported..
A node supporting this Command Class MUST support the Association Command Class, version 1 or newer.
A node supporting this Command Class MUST issue Scene Activation Set Command via its association groups.
4.85.2 Scene Controller Configuration Set Command
This command is used to configure settings for a given physical item on the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCENE_CONTROLLER_CONF

Command = SCENE_CONTROLLER_CONF_SET

Group ID

Scene ID

Dimming Duration

Group ID (8 bits)
This field is used to specify an Association Group Identifier.
The grouping identifier is mapped into a physical item e.g. a push button on the device in question. The grouping identifier values MUST be a sequence starting from 1. The Association Supported Groupings Get Command may be used to request the number of groupings that a node supports.
A sending node SHOULD NOT specify Group ID 1 as it is reserved for the Lifeline association group.
Scene ID (8 bits)
This field is used to specify the Scene ID that MUST be associated with the actual grouping identifier.
Values in the range 1..255 MUST indicate that the receiving node MUST associate the Scene ID and Dimming Duration values to the actual Association Group ID. The supporting node MUST set the Scene ID value indicated by this field in the Scene Activation Set Command when issuing it via the actual Group ID.
The value 0 MUST indicate that the receiving node MUST disable an associated scene for the specified Group ID.
Dimming Duration (8 bits)

This field is used to specify what value the supporting node MUST set in the Dimming Duration field of the Scene Activation Set Command when issuing it via the actual Group ID.
4.85.3 Scene Controller Configuration Get Command
This command is used to request the settings for a given association grouping identifier or the active settings.
The Scene Controller Configuration Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SCENE_CONTROLLER_CONF

Command = SCENE_CONTROLLER_CONF_GET

Group ID

Group ID (8 bits)
This field is used to request scene settings configured for an actual Association Group Identifier.
Values in the range 1..255 MUST indicate the requested Group Identifier.
The value 0 MUST indicate that the receiving node MUST return the currently active Group Identifier and Scene ID (last activated group/scene).
A node receiving a non-supported group or having no currently active Group Identifier SHOULD return a report for Group ID 0.

4.85.4 Scene Controller Configuration Report Command This command is used to advertise the current scene controller settings.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCENE_CONTROLLER_CONF

Command = SCENE_CONTROLLER_CONF_REPORT

Group ID

Scene ID

Dimming Duration

Group ID (8 bits) This field is used to advertise the actual Association Group Identifier for which the settings are being advertised. Scene ID (8 bits) This field is used to specify the Scene ID that is associated with the actual grouping identifier. Value in the range 1..255 MUST indicate the actual Scene ID setting for the specified grouping identifier. The value 0 MUST indicate that the Group ID/Scene ID is disabled. Dimming Duration (8 bits) This field is used to specify the Dimming Duration that is associated with the actual grouping identifier. If the actual Group ID/Scene ID is disabled, a sending node SHOULD set this field to 0.

4.86 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. 4.86.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 25. 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 26. 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 27. Daily schedules and an "Advance" Override Schedule (example)
An overview of the Schedule types and priorities is given in Table 105

Table 105. Schedule CC terminology and priority

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.

4.86.2 Interoperability considerations

A schedule causes a temporary state change that only applies to the duration of the schedule. The state CC:0053.01.00.31.001 value(s) of the Normal Mode MUST NOT be affected by any command executed as part of a schedule.

CC:0053.01.00.31.002 The state value(s) of the Normal Mode MUST be restored when the affecting Schedule become inactive.

CC:0053.01.00.32.001

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 Clock Command Class or the Time Command Class in order to allow a controlling node to verify or configure correct date/time settings at the supporting node.

4.86.2.1 Override Schedule

CC:0053.01.00.31.003 When the Override Schedule is active, all regular schedules MUST be suspended.

CC:0053.01.00.31.004 When the Override Schedule ends, all suspended schedules MUST resume the state they would have had if the Override Schedule had not been activated.

CC:0053.01.00.32.002 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.

CC:0053.01.00.31.005 A supporting node MUST respect the specified duration for all regular schedules.

4.86.2.2 Fall Back Schedule

CC:0053.01.00.31.006 If no Fall Back Schedule is set, a supporting node MUST return to Normal Mode when no schedule is currently active.

CC:0053.01.00.31.007

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.

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

CC:0053.01.00.32.003 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.

4.86.3 Schedule Supported Get Command

This command is used to query the schedule functionalities supported by a node.

CC:0053.01.01.11.001 The Schedule Supported Report Command MUST be returned in response to this command.

CC:0053.01.01.11.002 This command MUST NOT be issued via multicast addressing.

CC:0053.01.01.11.003

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

Command = SCHEDULE_SUPPORTED_GET

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

Command = SCHEDULE_SUPPORTED_REPORT

Number of Supported Schedule IDs

Support Enable/ Disable

Fallback Support

Start Time Support

Override Support

Number of supported CC Supported CC 1
Reserved ...
Supported CC N Reserved

Supported Command 1
Supported Command N

Supported Override Types

Number of Supported Schedule IDs (8 bits)

CC:0053.01.02.11.001 This field MUST advertise the number of regular Schedule IDs supported by the node.

CC:0053.01.02.11.002 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.

CC:0053.01.02.13.001

The following special Schedule IDs MAY also be supported by a device:
 Schedule ID = 0xFF (Override Schedule)  Schedule ID = 0xFE (Fall Back schedule)

CC:0053.01.02.11.003 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.

CC:0053.01.02.11.004 CC:0053.01.02.12.001 CC:0053.01.02.11.005

Regular schedules MUST support the advertised start time options. The Override Schedule SHOULD support the advertised start time options. This field MUST be treated as a bitmask and MUST be encoded according to Table 106

Bit 0 1 2 3 4..5

Table 106. Start Time Support encoding
Indicates support for Start now. Refer to 4.86.4.1 Start Hour and Minute. Refer to 4.86.4.2 Calendar time. Refer to 4.86.4.3 Weekdays. Refer to 4.86.4.4 Reserved

Version 1 1 1 1 N/A

Each bit indicates the support for a given Start Time option.
CC:0053.01.02.11.006 The value 1 MUST indicate that the node supports the corresponding start time option. CC:0053.01.02.11.007 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.
4.86.4.1 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).
CC:0053.01.02.11.008 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.

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

CC:0053.01.02.11.009 If Start Hour and Start Minute are specified, node supporting this option MUST activate the schedule at the specified start time.

CC:0053.01.02.11.00A

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)

CC:0053.01.02.11.00B

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)

CC:0053.01.02.11.00C

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)

4.86.4.3 Start Time option: Calendar time

The calendar time option is used to make a schedule start at a specified date.

CC:0053.01.02.11.00D If Start Year, Start Month and Start Day are specified, node supporting this option MUST activate the schedule at the specified date(s).

CC:0053.01.02.11.00E

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)

4.86.4.4 Start Time option: Weekday

The start weekday option is used to make a schedule start at on specified weekdays.

CC:0053.01.02.11.00F If weekdays are specified, node supporting this option MUST activate the schedule on the specified weekdays.

CC:0053.01.02.11.010

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). CC:0053.01.02.11.011 The bit MUST be set to 1 if the node supports the Fall Back Schedule.

CC:0053.01.02.11.012 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.

CC:0053.01.02.11.013 The bit MUST be set to 0 if the node supports enabling/disabling schedules.

CC:0053.01.02.11.014 The bit MUST be set to 1 if the node does not support enabling/disabling schedules.

CC:0053.01.02.11.015 A node that does not support enabling/disabling schedules MUST consider every set/used schedule ID as enabled.

Number of supported CC (8 bits)

CC:0053.01.02.11.016 This field MUST advertise the number of supported Command Classes advertised in this command with the Supported CC and Supported Command fields.

CC:0053.01.02.11.017 CC:0053.01.02.11.018 CC:0053.01.02.11.019

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:
 This command MUST NOT carry any Command Class entries (Supported CC and Supported Command fields).
 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.

CC:0053.01.02.11.01A CC:0053.01.02.11.01B CC:0053.01.02.12.002 CC:0053.01.02.11.01C

The length of this field MUST be according to the Number of supported CC field value. A sending node MUST support every Command Class advertised in this field. A sending node SHOULD NOT advertise the Supervision Command Class in this field. 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)
CC:0053.01.02.11.01D This field MUST advertise the supported commands for the actual command class entry. This field MUST comply with Table 107.

Table 107. Supported Command

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

CC:0053.01.02.11.01E

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

CC:0053.01.02.11.01F 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). CC:0053.01.02.11.020 This bit MUST be set to 1 if the node supports the Override Schedule. CC:0053.01.02.11.021 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. CC:0053.01.02.11.022 A receiving node MUST ignore this bit mask if the Override Schedule is not supported by the sending node. CC:0053.01.02.11.023 This field MUST be treated as a bitmask and MUST be encoded according to Table 108.

CC:0053.01.02.11.024 CC:0053.01.02.11.025

Table 108. Schedule Supported Report::Supported Override Types encoding

Bit Name

Description

Version

0 Advance The override schedule MUST run until the

1

start of the next regular schedule.

1 Run forever The override schedule MUST run until the

1

schedule is removed

2..6 Reserved Reserved

N/A

4.86.5 Schedule Set Command

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

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

CC:0053.01.03.11.002 This command MUST NOT change the enabled/disabled state of existing schedules.

CC:0053.01.03.11.003

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

Command = SCHEDULE_SET

Schedule ID

Reserved

Start Year

Reserved

Start Month

Reserved

Start Day of Month

Res.

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

CC:0053.01.03.11.004 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.

CC:0053.01.03.11.005 CC:0053.01.03.11.006 CC:0053.01.03.11.007

Values in the range 1..[Number of supported Schedule] MUST indicate regular Schedule IDs The value 0xFE MUST indicate the Fall Back Schedule. The value 0xFF MUST indicate the Override Schedule.

CC:0053.01.03.11.008 A receiving node MUST ignore this command if a non-supported Schedule ID is specified.

If this field is set to 0xFF:

CC:0053.01.03.12.001 CC:0053.01.03.11.009

 The sending node SHOULD set the start time fields to the Start Now pattern.  The receiving node MUST respond immediately to an Override Schedule .

If this field is set to 0xFE:

CC:0053.01.03.12.002

 The sending node SHOULD set the start time fields and duration fields to 0x00.

CC:0053.01.03.11.00A

 The receiving node MUST ignore the start time fields and duration fields

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

CC:0053.01.03.11.00B A receiving node MUST support the start time fields combinations indicated in sections 4.86.4.1, 4.86.4.2 4.86.4.3 and 4.86.4.4 if the corresponding start time option is supported.

CC:0053.01.03.11.00C CC:0053.01.03.11.00D

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)

CC:0053.01.03.11.00E 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.

CC:0053.01.03.11.00F 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.

CC:0053.01.03.11.010 The value 0xFF MUST be used to indicate that the start year is unspecified.

CC:0053.01.03.11.011 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)

CC:0053.01.03.11.012 This field is used to set the month for which the schedule is to start. This field MUST be in the range 0..12.

CC:0053.01.03.11.013 Values in the range 1..12 MUST indicate the actual start month.

CC:0053.01.03.11.014 The value 0x00 MUST be used to indicate that the start month is unspecified.

CC:0053.01.03.11.015 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)

CC:0053.01.03.11.016 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.

CC:0053.01.03.11.017 CC:0053.01.03.13.001

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.

CC:0053.01.03.11.018 The value 0x00 MUST be used to indicate that the day of the month is unspecified.

CC:0053.01.03.11.019 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)

This field is used to set one or more weekdays for which the schedule is to start. This field MUST be CC:0053.01.03.11.01A treated a as bitmask and MUST be encoded according to Table 109.

Table 109. Weekday bitmask encoding

Bit Description Version

0

Monday 1

1

Tuesday 1

2

Wednesday 1

3

Thursday 1

4

Friday

1

5

Saturday 1

6

Sunday

1

CC:0053.01.03.11.01B The value 1 MUST indicate that the specified Schedule ID MUST start on the corresponding day.
CC:0053.01.03.11.01C The value 0 MUST indicate that the specified Schedule ID MUST NOT start on the corresponding day.
CC:0053.01.03.11.01D 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.

CC:0053.01.03.11.01E 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)
CC:0053.01.03.11.01F 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.
CC:0053.01.03.11.020 Values in the range 0..23 MUST indicate the start hour of the day.
CC:0053.01.03.11.021 The value 0x1F (31) MUST be used to indicate that the start hour is unspecified.
CC:0053.01.03.11.022 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)
CC:0053.01.03.11.023 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.
CC:0053.01.03.11.024 Values in the range 0..59 MUST indicate the starting minute of the schedule.
CC:0053.01.03.11.025 The value 0x3F (63) MUST be used to indicate that the start minute is unspecified.
CC:0053.01.03.11.026 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.
4.86.5.2 Duration fields
The schedule duration is defined by the following fields:  Duration Type  Duration
Duration Type (3 bits)
CC:0053.01.03.11.027 This field is used to indicate how to interpret the duration field. This field MUST be encoded according to Table 110.

CC:0053.01.03.11.028 CC:0053.01.03.11.029

Table 110. Duration Type encoding

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.

1

This value MUST NOT be used if the Schedule ID field is not set to 0xFF

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)
CC:0053.01.03.11.02A This field is used to specify the duration of the schedule being set. The Duration Type field MUST be inspected before interpreting this field.
CC:0053.01.03.11.02B 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.
CC:0053.01.03.11.02C If the Duration Type field is set to Override (0x03), the LSB of this field MUST be encoded according to Table 111 and the MSB of this field MUST be set to 0x00.

CC:0053.01.03.11.02D CC:0053.01.03.11.02E

Table 111. Override Types duration

Name

Duration value (LSB)

Description

Advance 0x01

The override schedule MUST run until the start of the next regular schedule.

Run forever 0x02

The override schedule MUST run until it is removed

Reserved 0x03..0x07

Reserved

Version 1 1 N/A

4.86.5.3 Command and other fields

Reports to Follow (8 bits)

CC:0053.01.03.11.02F This field MUST be used if multiple Schedule Set commands are used to define a single schedule.

CC:0053.01.03.11.030 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).

CC:0053.01.03.11.031 Each command block MUST comprise the Cmd Length and Cmd Byte fields.

CC:0053.01.03.11.032 CC:0053.01.03.11.033

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.

CC:0053.01.03.11.034 This field MUST carry a complete command including Command Class identifier, Command identifier and the required parameter bytes.

CC:0053.01.03.11.035 The length of each Cmd Byte entry MUST be according to the corresponding Cmd Length field entry.

CC:0053.01.03.11.036 The number of Cmd Byte entries MUST be according to the Number of Cmd to Follow field.

CC:0053.01.03.11.037 If a schedule includes commands mandating to return a response, responses MUST be returned to the node that has set the schedule.

CC:0053.01.03.12.003 CC:0053.01.03.11.038

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.

CC:0053.01.03.12.004 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.

4.86.6 Schedule Get Command

This command is used to request the configuration for a specific schedule ID.

CC:0053.01.04.11.001 The Schedule Report Command MUST be returned in response to this command.

CC:0053.01.04.11.002 This command MUST NOT be issued via multicast addressing.

CC:0053.01.04.11.003

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

Command = SCHEDULE_GET

Schedule ID

CC:0053.01.04.11.004

Schedule ID (8 bits) This field MUST carry the requested Schedule ID.

4.86.7 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

Command = SCHEDULE_REPORT

Schedule ID

Reserved

Start Year

Active_ID

Start Month

Reserved

Start Day of Month

Res.

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 4.86.5. Schedule ID (8 bits) This field is used to indicate the advertised Schedule ID. CC:0053.01.05.11.001 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)
CC:0053.01.05.11.002 This field is used to advertise the status for the requested Schedule ID. This field MUST be encoded according to Table 113.
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.
CC:0053.01.05.11.003 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 112.

Duration Type Time (0x00..0x02)
Time (0x00..0x02) Override (0x03)

Table 112. Duration field usage

Schedule ID

Start time

Regular

Specified start time

Regular or Override Start now

Override (0xFF)

Start now

Advertised duration Configured duration
Remaining time Configured override type (Table 111)

4.86.8 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

Command = SCHEDULE_REMOVE

Schedule ID

Schedule ID (8 bits)

This field is used to indicate the schedule that is to be removed/erased.

CC:0053.01.06.11.001 CC:0053.01.06.11.002 CC:0053.01.06.11.003 CC:0053.01.06.11.004

If this field is set to 0x00, all configured schedules MUST be removed. If this field is set to 0xFE, the Fall Back Schedule MUST be removed (if defined). If this field is set to 0xFF, the Override Schedule MUST be removed (if defined). If this field is in the range 0x01..[Number of supported Schedules], the receiving node MUST remove the corresponding schedule.

4.86.9 Schedule State Set Command
This command is used to enable or disable a schedule.
CC:0053.01.07.11.001 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

Command = SCHEDULE_STATE_SET

Schedule ID

Schedule State

Schedule ID (8 bits)
This field is used to indicate the schedule that is to be enabled or disabled.
CC:0053.01.07.11.002 The value 0x00 MUST cause the receiving node to change the state for all schedules, except for the Override Schedule.
CC:0053.01.07.11.003 Values in the range 0x01..[number of supported schedules] and 0xFE MUST indicate the actual schedule ID which state is to be updated.
CC:0053.01.07.11.004 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.
CC:0053.01.07.11.005 The value 0xFF MUST indicate that the actual schedule MUST be enabled. CC:0053.01.07.11.006 The value 0x00 MUST indicate that the actual schedule MUST be disabled.
CC:0053.01.07.11.007 Disabling a schedule MUST NOT cause the schedule settings to be permanently removed. Schedules may be permanently removed via the Schedule Remove Command.
CC:0053.01.07.11.008 If a schedule is enabled, the receiving node MUST assess if the actual schedule should have been active and activate it accordingly.
CC:0053.01.07.11.009 If a schedule is disabled while being active, the receiving node MUST treat the disabling operation as if the schedule ended.

4.86.10 Schedule State Get Command

This command is used to request the status of all schedules supported by a node.

CC:0053.01.08.11.001 The Schedule State Report Command MUST be returned in response to this command.

CC:0053.01.08.11.002 This command MUST NOT be issued via multicast addressing.

CC:0053.01.08.11.003

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

Command = SCHEDULE_STATE_GET

4.86.11 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

Command = SCHEDULE_STATE_REPORT

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)

CC:0053.01.09.11.001 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)

CC:0053.01.09.11.002 This field MUST be used to advertise the status of the Override Schedule (ID = 0xFF).

CC:0053.01.09.11.003 If the Override Schedule is active, this bit MUST be set to 1. CC:0053.01.09.11.004 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.

CC:0053.01.09.11.005 This field MUST be used to advertise the number of commands following this command in order to advertise the status of all Schedules IDs.

CC:0053.01.09.12.001 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 ...

CC:0053.01.09.11.006 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.

CC:0053.01.09.11.007

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.

CC:0053.01.09.11.008 Each 4 bits unit MUST be encoded according to Table 113.

Table 113. Active_ID encoding

Hex Description

Detailed description

Version

0x00 Not used

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

0x01 [DEPRECATED] [DEPRECATED]

1

CC:0053.01.09.12.002

Override + Not A sending node SHOULD NOT use this status. It is

CC:0053.01.09.11.009

used

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

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
CC:0053.01.09.11.00A

The Schedule ID is used, enabled and should currently be active 1 but it is suspended by the Override Schedule
The override field MUST be set to 1 when using this status in the Schedule State Report Command.

0x06 [DEPRECATED] [DEPRECATED]

1

CC:0053.01.09.12.003

Override + Not A sending node SHOULD NOT use this status. It is

CC:0053.01.09.11.00B

Active

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)

0x07 [DEPRECATED] [DEPRECATED]

1

CC:0053.01.09.12.004 CC:0053.01.09.11.00C

Override + Disabled

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)

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

4.87 Schedule Command Class, version 2
The Schedule Command Class version 2 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 from any other Command Class.
4.87.1 Compatibility considerations
The Schedule Command Class, version 2 is backwards compatible with version 1.
CC:0053.02.00.21.001 A node supporting the Schedule Command Class, version 2 MUST also support version 1.
Schedule Command Class, version 2 introduces the following:  Schedule ID Blocks
 Clarification on using Schedule Command Class with Security
All commands or fields not described in this version remain unchanged from version 1.
4.87.1.1 Schedule ID Blocks
In Schedule Command Class version 1, all Schedule IDs have to support the same Start Time Options, Override Types and supported commands.
The Schedule ID Blocks allows a node to implement several Schedule ID pools sharing the same scheduling functionalities.
CC:0053.02.00.21.002 Each Schedule ID Block MUST have its own range of Schedule ID's. The ID for each Block MUST be in the range 1..[Number of Supported Schedule IDs].
CC:0053.02.00.21.003 Schedule ID Block = 1 is the default Block. A version 1 node MUST be assumed to be using Schedule ID block 1.
4.87.1.2 Schedule Command Class with Security
The Schedule Command Class may be implemented by secure devices. Depending on the type of device, a given Command Class may be supported only via secure communication or via secure as well as unsecure communication.
The following command class categories may be considered:
 Always unsecure Examples of command classes which are always supported via unsecure communication ­ as well as via secure communication if the device is securely included (e.g Z-Wave Plus Info Command Class).
 Migrate to secure Examples of command classes which are supported via unsecure communication if the device is not securely included ­ but only via secure communication if the device is securely included. (e.g. Multilevel Switch or Association Command Class)
 Secure only: Examples of command classes which are supported only via secure communication. (e.g. Door Lock Command Class)

CC:0053.02.00.21.004

To reflect the above mentioned dynamic support scenarios, a device MUST advertise the supported Command Classes for scheduling in a way that matches the current secure/non-secure supported Command Class lists found in the NIF and S0/S2 Commands Supported Report Commands.

Clarification is added to the Schedule Supported Report Command and Schedule Set Command for proper reporting and configuration of unsecure and secure command classes scheduling.

CC:0053.02.00.22.001 It is RECOMMENDED to support the Schedule Command Class only at the highest security level in order to avoid dynamic listing.

4.87.2 Schedule Supported Get Command

This command is used to query the properties of a node.

CC:0053.02.01.11.001 The Schedule Supported Report Command MUST be returned in response to this command.

CC:0053.02.01.11.002

If the receiving node supports S0 or S2 Command Class and this command is issued via non-secure communication, the receiving node MUST advertise Command Classes that can be scheduled but also supported at the received security level.

CC:0053.02.01.11.003 This command MUST NOT be issued via multicast addressing.

CC:0053.02.01.11.004

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

Command = SCHEDULE_SUPPORTED_GET

Schedule ID Block

Schedule ID Block (1 byte)
This field is used to request a particular Schedule ID Block.
CC:0053.02.01.11.005 If this field is set to 0x00, the receiving node MUST return the default Schedule ID Block (ID = 1).
CC:0053.02.01.11.006 A node receiving a version 1 Schedule Supported Get Command (without the Schedule ID Block field) MUST return a response for the default Schedule ID Block (ID = 1).
CC:0053.02.01.12.001 A node receiving a non-supported Schedule ID Block SHOULD return a report for the default Schedule ID Block.

4.87.3 Schedule Supported Report Command
This command is used to advertise the scheduling functionalities supported by a node for a given Schedule ID Block.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE

Command = SCHEDULE_SUPPORTED_REPORT

Number of Supported Schedule IDs

Support Enable/ Disable

Fall-
back Support

Start Time Support

Override Support

Number of supported CC Supported CC 1
Reserved ...
Supported CC N Reserved

Supported Command 1
Supported Command N

Supported Override Types

Schedule ID Block Number of Supported Schedule Blocks

Fields not described below remain unchanged from version 1.
All fields contained in this command advertise the scheduling supported functionalities for the actual Schedule ID Block.
Schedule ID Block (8 bits)
This field is used to indicate the actual Schedule ID Block for which the supported scheduling functionalities are advertised.
CC:0053.02.02.12.001 The advertised supported functionalities SHOULD be different for every Schedule ID Block.

Number of Schedule ID Blocks (8 bits)

CC:0053.02.02.11.001 This field MUST advertise the total number of Schedule ID blocks supported by the node.

CC:0053.02.02.11.002 This field MUST be in the range 1..255.

CC:0053.02.02.11.003

The implemented Schedule ID Blocks MUST be in the range 1..[Number of Supported Schedule ID Blocks]. i.e. a node supporting 10 Schedules ID Blocks MUST accept Schedule ID Blocks values in the range 1..10.

4.87.4 Schedule Set Command

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

CC:0053.02.03.11.001 This command MUST enable the schedule if a new schedule is created. CC:0053.02.03.11.002 This command MUST NOT change the enabled/disabled state of existing schedules

CC:0053.02.03.11.003

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

Command = SCHEDULE_SET

Schedule ID

Schedule ID Block

Start Year

Reserved

Start Month

Reserved

Start Day of Month

Res.

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 1 Byte 1 - 1

...

Cmd 1 Byte 1 - N

...

Cmd Length P

Cmd Byte P - 1

...

Cmd Byte P - N

Fields not described below remain unchanged from version 1.

Schedule ID Block (8 bits)

This field is used to specify the Schedule ID Block in which the specified Schedule ID is being set.

CC:0053.02.03.11.004 A node receiving a version 1 Schedule Set Command (with the Schedule ID Block field set to 0x00) MUST assume the default Schedule ID Block (ID = 0x01).

4.87.5 Schedule Get Command

This command is used to request the configuration for a specific schedule ID.

CC:0053.02.04.11.001 The Schedule Report Command MUST be returned in response to this command.

CC:0053.02.04.11.002 CC:0053.02.04.11.003

This command MUST NOT be issued via multicast addressing. 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

Command = SCHEDULE_GET

Schedule ID

Schedule ID Block

Fields not described below remain unchanged from version 1. Schedule ID Block (8 bits) This field is used to specify the requested Schedule ID Block. CC:0053.02.04.11.004 A node receiving a version 1 Schedule Get Command (without the Schedule ID Block field) MUST return a response for the default Schedule ID Block (ID = 1).

4.87.6 Schedule Report Command This command is used to advertise the configuration for a specific schedule.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE

Command = SCHEDULE_REPORT

Schedule ID

Schedule ID Block

Start Year

Active_ID

Start Month

Reserved

Start Day of Month

Res.

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 1. Schedule ID Block (8 bits) This field is used to specify the advertised Schedule ID Block.

4.87.7 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

Command = SCHEDULE_REMOVE

Schedule ID

Schedule ID Block

Schedule ID (8 bits)
This field is used to indicate the schedule that is to be removed.
CC:0053.02.06.11.001 If this field is set to 0x00, all schedules within the Schedule ID Block MUST be removed.
CC:0053.02.06.11.002 If this field is set to 0xFE, the Fall Back Schedule MUST be removed (if defined for the Schedule ID Block).
CC:0053.02.06.11.003 If this field is set to 0xFF, the Override Schedule MUST be removed (if defined for the Schedule ID Block).
CC:0053.02.06.11.004 If this field is in the range 0x01..[Number of supported Schedules], the receiving node MUST remove the corresponding schedule in the Schedule ID Block.
Schedule ID Block (8 bits)
This field is used to indicate the Schedule ID Block in which a schedule is being removed.
CC:0053.02.06.11.005 A node receiving a version 1 Schedule Set Command (without the Schedule ID Block field) MUST assume the default Schedule ID Block (ID = 0x01).
CC:0053.02.06.11.006 A node receiving this command with Schedule ID = 0x00 and Schedule ID Block = 0x00 MUST remove all Schedule IDs in all Schedule ID Blocks
CC:0053.02.06.11.007 A node receiving this command with Schedule ID = 0x00 and Schedule ID Block  0x00 MUST remove all Schedule IDs from the specified Schedule ID Block.
CC:0053.02.06.11.008 A node receiving this command with Schedule ID  0x00 and Schedule ID Block = 0x00 MUST ignore the command

4.87.8 Schedule State Set Command This command is used to enable or disable one or more schedules.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE

Command = SCHEDULE_STATE_SET

Schedule ID

Schedule State

Schedule ID Block

Fields not described below remain unchanged from version 1.
Schedule ID Block (8 bits)
This field is used to specify the Schedule ID Block in which one or more schedule are being enabled or disabled.
CC:0053.02.07.11.001 This command MUST be ignored by a node advertising no support for Enabling/Disabling schedules in the Schedule Supported Report Command for the given Schedule ID Block.
CC:0053.02.07.11.002 A node receiving a version 1 Schedule Set Command (without the Schedule ID Block field) MUST assume the default Schedule ID Block (ID = 0x01).
CC:0053.02.07.11.003 A node receiving this command with Schedule ID = 0x00 and Schedule ID Block = 0x00 MUST enable/disable all Schedule IDs from all Schedule ID Blocks.
CC:0053.02.07.11.004 A node receiving this command with Schedule ID = 0x00 and Schedule ID Block  0x00 MUST enable/disable all Schedule IDs from the specified Schedule ID Block.
CC:0053.02.07.11.005 A node receiving this command with Schedule ID  0x00 and Schedule ID Block = 0x00 MUST ignore the command.

4.87.9 Schedule State Get Command

This command is used to request the status of all schedules within a Schedule ID Block supported by a node.

CC:0053.02.08.11.001 The Schedule State Report Command MUST be returned in response to this command.

CC:0053.02.08.11.002 This command MUST NOT be issued via multicast addressing.

CC:0053.02.08.11.003

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

Command = SCHEDULE_STATE_GET

Schedule ID Block

Schedule ID Block (8 bits)
This field is used to request a particular Schedule ID Block.
CC:0053.02.08.11.004 A node receiving a version 1 Schedule Supported Get Command (without the Schedule ID Block field) MUST return a response for the default Schedule ID Block (ID = 1).

4.87.10 Schedule State Report Command
This command is used to advertise the status of all schedules supported by a device in a given Schedule ID block.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE

Command = SCHEDULE_STATE_REPORT

Number of Supported Schedule ID

Reports to Follow

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

Number of Supported Schedule ID (8 bits)

CC:0053.02.09.11.001

This field is used to advertise the number of supported regular schedule IDs for the actual Schedule ID Block. This field's value MUST be the same as the value advertised in the Schedule Supported Report Command.

Schedule ID Block (8 bits)

This field is used to specify the Schedule ID Block in which all schedule states are advertised.

CC:0053.02.09.11.002 If several Reports are returned (using the Reports to Follow field), this field MUST be present in every Report.

4.88 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.
4.88.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.
4.88.2 Compatibility considerations

The Schedule Command Class, version 3 is backwards compatible with version 2. CC:0053.03.00.21.001 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.
4.88.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

Command = SCHEDULE_SUPPORTED_REPORT

Number of Supported Schedule IDs

Support Enable/ Disable

Fall-
back Support

Start Time Support

Override Support

Number of supported CC Supported CC 1
Reserved ...
Supported CC N Reserved
Supported Override Types

Supported Command 1
Supported Command N

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.

CC:0053.03.02.11.001 CC:0053.03.02.12.001 CC:0053.03.02.11.002 CC:0053.03.02.11.003

Regular schedules MUST support the advertised start time options. The Override Schedule SHOULD support the advertised start time options. The Override Schedule MUST NOT support the Recurring Mode. This field MUST be treated as a bitmask and MUST be encoded according to Table 114

Table 114. Start Time Support encoding

Category

Bit

Indicates support for

0 Start now. Refer to 4.86.4.1

Version 1

1 Start Time option 2
3

Start Hour and Minute. Refer to 4.86.4.2 1

Calendar time. Refer to 4.86.4.3

1

Weekdays. Refer to 4.86.4.4

1

4 Time from now. Refer to 4.88.3.1

3

Start Time mode 5 Recurring Mode. Refer to 4.88.3.2

3

Each bit indicates the support for a given Start Time option or mode.
CC:0053.03.02.11.004 The value 1 MUST indicate that the node supports the corresponding start time option/mode. CC:0053.03.02.11.005 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.
4.88.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.
CC:0053.03.02.11.006 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.

CC:0053.03.02.11.007

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

CC:0053.03.02.11.008 A receiving node MUST ignore all combinations which do not comply with the one above if the Relative flag is set.

CC:0053.03.02.11.009

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.

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

CC:0053.03.02.11.00A A node supporting the Recurring Mode MUST support at least one start time option.

4.88.4 Schedule Set Command

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

CC:0053.03.03.11.001 This command MUST enable the schedule if a new schedule is created. CC:0053.03.03.11.002 This command MUST NOT change the enabled/disabled state of existing schedules.

CC:0053.03.03.11.003

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

Command = SCHEDULE_SET

Schedule ID

Schedule ID Block

Start Year

Recurrence Offset

Start Month

Res. Recurrence Mode Res.

Start Day of Month Start Weekday

Duration Type

Start Hour

Res. 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 CC:0053.03.03.11.004 This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
4.88.4.1 Recurrence fields The recurrence settings of a schedule are set by the following fields:
 Recurrence Mode  Recurrence Offset CC:0053.03.03.11.005 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. CC:0053.03.03.11.006 This field MUST comply with Table 115.
Table 115. Recurrence Mode encoding

Value

Description

Version

0x00 The recurrence Offset is expressed in Hours 3

0x01 The recurrence Offset is expressed in Days 3

CC:0053.03.03.11.007

0x02 The recurrence Offset is expressed in Weeks 3
All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.

CC:0053.03.03.11.008 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.

CC:0053.03.03.11.009 This field MUST be encoded according to Table 116 and MUST be interpreted together with the Recurrence Mode field.

Offset 0 1..15

Table 116. Recurrence Offset encoding
Description Recurrence Disabled Repeat every 1..15 hour, day or week The unit (hour, day or week) is indicated by the Recurrence Mode field.

CC:0053.03.03.11.00A CC:0053.03.03.11.00B CC:0053.03.03.11.00C

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.

CC:0053.03.03.11.00D 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.

CC:0053.03.03.11.00E 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.

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

CC:0053.03.03.11.00F A receiving node MUST support the start time fields combinations indicated in sections 4.86.4.1, 4.86.4.2 4.86.4.3, 4.86.4.4 and 4.88.3.1 if the corresponding start time option is supported.

CC:0053.03.03.11.010 CC:0053.03.03.11.011

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.

CC:0053.03.03.11.012 CC:0053.03.03.11.013 CC:0053.03.03.11.014

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 4.88.3.1 and the schedule MUST NOT be activated again at a later time unless receiving another Schedule Set Command.

CC:0053.03.03.11.015 The value 0 MUST indicate that the start time fields MUST be interpreted as an absolute start time for the schedule.

4.88.5 Schedule Get Command

This command is used to request the configuration for a specific schedule ID.

CC:0053.03.04.11.001 The Schedule Report Command MUST be returned in response to this command.

CC:0053.03.04.11.002 This command MUST NOT be issued via multicast addressing.

CC:0053.03.04.11.003

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

Command = SCHEDULE_GET

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.
CC:0053.03.04.11.004 A receiving node MUST return a Schedule Report Command advertising the Active_ID of the Schedule if this field is set to 0.
CC:0053.03.04.11.005 A receiving node MUST return a Schedule Report Command advertising the Recurrence Offset of the schedule if this field is set to 1.

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

Command = SCHEDULE_REPORT

Schedule ID

Schedule ID Block

Start Year

Active_ID/Recurrence Offset (AID_RO)

Start Month

AID_RO_C Recurrence

TL

Mode

Start Day of Month

Res.

Start Weekday

Duration Type

Start Hour

Res. Relative

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

CC:0053.03.05.11.001

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. If this field carries the Active_ID value, this field MUST be encoded according to Table 113.

CC:0053.03.05.11.002 If this field carries the Recurrence Offset, this field MUST be encoded according to Table 116 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.
CC:0053.03.05.11.003 The value 0 MUST indicate that the Active_ID/Recurrence Offset (AID_RO) field carried the Active_ID value.
CC:0053.03.05.11.004 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.
CC:0053.03.05.11.005 This field MUST be ignored if the AID_RO_CTL field is set to 0.
CC:0053.03.05.11.006 This field MUST comply with Table 115 if the AID_RO_CTL field is set to 1.

4.89 Schedule Command Class, version 4
The Schedule Command Class, version 4 allows supporting nodes to advertise the list of commands they support for scheduling.
4.89.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.
CC:0053.04.00.21.001 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.
4.89.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

Command = SCHEDULE_SUPPORTED_REPORT (0x02)

Number of Supported Schedule IDs

Support Enable/Di
sable

Fall-
back Support

Start Time Support

Number of supported CC Supported CC 1
Reserved ...
Supported CC N Reserved

Supported Command 1
Supported Command N

Override Support

Supported Override Types
Schedule ID Block Number of Supported Schedule Blocks

CC:0053.04.02.11.001

All fields not described below remain unchanged from version 3.
Supported Command (N * 2 bits)
This field MUST advertise the supported commands for the command class entry. This field MUST comply with Table 117.

Table 117. Schedule Supported Report v4::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

CC:0053.04.02.11.002

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

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

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

CC:0053.04.02.52.001

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.

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

CC:0053.04.0A.11.001 The Schedule Supported Commands Report Command MUST be returned in response to this command.

CC:0053.04.0A.51.001 This command MUST NOT be issued via multicast addressing.

CC:0053.04.0A.11.002

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

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.
CC:0053.04.0A.12.001 If a non-supported Schedule ID Block is specified, a receiving node SHOULD return a response for the Schedule ID block 1.
4.89.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

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. CC:0053.04.0B.11.001 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) CC:0053.04.0B.13.001 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.
CC:0053.04.0B.11.002 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.
CC:0053.04.0B.11.003 The length of this field in bytes MUST be according to the corresponding Supported Command List Length field value.

4.89.5 Schedule Set Command

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

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

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

CC:0053.04.03.11.003

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.

CC:0053.04.03.11.004 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

Command = SCHEDULE_SET (0x03)

Schedule ID

Schedule ID Block

Start Year

Recurrence Offset

Start Month

Res. Recurrence Mode

Start Day of Month

Res.

Start Weekday

Duration Type

Start Hour

Res. 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] CC:0053.04.03.11.005 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. CC:0053.04.03.11.006 This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
4.89.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

Command = SCHEDULE_REPORT (0x05)

Schedule ID

Schedule ID Block

Start Year

Active_ID/Recurrence Offset (AID_RO)

Start Month

AID_RO_C Recurrence

TL

Mode

Start Day of Month

Res.

Start Weekday

Duration Type

Start Hour

Res. Relative

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. CC:0053.04.05.11.001 If this field carries the Active_ID value, this field MUST be encoded according to Table 118. CC:0053.04.05.11.002 If this field carries the Recurrence Offset, this field MUST be encoded according to Table 116 and MUST be interpreted together with the Recurrence Mode field. Reports to Follow (8 bits) [OBSOLETED] CC:0053.04.05.11.003 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. CC:0053.04.05.11.004 This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. 4.89.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

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

CC:0053.04.09.11.001 CC:0053.04.09.11.002

Fields not described below remain unchanged from version 3. Reports to Follow (7 bits) [OBSOLETED] 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. This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

CC:0053.04.09.11.003
CC:0053.04.09.11.004 CC:0053.04.09.11.005

Active_ID (N * 4 bits)
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 ...
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.
Each 4 bits unit MUST be encoded according to Table 118.
Table 118. Active_ID encoding, version 4

Hex Description

Description

Version

0x00 Not used

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

0x01 [OBSOLETED] [OBSOLETED]

4

CC:0053.04.09.11.006

Override + Not A sending node MUST NOT use this status and MUST use 0x00

used

instead (and the override field set to 1 for the Schedule State

Report Command).

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

CC:0053.04.09.11.007

0x05 Override + Active

The Schedule ID is used, enabled and should currently be active 1 but it is suspended by the Override Schedule
The override field MUST be set to 1 when using this status in the Schedule State Report Command

0x06 [OBSOLETED] [OBSOLETED]

4

CC:0053.04.09.11.008

Override + Not A sending node MUST NOT use this status and MUST use 0x02

Active

instead. (and the override field set to 1 for the Schedule State

Report Command).

0x07 [OBSOLETED] [OBSOLETED]

4

CC:0053.04.09.11.009

Override +

A sending node MUST NOT use this status and MUST use 0x04

Disabled

instead. (and the override field set to 1 for the Schedule State

Report Command).

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

4.90 Schedule Entry Lock Command Class, version 1 [DEPRECATED]
THIS COMMAND CLASS HAS BEEN DEPRECATED
A device MAY implement this command class, but it is RECOMMENDED that new implementations use the Schedule Command Class. If implementing this command class, it is RECOMMENDED that the Schedule Command Class is also implemented.

The Schedule Entry Lock Command Class provides Z-Wave devices the capability to exchange scheduling information. The Schedule Entry Lock Type Commands are for controlling the schedules of an Entry Lock using schedule based user code Ids. The Entry Lock supports two types of schedules for each user ID supported in the device. The two schedule types are a time-fenced weekly schedule and a time-fenced one-time range schedule. When these schedules are configured and enabled, it allows the specified user ID's code to be active during the time intervals configured in the scheduling slots.
The Week Day schedule is a day-to-day schedule that will repeat weekly for the enabled user ID. A single schedule slot cannot span days.
Example: A homeowner has a Secure Keypad Door Lock and a dog that needs walking three times a week. The dog walker can be given access to the house using this schedule. The homeowner would give the dog walker a keypad code that would be active M, W, F from 1pm ­ 2pm.
The Year Day schedule is an extended schedule that allows two points in time to be specified that is beyond a daily schedule. A particular slot can span weeks, months or years. Once the end point is reached that schedule slot is no longer valid because it is out of range.
Example: A homeowner is going away on vacation for two weeks. The homeowner could give the neighbor a keypad code to the neighbor that would be active from April 2nd, 2008 to April 16th 2008. The code would be invalid after April 16th 2008.
4.90.1 Schedule Entry Lock Enable Set Command
This command enables or disables schedules for a specified user code ID. It affects only the schedules associated with the specific user ID.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE_ENTRY_LOCK

Command = SCHEDULE_ENTRY_LOCK_ENABLE_SET

User Identifier

Enabled

User Identifier (8 bits)
The User Identifier is used to recognize the user identity. A valid User Identifier MUST be a value starting from 1 to the maximum number of users supported by the device; refer to the User Code Command Class. If the user identifier is out of range, the command will be ignored.
Enabled (8 bits)
Table 119, Schedule Entry Lock Enable Set:: Enabled encoding

Value 0x00 0x01

Description Schedule for the user identified is disabled Schedule for the user identified is enabled

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
4.90.2 Schedule Entry Lock Enable All Set Command
This command enables or disables all schedules for type Entry Lock.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE_ENTRY_LOCK

Command = SCHEDULE_ENTRY_LOCK_ENABLE_ALL_SET

Enabled

Enabled (8 bits)
See description in Schedule Entry Lock Enable Set Command.
4.90.3 Schedule Entry Lock Supported Get Command
This command is used to request the number of schedule slots each type of schedule the device supports for every user.
The Schedule Entry Lock Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_ENTRY_LOCK

Command = SCHEDULE_ENTRY_TYPE_SUPPORTED_GET

4.90.4 Schedule Entry Lock Supported Report Command
This command is used to report the number of supported schedule slots an Entry Lock schedule device supports for each user in the system. It lists how many schedule slots there are for Week Days type and how many slots for the Year Day type.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE_ENTRY_LOCK

Command = SCHEDULE_ENTRY_TYPE SUPPORTED_REPORT

Number of Slots Week Day

Number of Slots Year Day

Number of Slots Week Day (8 bits)
A number from 0 ­ 255 that represents how many different schedule slots are supported each week for every user in the system for type Week Day.
Number of Slots Year Day (8 bits)
A number from 0 ­ 255 that represents how many different schedule slots are supported for every user in the system for type Year Day.

4.90.5 Schedule Entry Lock Week Day Schedule Set Command
This command set or erase a weekday schedule for a identified user who already has valid user access code.
When setting, the week day schedule is automatically enabled and the identified user if it is not already. The start parameters of the time fence needs to occur prior to the stop parameters. When erasing the schedule slot ID, the user code ID will continue to use week day type scheduling.
Note: Each user can only use one type of scheduling at a time.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE_ENTRY_LOCK

Command = SCHEDULE_ENTRY_LOCK_WEEK_DAY_SET

Set Action

User Identifier

Schedule Slot ID

Day of Week

Start Hour

Start Minute

Stop Hour

Stop Minute

Set Action (8 bits)
Table 120, Schedule Entry Lock Week Day Schedule Set::Set Action encoding

Set Action 0 1

Description Erase the schedule slot Modify the schedule slot for the identified user

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
User Identifier (8 bits)
The User Identifier is used to recognize the user identity. A valid User Identifier MUST be a value starting from 1 to the maximum number of users supported by the device; refer to the User Code Command Class. If the user identifier is out of range, the command will be ignored
Schedule Slot ID (8 bits)
A value from 1 to Number of Slots Week Day Supported.

Day of Week (8 bits) A value from 0 to 6 where 0 is Sunday. Start Hour (8 bits) A value from 0 to 23 representing the starting hour of the time fence. Start Minute (8 bits) A value from 0 to 59 representing the starting minute of the time fence. Stop Hour (8 bits) A value from 0 to 23 representing the stop hour of the time fence. Stop Minute (8 bits) A value from 0 to 59 representing the stop minute of the time fence 4.90.6 Schedule Entry Lock Week Days Schedule Get Command This command gets a week day schedule slot for a identified user and specified schedule slot ID. The Schedule Entry Lock Week Days Schedule Report Command MUST be returned in response to this command. This command MUST NOT be issued via multicast addressing. 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_ENTRY_LOCK

Command = SCHEDULE_ENTRY_LOCK_WEEK_DAY_GET

User Identifier

Schedule Slot ID

User Identifier (8 bits)
The User Identifier is used to recognize the user identity. A valid User Identifier MUST be a value starting from 1 to the maximum number of users supported by the device; refer to the User Code Command Class. If the user identifier is out of range, the command will be ignored
Schedule Slot ID (8 bits)
A value from 1 to Number of Slots Week Day Supported.

4.90.7 Schedule Entry Lock Week Day Schedule Report Command This command returns week day schedule report for the requested schedule slot ID for identified user.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE_ENTRY_LOCK

Command = SCHEDULE_ENTRY_LOCK_WEEK_DAY_REPORT

User Identifier

Schedule Slot ID

Day of Week

Start Hour

Start Minute

Stop Hour

Stop Minute

Refer to the description under the Schedule Set Week Day Schedule. Note: If a requested schedule slot is erased/empty, the time fields SHOULD be set to 0xFF.

4.90.8 Schedule Entry Lock Year Day Schedule Set Command
This command sets or erases a schedule slot for a identified user who already has valid user access code. The year day schedule represents two days, any time apart, where the specified user ID's code is valid. When setting the schedule slot, the start parameters of the time fence needs to occur prior to the stop parameters and the year day schedule is automatically enabled for the identified user. When erasing, the user code does not change from year day scheduling.
Note: Each user can only use one type of scheduling at a time.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE_ENTRY_LOCK

Command = SCHEDULE_ENTRY_LOCK_YEAR_DAY_SET

Set Action

User Identifier

Schedule Slot ID

Start Year

Start Month

Start Day

Start Hour

Start Minute

Stop Year

Stop Month

Stop Day

Stop Hour

Stop Minute

Set Action (8 bits)
Table 121, Schedule Entry Lock Year Day Schedule Set:: Set Action encoding

Value 0x00 0x01

Description Erase the schedule slot Modify the schedule slot for the identified user

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
User Identifier (8 bits)

The User Identifier is used to recognize the user identity. A valid User Identifier MUST be a value starting from 1 to the maximum number of users supported by the device; refer to the User Code Command Class. If the user identifier is out of range, the command will be ignored Schedule Slot ID (8 bits) A value from 1 to Number of Slots Year Day Supported. Start Year (8 bits) A value from 0 to 99 that represents the 2 year in the century. Start Month (8 bits) A value from 1 to 12 that represents the month in a year. Start Day (8 bits) A value from 1 to 31 that represents the date of the month. Start Hour (8 bits) A value from 0 to 23 representing the starting hour of the time fence. Start Minute (8 bits) A value from 0 to 59 representing the starting minute of the time fence. Stop Year (8 bits) A value from 0 to 99 that represents the 2 year in the century. Stop Month (8 bits) A value from 1 to 12 that represents the month in a year. Stop Day (8 bits) A value from 1 to 31 that represents the date of the month. Stop Hour (8 bits) A value from 0 to 23 representing the stop hour of the time fence. Stop Minute (8 bits) A value from 0 to 59 representing the stop minute of the time fence

4.90.9 Schedule Entry Lock Year Day Schedule Get Command
This command gets a year/day schedule slot for an identified user and specified schedule slot ID.
The Schedule Entry Lock Year Day Schedule Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_ENTRY_LOCK

Command = SCHEDULE_ENTRY_LOCK_YEAR_DAY_GET

User Identifier

Schedule Slot ID

User Identifier (8 bits)
The User Identifier is used to recognize the user identity. A valid User Identifier MUST be a value starting from 1 to the maximum number of users supported by the device; refer to the User Code Command Class. If the user identifier is out of range, the command will be ignored
Schedule Slot ID (8 bits)
A value from 1 to Number of Slots Year Day Supported.

4.90.10 Schedule Entry Lock Year Day Schedule Report Command
This command returns year/day schedule report for the requested schedule slot ID for the identified user.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE_ENTRY_LOCK

Command = SCHEDULE_ENTRY_LOCK_YEAR_DAY_REPORT

User Identifier

Schedule Slot ID

Start Year

Start Month

Start Day

Start Hour

Start Minute

Stop Year

Stop Month

Stop Day

Stop Hour

Stop Minute

Refer to the description under Schedule Set Year Day Schedule command. Note: If a requested schedule slot is erased/empty the time fields SHOULD be set to 0xFF.
4.91 Schedule Entry Lock Command Class, version 2 [DEPRECATED]
THIS COMMAND CLASS HAS BEEN DEPRECATED A device MAY implement this command class, but it is RECOMMENDED that new implementations use the Schedule Command Class. If implementing this command class, it is RECOMMENDED that the Schedule Command Class is also implemented.
The Schedule Entry Lock Command Class provides Z-Wave devices the capability to exchange scheduling information. The Schedule Entry Lock Type Commands are for controlling the schedules of an Entry Lock using schedule based user code Ids. The Entry Lock supports two types of schedules for each user ID supported in the device. The two schedule types are a time-fenced weekly schedule and a time-fenced one-time range schedule. When these schedules are configured and enabled, it allows the specified user ID's code to be active during the time intervals configured in the scheduling slots.

In Version 2 local time is used instead of UTC time, and Time Offset commands are added.
The commands not mentioned here remain the same as in version 1.
4.91.1 Schedule Entry Lock Time Offset Get Command
This command is used to request time zone offset and daylight savings parameters.
The Schedule Entry Lock Time Offset Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_ENTRY_LOCK

Command = SCHEDULE_ENTRY_LOCK_TIME_OFFSET_GET

4.91.2 Schedule Entry Lock Time Offset Set Command
This command is used to set the current local TZO and DST offsets into an Entry Lock Device. Any schedules that are already in the device before or after issuing the Schedule Entry Time Offset Set command are now assumed to be programmed in the Local time set by this command.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE_ENTRY_LOCK

Command = SCHEDULE_ENTRY_LOCK_TIME_OFFSET_SET

Sign

Hour TZO

TZO

Minute TZO

Sign Offset DST

Minute Offset DST

Sign TZO (1 bit) Plus (0) or minus (1) sign to indicate a positive or negative offset from UTC. Hour TZO (7 bits) Specify the number of hours that the originating time zone deviates from UTC. Refer to the DST field regarding daylight savings handling.

Minute TZO (7 bits) Specify the number of minutes that the originating time zone deviates UTC. Refer to the DST field regarding daylight savings handling. Sign Offset DST (1 bit) Plus (0) or minus (1) sign to indicate a positive or negative offset from UTC. Minute Offset DST (7 bits) This field MUST specify the number of minutes the time is to be adjusted when daylight savings mode is enabled. 4.91.3 Schedule Entry Lock Time Offset Report Command This command is used to advertise the time zone offset and daylight savings parameters.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE_ENTRY_LOCK

Command = SCHEDULE_ENTRY_LOCK_TIME_OFFSET_REPORT

Sign

Hour TZO

TZO

Minute TZO

Sign Offset DST

Minute Offset DST

Refer to description under the Schedule Entry Lock Time Offset Set command.

4.92 Schedule Entry Lock Command Class, Version 3 [DEPRECATED]

THIS COMMAND CLASS HAS BEEN DEPRECATED
A device MAY implement this command class, but it is RECOMMENDED that new implementations use the Schedule Command Class. If implementing this command class, it is RECOMMENDED that the Schedule Command Class is also implemented.

The Schedule Entry Lock Command Class provides a scheduling type alongside the existing types Week Day and Year Day. The new type is similar to Week Day functionality but provides a simpler implementation to repeat a time slot daily (selected days) and repeat those days weekly. The commands not mentioned here remain the same as in Version 2.

4.92.1 Schedule Entry Type Supported Report Command
This command is used to report the number of supported schedule slots an Entry Lock schedule device supports for each user in the system. It lists how many schedule slots there are for Week Day, Year Day, and Daily Repeating types.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE_ENTRY_LOCK

Command = SCHEDULE_ENTRY_TYPE_SUPPORTED_REPORT

Number of Slots Week Day

Number of Slots Year Day

Number of Slots Daily Repeating

Number of Slots Week Day (8 bits)
A number from 0 to 255 that represents how many different schedule slots are supported each week for every user in the system for type Week Day.
Number of Slots Year Day (8 bits)
A number from 0 to 255 that represents how many different schedule slots are supported for every user in the system for type Year Day.
Number of Slots Daily Repeating (8 bits)
A number from 0 to 255 that represents how many different schedule slots are supported for every user in the system for type Daily Repeating Day.

4.92.2 Schedule Entry Lock Daily Repeating Set Command
This command is used to set or erase a daily repeating schedule for an identified user who already has valid user access code.
When setting; the daily repeating schedule is automatically enabled for the identified user if it is not already. The start parameters of the time fence needs to occur prior to the stop parameters. When erasing the schedule slot ID, the user code ID will continue to use daily repeating type scheduling.
Note: Each user can only use one type of scheduling at a time.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE_ENTRY_LOCK

Command = SCHEDULE_ENTRY_LOCK_DAILY_REPEATING_SET

Set Action

User Identifier

Schedule Slot ID

Week Day Bitmask

Start Hour

Start Minute

Duration Hour

Duration Minute

Set Action (8 bits)

Table 122, Schedule Entry Lock Daily Repeating Set:: Set Action encoding

Value 0x00 0x01

Description Erase the schedule slot Modify the schedule slot for the identified user

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
User Identifier (8 bits)
The User Identifier is used to recognize the user identity. A valid User Identifier MUST be a value starting from 1 to the maximum number of users supported by the device; refer to the User Code Command Class. If the user identifier is out of range, the command will be ignored
Schedule Slot ID (8 bits)
A value from 1 to Number of Slots Daily Repeating Supported.

Week Day Bitmask (8 bits) A bitmask of the days of the week for this schedule entry is active.
Table 123, Schedule Entry Lock Daily Repeating Set:: Week Day Bitmask encoding

Bit

7

Value Res

6

5

Sat Fri

4

3

2

1

0

Thr Wed Tue Mon Sun

The `Res' bit is reserved and MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node.
Start Hour (8 bits)
A value from 0 to 23 representing the starting hour of the time fence.
Start Minute (8 bits)
A value from 0 to 59 representing the starting minute of the time fence.
Duration Hour (8 bits)
A value from 0 to 23 representing how many hours the time fence will last. Duration hour will be maxed at the documented capability of the specific device since this scheduling type is memory conscious.
Duration Minute (8 bits)
A value from 0 to 59 representing how many minutes the time fence will last past the Duration Hour field.
4.92.3 Schedule Entry Lock Daily Repeating Get Command
This command is used to request a daily repeating schedule slot for a identified user and specified schedule slot ID.
The Schedule Entry Lock Daily Repeating Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_ENTRY_LOCK

Command = SCHEDULE_ENTRY_LOCK_DAILY_REPEATING_GET

User Identifier

Schedule Slot ID

User Identifier (8 bits) The User Identifier is used to recognize the user identity. A valid User Identifier MUST be a value starting from 1 to the maximum number of users supported by the device; refer to the User Code Command Class. If the user identifier is out of range, the command will be ignored Schedule Slot ID (8 bits) A value from 1 to Number of Slots Daily Repeating Supported. 4.92.4 Schedule Entry Lock Daily Repeating Report This command is used to return the requested schedule slot ID for identified user.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCHEDULE_ENTRY_LOCK

Command = SCHEDULE_ENTRY_LOCK_DAILY_REPEATING_REPORT

User Identifier

Schedule Slot ID

Week Day Bitmask

Start Hour

Start Minute

Duration Hour

Duration Minute

Refer to the description under the Schedule Set Daily Repeating Schedule.

4.93 Screen Attributes Command Class, version 1
The Screen Attribute Command Class is used to retrieve screen attributes from the device hosting the screen. This allows another device to send data formatted according to the screen attributes to the device hosting the screen. The screen may be located on any device in the network.
4.93.1 Screen Attributes Get Command
This command is used to request the screen attributes.
The Screen Attributes Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SCREEN_ATTRIBUTES

Command = SCREEN_ATTRIBUTES_GET

4.93.2 Screen Attributes Report Command This command is used to advertise the screen attributes.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCREEN_ATTRIBUTES

Command = SCREEN_ATTRIBUTES_REPORT

Reserved

Number of Lines

Characters per Line

Line Buffer Size

Character Encoding

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Number of Lines (5 bits) Number of lines the screen supports (1..16). Characters per Line (8 bits) Number of characters the screen supports on each line (1..255).

Line Buffer Size (8 bits)

Number of characters the line buffer supports for each line (1..255). Size of line buffer will always be equal or larger than the number of visual characters per line. The text will typically scroll in case it is larger than the number of visual characters.

Character Encoding (8 bits)

The screen supports the following numerical representations of a character:

Table 124, Screen Attributes Report::Character Encoding encoding

Bit Map

Description

Bit 0 Supports ASCII codes if the bit is 1 and the opposite if 0. See APPENDIX A (values 128-255 are ignored)

Bit 1 Supports ASCII codes and Extended ASCII codes if the bit is 1 and the opposite if 0. See APPENDIX A

Bit 2 Supports Unicode UTF-16 if the bit is 1 and the opposite if 0.
Bit 3 Supports ASCII codes and Player codes, see APPENDIX A (undefined values are ignored) All other bits are reserved and MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node.

4.94 Screen Attributes Command Class, version 2 The Screen Attribute Command Class, version 2 introduces the Screen Timeout of the Screen Attributes Command. Details not mentioned remain the same as in version 1. 4.94.1 Screen Attributes Report Command This command is used to advertise the screen attributes.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCREEN_ATTRIBUTES

Command = SCREEN_ATTRIBUTES_REPORT

Reserved

Escape Sequence

Number of Lines

Characters per Line

Line Buffer Size

Character Encoding

Screen Timeout

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

Escape Sequence(1 bit)
If set to 0, escape sequences are not supported by the device. If set to 1, escape sequences are supported by the device.
Number of Lines (5 bits)
Number of lines the screen supports (1..16).
Characters per Line (8 bits)
Number of characters the screen supports on each line (1..255).
Line Buffer Size (8 bits)
Number of characters the line buffer supports for each line (1..255). Size of line buffer will always be equal or larger than the number of visual characters per line. The text will typically scroll in case it is larger than the number of visual characters.
Character Encoding (8 bits)
This field MUST be encoded according to Table 124
All other bits are reserved and MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node.
Screen Timeout (8 bits)
If Screen Timeout is set to 0, the display is always on. A value larger than 0 MUST specify the display timeout in seconds.
4.95 Screen Meta Data Command Class, version 1
The Screen Meta Data Command Class is used to streaming data containing user related information to a screen located on a device in a Z-Wave network. The screen can request single or multiple data packets. The device having the data containing user related information to the screen can also initiate the data streaming.
In order not to congest the Z-Wave network, large data transfers MUST leave transmit opportunities for other nodes in the network. If sending a command longer than two frames, a node MUST implement a delay between every transmitted frame. The minimum required time delay and number of frames before a delay must be inserted depends on the actual bit rate.
 40 kbit/s: At least 35 ms if sending more than 2 frames back-to-back  100 kbit/s: At least 15 ms if sending more than 2 frames back-to-back

4.95.1 Screen Meta Data Get Command
This command is used to request the Screen Meta Data Report Command. The Screen Meta Data Get Command is used as handshake to avoid buffer overflow in the receiving node. The Screen Meta Data Get Command will optionally be able to request multiple Screen Meta Data Report Commands to improve the effective bandwidth.
The Screen Meta Data Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SCREEN_MD

Command = SCREEN_MD_GET

Number of Reports

NodeID

Number of Reports (8 bits)
Number of Screen Meta Data Report Commands to be received without requesting each Screen Meta Data Report Command (1..255). Be aware of overflow when requesting multiple reports.
NodeID (8 bits)
The NodeID (1..232) specifies the device to receive the requested reports. In case NodeID is equal to 0x00, the information is requested by the source NodeID of the Screen Meta Data Get Command.

4.95.2 Screen Meta Data Report Command
This command is used to send data to the device hosting the screen.
The size of the payload SHOULD NOT be bigger than 48 bytes. It is possible to write characters to multiple lines in the same frame.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCREEN_MD

Command = SCREEN_MD_REPORT

More Data

Reserved

Screen Settings

Character Encoding

Line Settings A

Clear A

Line Number A

Character Position A

Number of Characters A

Character 1,A

...

Character N,A

...

Line Settings B

Clear B

Line Number B

Character Position B

Number of Characters B

Character 1,B

...

Character N,B

More Data (1 bit)
The more data bit indicates if additional reports are expected before the whole data streaming is completed. If the more data bit is set to 1 then additional reports are expected and the opposite if 0.

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Screen Settings (3 bits) This field MUST comply with Table 125:
Table 125, Screen Meta Data Report::Screen Settings encoding

Screen Settings

Description

0

Whole screen is cleared before lines are written

1

Current content on screen is scrolled one line down

2

Current content on screen is scrolled one line up

7

Do not change the current content on the screen

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node. Character Encoding (3 bits) This field MUST comply with Table 126:
Table 126, Screen Meta Data Report::Character Encoding encoding

Character Encoding 0 1

Description Using standard ASCII codes, see APPENDIX A (values 128-255 are ignored) Using standard ASCII codes and OEM Extended ASCII codes, see APPENDIX A

2

Unicode UTF-16

3

Using standard ASCII codes and Player codes, see APPENDIX A (undefined

values are ignored)

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
Note: Devices supporting Unicode UTF-16 characters are described by a 2 byte long decimal representation. The first byte is the most significant byte. E.g. if there is one Unicode character in the set frame the char 1 will be MSB and char 2 will be LSB of the Unicode character.

Line Settings (3 bits) This field MUST comply with Table 127:
Table 127, Screen Meta Data Report::Line Settings encoding

Line Settings

Description

0

Characters are written in selected font

1

Characters are written as highlighted

2

Characters are written using a larger font compared to line settings equal to 0

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

Clear (1 bit)

Determine if the characters are written directly or line is cleared first.

Table 128, Screen Meta Data Report::Clear encoding

Clear

Description

0 Characters are written directly

1 Line is cleared before characters are written
All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.

Line Number (4 bits)

The line number field indicates the line to write the characters to counting from zero (0..15).

Character Position (8 bits)

The character position field indicates where on the line to write the characters counting from zero (0..255). The character position may be larger than the display size in case the line buffer is bigger (See the Screen Attributes Report Command).

Number of Characters (8 bits)

The number of characters field indicates how many characters to be written on the screen for the specified line number, counting from 1.

Character (N bytes)

The character fields hold the string to output in specified character representation. Characters will be ignored in case there is no room left in the line buffer.

4.96 Screen Meta Data Command Class, version 2
The Screen Meta Data Command Class, version 2 introduces a Screen Timeout bit. The support for the Screen Timeout bit may be advertised by the Screen Attribute Command Class, version 2.
Details not mentioned remain the same as in version 1.
4.96.1 Screen Meta Data Report Command
This command is used to transfer data to the device hosting the screen. The size of the payload MUST NOT be bigger than 48 bytes. It is possible to write characters to multiple lines in the same frame.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SCREEN_MD

Command = SCREEN_MD_REPORT

More Data

Extended Setup

Screen Settings

Character Encoding

Line Settings A

Clear A

Line Number A

Character Position A

Number of Characters A

Character 1,A

...

Character N,A

...

Line Settings B

Clear B

Line Number B

Character Position B

Number of Characters B

Character 1,B

...

Character N,B

Reserved

Screen Timeout

More Data (1 bit)
The more data bit indicates if additional reports are expected before the whole data streaming is completed. If the more data bit is set to 1 then additional reports are expected and the opposite if 0.

Extended Setup (1 bit)
If set to true, the last byte of the payload defines an extended setup.
Screen Settings (3 bits)
The screen settings identifier MUST be encoded according to Table 125.
All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
Character Encoding (3 bits)
The Character Encoding identifier MUST be encoded according to Table 126.
Note: Devices supporting Unicode UTF-16 characters are described by a 2 byte long decimal representation. The first byte is the most significant byte. E.g. if there is one Unicode character in the set frame the char 1 will be MSB and char 2 will be LSB of the Unicode character.
All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.

Line Settings (3 bits) The line settings identifier MUST be encoded according to Table 129.
Table 129, Screen Meta Data Report version 2::Line Settings encoding

Line Settings
0 1 2
3 4 5 6 7

Description

Version

Characters are written in selected font

1

Characters are written as highlighted

1

Characters are written using a larger font compared to line settings equal to 1 0

Characters are written using a larger font (font B) & highlighted

2

Characters are written in selected font (font A), no scroll

2

Characters are written in selected font (font A) & highlighted, no scroll

2

Characters are written using a larger font (font B), no scroll

2

Characters are written using a larger font (font B) & highlighted, no scroll 2

For values 0-3, text will be scrolled. For values 4-7 the text will not be scrolled, and will be truncated if it is longer than the width of the display.
Clear (1 bit)
Determine if the characters are written directly or line is cleared first. Refer to Table 128
Line Number (4 bits)
The line number field indicates the line to write the characters to counting from zero (0..15).
Character Position (8 bits)
The character position field indicates where on the line to write the characters counting from zero (0..255). The character position MAY be larger than the display size in case the line buffer is bigger (See the Screen Attributes Report Command).
Number of Characters (8 bits)
The number of characters field indicates how many characters to be written on the screen for the specified line number, counting from 1.
Character (N bytes)
The character fields hold the string to output in specified character representation. Characters will be ignored in case there is no room left in the line buffer. If the Escape Sequence Bit is true in the SCREEN_ATTRIBUTES_REPORT Command, the device supports advanced display features by making escape sequences in the form of an Escape char followed by a char value 0..255.

Screen Timeout (1 bit) If the screen timeout is set to 0 the preset timeout SHOULD be used. If set to 1 the device SHOULD keep the display powered. This does not affect the RF. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
4.97 Sensor Configuration Command Class, version 1 [OBSOLETED]
THIS COMMAND CLASS HAS BEEN OBSOLETED New implementations MUST NOT use the Sensor Configuration Command Class. Refer to the Configuration Command Classes.
The Sensor Configuration Command Class adds the possibility for sensors to act on either a measured value or on a preconfigured value. With this command class an application can act on a specific event. It is up to the application to implement the actual event. This could e.g. be implementation of the Association Command Class where the application would activate a group based on a trigger from the sensor. The trigger types that may be configured are the same types as the values specified in the Multilevel Sensor Command Class Most movement sensors may be configured to "ignore" movement if it is not dark. Typically this is done manually. With the Sensor Configuration Command Class this may be configured remotely in a standardised way. A device supporting the Sensor Configuration Command Class may be configured via the trigger level, but the decision on what the level change should trigger is up to the application. For the movement sensor this trigger level could be an input parameter to the logic that controls the light.

4.97.1 Sensor Trigger Level Set Command
This command is used to set different triggers to either a specified value or to the current measured value. The Command also supports to restore a factory default value.
All configurable trigger types and values MUST be mapped directly from the Multilevel Sensor Command Class.
It is RECOMMENDED that all combinations of precision, scale and size parameters are supported. The Set command MUST support same format of precision, scale and size parameters as can be returned in the report command.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SENSOR_CONFIGURATION

Command = SENSOR_TRIGGER_LEVEL_SET

Default Current

Reserved

Sensor Type

Precision

Scale

Size

Trigger Value 1

...

Trigger Value N

Default (1 bit) Reset level of trigger type to factory default when this bit is set to 1. If any value is set in this frame when the Default bit is 1 this value will be ignored. Current (1 bit) The current measured value will be stored as trigger value when this bit is set to 1. The trigger value in this frame will be ignored when the Current bit is set to 1. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Precision (3 bits) The precision field describes what the precision of the trigger value is. The number indicates the number of decimals. The decimal value 1025 with precision 2 is therefore equal to 10.25.
Scale (2 bits) The Scale used to indicate what unit the trigger uses. Refer to the table in the Multilevel Sensor Command Class with respect to defined scales for the relevant triggers. Scales are defined by the Z-Wave Alliance.

Size (3 bits)
The size field indicates the number of bytes used for the Trigger Value field. This field can take values from 1 (001b), 2 (010b) or 4 (100b).

Sensor Type (8 bits)
The Sensor Type specifies what type of trigger this Command will set. Refer to the Multilevel Sensor Command Class specification, where Sensor Type is defined in the Multilevel Sensor Report Command.
Trigger Value (N bytes)
Refer to the Multilevel Sensor Report Command for information on what trigger values to set.
4.97.2 Sensor Trigger Level Get Command
This command can request the stored trigger level.
The Sensor Trigger Level Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SENSOR_CONFIGURATION

Command = SENSOR_TRIGGER_LEVEL_GET

4.97.3 Sensor Trigger Level Report Command This command returns the stored trigger value.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SENSOR_CONFIGURATION

Command = SENSOR_TRIGGER_LEVEL_REPORT

Sensor Type

Precision

Scale

Size

Trigger Value 1

...

Trigger Value N

For fields' description, refer to the Sensor Trigger Level Set Command.

4.97.4 Mapping example
The report structure of the Multilevel Sensor Command Class can be mapped direct into the Sensor Configuration Set Command Class. This example frame below will set the trigger level in the receiving node to 10.25 degree Celsius.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SENSOR_CONFIGURATION

Command = SENSOR_TRIGGER_LEVEL_SET

Default(0) Current(0)

Reserved

Temperature (0x01)

Precision (010b)

Celsius (00b)

Size (010b)

0x04

0x01

4.98 Simple AV Control Command Class, version 1-4
The Simple AV Control Command Class is used to control an AV device in a Z-Wave network. The Simple AV Control Command Class is suited for IR remote replacement. Furthermore, this command class supports Windows Vista Media Center and Media Center 2005 remote controls.
4.98.1 Simple AV Control Set Command
This command is used to control an AV device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SIMPLE_AV_CONTROL

Command = SIMPLE_AV_CONTROL_SET

Sequence Number

Reserved

Key Attributes

Reserved [OBSOLETED]

Reserved [OBSOLETED]

Command MSB,1

Command LSB,1

...

Command MSB,N

Command LSB,N

Sequence Number (8 bits) The sequence number is incremented each time a Simple AV Control Set Command is issued. The receiving node uses the sequence number to ignore duplicates. Key Attributes (3 bits) The key attributes specifies the state of the key. Currently the following key attribute definitions exist:
Table 130, Simple AV Control Set::Key Attributes encoding

Key Attribute

Description

0x00

Key Down ­ Sent when a new key is pressed. It is mandatory to send a Simple AV

Control Set Command when this event occurs.

0x01

Key Up ­ Sent when the key is released. It is optional to send a Simple AV Control

Set Command when this event occurs. Only the sequence number and key attribute

parameter is changed in the Command.

0x02

Keep Alive ­ Sent every 100-200ms while the key is still held down. Event used as a

failsafe feature for the ramping function, e.g. avoid volume jumps to maximum in

case a key up event is not received. The keep alive event can also be used to

control the speed of the ramping function, e.g. the first few seconds of the key held

down is the speed slow and afterwards will it gradually accelerate.

It is optional to send a Simple AV Control Set Command when this event occurs.

Only the sequence number and key attribute parameter is changed in the

Command.

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

Un-supported key attribute values MUST be ignored.

Reserved

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

Command MSB, Command LSB (N * 16 bits)

This field is used to carry the AV Control command.

Each 16 bits-unit MUST carry a defined AV Control code. Refer to [19] for the defined AV Control codes. Values not defined in [19] are reserved and MUST NOT be used.

It is possible to specify a sequence of AV commands in one frame. If an AV control command is not supported, it MUST be ignored by a receiving node.

Command numbers 1 through 40 are the most popular commands used in AV remotes.

Command numbers 41 through 363 are less popular and is sorted in alphanumerical order.

Support for Windows Vista Media Center and Media Center 2005 remote controls is added with command numbers from 364 to 377 including 16, 200 and 231.

4.98.2 Simple AV Control Get Command
This command is used to request the number of reports necessary to report the supported AC Commands from the device.
The Simple AV Control Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SIMPLE_AV_CONTROL

Command = SIMPLE_AV_CONTROL_GET

4.98.3 Simple AV Control Report Command
This command is used to report the necessary number of reports to report the supported AC Commands from the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SIMPLE_AV_CONTROL

Command = SIMPLE_AV_CONTROL_REPORT

Number of reports

Number of reports (8 bits) The number of reports necessary to report the entire list of supported AC Commands.

4.98.4 Simple AV Control Supported Get Command
This command is used to request the AV Commands supported by the AV device.
The Simple AV Control Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_SIMPLE_AV_CONTROL

Command = SIMPLE_AV_CONTROL_SUPPORTED_GET

Report No

Report No (8 bits) Report no. field is used to request wanted report number. The report no. values MUST be a sequence starting from 1. 4.98.5 Simple AV Control Supported Report Command This command is used to report the supported AC Commands from the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SIMPLE_AV_CONTROL

Command = SIMPLE_AV_CONTROL_SUPPORTED_REPORT

Report No

Bit Mask 1

...

Bit Mask N

Report No (8 bits)
Report no. field specify the request report number.
Bit Mask (N bytes)
The Bit Mask fields describe the supported AV Control Commands by the device.
 Bit 0 in Bit Mask 1 indicates if Command #1 is supported.  Bit 1 in Bit Mask 1 indicates if Command #2 is supported. ...
If a Command is supported, the bit MUST be set to 1. If a Command is not supported, the bit MUST be set to 0. It is only necessary to send the Bit Mask fields from 1 and up to the one indicating the last supported Command #. Mask fields bigger than 45 bytes not allowed. The number of Bit Mask fields transmitted MUST be determined from the length field in the frame.

4.99 Sound Switch Command Class, version 1

The Sound Switch Command Class is used to manage nodes with a speaker or sound notification capability. It can be used for a doorbell, alarm clock, siren or any device issuing sound notifications.

4.99.1 Terminology

A Sound Switch is a sound notification device with pre-recorded tones. A tone can be a short sound effect as well as an entire song. The volume setting can be configured and the node will subsequently play tones using the configured volume for any tone. A default tone can also be configured, allowing the Sound Switch to play same sound when controlled by a node without the ability to select between tones.
A Sound Switch node advertises a name and duration for each tone. This information is used to guide an end-user in its tone selection and helps controlling nodes to know when the tone is finished playing.

4.99.2 Compatibility considerations

CC:0079.01.00.21.001 CC:0079.01.00.21.002

The Sound Switch Command Class is an actuator control Command Class. Refer to section 3.6. A node supporting this Command Class MUST support at least 1 tone. The implemented tone identifier values MUST be in a sequence starting from 1, i.e. a node supporting 10 tones MUST accept Tone Identifiers in the range 1..10.

4.99.3 Sound Switch Tones Number Get Command

CC:0079.01.01.11.001 CC:0079.01.01.11.002

This command is used to request the number of tones supported by the receiving node. The Sound Switch Tones Number Report Command MUST be returned in response to this command. This command MUST NOT be issued via multicast addressing.

CC:0079.01.01.11.003

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_SOUND_SWITCH

Command = SOUND_SWITCH_TONES_NUMBER_GET (0x01)

4.99.4 Sound Switch Tones Number Report Command

This command is used to advertise the number of tones supported by the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SOUND_SWITCH

Command = SOUND_SWITCH_TONES_NUMBER_REPORT (0x02)

Supported Tones

CC:0079.01.02.11.001 CC:0079.01.02.11.003

Supported Tones (8 bits) This field MUST be set to the total amount of supported tones. This field MUST be in the range 1..254.

4.99.5 Sound Switch Tone Info Get Command

CC:0079.01.03.11.001 CC:0079.01.03.11.002 CC:0079.01.03.11.003

This command is used to query the information associated to a tone at a supporting node.
The Sound Switch Tone Info Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing.
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_SOUND_SWITCH

Command = SOUND_SWITCH_TONE_INFO_GET (0x03)

Tone Identifier

CC:0079.01.03.11.004 CC:0079.01.03.11.005

Tone Identifier (8 bits)
This field is used to specify the requested Tone Identifier.
The implemented tone identifier values MUST be in a sequence starting from 1, i.e. a node supporting 10 tones MUST accept Tone Identifiers in the range 1..10.
A sending node MUST specify a Tone Identifier that is supported by a receiving node, i.e. in the range 1..{Total number of supported tones}.

CC:0079.01.03.11.006 A node receiving this command for an unsupported Tone Identifier or for Tone Identifier 0x00 MUST return a zero duration and a zero length name.

4.99.6 Sound Switch Tone Info Report Command

This command is used to advertise the information associated to a tone at a supporting node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SOUND_SWITCH

Command = SOUND_SWITCH_TONE_INFO_REPORT (0x04)

Tone Identifier

Tone Duration 1

Tone Duration 2

Name Length

Name 1

...

Name N

CC:0079.01.04.11.001 CC:0079.01.04.11.002
CC:0079.01.04.11.003 CC:0079.01.04.11.004
CC:0079.01.04.11.005 CC:0079.01.04.11.006

Tone Identifier (8 bits) This field is used to advertise the Tone Identifier for which the associated information is being advertised. Tone Duration (16 bits) This field is used to advertise duration of the Tone Identifier. This field MUST indicate the time in seconds it takes to play the actual Tone Identifier. This field MUST be set to 0 if the Tone Identifier is set to 0x00 or a value higher than the total number of supported tones advertised in the Sound Switch Tones Number Report Command. Name Length (8 bits) This field indicates the length in bytes of the Name field. This field MUST be in the range 1..255 if the Tone Identifier is supported. This field MUST be set to 0 if the Tone Identifier is set to 0x00 or a value higher than the total number of supported tones advertised in the Sound Switch Tones Number Report Command. Name (N bytes) This field is used to indicate the assigned name or label for the actual Tone Identifier. The length of this field in bytes MUST comply with the advertised value in the Name Length field. This field MUST be omitted if the Name Length field is set to 0. The field MUST be formatted as a byte array with no zero termination.

CC:0079.01.04.11.007 The characters MUST be encoded in UTF-8 format.

4.99.7 Sound Switch Configuration Set Command

This command is used to set the configuration for playing tones at the supporting node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SOUND_SWITCH

Command = SOUND_SWITCH_CONFIGURATION_SET (0x05)

Volume

Default Tone Identifier

CC:0079.01.05.11.001

Volume (8 bits) This field is used to specify the volume at which the node will play tones. The encoding of the Volume field MUST be according toTable 131.
Table 131, Sound Switch Configuration Set::Volume encoding

Value

Description

CC:0079.01.05.11.002 0 (0x00)

This value MUST indicate an Off/Mute volume setting (0%)

CC:0079.01.05.11.003

1..100 (0x01..0x64)

CC:0079.01.05.11.004 255 (0xFF)

These values MUST indicate the actual volume setting from respectively 1% to 100%.
A supporting node MAY implement fewer than 100 hardware level. In this case, mapping of hardware levels MUST be monotonous. , i.e. a higher value MUST be mapped to either the same or a higher hardware level.
This value MUST indicate to restore most recent non-zero volume setting.
This value MUST be ignored if the current volume is not zero (0x00). This value MAY be used to set the Default Tone Identifier and do not modify the volume setting

CC:0079.01.05.11.005
CC:0079.01.05.11.006 CC:0079.01.05.11.007 CC:0079.01.05.11.008

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
Default Tone Identifier (8 bits)
This field is used to specify the Default Tone. This Tone will be played if receiving the Sound Switch Tone Play Set Command for an unsupported value or for the 0xFF value.
The value 0x00 MUST indicate that the receiving node MUST NOT update its current default tone and the command is sent to configure the volume only.
Values in the range 1..{Total number of supported tones} MUST indicate that the receiving node MUST use the specified Identifier as Default Tone.
Values higher than the Total number of supported tones advertised in the Sound Switch Tones Number Report Command MUST be ignored by a receiving node.

4.99.8 Sound Switch Configuration Get Command

CC:0079.01.06.11.001 CC:0079.01.06.11.002 CC:0079.01.06.11.003

This command is used to request the current configuration for playing tones at the supporting node.
The Sound Switch Configuration Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing.
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_SOUND_SWITCH

Command = SOUND_SWITCH_CONFIGURATION_GET (0x06)

4.99.9 Sound Switch Configuration Report Command

This command is used to advertise the current configuration for playing tones at the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SOUND_SWITCH

Command = SOUND_SWITCH_CONFIGURATION_REPORT (0x07)

Volume

Default Tone Identifer

CC:0079.01.07.11.001 CC:0079.01.07.11.002

Volume (8 bits) This field is used to advertise the current volume setting at the sending node. This field MUST be in the range 0..100. Values in the range 0..100 MUST indicate the current volume percentage. Default Tone Identifier (8 bits) This field is used to advertise the current configured Default Tone. This Tone Identifier will be played if receiving a Sound Switch Tone Play Set Command for an unsupported value or for the 0xFF value. This field MUST be in the range 1..{Total number of supported Tones}.

4.99.10 Sound Switch Tone Play Set Command

CC:0079.01.08.11.001 CC:0079.01.08.11.002

This command is used to instruct a supporting node to play (or stop playing) a tone. The supporting node MUST play the specified tone immediately when receiving this command. A node already playing a tone MUST interrupt the current tone and start playing the tone specified in this command.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SOUND_SWITCH

Command = SOUND_SWITCH_TONE_PLAY_SET (0x08)

Tone identifier

CC:0079.01.08.11.003 CC:0079.01.08.11.004

Tone Identifier (8 bits) This field is used to specify the tone that the receiving node MUST play. This field MUST be encoded according to Table 132.
Table 132, Sound Switch Tone Play Set::Tone Identifier encoding

CC:0079.01.08.11.005 CC:0079.01.08.11.006

Value

Description

0x00

No Tone MUST be played.

A supporting node MUST stop playing any tone when receiving this value.

0x01..0xFE A supporting node MUST play the specified Tone identifier using the configured volume setting.
A node receiving a non-supported Tone Identifier (higher than the Total number of supported tones) MUST play the default tone using the configured volume setting.

CC:0079.01.08.11.007 0xFF

The supporting node MUST play the default tone using the configured volume setting.

4.99.11 Sound Switch Tone Play Get Command

CC:0079.01.09.11.001 CC:0079.01.09.11.002 CC:0079.01.09.11.003

This command is used to request the current tone being played by the receiving node.
The Sound Switch Tone Play Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing.
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_SOUND_SWITCH

Command = SOUND_SWITCH_TONE_PLAY_GET (0x09)

4.99.12 Sound Switch Tone Play Report Command

This command is used to advertise the current tone being played by the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SOUND_SWITCH

Command = SOUND_SWITCH_TONE_PLAY_REPORT (0x0A)

Tone Identifier

CC:0079.01.0A.11.001 CC:0079.01.0A.11.002 CC:0079.01.0A.11.003 CC:0079.01.0A.11.004

Tone Identifier (8 bits)
This field MUST indicate which tone is currently being played by the sending node. This field MUST be in the range 0..{Total number of supported tones}.
The value 0 MUST indicate that no Tone is currently being played.
This field MUST be set to 0x00 by a sending node if the configured volume is 0x00 (muted).
Values in the range 1..{Total number of supported tones} MUST indicate the Tone that is currently being played.
All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.

4.100 Sound Switch Command Class, version 2
The Sound Switch Command Class is used to manage nodes with a speaker or sound notification capability. It can be used for a doorbell, alarm clock, siren or any device issuing sound notifications.
4.100.1 Compatibility Considerations
The Sound Switch Command Class is backwards compatible with the Sound Switch Command Class, version 1.

CC:0079.02.00.21.001

All Commands and fields not mentioned in this version MUST remain unchanged from the Sound Switch Command Class, version 1.
This version extends the following commands to allow a controlling node to modify the volume setting only for a single Tone Play Set Command:
 Sound Switch Tone Play Set Command  Sound Switch Tone Play Report Command

4.100.2 Sound Switch Tone Play Set Command

CC:0079.02.08.11.001 CC:0079.02.08.11.002

This command is used to instruct a supporting node to play (or stop playing) a tone. The supporting node MUST play the specified tone immediately when receiving this command. A node already playing a tone MUST interrupt the current tone and start playing the tone specified in this command.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SOUND_SWITCH

Command = SOUND_SWITCH_TONE_PLAY_SET (0x08)

Tone identifier

Play Command Tone Volume

CC:0079.02.08.11.003
CC:0079.02.08.11.004 CC:0079.02.08.11.005 CC:0079.02.08.11.006
CC:0079.02.08.11.007 CC:0079.02.08.11.008

All fields not described below MUST remain unchanged from version 1. Play Command Tone Volume (8 bits) This field is used to configure the volume for the actual Play Command. The volume setting configured with the Sound Switch Configuration Set Command MUST remain unchanged by this command and this field MUST be used for the volume of the actual tone that will start playing. This field MUST be set to 0x00 and ignored by a receiving node if the Tone identifier field is set to 0x00. The encoding of this field MUST be according to Table 133.

Table 133, Sound Switch Tone Play Set::Play Command Volume encoding

Value

Description

0 (0x00)

This value MUST indicate to use the configured current volume at the node (Sound Switch Configuration Set Command)

1..100 (0x01..0x64)

These values MUST indicate the actual volume setting from respectively 1% to 100% to use for the Play Set Command.
This value SHOULD be used only for critical applications (e.g. security alarm) where it is important to have the sound played even when the device is muted.

255 (0xFF)

This value MUST indicate to use most recent non-zero volume setting if the current volume is muted (0x00).

If the current configured volume is not muted (>0x00), this value MUST indicate to use the configured current volume at the node (Sound Switch Configuration Set Command)

This value SHOULD be used only for critical application (e.g. security alarm) where it is important to have the sound played even when the device is muted.

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

4.100.3 Sound Switch Tone Play Report Command

This command is used to advertise the current tone being played by the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_SOUND_SWITCH

Command = SOUND_SWITCH_TONE_PLAY_REPORT (0x0A)

Tone Identifier

Play Command Tone Volume

CC:0079.02.0A.11.001

All fields not described below MUST remain unchanged from version 1. Play Command Tone Volume (8 bits) This field MUSTadvertise the actual playing volume represented with the value from 0x00 ...0x64 (0 ... 100%). The values 0x00 and 0x64 MUST represent mute and maximum volume, respectively. This field MUST be set to 0x00 if the Tone Identifier field is set to 0x00.

4.101 Tariff Table Configuration Command Class, version 1
The Tariff Table Configuration Command Class defines the cost for a range of rates.
The Tariff Table configuration commands are separated for the Tariff Table monitor commands in the Tariff Table Monitor Command Class, allowing the classes to be optionally supported at different ZWave security levels.
4.101.1 Tariff Table Supplier Set Command
This command is used to set the name of the utility supplier in the metering device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_TARIFF_CONFIG

Command = TARIFF_TBL_SUPPLIER_SET

Utility Timestamp Year 1

Utility Timestamp Year 2

Utility Timestamp Month

Utility Timestamp Day

Utility Timestamp Hour Local Time

Utility Timestamp Minute Local Time

Utility Timestamp Second Local Time

Currency 1

Currency 2

Currency 3

Standing Charge Precision

Standing Charge Period

Standing Charge Value 1

Standing Charge Value 2

Standing Charge Value 3

Standing Charge Value 4

Reserved

Number of Supplier Characters

Supplier Character 1

...

Supplier Character N

Utility Timestamp Year (16 bits) Tariff applies from the specified year in the usual Gregorian calendar. The first byte (Year 1) is the most significant byte. Utility Timestamp Month (8 bits) Tariff applies from the specified month of the year between 01 (January) and 12 (December). A year equal to 0x0000 indicates that a accumulated value is not determined yet. Utility Timestamp Day (8 bits) Tariff applies from the specified day of the month between 01 and 31. Utility Timestamp Hour Local Time (8 bits) Tariff applies from the specified number of complete hours that have passed since midnight (00-23) in local time. Utility Timestamp Minute Local Time (8 bits) Tariff applies from the specified number of complete minutes that have passed since the start of the hour (00-59) in local time. Utility Timestamp Second Local Time (8 bits) Tariff applies from the specified number of complete seconds since the start of the minute (00-59) in local time. The value 60 used to keep UTC from wandering away is not supported. Currency (3 bytes) ISO 4217 defines the currency code. In the table below are some examples of the codes listed:
Table 134, Tariff Table Supplier Set::Currency encoding examples

Currency Code Currency 1 Currency 2 Currency 3

Pound sterling

G

B

P

US Dollar

U

S

D

Standing Charge Period (5 bits) This field indicates the stated period that standing charge applies e.g. 50p/week.
Table 135, Tariff Table Supplier Set::Standing Charge Period encoding
Period Value Weekly 0x01 Monthly 0x02 Quarterly 0x03 Yearly 0x04 Reserved 0x05-0x1F
Standing Charge Precision (3 bits) The precision field describes what the precision of the value is. The number indicates the number of decimals. The decimal value 1025 with precision 2 is therefore equal to 10.25. Standing Charge Value (32 bits) The Standing Charge value MUST be encoded as a 32-bit signed integer. The first byte MUST be the most significant byte. Table 10, Signed field encoding (two's complement representation) shows signed decimal values together with their hexadecimal equivalents. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Number of Supplier Characters (5 bits) Number of characters defining the name of the utility supplier ID (1 ... 32). Supplier Character (N bytes) The supplier character fields hold the string identifying the utility supplier. The character presentation uses standard ASCII codes (values 128-255 are ignored).

4.101.2 Tariff Table Set Command This command adds a tariff to a given rate parameter set identifier.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_TARIFF_TBL

Command = TARIFF_TBL_REPORT

Rate Parameter Set ID

Tariff Precision

Reserved

Tariff Value 1

Tariff Value 2

Tariff Value 3

Tariff Value 4

Rate Parameter Set ID (8 bits) The Rate Parameter Set ID indicates the requested parameter set. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Tariff Precision (3 bits) The precision field describes what the precision of the value is. The number indicates the number of decimals. The decimal value 1025 with precision 2 is therefore equal to 10.25. Tariff Value (32 bits) The Tariff value is a 32 bit signed field. The first byte is the most significant byte. shows signed decimal values together with their hexadecimal equivalents.

4.101.3 Tariff Table Remove Command This command is used to remove rate parameter set(s).

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_TARIFF_TBL_CONFIG

Command = TARIFF_TBL_REMOVE

Reserved

Rate Parameter Set IDs

Rate Parameter Set ID 1

...

Rate Parameter Set ID N

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Rate Parameter Set IDs (6 bits) The rate parameter set id's indicates the number of rate parameter set id's in the command. Rate Parameter Set ID (N bytes) These fields contain a list of Tariffs to be removed from the Tariff Table. All Tariffs are cleared in case no Rate Parameter Set ID's are supplied.

4.102 Tariff Table Monitor Command Class, version 1
The Tariff Table Monitor Command Class defines the cost for a range of rates.
4.102.1 Tariff Table Supplier Get Command
This command is used to request the name of the utility supplier.
The Tariff Table Supplier Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_TARIFF_TBL_MONITOR

Command = TARIFF_TBL_SUPPLIER_GET

4.102.2 Tariff Table Supplier Report Command This command is used to advertise the name of the utility supplier.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_TARIFF_TBL_MONITOR

Command = TARIFF_TBL_SUPPLIER_REPORT

Utility Timestamp Year 1

Utility Timestamp Year 2

Utility Timestamp Month

Utility Timestamp Day

Utility Timestamp Hour Local Time

Utility Timestamp Minute Local Time

Utility Timestamp Second Local Time

Currency 1

Currency 2

Currency 3

Standing Charge Precision

Standing Charge Period

Standing Charge Value 1

Standing Charge Value 2

Standing Charge Value 3

Standing Charge Value 4

Reserved

Number of Supplier Characters

Supplier Character 1

...

Supplier Character N

Refer to description of fields under the Tariff Table Supplier Set Command (section 4.101.1)

4.102.3 Tariff Table Get Command
This command is used to request the tariff for the corresponding rate parameter set.
The Tariff Table Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_TARIFF_TBL_MONITOR

Command = TARIFF_TBL_GET

Rate Parameter Set ID

Rate Parameter Set ID (8 bits) The Rate Parameter Set ID addresses the price for the accompanying rate parameter set. The Rate Table Supported Report Command determines the number of supported rate parameter sets. 4.102.4 Tariff Table Report Command This commandis used to advertise information relating to a given Rate Parameter Set Identifier.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_TARIFF_TBL_MONITOR

Command = TARIFF_TBL_REPORT

Rate Parameter Set ID

Tariff Precision

Reserved

Tariff Value 1

Tariff Value 2

Tariff Value 3

Tariff Value 4

Refer to description of fields under the Tariff Table Set Command (section 4.101.2)

4.102.5 Tariff Table Cost Get Command
This command is used to request the cost according to rate parameter set ID, rate type, dataset mask and time interval.
The Tariff Table Cost Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_TARIFF_TBL_MONITOR

Command = TARIFF_TBL_COST_GET

Rate Parameter Set ID

Start Year 1

Start Year 2

Start Month

Start Day

Start Hour Local Time

Start Minute Local Time

Stop Year 1

Stop Year 2

Stop Month

Stop Day

Stop Hour Local Time

Stop Minute Local Time

Rate Parameter Set ID (8 bits) The Rate Parameter Set ID indicates the requested parameter set. Rate Parameter Set ID equal to 0xFF returns overall accumulated cost. Start Year (16 bits) Specify the year in the usual Gregorian calendar. The first byte (Year 1) is the most significant byte. Start Month (8 bits) Specify the month of the year between 01 (January) and 12 (December). Start Day (8 bits)

Specify the day of the month between 01 and 31.
Start Hour Local Time (8 bits)
Specify the number of complete hours that have passed since midnight (00-23) in local time.
Start Minute Local Time (8 bits)
Specify the number of complete minutes that have passed since the start of the hour (00-59) in local time.
Stop Year (16 bits)
Specify the year in the usual Gregorian calendar. The first byte (Year 1) is the most significant byte. Setting the parameter to 0xFFFF indicates now.
Stop Month (8 bits)
Specify the month of the year between 01 (January) and 12 (December). A year equal to 0x0000 indicates that an accumulated value is not determined yet. Setting the parameter to 0xFF indicates now.
Stop Day (8 bits)
Specify the day of the month between 01 and 31. Setting the parameter to 0xFF indicates now.
Stop Hour Local Time (8 bits)
Specify the number of complete hours that have passed since midnight (00-23) in local time. Setting the parameter to 0xFF indicates now.
Stop Minute Local Time (8 bits)
Specify the number of complete minutes that have passed since the start of the hour (00-59) in local time. Setting the parameter to 0xFF indicates now.
Stop Second Local Time (8 bits)
Specify the number of complete seconds since the start of the minute (00-59) in local time. The value 60 used to keep UTC from wandering away is not supported. Setting the parameter to 0xFF indicates now.

4.102.6 Tariff Table Cost Report Command
This command is used to report a number of time stamped values (historical) in physical units in the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_TARIFF_TBL_MONITOR

Command = TARIFF_TBL_COST_REPORT

Rate Parameter Set ID

Reserved

Rate Type

Start Year 1

Start Year 2

Start Month

Start Day

Start Hour Local Time

Start Minute Local Time

Stop Year 1

Stop Year 2

Stop Month

Stop Day

Stop Hour Local Time

Stop Minute Local Time

Currency 1

Currency 2

Currency 3

Cost Precision

Reserved

Cost Value 1

Cost Value 2

Cost Value 3

Cost Value 4

Rate Parameter Set ID (8 bits)
The Rate Parameter Set ID indicates the requested parameter set. Rate Parameter Set ID equal to 0xFF returns accumulated cost.

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Rate Type (2 bits) Rate Type specifies the type of parameters in the report. This field MUST be encoded according to Table 69. Start/Stop Year (16 bits) Specify the year in the usual Gregorian calendar. The first byte (Year 1) is the most significant byte. Start/Stop Month (8 bits) Specify the month of the year between 01 (January) and 12 (December). A year equal to 0x0000 indicates that a accumulated value is not determined yet. Start/Stop Day (8 bits) Specify the day of the month between 01 and 31. Start/Stop Hour Local Time (8 bits) Specify the number of complete hours that have passed since midnight (00-23) in local time. Start/Stop Minute Local Time (8 bits) Specify the number of complete minutes that have passed since the start of the hour (00-59) in local time. Currency (3 bytes) ISO 4217 defines the currency code. Examples are given in Table 134. Cost Precision (3 bits) The precision field describes what the precision of the value is. The number indicates the number of decimals. The decimal value 1025 with precision 2 is therefore equal to 10.25. Cost Value (32 bits) The Cost value is a 32 bit un-signed field. The first byte is the most significant byte. The value 0xFFFFFFFF is reserved, and SHOULD be used to report that the cost calculation has not yet been performed.

4.103 Thermostat Fan Mode Command Class, version 1

The Thermostat Fan Mode Command Class, version 1 used for the HVAC's systems manual fan.

4.103.1 Thermostat Fan Mode Set Command

This command is used to set the fan mode in the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_FAN_MODE

Command = THERMOSTAT_FAN_MODE_SET

Reserved

Fan Mode

Fan Mode (8 bits) This field MUST comply with the values indicated for version 1 in Table 136. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

4.103.2 Thermostat Fan Mode Get Command

This command is used to request the fan mode in the device.
The Thermostat Fan Mode Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_THERMOSTAT_FAN_MODE

Command = THERMOSTAT_FAN_MODE_GET

4.103.3 Thermostat Fan Mode Report Command

This command is used to report the fan mode in a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_FAN_MODE

Command = THERMOSTAT_FAN_MODE_REPORT

Reserved

Fan Mode

Fan Mode (8 bits) Refer to description under 4.103.1 Thermostat Fan Mode Set Command. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

4.103.4 Thermostat Fan Mode Supported Get Command

This command is used to request the supported fan modes from the device.
The Thermostat Fan Mode Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_THERMOSTAT_FAN_MODE

Command = THERMOSTAT_FAN_MODE_SUPPORTED_GET

4.103.5 Thermostat Fan Mode Supported Report Command

This command is used to report the supported fan modes from the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_FAN_MODE

Command = THERMOSTAT_FAN_MODE_SUPPORTED_REPORT

Bit Mask 1

...

Bit Mask N

Bit Mask (N bytes)
The Bit Mask fields describe the supported fan modes by the thermostat.
 Bit 0 in Bit Mask 1 indicates if Fan Mode = 0 (Auto / Auto Low) is supported.  Bit 1 in Bit Mask 1 indicates if Fan Mode = 1 (On / On Low) is supported. ...
If a Fan Mode is supported the bit MUST be set to 1. If a Fan Mode is not supported the bit MUST be set to 0. It is only necessary to send the Bit Mask fields from 1 and up to the one indicating the last supported fan mode. The number of Bit Mask fields transmitted MUST be determined from the length field in the frame.

4.104 Thermostat Fan Mode Command Class, Version 2

The Thermostat Fan Mode Command Class, version 2 is used for the HVAC's systems manual fan.
The commands not mentioned here will remain the same as specified for Thermostat Fan Mode Command Class (Version 1).

4.104.1 Thermostat Fan Mode Set Command

This command is used to set the fan mode in the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_FAN_MODE

Command = THERMOSTAT_FAN_MODE_SET

Off

Reserved

Fan Mode

Off (1 bit) The "Off bit" set to "1" will switch the fan fully OFF regardless of what fan mode has been set. In order to activate a fan mode the "Off bit" MUST be set to "0". Fan Mode (4 bits) This field MUST comply with the values indicated for version 2 and older in Table 136. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

4.104.2 Thermostat Fan Mode Report Command

This command is used to report the fan mode in a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_FAN_MODE

Command = THERMOSTAT_FAN_MODE_REPORT

Reserved

Fan Mode

Fan Mode (4 bits) Refer to description under the Thermostat Fan Mode Set Command. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.

4.105 Thermostat Fan Mode Command Class, Version 3

The Thermostat Fan Mode Command Class, version 3 is used for the HVAC's systems manual fan.

4.105.1 Thermostat Fan Mode Set Command

This command is used to set the fan mode in the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_FAN_MODE

Command = THERMOSTAT_FAN_MODE_SET

Off

Reserved

Fan Mode

Reserved
This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Off (1 bit)
The "Off bit" set to "1" will switch the fan fully OFF. In order to activate a fan mode the "Off bit" MUST be set to "0". However, for some applications it is critical that the fan is ON in certain modes. In this case, the application can decide to ignore the Off bit.

Fan Mode (4 bits) This field MUST comply with the values indicated for version 3 and older in Table 136.

4.105.2 Thermostat Fan Mode Get Command

This command is used to request the fan mode in the device.
The Thermostat Fan Mode Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_THERMOSTAT_FAN_MODE

Command = THERMOSTAT_FAN_MODE_GET

4.105.3 Thermostat Fan Mode Report Command

This command is used to report the fan mode in a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_FAN_MODE

Command = THERMOSTAT_FAN_MODE_REPORT

Off

Reserved

Fan Mode

Fan Mode (4 bits) Refer to description under 4.105.1 Thermostat Fan Mode Set Command. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Off (1 bit) The "Off bit" set to "1" indicates that the fan is fully OFF. The "Off bit" set to "0" indicates that it is possible to change between Fan Modes. For some applications, it is critical that the fan is ON in certain modes. In this case, the application can decide to ignore the Off bit. This means that the Off bit in the Report MUST always be set to "0"

4.106 Thermostat Fan Mode Command Class, Version 4-5
The Thermostat Fan Mode Command Class is an extension to support control and status monitoring functions of air-conditioning devices in order to achieve a global framework that covers the majority of

generic functions implemented by world-wide air-conditioning manufacturer. The new features comprises of new Thermostat Fan Modes.

4.106.1 Thermostat Fan Mode Set Command

This command is used to set the fan mode in the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_FAN_MODE

Command = THERMOSTAT_FAN_MODE_SET

Off

Reserved

Fan Mode

Reserved
This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Off (1 bit)
"Off bit" set to "1" will switch the fan fully OFF. In order to activate a fan mode the "Off bit" MUST be set to "0". However for some applications it is critical that the fan is ON in certain modes. In this case the application may ignore the off bit.

Fan Mode (4 bits)

If the device transmitting the Thermostat Fan Mode Set command attempts to set a non-supported mode, the receiving thermostat device MUST ignore the command.

Table 136, Thermostat Fan Mode Set version 4::Fan Mode encoding

Fan Mode (4 bits) 0x00 AUTO LOW

Description
Will turn the manual fan operation off unless turned on by the manufacturer specific "auto low" algorithms

CC Version
1

Will turn the manual fan operation on.

0x01 LOW

1

Low speed is selected.

0x02 AUTO HIGH

Will turn the manual fan operation off unless turned on by the manufacturer specific "auto high" algorithms

1

Will turn the manual fan operation on.

0x03 HIGH

1

High speed is selected.

Will turn the manual fan operation off unless turned on by

0x04 AUTO MEDIUM

2

the manufacturer specific "auto medium" algorithms

0x05 MEDIUM

Will turn the manual fan operation on. Medium speed is selected.

2

Will turn the manual fan operation off unless turned on by 0x06 CIRCULATION

3

the manufacturer specific circulation algorithms

0x07

HUMIDITY CIRCULATION

Will turn the manual fan operation off unless turned on by the manufacturer specific "humidity circulation" algorithms

3

Will turn the manual fan operation off unless turned on by

0x08 LEFT & RIGHT the manufacturer specific "left & right" circulation

4

algorithms

Will turn the manual fan operation off unless turned on by

0x09 UP & DOWN

the manufacturer specific "up & down" circulation

4

algorithms

0x0A QUIET

Will turn the manual fan operation off unless turned on by

4

the manufacturer specific "quiet" algorithms

Will turn the manual fan operation off unless turned on by

EXTERNAL 0x0B

the manufacturer specific circulation algorithms.

5

CIRCULATION

This mode will circulate fresh air from the outside.

0x0C.. 0x0F

Reserved

These values/modes are reserved for future use. The values cannot be supported by any device and will be ignored.

-

4.106.2 Thermostat Fan Mode Get Command
This command is used to request the fan mode in the device.
The Thermostat Fan Mode Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_THERMOSTAT_FAN_MODE

Command = THERMOSTAT_FAN_MODE_GET

4.106.3 Thermostat Fan Mode Report Command This command is used to report the fan mode in a device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_FAN_MODE

Command = THERMOSTAT_FAN_MODE_REPORT

Off

Reserved

Fan Mode

Refer to Thermostat Fan Mode Set command for parameter/field descriptions.

4.106.4 Thermostat Fan Mode Supported Get Command

This command is used to request the supported modes from the device.
The Thermostat Fan Mode Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_THERMOSTAT_FAN_MODE

Command = THERMOSTAT_FAN_MODE_SUPPORTED_GET

4.106.5 Thermostat Fan Mode Supported Report Command

This command is used to report the supported thermostat modes from the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_FAN_MODE

Command = THERMOSTAT_FAN_MODE_SUPPORTED_REPORT

Bit Mask 1

...

Bit Mask N

Bit Mask (N bytes)
The Bit Mask fields describe the supported modes by the device (Refer to 4.106.1 Thermostat Fan Mode Set Command).
 Bit 0 in Bit Mask 1 field indicates support for mode = 0 (AUTO LOW)  Bit 1 in Bit Mask 1 field indicates support for mode = 1 (LOW)  Bit 2 in Bit Mask 1 field indicates support for mode = 2 (AUTO HIGH) ...
The mode is supported if the bit is 1 and the opposite if 0. It is only necessary to send the Bit Mask fields from 1 and up to the one indicating the last supported mode. The number of Bit Mask fields transmitted MUST be determined from the length field in the frame.
Example:
To indicate the thermostat device supports AUTO LOW, AUTO HIGH and AUTO MEDIUM, the Thermostat Fan Mode Supported Report command MUST be structured as illustrated below.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_FAN_MODE

Command = THERMOSTAT_FAN_MODE_SUPPORTED_REPORT

Bit Mask 1

0

0

0

1

0

1

0

1

4.107 Thermostat Fan State Command Class, version 1-2 The Thermostat Fan State Command Class is used to obtain the fan operating state of the thermostat. 4.107.1 Compatibility considerations A device supporting Thermostat Fan State CC, Version 2 MUST support Thermostat Fan State CC, Version 1. Version 2 adds Fan Operating State identifiers for use in the Thermostat Fan State Report Command.

Commands not described in Version 2 stays unchanged from version 1.

4.107.2 Thermostat Fan State Get Command

This command is used to request the fan operating state from the device.
The Thermostat Fan State Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_THERMOSTAT_FAN_STATE

Command = THERMOSTAT_FAN_STATE_GET

4.107.3 Thermostat Fan State Report Command

This command is used to report the fan operating state of the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_FAN_STATE

Command = THERMOSTAT_FAN_STATE_REPORT

Reserved

Fan Operating State

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Fan Operating State (4 bits) The fan operating state identifier MUST comply with Table 137.
Table 137, Thermostat Fan State Report::Fan Operating State encoding

Fan Operating
State 0
1
2

Description
Idle / Off Running / Running Low ­ If device only supports one fan speed, this state is used to report the fan is running. If the device is a multi-speed device, this state is used to report that the fan is running at the low speed. Running High

3

Running Medium

4

Circulation Mode

5

Humidity Circulation Mode

6

Right ­ Left Circulation Mode

7

Up ­ Down Circulation Mode

8

Quiet Circulation Mode

CC Version
1
1
1 2 2 2 2 2 2

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
4.108 Thermostat Mode Command Class, version 1-2 The Thermostat Mode Command Class is used to control which mode a thermostat operates. 4.108.1 Interoperability considerations

Most thermostat modes require a supporting node to have an associated setpoint, which can managed with the Thermostat Setpoint Command Class. A node supporting this Command Class SHOULD support the Thermostat Setpoint Command Class.

4.108.2 Thermostat Mode Set Command

This command is used to set the thermostat mode at the receiving node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_MODE (0x40)

Command = THERMOSTAT_MODE_SET (0x01)

Reserved

Mode

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Mode (5 bits) This field is used to set the thermostat mode at the receiving node. This field MUST be encoded according to Table 138.

4.108.3 Thermostat Mode Get Command

This command is used to request the current mode set at the receiving node.
The Thermostat Mode Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing.
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_THERMOSTAT_MODE (0x40)

Command = THERMOSTAT_MODE_GET (0x02)

4.108.4 Thermostat Mode Report Command

This command is used to report the mode from the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_MODE (0x40)

Command = THERMOSTAT_MODE_REPORT (0x03)

Reserved

Mode

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Mode (5 bits) This field is used to advertise the current thermostat mode at the receiving node. This field MUST be encoded according to Table 138. This field MUST NOT be set to 0x05 (RESUME(ON)) in this command.

4.108.5 Thermostat Mode Supported Get Command

This command is used to request the supported modes of a node.
The Thermostat Mode Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_THERMOSTAT_MODE (0x40)

Command = THERMOSTAT_MODE_SUPPORTED_GET (0x04)

4.108.6 Thermostat Mode Supported Report Command

This command is used to advertise which modes are supported by the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_MODE (0x40)

Command = THERMOSTAT_MODE_SUPPORTED_REPORT (0x05)

Bit Mask 1

...

Bit Mask N

Bit Mask (N bytes) This field advertises the Modes supported by the supporting node. A supporting node MUST support at least one mode. Modes and their minimum required version are described in Table 138. A node MUST NOT support a mode associated to a newer version than the version it supports.
 Bit 0 in Bit Mask 1 represents Mode = 0x00 (Off).  Bit 1 in Bit Mask 1 represents Mode = 0x01 (Heat). ...

If a Mode is supported, the corresponding bit MUST be set to `1'. If a Mode is not supported, the corresponding bit MUST be set to `0'. This length of this field MUST be set to the minimum amount of bytes which allows advertising all supported Modes.
4.109 Thermostat Mode Command Class, version 3
The Thermostat Mode Command Class is used to control which mode a thermostat operates.
4.109.1 Compatibility considerations
The Thermostat Mode Command Class, version 3 is backwards compatible with the Thermostat Mode Command Class, version 1-2. All commands and fields not mentioned in this version MUST remain unchanged from the Thermostat Mode Command Class, version 1-2. This version introduces:
 A new FULL POWER thermostat mode  MANUFACTURER SPECIFIC mode
4.109.2 Interoperability considerations
The MANUFACTURER SPECIFIC (proprietary) mode MUST NOT be supported by a node if the functionality can be provided using a thermostat mode defined in this command class. A node supporting the MANUFACTURER SPECIFIC mode MUST fulfill the following conditions:
 The node MUST support as a minimum two other thermostat modes (e.g. HEAT and COOL).  If the MANUFACTURER SPECIFIC mode functionality can in part be supported by one or more
defined thermostat mode in this command class, the node MUST also support these thermostat modes.  The MANUFACTURER SPECIFIC mode and all of its associated Manufacturer Data fields MUST be described in the product manual.

4.109.3 Thermostat Mode Set Command

This command is used to set the thermostat mode at the receiving node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_MODE (0x40)

Command = THERMOSTAT_MODE_SET (0x01)

No of Manufacturer Data fields

Mode

Manufacturer Data 1

...

Manufacturer Data N

No of Manufacturer Data fields (3 bits) This field is used to advertise the length in bytes of the Manufacturer Data field in the command. This field MUST be in the range 0..7. This field MUST be set to 0 if the Mode field is not set to 0x1F (MANUFACTURER SPECIFIC). This field MUST indicate the length in bytes of the Manufacturer Data field if the Mode field is set to 0x1F (MANUFACTURER SPECIFIC). Mode (5 bits) This field is used to set the thermostat mode at the receiving node. This field MUST be encoded according to Table 138. Manufacturer Data (N bytes) This field is used to provide a configuration for the MANUFACTURER SPECIFIC mode. Refer to 4.109.2 Interoperability considerations.

Mode (5 bits) 0x00 OFF 0x01 HEAT 0x02 COOL 0x03 AUTO
0x04 AUXILIARY
0x05 RESUME (ON) 0x06 FAN 0x07 FURNACE 0x08 DRY

Table 138, Thermostat Mode Set version 3::Mode encoding

Description

Requires own
Setpoint

This mode is used to switch off the thermostat. No

This mode is used to use activate heating when Yes the temperature is below the Heating (0x01) setpoint.

This mode is used to use activate cooling when Yes the temperature is above the Cooling (0x02) setpoint.

This mode is used to regulate the temperature No using heating and cooling when the temperature is outside the range defined by the Heating (0x01) and Cooling (0x02) setpoints.

This mode is used to use activate heating when No the temperature is below the Heating (0x01) setpoint, but using and auxiliary or emergency heat source.
For example , a heat pump is not efficient when the outside temperature is too low. The auxiliary heat mode may be activated to use a more efficient secondary heat source.

This mode is used resume to last active mode No (different than OFF 0x00).

This mode is used to activate fans only and

No

circulate air.

This mode is used to activate fans to circulate Yes air and heating or cooling will be activated to regulate the temperature at the Furnace (0x07) setpoint.

This mode is used to dehumidify and remove Yes moisture.
Heating or cooling will be activated to regulate the temperature at the Dry Air (0x08) setpoint.

CC Version 1 1 1 1
1
1 1 1
1

Mode (5 bits)

0x09 MOIST

0x0A

AUTO CHANGEOVER

0x0B ENERGY HEAT

0x0C ENERGY COOL
0x0D AWAY 0x0E Reserved 0x0F FULL POWER

Description

Requires own
Setpoint

This mode is used to humidify and add

Yes

moisture.

Heating or cooling will be activated to regulate the temperature at the Moist Air (0x09) setpoint.

This mode is used to regulate the temperature Yes at the Auto Changeover (0x0A) setpoint using heating and cooling.

This mode is used to use activate heating when Yes the temperature is below the Energy Save Heating (0x0B) setpoint.
The Energy Save Heating (0x0B) setpoint is usually lower than the Heating (0x01) setpoint in order to save energy

This mode is used to use activate cooling when Yes the temperature is below the Energy Save Cooling (0x0C) setpoint.
The Energy Save Cooling (0x0C) setpoint is usually higher than the Cooling (0x02) setpoint in order to save energy

This mode is used to regulate the temperature Yes using heating and cooling when the temperature is outside the range defined by the Away Heating (0x0D) and Away Cooling (0x0E) setpoints.

Reserved

-

This mode is used to regulate the temperature Yes at the Full Power (0x0F) setpoint using heating and cooling.
This mode is intended to use more energy and speed up the temperature regulation to the desired setpoint.

CC Version 1
1 2
2
2
3 3

MANUFACTURER

No

3

0x1F SPECIFIC

Reserved for vendor specific thermostat mode

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

4.109.4 Thermostat Mode Report Command

This command is used to report the current mode of the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_MODE (0x40)

Command = THERMOSTAT_MODE_REPORT (0x03)

No of Manufacturer Data fields

Mode

Manufacturer Data 1

...

Manufacturer Data N

No of Manufacturer Data fields (3 bits) This field is used to advertise the length in bytes of the Manufacturer Data field in the command. This field MUST be in the range 0..7. This field MUST be set to 0 if the Mode field is not set to 0x1F (MANUFACTURER SPECIFIC). This field MUST indicate the length in bytes of the Manufacturer Data field if the Mode field is set to 0x1F (MANUFACTURER SPECIFIC). Mode (5 bits) This field is used to advertise the current thermostat mode at the receiving node. This field MUST be encoded according to Table 138. This field MUST NOT be set to 0x05 (RESUME(ON)) in this command. Manufacturer Data (N bytes) This field is used to advertise the current configuration for the MANUFACTURER SPECIFIC mode. Refer to 4.109.2 Interoperability considerations.

4.110 Thermostat Operating State Command Class, version 1

The Thermostat Operating State Command Class is used to obtain the operating state of the thermostat.

4.110.1 Thermostat Operating State Get Command

This command is used to request the operating state.
The Thermostat Operating State Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_THERMOSTAT_OPERATING_STATE

Command = THERMOSTAT_OPERATING_STATE_GET

4.110.2 Thermostat Operating State Report Command

The Thermostat Operating State Report Command is used to report the operating state.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_OPERATING_STATE

Command = THERMOSTAT_OPERATING_STATE_REPORT

Reserved

Operating State

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Operating State (4 bits) The thermostat operating state identifier MUST comply with Table 139.
4.111 Thermostat Operating State Command Class, version 2 The Thermostat Operating State Command Class is used to obtain the operating state of the thermostat as well as logged operating runtime times of thermostat. 4.111.1 Thermostat Operating State Get This command gets the operating state of the thermostat. The Thermostat Operating State Report Command MUST be returned in response to this command. This command MUST NOT be issued via multicast addressing. 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_THERMOSTAT_OPERATING_STATE

Command = THERMOSTAT_OPERATING_STATE_GET

4.111.2 Thermostat Operating State Report

This command is used to report the operating state.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_OPERATING_STATE

Command = THERMOSTAT_OPERATING_STATE_REPORT

Operating State

Operating State (8 bits) The thermostat operating state identifier MUST be set according to Table 139.
Table 139, Thermostat Operating State Report version 2::Operating State encoding

Operating State

Description

Version

0x00

Idle

1

0x01

Heating

1

0x02

Cooling

1

0x03

Fan Only

1

0x04

Pending Heat. Short cycle prevention feature used in heat pump

1

applications to protect the compressor.

0x05

Pending Cool. Short cycle prevention feature used in heat pump

1

applications to protect the compressor.

0x06

Vent/Economizer.

1

0x07

Aux Heating

2

0x08

2nd Stage Heating

2

0x09

2nd Stage Cooling

2

0x0A

2nd Stage Aux Heat

2

0x0B

3rd Stage Aux Heat

2

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

4.111.3 Thermostat Operating State Logging Supported Get

This command is used to request the operating state logging supported by the device.
The Thermostat Operating State Logging Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_THERMOSTAT_OPERATING_STATE

Command = THERMOSTAT_OPERATING_STATE_LOGGING_SUPPORTED_GET

4.111.4 Thermostat Operating State Logging Supported Report

This command is used to report the operating state logging supported by the device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_OPERATING_STATE

Command = THERMOSTAT_OPERATING_LOGGING_SUPPORTED_REPORT

Bit Mask 1

...

Bit Mask N

Bit Mask (N bytes)
The Bit Mask fields describe the operating state logging supported by the device.
 Bit 0 in Bit Mask 1 is not allocated to any Operating State and MUST beset to zero.  Bit 1 in Bit Mask 1 indicates if Operating State = 1 (Heating) log is supported.  Bit 2 in Bit Mask 1 indicates if Operating State = 2 (Cooling) is supported. ...
If the Operating State log is supported the bit MUST be set to 1. If the Operating State log is not supported the bit MUST be set to 0. It is only necessary to send the Bit Mask fields from 1 and up to the one indicating the last supported operating state log. The number of Bit Mask fields transmitted MUST be determined from the length field in the frame.

4.111.5 Thermostat Operating State Logging Get

This command is used to request the operating state logging supported by the device.
The Thermostat Operating State Logging Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_THERMOSTAT_OPERATING_STATE

Command = THERMOSTAT_OPERATING_STATE_LOGGING_GET

Bit Mask 1

...

Bit Mask N

Bit Mask (N bytes)
The Bit Mask fields describe the operating state log types to be requested.  Bit 0 in Bit Mask 1 is not allocated to any Operating State and MUST be set to zero.  Bit 1 in Bit Mask 1 indicates if Operating State = 1 (Heating) log is supported.  Bit 2 in Bit Mask 1 indicates if Operating State = 2 (Cooling) is supported. ...
If the Operating State log is supported the bit MUST be set to 1. If the Operating State log is not supported the bit MUST be set to 0. It is only necessary to send the Bit Mask fields from 1 and up to the one indicating the last requested operating state log type. The number of Bit Mask fields transmitted MUST be determined from the length field in the frame.
4.111.6 Thermostat Operating State Logging Report
This command is used to report the operating state logged for requested operating states.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_OPERATING_STATE

Command = THERMOSTAT_OPERATING_STATE_LOGGING_REPORT

Reports to Follow

Reserved

Operating State Log Type 1

Usage Today (Hours)

Usage Today (Minutes)

Usage Yesterday (Hours)

Usage Yesterday (Minutes)

...

Reserved

Operating State Log Type N

Usage Today (Hours)

Usage Today (Minutes)

Usage Yesterday (Hours)

Usage Yesterday (Minutes)

Reports to Follow (8 bits) This value indicates how many report frames left before transferring all of the requested thermostat operating state logs. Operating State Log Type (N * 4 bits) The Operating State Log Type indicates the operating state type to be requested. Usage Today Hours (8 bits) The number of hours (00:24) the thermostat has been in the indicated operating state since 12:00 am of the current day. Usage Today Minutes (8 bits) The number of minutes (00-59) the thermostat has been in the indicated operating state since 12:00 am of the current day. Usage Yesterday Hours (8 bits) The number of hours (00:24) the thermostat had been in the indicated operating state between 12:00 am and 11:59pm of the previous day. Usage Yesterday Hours (8 bits) The number of minutes (00-59) the thermostat had been in the indicated operating state between 12:00 am and 11:59pm of the previous day.

4.112 Thermostat Setback Command Class, version 1

The Thermostat Setback Command Class is used to change the current state of a non-schedule setback thermostat.

4.112.1 Thermostat Setback Set Command

This command is used to set the state of the thermostat.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_SETBACK

Command = THERMOSTAT_SETBACK_SET

Reserved

Setback Type

Setback State

Setback Type (2 bits) The setback type field MUST comply with Table 140
Table 140, Thermostat Setback Set::Setback Type encoding

Value

Description

0x00 No override 0x01 Temporary override 0x02 Permanent override 0x03 Reserved

Note:

The temporary override provides an opportunity to implement a timer or equivalent in the device. A temporary override will, if a timer is implemented, be terminated by the timer. If no timer is implemented the temporary override MUST act as permanent override. If the temporary override is implemented it MUST be documented in the user's manual.

Setback State (8 bits)

The Setback State MUST comply with Table 141

Table 141, Thermostat Setback Set::Setback State encoding

Setback State

Description

Hexadecimal

Decimal

0x80

-128

...

...

0xFF

-1

0x00

0

0x01

1

...

...

0x78

120

0x79

121

0x7A

122

The setback in 1/10 degrees (Kelvin)
Example: 0 = 0 degrees setback 1 = 0.1 degrees is added to the setpoint 2 = 0.2 degrees is added to the setpoint -1 = 0.1 degrees is subtracted from the setpoint -2 = 0.2 degrees is subtracted from the setpoint
Frost Protection
Energy Saving Mode

0x7B ­ 0x7E 123 ­ 126

Reserved

0x7F

127

Unused State

Reserved values MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.

When converting between Celsius and Fahrenheit proper rounding MUST be applied with at least two decimals in the internal calculations of a device to avoid rounding errors.

Note:

The implementation of Energy Saving Mode is manufacturer specific, and MUST be documented in the User's Manual.

If the device is set to an unreachable state, the device SHOULD assume the closest possible state.

4.112.2 Thermostat Setback Get Command

This command is used to request the current state of the thermostat.
The Thermostat Setback Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_THERMOSTAT_SETBACK

Command = THERMOSTAT_SETBACK_GET

4.112.3 Thermostat Setback Report Command

This command is used to report the current state of the thermostat.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_SETBACK

Command = THERMOSTAT_SETBACK_REPORT

Reserved

Setback Type

Setback State

Setback Type (2 bits) Refer to description under the Thermostat Setback Set Command Setback State (8 bits) Refer to description under the Thermostat Setback Set Command.
4.113 Thermostat Setpoint Command Class, version 1-2
The Thermostat Setpoint Command Class is used to configure setpoints for the modes supported by a thermostat.
4.113.1 Interoperability Considerations
It has been found that early implementations of this Command Class specification apply two noninteroperable interpretations of the bit mask advertising the support for specific Setpoint Types. As a consequence, one may find thermostat products and controller products in the marketplace which implement either of the two bit mask interpretations found in Table 142. The notation x.y indicates Bit Mask byte x, bit y. Implementations of Thermostat Setpoint Command Class, version 1-2 MUST comply with Interpretation A.

4.113.2 Thermostat Setpoint Set Command

This command is used to specify the target value for the specified Setpoint Type at a supporting node.
A supporting node MUST support the same format of Precision, Scale and Size fields values as it sends in the Thermostat Setpoint Supported Report Command.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_SETPOINT (0x43)

Command = THERMOSTAT_SETPOINT_SET (0x01)

Reserved

Setpoint Type

Precision

Scale

Size

Value 1

..

Value N

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Setpoint Type (4 bits) This field is used to specify the setpoint to be set at the receiving node . The value MUST comply with Table 143. If a non-supported setpoint type is specified, a receiving node MUST ignore the command. Precision (3 bits) This field is used to indicate how many decimal places are included in the Value field. For example, the Value field set to 1025 with the Precision field set to 2 MUST be interpreted as 10.25. Scale (2 bits) This field is used to specify what temperature scale is used for the setpoint value. The field MUST be encoded according to Table 144. Size (3 bits) This field is used to indicate the length in bytes of the Value field. This field MUST be set to 1, 2 or 4. Value (N bytes) This field is used to advertise the actual setpoint value to be set at the receiving node.

The length of this field MUST be according to the Size field value. The first byte MUST be the most significant byte. This field MUST be encoded using signed representation and comply with Table 10, Signed field encoding (two's complement representation).

4.113.3 Thermostat Setpoint Get Command

This command is used to request the target value for a given setpoint type that is currently configured at a supporting node.
The Thermostat Setpoint Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing.
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_THERMOSTAT_SETPOINT (0x43)

Command = THERMOSTAT_SETPOINT_GET (0x02)

Reserved

Setpoint Type

Reserved
This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Setpoint Type (4 bits)
This field is used to specify which setpoint is requested. The value MUST comply with Table 143.
A supporting node receving a supported Setpoint Type value MUST be return the same value in the Thermostat Setpoint Report Command.
A supporting node receiving a non-supported Setpoint Type value MUST return the value 0x00 (N/A) in the Thermostat Setpoint Report Command.

4.113.4 Thermostat Setpoint Report Command

This command is used to advertise the target value for a given setpoint type that is currently configured at the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_SETPOINT (0x43)

Command = THERMOSTAT_SETPOINT_REPORT (0x03)

Reserved

Setpoint Type

Precision

Scale

Size

Value 1

..

Value N

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Setpoint Type (4 bits) This field is used to advertise the setpoint advertised by the sending node. The value MUST comply with Table 143. If this field is set to 0x00 (N/A), it is RECOMMENDED to set the Size field to 1 and the Value field to 0. Precision (3 bits) This field is used to indicate how many decimal places are included in the Value field. For example, the Value field set to 1025 with the Precision field set to 2 MUST be interpreted as 10.25. Scale (2 bits) This field is used to specify what temperature scale is used for the setpoint value. The field MUST be encoded according to Table 144. Size (3 bits) This field is used to indicate the length in bytes of the Value field. This field MUST be set to 1, 2 or 4.

Value (N bytes) This field is used to advertise the actual setpoint value set at the sending node. The length of this field MUST be according to the Size field value. The first byte MUST be the most significant byte. This field MUST be encoded using signed representation and comply with Table 10, Signed field encoding (two's complement representation).

4.113.5 Thermostat Setpoint Supported Get Command

This command is used to query the supported setpoint types.
The Thermostat Setpoint Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_THERMOSTAT_SETPOINT (0x43)

Command = THERMOSTAT_SETPOINT_SUPPORTED_GET (0x04)

4.113.6 Thermostat Setpoint Supported Report Command

This command is used to advertise the supported setpoint types. This command is known to cause interoperability issues. Refer to section 4.113.1.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_SETPOINT (0x43)

Command = THERMOSTAT_SETPOINT_SUPPORTED_REPORT (0x05)

Bit Mask 1

...

Bit Mask N

Bit Mask (N bytes)
This field advertises the supported Setpoint Types at the sending node.
A supporting node MUST support at least one setpoint type. Setpoint types and their minimum required version are described in Table 143. A node MUST NOT support a setpoint type associated to a newer version than the version it supports.
This field MUST be encoded according to Table 142, interpretation A:
 Bit 0 in Bit Mask 1 represents Mode = 0x00 (Off).  Bit 1 in Bit Mask 1 represents Mode = 0x01 (Heat).  Bit 2 in Bit Mask 1 represents Mode = 0x02 (Cooling).  Bit 3 in Bit Mask 1 represents Mode = 0x07 (Furnace). ...
If a Setpoint Type is supported, the corresponding bit MUST be set to `1'.
If a Setpoint Type is not supported, the corresponding bit MUST be set to `0'.
This length of this field MUST be set to the minimum amount of bytes which allows advertising all supported Setpoint Types.

4.114 Thermostat Setpoint Command Class, version 3
The Thermostat Setpoint Command Class is used to configure setpoints for the modes supported by a thermostat.
4.114.1 Compatibility considerations
The Thermostat Setpoint Command Class, version 3 is backwards compatible with the Thermostat Setpoint Command Class, version 1-2. This version introduces:
 Setpoint capability discovery (allowed value range).  New setpoint types.

4.114.2 Interoperability Considerations
It has been found that early implementations of this Command Class specification apply two noninteroperable interpretations of the bit mask advertising the support for specific Setpoint Types.
As a consequence, one may find thermostat products and controller products in the marketplace which implement either of the two bit mask interpretations found in Table 142. The notation x.y indicates Bit Mask byte x, bit y.
Implementations of Thermostat Setpoint Command Class, version 3 MUST comply with Interpretation A.

Support Bit Mask, Interpretation A
1.0 1.1 1.2
1.3 1.4 1.5 1.6 1.7 2.0 2.1 2.2 2.3

Table 142, Thermostat Setpoint Types Bit Mask encoding

Support Bit Mask, Interpretation B
1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 2.0 2.1 2.2
2.3
2.4
2.5
2.6
2.7

Setpoint Type Identifier 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A
0x0B
0x0C
0x0D
0x0E
0x0F

Description Version

N/A

-

Heating

1

Cooling

1

N/A

-

N/A

-

N/A

-

N/A

-

Furnace

1

Dry Air

1

Moist Air

1

Auto

1

changeover

Energy Save

2

Heating

Energy Save

2

Cooling

Away

2

Heating

Away

3

Cooling

Full Power

3

All other bits are reserved and MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node.

4.114.3 Thermostat Setpoint Set Command

This command is used to specify the target value for the specified Setpoint Type at a supporting node.
A supporting node MUST support the same format of Precision, Scale and Size fields values as it sends in the Thermostat Setpoint Supported Report Command or Thermostat Setpoint Capabilities Report Command.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_SETPOINT (0x43)

Command = THERMOSTAT_SETPOINT_SET (0x01)

Reserved Precision

Scale Value 1
.. Value N

Setpoint Type Size

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Setpoint Type (4 bits) This field is used to specify the setpoint to be set at the receiving node. The value MUST comply with Table 143.
Table 143, Thermostat Setpoint Set::Setpoint Types

Value Description

CC Version

0x00

N/A

1

0x01

Heating

1

0x02

Cooling

1

0x03

N/A - reserved

-

0x04

N/A- reserved

-

0x05

N/A- reserved

-

0x06

N/A- reserved

-

0x07

Furnace

1

0x08

Dry Air

1

0x09

Moist Air

1

0x0A Auto Changeover

1

0x0B Energy Save Heating

2

0x0C

Energy Save Cooling

2

0x0D Away Heating

2

0x0E

Away Cooling

3

0x0F

Full Power

3

Values marked as not applicable (N/A) MUST be ignored by a receiving node. All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
Precision (3 bits)

This field is used to specify how many decimal places are included in the Value field. For example, the decimal value 1025 with precision 2 MUST be interpreted as 10.25. Scale (2 bits) This field is used to specify what temperature scale is used for the setpoint value. The field MUST be encoded according to Table 144.
Table 144, Thermostat Setpoint Set::Scale encoding
Value Scale used in Value field 0 Celcius 1 Fahrenheit

All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node. Size (3 bits) This field is used to indicate the length in bytes of the Value field. This field MUST be set to 1, 2 or 4. Value (N bytes) This field is used to advertise the actual setpoint value to be set at the receiving node. The length of this field MUST be according to the Size field value. The first byte MUST be the most significant byte. This field MUST be encoded using signed representation and comply with Table 10, Signed field encoding (two's complement representation).

4.114.4 Thermostat Setpoint Get Command

This command is used to request the target value for a given setpoint type that is currently configured at a supporting node.
The Thermostat Setpoint Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing.
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_THERMOSTAT_SETPOINT (0x43)

Command = THERMOSTAT_SETPOINT_GET (0x02)

Reserved

Setpoint Type

Reserved
This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Setpoint Type (4 bits)
This field is used to specify which setpoint is requested. The value MUST comply with Table 143.
A supporting node receving a supported Setpoint Type value MUST be return the same value in the Thermostat Setpoint Report Command.
A supporting node receiving a non-supported Setpoint Type value MUST return the value 0x00 (N/A) in the Thermostat Setpoint Report Command.

4.114.5 Thermostat Setpoint Report Command

This command is used to advertise the value of a setpoint type.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_SETPOINT (0x43)

Command = THERMOSTAT_SETPOINT_REPORT (0x03)

Reserved

Setpoint Type

Precision

Scale

Size

Value 1

..

Value N

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Setpoint Type (4 bits) This field is used to advertise the setpoint advertised by the sending node. The value MUST comply with Table 143. If this field is set to 0x00 (N/A), it is RECOMMENDED to set the Size field to 1 and the Value field to 0. Precision (3 bits) This field is used to indicate how many decimal places are included in the Value field. For example, the Value field set to 1025 with the Precision field set to 2 MUST be interpreted as 10.25. Scale (2 bits) This field is used to specify what temperature scale is used for the setpoint value. The field MUST be encoded according to Table 144. Size (3 bits) This field is used to indicate the length in bytes of the Value field. This field MUST be set to 1, 2 or 4.

Value (N bytes) This field is used to advertise the actual setpoint value set at the sending node. The length of this field MUST be according to the Size field value. The first byte MUST be the most significant byte. This field MUST be encoded using signed representation and comply with Table 10, Signed field encoding (two's complement representation). A receiving node MUST ignore values outside the range advertised in the Thermostat Setpoint Capabilities Report Command for the actual Setpoint type.

4.114.6 Thermostat Setpoint Supported Get Command

This command is used to query the supported setpoint types.
The Thermostat Setpoint Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing.
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_THERMOSTAT_SETPOINT (0x43)

Command = THERMOSTAT_SETPOINT_SUPPORTED_GET (0x04)

4.114.7 Thermostat Setpoint Supported Report Command

This command is used to advertise the supported setpoint types. This command is known to cause interoperability issues. Refer to section 4.114.2.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_SETPOINT (0x43)

Command = THERMOSTAT_SETPOINT_SUPPORTED_REPORT (0x05)

Bit Mask 1

...

Bit Mask N

Bit Mask (N bytes)
This field advertises the supported Setpoint Types at the sending node.
A supporting node MUST support at least one setpoint type. Setpoint types and their minimum required version are described in Table 143. A node MUST NOT support a setpoint type associated to a newer version than the version it supports.
This field MUST be encoded according to Table 142, interpretation A:
 Bit 0 in Bit Mask 1 represents Mode = 0x00 (Off).  Bit 1 in Bit Mask 1 represents Mode = 0x01 (Heat).  Bit 2 in Bit Mask 1 represents Mode = 0x02 (Cooling).  Bit 3 in Bit Mask 1 represents Mode = 0x07 (Furnace). ...
If a Setpoint Type is supported, the corresponding bit MUST be set to `1'.
If a Setpoint Type is not supported, the corresponding bit MUST be set to `0'.
This length of this field MUST be set to the minimum amount of bytes which allows advertising all supported Setpoint Types.

4.114.8 Thermostat Setpoint Capabilities Get Command

This command is used request the supported setpoint value range for an actual Setpoint Type.
The Thermostat Setpoint Capabilities Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_THERMOSTAT_SETPOINT (0x43)

Command = THERMOSTAT_SETPOINT_CAPABILITIES_GET (0x09)

Reserved

Setpoint Type

Reserved
This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Setpoint Type (4 bits)
This field is used to specify which setpoint is requested. The value MUST comply with Table 143.
A supporting node receving a supported Setpoint Type value MUST be return the same value in the Thermostat Setpoint Capabilities Report Command.
A supporting node receiving a non-supported Setpoint Type value MUST return the value 0x00 (N/A) in the Thermostat Setpoint Capabilities Report Command.

4.114.9 Thermostat Setpoint Capabilities Report Command

This command is used advertise the supported setpoint value range for an actual Setpoint Type.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_THERMOSTAT_SETPOINT (0x43)

Command = THERMOSTAT_SETPOINT_CAPABILITIES_REPORT (0x09)

Reserved

Setpoint Type

Min Value Precision Min Value Scale

Min Value Size

Min Value 1

..

Min Value N

Max Value Precision Max Value Scale

Max Value Size

Max Value 1

..

Max Value N

Setpoint Type (4 bits)
This field is used to advertise the setpoint advertised by the sending node. The value MUST comply with Table 143.
If this field is set to 0x00 (N/A), it is RECOMMENDED to set the Min Value Size and Max Value Size fields to 1 and the Min Value and Max Value fields to 0.
Min Value Precision (3 bits)
This field is used to indicate how many decimal places are included in the Min Value field. For example, the Min Value field set to 1025 with the Min Value Precision field set to 2 MUST be interpreted as 10.25.
Min Value Scale (2 bits)
This field is used to specify what temperature scale is used for the setpoint Min Value field. The field MUST be encoded according to Table 144.
Min Value Size (3 bits)
This field is used to indicate the length in bytes of the Min Value field. This field MUST be set to 1, 2 or 4.

Min Value (N bytes)
This field is used to advertise the minimum value that is supported for the actual setpoint at the sending node.
The length of this field MUST be according to the Min Value Size field value.
The first byte MUST be the most significant byte.
This field MUST be encoded using signed representation and comply with Table 10, Signed field encoding (two's complement representation).
Max Value Precision (3 bits)
This field is used to indicate how many decimal places are included in the Max Value field. For example, the Max Value field set to 1025 with the Max Value Precision field set to 2 MUST be interpreted as 10.25.
Max Value Scale (2 bits)
This field is used to specify what temperature scale is used for the setpoint Max Value field. The field MUST be encoded according to Table 144 and this field MUST be set to the same value as the Min Value Scale field
Max Value Size (3 bits)
This field is used to indicate the length in bytes of the Max Value field. This field MUST be set to 1, 2 or 4.
Max Value (N bytes)
This field is used to advertise the maximum value that is supported for the actual setpoint at the sending node.
The length of this field MUST be according to the Max Value Size field value.
The first byte MUST be the most significant byte.
This field MUST be encoded using signed representation and comply with Table 10, Signed field encoding (two's complement representation).
This field MUST be set to a value greater than the Min Value field.

4.115 User Code Command Class, version 1

The User Code Command Class is used to manage User Codes in access control systems.

4.115.1 Interoperability considerations

CC:0063.01.00.32.001

A node supporting the Door Lock Command Class SHOULD reflect user code inputs in the door lock status when relevant. (e.g. when the door becomes unlocked by a User Code input, the Door Lock Mode is also updated to unlocked)
This Command Class can be used in conjunction with Schedule Entry Lock Command Class in order to schedule access for users.

CC:0063.01.00.31.001 CC:0063.01.00.32.002

A node receiving a User Code Get Command MUST advertise what User Code is set in the User Code Report Command.
It has been found that some version 1 nodes wrongfully report obfuscated User Codes in the User Code Report (e.g. `******').
A controlling node SHOULD understand that a code has been set correctly but cannot be read back with such nodes.

4.115.2 User Code Set Command

This command is used to set a User Code at the receiving node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_USER_CODE (0x63)

Command = USER_CODE_SET (0x01)

User Identifier

User ID Status

User Code 1

...

User Code N

CC:0063.01.01.11.001 CC:0063.01.01.13.001 CC:0063.01.01.11.002 CC:0063.01.01.12.001 CC:0063.01.01.11.003
CC:0063.01.01.11.004 CC:0063.01.01.12.002

User Identifier (8 bits) This field is used to specify the actual User Identifier. The implemented User Identifier values MUST be in a sequence starting from 1, i.e. a node supporting 10 User Identifiers MUST accept values in the range 1..10. A receiving node MAY ignore this field if it only supports one User Code. The value 0 MUST indicate that the receiving node MUST set the User Code and User Status for all supported User Identifiers. The value 0 SHOULD be used only with User ID Status set to 0x00. If a non-existing User Identifier (higher than the advertised supported users number in the Users Number Report Command) is specified in this command, a receiving node MUST ignore the command User ID Status (8 bits) The User ID Status field indicates the status of the User Identifier. This field MUST comply with Table 145. The User ID Status 0xFE SHOULD NOT be used in this command.

Table 145, User Code Set::User ID Status encoding

Value Description

0x00 Available (not set)

0x01 Occupied

0x02 Reserved by administrator

CC:0063.01.01.11.005

0xFE Status not available
All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.

User Code (N bytes)

This field is used to advertise the User Code to be set for the User Identifier.

CC:0063.01.01.11.006 The length of this field MUST be between 4 and 10 bytes. The field's length MUST be determined using the length of the frame.

CC:0063.01.01.11.007 Each byte in this field MUST be a digit encoded with ASCII representation (from 0x30 to 0x39).

CC:0063.01.01.11.008 A node receiving an invalid User Code MUST ignore the command.

CC:0063.01.01.11.009 The User Code field MUST be set to 0x00000000 (4 bytes) when User ID Status is equal to 0x00.

4.115.3 User Code Get Command

This command is used to request the User Code of a specific User Identifier. CC:0063.01.02.11.001 The User Code Report Command MUST be returned in response to this command.

CC:0063.01.02.11.002 CC:0063.01.02.11.003

This command MUST NOT be issued via multicast addressing. 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_USER_CODE (0x63)

Command = USER_CODE_GET (0x02)

User Identifier

CC:0063.01.02.11.004 CC:0063.01.02.12.001

User Identifier (8 bits) This field is used to specify the requested User Identifier. The value 0 MUST NOT be specified in the User Code Get Command. If the specified User Identifier is not supported, a responding node SHOULD return a User Code Report Command with the User ID Status set to 0xFE "Status not available".

4.115.4 User Code Report Command

This command is used to advertise a User Code and its current status.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_USER_CODE (0x63)

Command = USER_CODE_REPORT (0x03)

User Identifier

User ID Status

User Code 1

...

User Code N

For fields' description, refer to 4.115.2 User Code Set Command.

4.115.5 Users Number Get Command

CC:0063.01.04.11.001
CC:0063.01.04.11.002 CC:0063.01.04.11.003

This command is used to request the number of user codes supported by the receiving node.
The Users Number Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing. 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_USER_CODE (0x63)

Command = USERS_NUMBER_GET (0x04)

4.115.6 Users Number Report Command This command is used to report the number of User Codes supported by the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_USER_CODE (0x63)

Command = USERS_NUMBER_REPORT (0x05)

Supported Users

Supported Users (8 bits)
This field is used to advertise the number of supported User Codes.
CC:0063.01.05.11.001 This field MUST be set to the total amount of supported User Codes. The value `0' MUST indicate that no User Code is supported by the node.
4.116 User Code Command Class, version 2
The User Code Command Class is used to manage user codes in access control systems. User Code Command Class, version 2 extends the number of supported users to 65535, introduces new User ID Statuses, keypad modes and a Master Code functionality.
4.116.1 Terminology
User Codes are configured on a supporting node for different User Identifiers. Each User Code is associated to one User Identifier. An actual end user with several User Codes will also have several User Identifiers (one for each User Code). The entry of a user code can trigger different outcomes, such as opening a door, triggering a notification or ignoring the code. This can be configured with the User ID status. A supporting node may support one or several Keypad Modes. They allow configuring the keypad to accept, ignore or treat differently keypad input. A node may support the Master Code functionality. The Master Code is a separate unique code used to get access to the node's administrator functionalities, such as the network settings and/or User Code management. A node may require the Master Code to be always set and in this case advertise that the Master Code can be modified but cannot be deactivated using Z-Wave. A node may support the User Code Checksum functionality. A controlling node can request a checksum representing all the user code set at the supporting node to ensure that the user code databases are synchronized.

CC:0063.02.00.21.001
CC:0063.02.00.21.002 CC:0063.02.00.21.003 CC:0063.02.00.21.004 CC:0063.02.00.21.005

4.116.2 Compatibility considerations
The User Code Command Class, version 2 is backwards compatible with the User Code Command Class, version 1.
All commands and fields not mentioned in this version MUST remain unchanged from the User Code Command Class, version 1.
The Extended User Code Set Command permits to configure several user codes per command. The following command has been extended to match the extended number of supported users:
 Users Number Report Command
The following commands are also introduced to address the extended range of users:
 Extended User Code Set Command  Extended User Code Get Command  Extended User Code Report Command
Commands for advertising node capabilities, configuring the keypad mode and the Master Code are introduced:
 User Code Capabilities Get Command  User Code Capabilities Report Command  User Code Keypad Mode Get Command  User Code Keypad Mode Report Command  Master Code Set Command  Master Code Get Command  Master Code Report Command
User Code Command Class, version 2 does not extend the existing User Code Set/Get/Report commands from version 1. The first 255 users that can be addressed by the User Code Set/Get Commands MUST be identical to the first 255 users that can be addressed by the (version 2) Extended User Code Set/Get Commands.
Addressing User Codes for extended User Identifiers (in the range 256..65535) MUST be done with the (version 2) Extended User Code Set/Get Commands.
A version 1 node MAY advertise support for 0 User Codes in the Users Number Report Command. A version 2 node MUST advertise support for at least 1 User Code.
The implemented User Identifier values MUST be in a sequence starting from 1, i.e. a node supporting 10 Users MUST accept User Identifier values in the range 1..10. However, a controlling node MAY assign user codes non-continuously in the range of supported User Identifier.

CC:0063.02.00.31.001 CC:0063.02.00.31.002 CC:0063.02.00.31.003 CC:0063.02.00.33.001
CC:0063.02.00.31.004
CC:0063.02.00.42.001
CC:0063.02.00.42.002 CC:0063.02.00.42.003 CC:0063.02.00.41.001

4.116.3 Interoperability considerations
This Command Class can be used in conjunction with the Entry Control Command Class to report User Code input to a controlling application.
A node supporting the "Messaging" User ID Status MUST support the Entry Control Command Class, version 1 or newer or the Notification Command Class, version 8 or newer.
A node supporting this Command Class MUST support the Door Lock Command Class and SHOULD support the Timed Operation Type.
A supporting node MUST reflect user code inputs in the door lock status when relevant. (e.g. when the door becomes unsecured by a User Code input, the Door Lock Operation mode is updated to unsecure with a timeout)
A node supporting this Command Class MAY have an Association group issuing the corresponding Door Lock Operation Set Commands when valid User Codes are input in order to control several door locks simultaneously.
This Command Class can be used in conjunction with Schedule Entry Lock Command Class to schedule access for users.
A node receiving a User Code Get Command MUST advertise what User Code is set in the User Code Report Command.
4.116.4 Security considerations
A node identifies users on the background of User Code entry alone without User Identifier, the following security measures should be taken into consideration:
 Users SHOULD NOT be allowed to choose their own user codes. Users tend to choose codes such as birthdates and therefore the risk of having duplicate codes is high. A user may learn about another User Code when trying to set his own User Code and receiving a duplicate/rejection message. In such a case, User Codes SHOULD be generated randomly by the administrating company, if applicable.
 If a node is configured with a large number of User Codes: (e.g. 500), it is RECOMMENDED to increase the number of digits in each and every user code, making is less likely to randomly guess an assigned user code.
 It is RECOMMENDED to implement mechanisms preventing brute force attacks, such as exponential increasing waiting time between attempts or lock out after a number of failed attempts.
If a node allows updating User Codes or User ID Statuses locally via a user interface using a Master Code, the supporting node MUST issue User Code Report Commands via the Lifeline to advertise local updates.

4.116.5 User Code Set Command

This command is used to set a User Code at the receiving node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_USER_CODE (0x63)

Command = USER_CODE_SET (0x01)

User Identifier

User ID Status

User Code 1

...

User Code N

CC:0063.02.01.11.001
CC:0063.02.01.11.005 CC:0063.02.01.11.006
CC:0063.02.01.11.002 CC:0063.02.01.11.003 CC:0063.02.01.12.001 CC:0063.02.01.11.004

All fields not described below MUST remain unchanged from version 1.
User ID Status (8 bits)
The User ID Status field indicates the state of the User Identifier.
This field MUST comply with Table 147, however the requirements in Table 146 MUST take precedence over the requirements in Table 147.
If a non-supported User ID Status is specified, a receiving node MUST ignore the command.
User Identifier (8 bits)
This field is used to specify the actual User Identifier.
The implemented User Identifier values MUST be in a sequence starting from 1, i.e. a node supporting 10 User Codes MUST accept values in the range 1..10.
The value 0 MUST indicate that the receiving node MUST set the User Code and User Status for all supported user identifiers less than 256. A receiving node supporting the User Code Command Class, version 2 MUST NOT apply the status to users from the extended range (User ID > 255) when this field is set to 0. The value 0 SHOULD be used only with User ID Status set to 0x00.
If a non-existing User Identifier (higher than the advertised supported users number in the Users Number Report Command) is specified in this command, a receiving node MUST ignore the command

4.116.6 Users Number Report Command

This command is used to report the number of users that the sending node supports.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_USER_CODE (0x63)

Command = USERS_NUMBER_REPORT (0x05)

Supported Users

Extended Supported Users 1 (MSB)

Extended Supported Users 2 (LSB)

CC:0063.02.05.11.001 CC:0063.02.05.11.002
CC:0063.02.05.11.003

Supported Users (8 bits) This field is used to advertise the number of supported users for version 1 controlling nodes. This field MUST be in the range 1..255. If the node implements more than 255 users, this field MUST be set to 255. If the node implements 255 users or less, this field MUST be set to the total amount of supported users. Extended Supported Users (16 bits) This field is used to advertise the number of supported users for version 2 controlling nodes. If the node supports less than 256 users, this field MUST be identical to the Supported Users field. If the node implements 256 users or more, this field MUST be set to the total amount of supported users.

4.116.7 User Code Capabilities Get Command

CC:0063.02.06.11.001 CC:0063.02.06.11.002 CC:0063.02.06.11.003

This command is used to request the User Code capabilities of a node.
The User Code Capabilities Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing.
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_USER_CODE (0x63)

Command = USER_CODE_CAPABILITIES_GET (0x06)

4.116.8 User Code Capabilities Report Command

This command is used to advertise User Code capabilities.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_USER_CODE (0x63)

Command = USER_CODE_CAPABILITIES_REPORT (0x07)

MC

MCD

Support support Res

Supported User ID Status Bit Mask Length

Supported User ID Status Bit Mask 1

...

Supported User ID Status Bit Mask N

UCC

MUCR MUCS

Support Support Support Supported Keypad Modes Bit Mask Length

Supported Keypad Modes Bit Mask 1

...

Supported Keypad Modes Bit Mask M

Reserved

Supported Keys Bit Mask Length

Supported Keys Bit Mask 1

...

Supported Keys Bit Mask L

Reserved / Res

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

MC (Master Code) Support (1 bit)

This field indicates if the sending node supports the Master Code functionality.

CC:0063.02.07.11.001 The value 1 MUST indicate that the Master Code functionality is supported. The value 0 MUST indicate that the Master Code functionality is not supported.

MCD (Master Code Deactivation) Support (1 bit)

This field indicates if the sending node supports reporting the Master Code can be deactivated using a Master Code Set Command.

CC:0063.02.07.11.002

The value 1 MUST indicate that the Master Code may be deactivated by issuing a Master Code Set with the length field set to 0. The value 0 MUST indicate that the Master Code cannot be deactivated and Master Code Set commands with the length field set to 0 will be ignored.

CC:0063.02.07.11.003 This field MUST be set to 0 by a sending node if the MC Support field is set to 0.

CC:0063.02.07.11.004
CC:0063.02.07.11.005
CC:0063.02.07.11.006 CC:0063.02.07.11.007 CC:0063.02.07.11.008 CC:0063.02.07.11.009
CC:0063.02.07.11.00A CC:0063.02.07.11.00B CC:0063.02.07.11.00C CC:0063.02.07.11.00D

UCC (User Code Checksum) Support (1 bit)
This field indicates if the sending node supports the User Code Checksum functionality.
The value 1 MUST indicate that the User Code Checksum functionality is supported. The value 0 MUST indicate that the User Code Checksum functionality is not supported.
MUCR (Multiple User Code Report) Support (1 bit)
This field indicates if the sending node supports reporting the Multiple User Codes at once in a single Extended User Code Report Command. This functionality should be supported by node supporting large amount of User Codes.
The value 1 MUST indicate that the Multiple User Code Report functionality is supported. The value 0 MUST indicate that the Multiple User Code Report functionality is not supported.
MUCS (Multiple User Code Set) Support (1 bit)
This field indicates if the sending node supports being set Multiple User Codes at once in a single Extended User Code Set Command. This functionality should be supported by node supporting large amount of User Codes.
The value 1 MUST indicate that the Multiple User Code Set functionality is supported. The value 0 MUST indicate that the Multiple User Code Set functionality is not supported.
Supported User ID Status Bit Mask Length (5 bits)
This field MUST advertise the length in bytes of the Supported User ID Status Bit Mask field carried in the command.
This field MUST be set to the minimum value which allows advertising all supported User ID Statuses.
Supported User ID Status Bit Mask (N bytes)
This field advertises the supported User ID status values. The length of this field in bytes MUST match the value advertised in the Supported User ID Status Bit Mask Length field.
A node MUST support the User ID Status values 0x00, 0x01 and 0x02.  Bit 0 in Bit Mask 1 represents User ID status 0x00.  Bit 1 in Bit Mask 1 represents User ID status 0x01. ...
User ID Status values are described in Table 147.
If a User ID Status is supported, the corresponding bit MUST be set to `1'. If a User ID Status is not supported, the corresponding bit MUST be set to `0'.
All other bits are reserved and MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node.
Supported Keypad Modes Bit Mask Length (5 bits)
This field MUST advertise the length in bytes of the Supported Keypad Modes Bit Mask field carried in the command.
This field MUST be set to the minimum value which allows advertising all supported keypad modes.

CC:0063.02.07.11.00E CC:0063.02.07.11.00F
CC:0063.02.07.11.010 CC:0063.02.07.11.011 CC:0063.02.07.11.012 CC:0063.02.07.11.013 CC:0063.02.07.11.014 CC:0063.02.07.11.015
CC:0063.02.07.11.016 CC:0063.02.07.11.017 CC:0063.02.07.11.018 CC:0063.02.07.12.001

Supported Keypad Mode Bit Mask (M bytes)
This field describes the supported keypad mode values. The length of this field in bytes MUST match the value advertised in the Supported Keypad Modes Bit Mask Length field.
A node MUST support the keypad mode 0x00 (normal mode).
 Bit 0 in Bit Mask 1 represents keypad mode 0x00 (normal mode).  Bit 1 in Bit Mask 1 represents keypad mode 0x01 (vacation mode). ...
Keypad mode values are described in Table 146.
If a keypad mode is supported, the corresponding bit MUST be set to `1'. If a keypad mode is not supported, the corresponding bit MUST be set to `0'.
All other bits are reserved and MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node.
Supported Keys Bit Mask Length (5 bits)
This field MUST advertise the length in bytes of the Supported Keys Bit Mask field carried in the command.
This field MUST be set to the minimum value which allows advertising all supported ASCII codes.
Supported Keys Bit Mask (L bytes)
This field describes the supported keys that can be input on the keypad by end users. The length of this field in bytes MUST match the value advertised in the Supported Keys Bit Mask Length field.
This field MUST advertise the ASCII codes that represent the supported keys.
 Bit 0 in Bit Mask 1 represents ASCII code 0 Bit 1 in Bit Mask 1 represents ASCII code 1. ...  Bit 7 in Bit Mask 16 represents ASCII code 127
If an ASCII code is supported, the corresponding bit MUST be set to `1'. If an ASCII code is not supported, the corresponding bit MUST be set to `0'.
All other bits are reserved and MUST be set to zero by a sending node. Reserved bits MUST be ignored by a receiving node.
A supporting node MUST NOT advertise an ASCII code representing the "enter" button on the keypad, but only ASCII codes that can be part of the user codes.
A supporting node SHOULD support the ASCII codes 0x30..0x39 (decimal digits 0..9).

4.116.9 User Code Keypad Mode Set Command

This command is used to set the keypad mode at the receiving node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_USER_CODE (0x63)

Command = USER_CODE_KEYPAD_MODE_SET (0x08)

Keypad Mode

CC:0063.02.08.11.001 CC:0063.02.08.11.002
CC:0063.02.08.11.003

Keypad Mode (8 bits) This field is used to set the keypad mode at the receiving node. This field MUST be encoded according to Table 146. A supporting node being set a keypad mode MUST respect the requirements associated to this mode in Table 146. The requirements in Table 146 (keypad mode) MUST take precedence over the requirements in Table 147 (user code statuses). This command MUST be ignored by a receiving node if the specified keypad mode is not supported.

Table 146, User Code Keypad Mode Set::Keypad mode encoding

Value Description

Version

0x00 Normal mode.

1

This mode MUST be the default mode. When the Normal mode is active, the

supporting node:

 MUST work normally with all defined User Codes according to Table 147.  MUST accept the Master Code, if supported.

0x01 Vacation mode.

2

This mode is used to disable/switch off the User Code functionalities for normal

users. When the Vacation mode is active, the supporting node:

 MUST ignore all input of assigned User Code (i.e. with Status ID different than 0x00 Available)

 MUST react according to Table 147 when being input unknown codes (i.e.

with Status ID 0x00 Available).

 MUST accept the Master Code, if supported

0x02 Privacy mode.

2

This mode is used to completely disable/switch off the User Code functionalities.

When the Privacy mode is active, the supporting node:

 MUST ignore any keypad input

 MUST ignore the Master Code, if supported.

This mode can be used e.g. to disallow User Code keypad use completely or to rely only on Entry Control Notifications, if supported.

0x03 Locked Out mode.

2

This mode is used as a security measure to prevent brute force attacks. This mode

is normally activated by the supporting node itself. If the node activates the

Locked Out mode, it MUST issue a User Code Keypad Mode Report Command to

the Lifeline destination.

When the Locked Out mode is active, the supporting node:

 MUST ignore any keypad input

 MUST ignore the Master Code, if supported.

A supporting node MUST return to the last active mode automatically after a defined timeout if it activated this mode.

A controlling node may unlock the keypad again by issuing this command with a different mode.

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

CC:0063.02.09.11.001
CC:0063.02.09.11.002 CC:0063.02.09.11.003

4.116.10

User Code Keypad Mode Get Command

This command is used to request a node about its current keypad mode.

The User Code Keypad Mode Report Command MUST be returned in response to this command.

This command MUST NOT be issued via multicast addressing. 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_USER_CODE (0x63)

Command = USER_CODE_KEYPAD_MODE_GET (0x09)

4.116.11

User Code Keypad Mode Report Command

This command is used by a node to advertise its current keypad mode.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_USER_CODE (0x63)

Command = USER_CODE_KEYPAD_MODE_REPORT (0x0A)

Keypad Mode

CC:0063.02.0A.11.001

Keypad Mode (8 bits) This field is used to advertise the keypad mode currently active at the sending node. This field MUST be encoded according to Table 146.

4.116.12

Extended User Code Set Command

This command is used to set one or more User Codes in the receiving node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_USER_CODE (0x63)

Command = EXTENDED_USER_CODE_SET (0x0B)

Number of User Codes

User Identifier 1 (MSB) 1

User Identifier 2 (LSB) 1

User ID Status 1

Reserved

User Code Length 1

User Code 1, 1

...

User Code N, 1

...

User Identifier 1 (MSB) M

User Identifier 2 (LSB) M

User ID Status M

Reserved

User Code Length M

User Code 1, M

...

User Code N, M

CC:0063.02.0B.11.001 CC:0063.02.0B.11.002 CC:0063.02.0B.11.003
CC:0063.02.0B.11.004 CC:0063.02.0B.11.005 CC:0063.02.0B.11.006 CC:0063.02.0B.11.007 CC:0063.02.0B.11.008

Number of User Codes (8 bits)
This field is used to specify how many user codes blocks are contained in the actual command.
This field MUST be in the range 1..255. A node MUST respect the Z-Wave MAC frame size or Transport service limits when sending this command, which means in most cases that this field SHOULD NOT be set to a value higher than 10.
This field MUST be ignored and considered as set to 1 by a receiving node if it advertises no support for Multiple User Code Set (MUCS) in the User Code Capabilities Report Command
The number of User Code blocks contained in the command MUST be according to this field. A User Code block MUST comprise the following fields:
 User Identifier  User ID Status  User Code Length  User Code
User Identifier (16 bits)
This field is used to specify the User Identifier for the actual User Code block.
The first byte MUST carry the most significant byte of the 16-bit value.
The value 0 MUST indicate that the receiving node MUST set the User Code and User Status for all supported User Identifiers. The value 0 SHOULD be used only with User ID Status set to 0x00 (erasing all User Codes).
If a non-existing User Identifier (higher than the advertised supported users number in the Users Number Report Command) is specified in this command, a receiving node MUST ignore the actual User Code block
User ID Status (8 bits)
The User ID Status field indicates the state of the User Identifier for the actual User Code block. This field MUST comply with Table 147, however the requirements in Table 146 MUST take precedence over the requirements in Table 147.
If a non-supported User ID Status is specified, a receiving node MUST ignore the actual User Code block.
Table 147, Extended User Code Set::User ID Status encoding

Value Description
0x00 Available: The database entry represented by this User Identifier is not in use. This status MUST be used to delete codes or indicate that an identifier is not assigned. When a user enters an unassigned/unknown code, the node:  MUST indicate that the code is not accepted  MUST NOT grant access to this user  SHOULD take preventive actions for further attempts to enter User ID and/or User Code (refer to 4.116.4).

Version 1

Value Description
0x01 Enabled / Grant Access The database entry represented by this User Identifier is in use and enabled. When a user enters a code with this status, the node:  MUST indicate that the code is accepted  MUST grant access to the user.  MUST secure the Door Lock again after a timeout (either configured if set in Timed Operation or pre-defined if the Door Lock is set in Constant Operation)

Version 1

CC:0063.02.0B.11.009

Value Description

Version

0x02 Disabled

1

The database entry represented by this User Identifier is in use but disabled. E.g. It allows a controller to push User Codes to a supporting node and let these codes be subsequently activated by a local interface. When a user enters a code with this status, the node:

 MUST indicate that the code is not accepted

 MUST NOT grant access to the user.

0x03 Messaging:

2

The database entry represented by this User Identifier is in use. The value is used to relay notifications to a controlling application. E.g. A user may enter a messaging code for notifying that maintenance started or an application should activate the alarm system. When a user enters a code with this status, the node:

 SHOULD indicate that the code is accepted

 MUST NOT grant access to this user

 MUST NOT take preventive actions for further attempts to enter User ID and/or User Code (refer to 4.116.4).

 MUST send an Entry Control Notification or a Notification Report via the Lifeline Group to identify the messaging user code.

0x04 Passage Mode:

2

The database entry represented by this User Identifier is in use.

The value is used to let the Door Lock permanently grant access.

Passage Mode can be activated and deactivated using the Door Lock Operation Set (Unsecured without timeout / Secured) or via a Passage Mode User Code input.

E.g. A receptionist comes in the morning and enters a Passage Mode User Code to allow anybody to subsequently enter the premises without entering a code until Passage Mode is deactivated again. When a user enters a code with this status, the node:

 MUST indicate that the code is accepted

 MUST toggle the Door Lock operation state between secured and unsecured without timeout (and also disable any auto-relock functionality).

 MUST send a Door Lock Operation Report and Door Lock Configuration Report via the Lifeline Association Group to advertise the new Door Lock state.

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

Reserved

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

User Code Length (4 bits) This field is used to advertise the length in bytes of the corresponding User Code field in the actual User Code block. CC:0063.02.0B.11.00A The User Code Length MUST be in the range 4..10 if the User ID Status is different than 0x00. The User Code Length MUST be set to 0 if the User ID Status is set to 0x00. User Code (N bytes) This field is used to advertise the User Code to be set for the User ID for the actual User Code block. CC:0063.02.0B.11.00B The length of this field in bytes MUST be according to the corresponding User Code Length field value. If the User Code Length is set to 0, this field MUST be omitted. CC:0063.02.0B.11.00C Each byte in this field MUST be encoded with ASCII representation. CC:0063.02.0B.11.00D A supporting node receiving a non-supported ASCII character MUST ignore the actual User Code block. A supporting node receiving a User Code identical to one already set to another User ID or identical to the Master Code MUST ignore the actual User Code block.

4.116.13

Extended User Code Get Command

CC:0063.02.0C.11.001
CC:0063.02.0C.11.002 CC:0063.02.0C.11.003

This command is used to request the User Code of a specific User Identifier.
The Extended User Code Report Command MUST be returned in response to this command
This command MUST NOT be issued via multicast addressing. 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_USER_CODE (0x63)

Command = EXTENDED_USER_CODE_GET (0x0C)

User Identifier 1 (MSB)

User Identifier 2 (LSB)

Reserved

Report more

CC:0063.02.0C.11.004 CC:0063.02.0C.11.005 CC:0063.02.0C.11.006

User Identifier (16 bits)
This field is used to specify the requested User Identifier.
The first byte MUST carry the most significant byte of the 16 bit value.
This field MUST NOT be set to 0.
A supporting node MUST return this value in the first User Code block of the returned Extended User Code Report Command.
If a non-existing User Identifier (higher than the advertised supported users number in the Users Number Report Command) is specified in this command, a responding node MUST return an Extended User Code Report Command with the User ID Status set to 0xFE: "Status not available".

CC:0063.02.0C.11.007 CC:0063.02.0C.11.008
CC:0063.02.0C.11.009 CC:0063.02.0C.12.001 CC:0063.02.0C.11.00A

Report more (1 bit)
This field is used to instruct the receiving node to report as many User Codes as possible within a single Z-Wave command (that fits in a single Z-Wave frame) because the sending node intends to read the whole (or a large part of the) User Code database.
This field MUST be ignored by a receiving node if it advertises no support for Multiple User Code Report (MUCR) in the User Code Capabilities Report Command.
The value 0 MUST indicate to return a report for the requested User Identifier only.
The value 1 MUST indicate to return a report for the requested User Identifier and additionally report as many User Identifiers as possible in the response.
When this field is set to 1, a node advertising support for Multiple User Code Report (MUCR) in the User Code Capabilities Report Command:
 MUST return at least 2 User Code blocks in the Extended User Code Report Command unless the last used User Identifier or a non-supported User Identifier is requested.
 SHOULD return as many User Code blocks as possible.  Subsequent User Code blocks MUST contain consecutive User Identifier having a User ID Status
different than 0. For example, a node supporting 4 User IDs that are set as follow MUST report User Identifier 1, 3, and 4 when requested about User Identifier 1:  User ID 1, status 0  User ID 2, status 0  User ID 3, status 1, code 38473  User ID 4, status 4, code 9277

4.116.14

Extended User Code Report Command

This command is used to advertise the User Code of a specific User Identifier.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_USER_CODE (0x63)

Command = EXTENDED_USER_CODE_REPORT (0x0D)

Number of User Codes

User Identifier 1 (MSB) 1

User Identifier 2 (LSB) 1

User ID Status 1

Reserved

User Code Length 1

User Code 1, 1

...

User Code N, 1

...

User Identifier 1 (MSB) M

User Identifier 2 (LSB) M

User ID Status M

Reserved

User Code Length M

User Code 1, M

...

User Code N, M

Next User Identifier 1 (MSB)

Next User Identifier 2 (LSB)

CC:0063.02.0D.11.001 CC:0063.02.0D.11.002
CC:0063.02.0D.11.003 CC:0063.02.0D.11.004 CC:0063.02.0D.11.005

Number of User Codes (8 bits)
This field is used to specify how many user codes blocks are contained in the actual command.
This field MUST be in the range 1..255. A node MUST respect the Z-Wave MAC frame size or Transport service limits when sending this command, which means in most cases that this field SHOULD NOT be set to a value higher than 8.
The number of User Code blocks contained in the command MUST be according to this field. A User Code block MUST comprise the following fields:
 User Identifier  User ID Status  User Code Length  User Code
This field MUST be set to 1 by a node advertising no support for Multiple User Code Report (MUCR) in the User Code Capabilities Report Command.
User Identifier (16 bits)
This field is used to specify the actual User Identifier for the actual User Code block. The first byte MUST carry the most significant byte of the 16-bit value.
User ID Status (8 bits)
This field indicates the state of the User Identifier for the actual User Code block. This field MUST comply with Table 148
Table 148, Extended User Code Report::User ID Status encoding

CC:0063.02.0D.11.006 CC:0063.02.0D.11.007

Value Description

Version

0x00 Available. Refer to Table 147

1

0x01 Enabled / Grant Access. Refer to Table 147

1

0x02 Disabled. Refer to Table 147

1

0x03 Messaging. Refer to Table 147

2

0x04 Passage Mode. Refer to Table 147

2

0xFE Status not available.

1

The requested User Identifier is not valid (either 0 or higher than the supported users number in the Users Number Report Command)

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

User Code Length (4 bits)

This field is used to advertise the length in bytes of the User Code field in the actual User Code block.

The User Code Length MUST be in the range 4..10 if the User ID Status is different than 0x00 and 0xFE. The User Code Length MUST be set to 0 if the User ID Status is 0x00 or 0xFE.

User Code (N bytes) This field is used to advertise the User Code currently set for the User ID in the actual User Code block. CC:0063.02.0D.11.008 The length of this field in bytes MUST be according to the corresponding User Code Length field value. If the User Code Length is set to 0, this field MUST be omitted. CC:0063.02.0D.11.009 Each byte in this field MUST be encoded with ASCII representation. Next User Identifier (16 bits) This field is used to specify the next User Identifier in use in the User Code database after the User Identifier advertised in the last User Code block. CC:0063.02.0D.11.00A This field MUST be set to the next User Identifier having a User ID Status different than 0. The first byte MUST carry the most significant byte of the 16-bit value. CC:0063.02.0D.11.00B The value 0 MUST indicate that the actual User Identifier is the last set at the sending node. CC:0063.02.0D.11.00C If the status field is set to 0xFE for the last User Code block (User Identifier higher than the advertised supported users number in the Users Number Report Command), this field MUST be set to 0.

4.116.15

Master Code Set Command

CC:0063.02.0E.11.001

This command is used to set the Master Code in the receiving node.
This command MUST be ignored by a receiving node advertising no support for the Master Code functionality (MD Support) in the User Code Capabilities Report Command.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_USER_CODE (0x63)

Command = MASTER_CODE_SET (0x0E)

Reserved

Master Code Length

Master Code 1

...

Master Code N

CC:0063.02.0E.11.002
CC:0063.02.0E.11.003 CC:0063.02.0E.11.004

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Master Code Length (4 bits) This field is used to advertise the length in bytes of the Master Code field in the command. This field MUST be set to 0 or in the range 4..10. Values in the range 4..10 MUST indicate that the receiving node MUST set the Master Code as indicated in the Master Code field.

CC:0063.02.0E.11.005
CC:0063.02.0E.11.006 CC:0063.02.0E.11.007
CC:0063.02.0E.11.008 CC:0063.02.0E.11.009 CC:0063.02.0E.11.00A

The Value 0 MUST indicate that the receiving node MUST deactivate the Master Code. If this field is set to 0, this command MUST be ignored by a receiving node if it advertises no support for Master Code Deactivation (MCD) in the User Code Capabilities Report Command. Master Code (N bytes) This field is used to advertise the Master Code to be set for the node. The length of this field MUST be according to the Master Code Length field value. Each byte in this field MUST be encoded with ASCII representation. A supporting node receiving a non-supported ASCII character MUST ignore the command. A supporting node receiving a Master Code identical to one already set to another User ID MAY ignore the command. When the Master Code is input, the node:
· MUST indicate that the code is accepted · MUST grant access to administrator functionalities, such as the network settings and/or User
Code management interface. Requirements in Table 146 (keypad modes) MUST take precedence over the above Master Code requirements

4.116.16

Master Code Get Command

CC:0063.02.0F.11.001
CC:0063.02.0F.11.002 CC:0063.02.0F.11.003

This command is used to request the Master Code currently set at the receiving node.
The Master Code Report Command MUST be returned in response to this command
This command MUST NOT be issued via multicast addressing. 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_USER_CODE (0x63)

Command = MASTER_CODE_GET (0x0F)

4.116.17

Master Code Report Command

This command is used to advertise the Master Code currently set at the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_USER_CODE (0x63)

Command = MASTER_CODE_REPORT (0x10)

Reserved

Master Code Length

Master Code 1

...

Master Code N

CC:0063.02.10.11.001
CC:0063.02.10.11.002 CC:0063.02.10.11.003
CC:0063.02.10.11.004 CC:0063.02.10.11.005

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Master Code Length (4 bits) This field is used to advertise the length in bytes of the Master Code field in the command. This field MUST be in the range 4..10 if the Master Code is set and advertised in this command. This field MUST be set to 0 if the Master Code is deactivated or if the sending node advertises no support for the Master Code functionality (MC Support) in the User Code Capabilities Report Command. Master Code (N bytes) This field is used to advertise the Master Code currently set at the sending node. The length of this field MUST be according to the Master Code Length field value. If the Master Code Length is set to 0, this field MUST be omitted. Each byte in this field MUST be encoded with ASCII representation.

4.116.18

User Code Checksum Get Command

CC:0063.02.11.11.001 CC:0063.02.11.11.002
CC:0063.02.11.11.003 CC:0063.02.11.11.004

This command is used to request a User Code checksum representing all the User Codes currently set at the receiving node.
This command MUST be ignored by a node advertising no support for the User Code Checksum functionality (UCC Support) in the User Code Capabilities Report Command.
The User Code Checksum Report Command MUST be returned in response to this command if the User Code Checksum functionality (UCC Support) is advertised as supported in the User Code Capabilities Report Command.
This command MUST NOT be issued via multicast addressing.
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_USER_CODE (0x63)

Command = USER_CODE_CHECKSUM_GET (0x11)

4.116.19

User Code Checksum Report Command

This command is used to advertise the current User Code checksum representing all the User codes set at the sending node.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_USER_CODE (0x63)

Command = USER_CODE_CHECKSUM_REPORT (0x12)

User Code Checksum 1 (MSB)

User Code Checksum 2 (LSB)

CC:0063.02.12.11.001 CC:0063.02.12.11.002 CC:0063.02.12.11.003 CC:0063.02.12.11.004
CC:0063.02.12.11.005 CC:0063.02.12.11.006

User Code Checksum (16 bits)
This field is used to advertise the checksum representing all User Codes set at the sending node.
The checksum MUST be calculated using the CRC-CCITT polynomium using initialization value equal to 0x1D0F and 0x1021 (normal representation).
This field MUST be set to 0x0000 if no User Code is set at node.
The checksum data MUST be built by concatenating defined User Codes data (with User ID Status different than 0) in the ascending User ID order. The Master Code MUST NOT be part of the checksum calculation.
Each defined User Code data MUST be formatted as follows:
User ID (16 bits) | User ID Status (8 bits) | User Code (4..10 bytes)
For example, a node supporting 4 User IDs that are set as follow:  User ID 1, status 4, code 9277  User ID 2, status 0  User ID 3, status 1, code 88473  User ID 4, status 0
In this case, User Code data for User ID 1 and 3 MUST be concatenated to obtain the checksum data:
0x0001 | 0x04 | 0x39 32 37 37 | 0x0003 | 0x01 | 0x38 38 34 37 33
The checksum data MUST be: 0x000104393237370003013838343733.
The returned User Code Checksum field MUST be set to: 0xEAAD.

4.117 Window Covering Command Class, version 1
The Window Covering Command Class is used to control window covering devices. The Window Covering Command Class is an actuator control command class. Refer to 3.6.

4.117.1 Terminology

A window covering device may be closed or open. The term closed represents the lowest light throughput, while open represents the highest light throughput.
A window covering device may provide one or more properties such as up/down movement combined with for example slats angle control.
Each of the available properties is advertised. A window covering device may offer precise control of the position of a property or it may offer a more limited movement control, where it is possible to start and stop movement in one of two directions but where the target position cannot be specified.
If a window covering parameter is marked as position unknown, this indicates that the actual property can only be controlled via start and stop of movement.

The parameters controlling edges are identified as outlined in Table 149.

Table 149, Identification of edges

Edge Title

Description

Usage examples

out_left

Outbound edge towards the left

out_right

Outbound edge towards the right

in_left in_right in_right_left

Inbound edge towards the left
Inbound edge towards the right
Inbound edges controlled horizontally as one

Edge Title out_bottom
out_top

Description
Outbound edge towards the bottom Outbound edge towards the top

in_bottom in_top

Inbound edge towards the bottom
Inbound edge towards the top

in_top_bottom Inbound edges controlled vertically as one

Usage examples

4.117.2 Compatibility considerations
This Command Class replaces the following command classes:  Basic Window Covering Command Class [OBSOLETED]  Move To Position Window Covering Command Class [OBSOLETED]
4.117.2.1Motor Control Device Class support
A node supporting this Command Class SHOULD comply implement the Motor Control Specific Device Class B or C (refer to [1], [10] or [22]) for backwards compatibility with existing window covering control applications.
4.117.2.2Command Class dependencies
A node supporting the Window Covering Command Class, Version 1 MUST support the Multilevel Switch Command Class, version 3 or newer. With the exception for slats angle control, the following mapping MUST apply:
 The Multilevel Switch value 0x00 MUST represent the least light, i.e. covering fully closed.  The Multilevel Switch value 0x63 MUST represent the most light, i.e. covering fully opened. For slats angle control, the following mapping MUST apply:  The Multilevel Switch value 0x00 MUST represent slats closed to the one side.  The Multilevel Switch value 0x32 MUST represent slats open.  The Multilevel Switch value 0x63 MUST represent slats closed to the other side. By mapping the Multilevel Switch value 0 to the closed position, a multicasted or broadcasted

Multilevel Switch Command that turns off light sources will also cause window coverings to close, thus reducing light from the outside.

A supporting node MAY use the Multilevel Switch Command Class to control multiple features like up/down control as well as slats angle control. For instance, the Start Level Change command may start changing the slats angle towards the extreme angle and when reaching that extreme angle, it may start moving up or down. This way, multiple functions can be controlled from a general purpose remote control, although with less convenience than if a dedicated window covering remote control is used.

4.117.3 Window Covering Parameters

Each distinct property of a window covering node is accessed via a dedicated parameter.

Two variants are defined for many parameters: One allows full position control, including movement control. The other variant is limited to movement control.

If a node supports full position control of a property (even parameter IDs), it MUST NOT support the corresonding parameter limited to movement control (odd parameter IDs).

The term "Closed" represents the lowest light throughput, while "Open" represents the highest light throughput of the window covering.
Table 150, Window Covering Parameter IDs

Parm ID

Description

Value range

Encoding

Outbound horizontal control

0

out_left: Outbound edge towards the left

NA

Level Change Up = Opening

Right/Left movement

Level Change Down = Closing

(Position unknown)

1

out_left: Outbound edge towards the left

Right/Left position Parm 0 MUST NOT be supported

0x00 ­ 0x63

0x00 = Closed 0x63 = Open

2

out_right: Outbound edge towards the right NA

Right/Left movement (Position unknown)

Level Change Up = Opening Level Change Down = Closing

3

out_right: Outbound edge towards the right 0x00 ­ 0x00 = Closed

Right/Left position

0x63

0x63 = Open

Parm 2 MUST NOT be supported

Parm ID

Description

Inbound horizontal control

4

in_left: Inbound edge towards the left

Right/Left movement (Position unknown)

5

in_left: Inbound edge towards the left

Right/Left position Parm 4 MUST NOT be supported

6

in_right: Inbound edge towards the right

Right/Left movement (Position unknown)

7

in_right: Inbound edge towards the right

Right/Left position Parm 6 MUST NOT be supported

8

in_right_left:

Inbound edges controlled horizontally as one

Right/Left movement (Position unknown)

9

in_right_left:

Inbound edges controlled horizontally as one

Right/Left position Parm 8 MUST NOT be supported

Angle control of vertical slats

10 Vertical slats angle

Right/Left movement

(Position unknown)

11 Vertical slats angle Right/Left position
Parm 10 MUST NOT be supported

Value range

Encoding

NA

Level Change Down = Closing

Level Change Up = Opening

0x00 ­ 0x63

0x00 = Closed 0x63 = Open

NA

Level Change Down = Closing

Level Change Up = Opening

0x00 ­ 0x63

0x00 = Closed 0x63 = Open

NA

Level Change Down = Closing

Level Change Up = Opening

0x00 ­ 0x63

0x00 = Closed 0x63 = Open

NA
0x00 ­ 0x63

Level Change Down = Closing; to the right inside Level Change Up = Closing; to the left inside
(Open is passed midway between the two closing positions)
0x00 = Closed; to the right inside 0x32 = Open 0x63 = Closed; to the left inside

Parm ID

Description

Value range

Outbound vertical control

12 out_bottom: Outbound edge towards the

NA

bottom

Up/Down movement (Position unknown)

13

out_bottom: Outbound edge towards the 0x00 ­

bottom

0x63

Up/Down position Parm 12 MUST NOT be supported

14 out_top: Outbound edge towards the top

NA

Up/Down movement (Position unknown)

15 out_top: Outbound edge towards the top
Up/Down position Parm 14 MUST NOT be supported

0x00 ­ 0x63

Inbound vertical control

16 in_bottom: Inbound edge towards the bottom NA

Up/Down movement (Position unknown)

17 in_bottom: Inbound edge towards the bottom 0x00 ­

Up/Down position

0x63

Parm 16 MUST NOT be supported

18 in_top: Inbound edge towards the top

NA

Up/Down movement (Position unknown)

19 in_top: Inbound edge towards the top
Up/Down position Parm 18 MUST NOT be supported

0x00 ­ 0x63

Encoding
Level Change Down = Closing Level Change Up = Opening
0x00 = Closed 0x63 = Open
Level Change Down = Closing Level Change Up = Opening
0x00 = Closed 0x63 = Open
Level Change Down = Closing Level Change Up = Opening
0x00 = Closed 0x63 = Open
Level Change Down = Closing Level Change Up = Opening
0x00 = Closed 0x63 = Open

Parm ID

Description

Value range

Encoding

20 in_top_bottom:

NA

Inbound edges controlled vertically as one

Level Change Down = Closing Level Change Up = Opening

Up/Down movement (Position unknown)

21 in_top_bottom: Inbound edges controlled vertically as one

0x00 ­ 0x63

0x00 = Closed 0x63 = Open

Up/Down position Parm 20 MUST NOT be supported

Angle control of horizontal slats

22 Horizontal slats angle Up/Down movement (Position unknown)

NA

Level Change Down = Closing;

up inside

Level Change Up = Closing;

down inside

(Open is passed midway between the two closing positions)

23 Horizontal slats angle Up/Down position
Parm 22 MUST NOT be supported

0x00 ­ 0x63

0x00 = Closed; up inside 0x32 = Open 0x63 = Closed; down inside

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

A device MAY implement up to 100 hardware levels (including 0) for a given parameter. If a device implements less than 100 hardware levels, the hardware levels MUST be distributed uniformly over the entire range. The mapping of parameter values to hardware levels MUST be monotonous, i.e. a higher value MUST be mapped to either the same or a higher hardware level. An example is found in Table 151.

Table 151, Parameter value mapping to a limited number of hardware levels (example)

Horizontal Slats Angle Hardware level

0x00..0x13

100% Up inside

0x14..0x27

50% Up inside

0x28..0x3B

Open

0x3C..0x4F

50% Down inside

0x50..0x63

100% Down inside

4.117.4 Window Covering Supported Get Command

This command is used to request the supported properties of a device.

The Window Covering Supported Report Command MUST be returned in response to this command.

This command MUST NOT be issued via multicast addressing. 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_WINDOW_COVERING (0x6A)

Command = WINDOW_COVERING_SUPPORTED_GET (0x01)

4.117.5 Window Covering Supported Report Command

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

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_WINDOW_COVERING (0x6A)

Command = WINDOW_COVERING_SUPPORTED_REPORT (0x02)

Reserved

Number of Parameter Mask bytes

Parameter Mask 1

...

Parameter Mask N

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Number of Parameter Mask bytes (4 bits) The Number of Parameter Masks field MUST advertise the number of bytes carrying the Covering Parameter Mask field. The value MUST be in the range 1..15. Parameter Mask (N Bytes) The Parameter Mask field MUST advertise the Parameters supported by the device. The length of this field MUST be advertised by the Number of Parameter Masks field.
 Bit 0 in Bit Mask 1 indicates if Parameter ID 0 is supported  Bit 1 in Bit Mask 1 indicates if Parameter ID 1 is supported ... For the definition of Parameter IDs, refer to Table 150.

4.117.6 Window Covering Get Command

This command is used to request the status of a specified Covering Parameter.

The Window Covering Report command MUST be returned in response to this command.

This command MUST NOT be issued via multicast addressing. 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_WINDOW_COVERING (0x6A)

Command = WINDOW_COVERING_GET (0x03)

Parameter ID

Parameter ID (8 bits)
This field MUST specify the Parameter for which the status is requested. For the definition of Parameter IDs, refer to Table 150.
A node receiving an even Parameter ID (marked as "position unknown") MUST set the Current Value and Target Value fields to 0x00 and the Duration field to 0xFE in the returned Report if the window covering is not moving (i.e., stationary).

4.117.7 Window Covering Report Command

This command is used to advertise the status of a Parameter.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_WINDOW_COVERING (0x6A)

Command = WINDOW_COVERING_REPORT (0x04)

Parameter ID

Current Value

Target Value

Duration

Parameter ID (8 bits)
This field MUST advertise the Parameter covered by this report. For the definition of Parameter IDs, refer to Table 150.

Current Value (8 bits)

The Current Value field MUST advertise the current value of the Parameter identified by the Parameter ID field.
The Current Value SHOULD be identical to the Target Value when a transition has ended. For the definition of valid parameter values, refer to Table 150.
Target Value (8 bits)
The Target Value field MUST advertise the target value of an ongoing transition or the most recent transition for the advertised Parameter ID.

If a transition is initiated in an interactive fashion via a local user interface or via a Start Level Change command, the advertised Target Value MUST be 0x00 or 0x63, depending on the direction.

For the definition of valid parameter values, refer to Table 150.

Duration (8 bits)
The Duration field SHOULD advertise the time needed to reach the Target Value at the actual transition rate. The encoding of the Duration field MUST be according to Table 8, Actuator Command Class Duration Report encoding.

The Duration is defined as the interval from start of the transition until the Target Value is reached.

4.117.8 Window Covering Set Command

This command is used to control one or more parameters in a window covering device.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_WINDOW_COVERING (0x6A)

Command = WINDOW_COVERING_SET (0x05)

Reserved

Parameter Count

Parameter ID 1

Value 1

...

Parameter ID N

Value N

Duration

Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Parameter Count (5 bits) This field MUST specify the number of (Parameter ID, Value) datasets contained in the Window Covering Set command.

Parameter ID (N bytes)

This field MUST specify the Parameter to receive a new value.
A receiving node MUST ignore even Parameters ID (marked as "position unknown"). For the definition of Parameter IDs, refer to Table 150.

Value (N bytes)

This field MUST specify the value of the Parameter identified by the Parameter ID field. For the definition of valid parameter ID values, refer to Table 150.

Duration (8 bits)

The Duration field MUST specify the time that the transition should take from the current value to the new target value. A supporting device SHOULD respect the specified Duration value.

The encoding of the Duration field MUST be according to Table 7, Actuator Command Class Duration Set encoding.

4.117.9 Window Covering Start Level Change Command

This command is used to initiate a transition of one parameter to a new level. A receiving node MUST initiate the transition to a new value for the specified Parameter ID.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_WINDOW_COVERING (0x6A)

Command = WINDOW_COVERING_START_LEVEL_CHANGE (0x06)

Res Up/ Down

Res

Parameter ID

Duration

Up/Down (1 bit) This field MUST specify the direction of the level change. If the Up/Down bit is set to 0 the level change MUST be increasing. If the Up/Down bit is set to 1 the level change MUST be decreasing. Reserved This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node. Parameter ID (8 bits) This field MUST specify the Parameter to start a transition. A node receiving this command MUST accept all its supported parameter IDs (even and odd). For the definition of Parameter IDs, refer to Table 150.

Duration (8 bits)

The level change rate MUST be calculated to match a level change from the minimum value to the maximum value during the time specified by the Duration field. A supporting device SHOULD respect the specified Duration value.

The encoding of the Duration field MUST be according to Table 7, Actuator Command Class Duration Set encoding.

4.117.10

Window Covering Stop Level Change Command

This command is used to stop an ongoing transition.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_WINDOW_COVERING (0x6A)

Command = WINDOW_COVERING_STOP_LEVEL_CHANGE (0x07)

Parameter ID

Parameter ID (8 bits)
This field MUST specify the parameter to stop a transition.
A receiving node MUST stop the transition if the specified Parameter ID is currently in transition to a new value. A receiving node MUST NOT stop ongoing transitions for other Parameter IDs than the one specified.
A node receiving this command MUST accept all parameter IDs supported by the device. For the definition of Parameter IDs, refer to Table 150.

APPENDIX AASCII CODES
The standard ASCII table defines 128 character codes (from 0 to 127), of which, the first 32 are control codes (non-printable), and the remaining 96 character codes are printable characters. The table below shows the hexadecimal values of the ASCII character codes, e.g. the ASCII code for the capital letter "A" is equal to 0x41:
Table 152, The standard ASCII Table
In addition to the 128 standard ASCII codes (the ones listed above ranging from 0 to 127), most systems have another 128 extra codes which form what is known as extended ASCII (with ranges from 128 to 255). The OEM Extended ASCII character set is included in all PC-compatible computers as the default character set when the system boots before loading any operating system and under MS-DOS. It includes some foreign signs, some marked characters and also pieces to draw simple panels. The table below shows the hexadecimal values of the OEM Extended ASCII character codes, e.g. the ASCII code for the capital letter "Æ" is equal to 0x92:

Table 153, OEM Extended ASCII Table
Below are listed codes for players, radios etc. as an alternative to the OEM Extended ASCII codes. Undefined values MUST be ignored.
Table 154, Players Table

References
[1] Silicon Labs, SDS10242, Software Design Spec., Z-Wave Device Class Specification. [2] Silicon Labs, SDS12657, Z-Wave Command Class Specification A-M. [3] Silicon Labs, SDS12652, Z-Wave Command Class Specification N-Z. [4] IETF RFC 4861, Neighbor Discovery for IP version 6 (IPv6),
http://tools.ietf.org/pdf/rfc4861.pdf [5] IETF RFC 3122, Extensions to IPv6 Neighbor Discovery for Inverse Discovery Specification,
http://tools.ietf.org/pdf/rfc3122.pdf [6] IETF RFC 2119, Key words for use in RFCs to Indicate Requirement Levels,
http://tools.ietf.org/pdf/rfc2119.pdf [7] IETF RFC 2460, Internet Protocol, Version 6 (IPv6) Specification,
http://tools.ietf.org/pdf/rfc2460.pdf [8] IETF RFC 4291, IP Version6 Addressing Architecture,
http://tools.ietf.org/pdf/rfc4291.pdf [9] Silicon Labs, SDS11846, Z-Wave Plus Role Types Specification. [10] Silicon Labs, SDS11847, Z-Wave Plus Device Type Specification. [11] Graphical UI elements,
http://en.wikipedia.org/wiki/Graphical_user_interface_elements [12] Silicon Labs, SDS13425. Z-Wave Plus Assigned Manufacturer IDs. [13] Silicon Labs, SDS13548, List of defined Z-Wave Command Classes [14] Silicon Labs, SDS13783, Z-Wave Transport-Encapsulation Command Class Specification [15] Silicon Labs, SDS13782, Z-Wave Management Command Class Specification [16] Silicon Labs, SDS13784, Z-Wave Network-Protocol Command Class Specification [17] Silicon Labs, SDS13812, Multilevel Sensor Command Class, list of assigned Multilevel Sensor types
and scales [18] Silicon Labs, SDS13713, Notification Command Class, list of assigned Notifications [19] Silicon Labs, SDS13907, Simple AV Command Class, list of assigned AV Control codes [20] Silicon Labs, SDS14223, Z-Wave Command Class Control Specification [21] Silicon Labs, SDS14305, Meter Table Monitor Command Class, list of assigned types, scales and
datasets [22] Silicon Labs, SDS14224, Z-Wave Plus v2 Device Type Specification. [23] Silicon Labs, SDS14223, Z-Wave Command Class Control Specification [24]


Aspose.Words for .NET 19.2