'Programming event notification command' seems to miss a value (?) #7567
Description
On my lock I'm adding SERVICE MODE where the lock will generate a random 4 digit PIN and return it as part of the 'Programming event notification command'. SET seems to do what it is supposed to, and a 'Programming event notification command' are returned with following values (I've formatted the JSON):
Received Zigbee message from '0x680ae2fffe6bb522', type 'commandProgrammingEventNotification', cluster 'closuresDoorLock', data '
{
"data":255,
"pin":4,
"programeventcode":4,
"programeventsrc":0,
"userid":108,
"userstatus":54,
"usertype":53,
"zigbeelocaltime":16856113
}
' from endpoint 1 with groupID 0
A door lock programming event notification has the following format.
Octets | 1 | 1 | 2 | 1 | 1 | 1 | 4 | Variable/0 |
---|---|---|---|---|---|---|---|---|
Data Type | uint8 | uint8 | uint16 | uint8 | enum8 | uint8 | uint32 | string |
Field Name | ProgramEvent Source | ProgramEvent Code | User ID | PIN | UserType | UserStatus | ZigBeeLocalTime | Data |
The fields have the following values:
- The program event source and program event code fields are described below.
- The User ID field contains the index, see chapter 3.4. In the case of duplicate code or if all user
pins are deleted this field is set 0x00.
- The PIN contains the set pin, the format is described in chapter 3.7.4.1.
- The values for User type and User status fields are described in chapter 3.7.4.2.
- The ZigBeeLocalTime is set to value 0xFFFFFFFF for all reports.
- The Data field is the same as PIN.
The PIN contains the set pin, the format is described in chapter 3.7.4.1.(7.3.2.16.27.4 in ZCL)
The PIN has the following format
Octals | 1 | 4-10 |
---|---|---|
Code length | Pin or RFID code |
Where the code length is a number between 4 and 10.
The code is ASCII encoded so the code 1234 is encoded as 0x31 32 33 34
It return 4 which is the PIN Length, but not the randomly generated user PIN.
What am I missing?