2.2.118. User Code Command Class, version 1

The User Code Command Class is used to manage User Codes in access control systems.

2.2.118.1. Interoperability Considerations

\requirement{CC:0063.01.00.32.001}{0}

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.

\requirement{CC:0063.01.00.31.001}{0}

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. ‘******’).

\requirement{CC:0063.01.00.32.002}{0}

A controlling node SHOULD understand that a code has been set correctly but cannot be read back with such nodes.

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

User Identifier (8 bits)

This field is used to specify the actual User Identifier.

\requirement{CC:0063.01.01.11.001}{0}

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.

\requirement{CC:0063.01.01.13.001}{0}

A receiving node MAY ignore this field if it only supports one User Code.

\requirement{CC:0063.01.01.11.002}{0} \requirement{CC:0063.01.01.11.010}{4}

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 MUST be used only with User ID Status set to 0x00.

\requirement{CC:0063.01.01.11.003}{4}

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)

\requirement{CC:0063.01.01.11.004}{0}

The User ID Status field indicates the status of the User Identifier. This field MUST comply with Table 2.542.

\requirement{CC:0063.01.01.12.002}{0}

The User ID Status 0xFE SHOULD NOT be used in this command and SHOULD be ignored by receiving nodes.

Table 2.542 User Code Set::User ID Status encoding

Value

Description

0x00

Available (not set)

0x01

Occupied

0x02

Reserved by administrator

0x0FE

Status not available

\requirement{CC:0063.01.01.11.005}{0}

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.

\requirement{CC:0063.01.01.11.006}{0}

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.

\requirement{CC:0063.01.01.11.007}{0}

Each byte in this field MUST be a digit encoded with ASCII representation (from 0x30 to 0x39).

\requirement{CC:0063.01.01.11.008}{0}

A node receiving an invalid User Code MUST ignore the command.

\requirement{CC:0063.01.01.11.009}{0}

The User Code field MUST be set to 0x00000000 (4 bytes) when User ID Status is equal to 0x00.

2.2.118.3. User Code Get Command

This command is used to request the User Code of a specific User Identifier.

\requirement{CC:0063.01.02.11.001}{0}

The User Code Report Command MUST be returned in response to this command.

\requirement{CC:0063.01.02.11.002}{0}

This command MUST NOT be issued via multicast addressing.

\requirement{CC:0063.01.02.11.003}{0}

A receiving node MUST NOT return a response if this command is received via multicast addressing. The Z-Wave Multicast frame, the broadcast NodeID and the Multi Channel multi-End Point destination are all considered multicast addressing methods.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_USER_CODE (0x63)

Command = USER_CODE_GET (0x02)

User Identifier

User Identifier (8 bits)

This field is used to specify the requested User Identifier.

\requirement{CC:0063.01.02.11.004}{0}

The value 0 MUST NOT be specified in the User Code Get Command.

\requirement{CC:0063.01.02.12.001}{0}

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

2.2.118.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 the User Code Set Command.

2.2.118.5. Users Number Get Command

This command is used to request the number of user codes supported by the receiving node.

\requirement{CC:0063.01.04.11.001}{0}

The Users Number Report Command MUST be returned in response to this command.

\requirement{CC:0063.01.04.11.002}{0}

This command MUST NOT be issued via multicast addressing.

\requirement{CC:0063.01.04.11.003}{0}

A receiving node MUST NOT return a response if this command is received via multicast addressing. The Z-Wave Multicast frame, the broadcast NodeID and the Multi Channel multi-End Point destination are all considered multicast addressing methods.

7

6

5

4

3

2

1

0

Command Class = COMMAND_CLASS_USER_CODE (0x63)

Command = USERS_NUMBER_GET (0x04)

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

\requirement{CC:0063.01.05.11.001}{0}

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.