From 12612e7e609b19d321a8c36b90a49b9a620fd420 Mon Sep 17 00:00:00 2001 From: Moises Terrones Date: Tue, 10 Mar 2026 00:23:08 -0600 Subject: [PATCH 1/2] Generate DoorLock cluster with Alchemy --- .../all-clusters-minimal-app.matter | 41 +- .../rootnode_doorlock_aNKYAreMXE.matter | 41 +- examples/lock-app/lock-common/lock-app.matter | 41 +- examples/lock-app/nxp/zap/lock-app.matter | 41 +- examples/lock-app/qpg/zap/lock.matter | 41 +- .../realtek/data_model/lock-app.matter | 41 +- .../silabs/data_model/lock-app.matter | 41 +- .../placeholder/linux/apps/app1/config.matter | 82 +- .../placeholder/linux/apps/app2/config.matter | 82 +- .../virtual-device-app.matter | 41 +- .../zcl/data-model/chip/door-lock-cluster.xml | 994 +++++++++--------- .../data_model/controller-clusters.matter | 41 +- .../python/matter/clusters/Objects.py | 9 + .../CHIP/zap-generated/MTRBaseClusters.h | 17 +- .../app-common/clusters/DoorLock/Enums.h | 12 + .../app-common/clusters/DoorLock/EnumsCheck.h | 12 + 16 files changed, 837 insertions(+), 740 deletions(-) diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter index af681950e80248..ad18b6f422dd66 100644 --- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter +++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter @@ -3230,6 +3230,11 @@ cluster DoorLock = 257 { kAliro = 10; } + enum StatusCodeEnum : enum8 { + kDUPLICATE = 2 [spec_name = "DUPLICATE"]; + kOCCUPIED = 3 [spec_name = "OCCUPIED"]; + } + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; @@ -3470,15 +3475,15 @@ cluster DoorLock = 257 { attribute access(write: administer) optional boolean sendPINOverTheAir = 50; attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; attribute access(write: administer) optional int16u expiringUserTimeout = 53; - provisional readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; - provisional readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; - provisional readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; - provisional readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; - provisional readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; - provisional readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; - provisional readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; + readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; + readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; + readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; + readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; + readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; + readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; + readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -3580,7 +3585,7 @@ cluster DoorLock = 257 { request struct SetUserRequest { DataOperationTypeEnum operationType = 0; int16u userIndex = 1; - nullable char_string userName = 2; + nullable char_string<10> userName = 2; nullable int32u userUniqueID = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -3593,7 +3598,7 @@ cluster DoorLock = 257 { response struct GetUserResponse = 28 { int16u userIndex = 0; - nullable char_string userName = 1; + nullable char_string<10> userName = 1; nullable int32u userUniqueID = 2; nullable UserStatusEnum userStatus = 3; nullable UserTypeEnum userType = 4; @@ -3611,7 +3616,7 @@ cluster DoorLock = 257 { request struct SetCredentialRequest { DataOperationTypeEnum operationType = 0; CredentialStruct credential = 1; - long_octet_string credentialData = 2; + octet_string credentialData = 2; nullable int16u userIndex = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -3665,7 +3670,7 @@ cluster DoorLock = 257 { command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; /** Set a time-specific schedule ID for a specified user. */ command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; - /** Returns the year day schedule data for the specified schedule and user indexes. */ + /** Retrieve the specific year day schedule for the specific schedule and user indexes. */ command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; /** Clears the specific year day schedule or all year day schedules for the specific user. */ command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; @@ -3675,11 +3680,11 @@ cluster DoorLock = 257 { command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; /** Clears the holiday schedule or all holiday schedules. */ command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; - /** Set User into the lock. */ + /** Set user into the lock. */ timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; - /** Retrieve User. */ + /** Retrieve user. */ command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; - /** Clears a User or all Users. */ + /** Clears a user or all Users. */ timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; @@ -3689,9 +3694,9 @@ cluster DoorLock = 257 { timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; /** This command causes the lock device to unlock the door without pulling the latch. */ timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; - /** This command communicates an Aliro Reader configuration to the lock. */ + /** This command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock. */ timed command access(invoke: administer) SetAliroReaderConfig(SetAliroReaderConfigRequest): DefaultSuccess = 40; - /** This command clears an existing Aliro Reader configuration for the lock. */ + /** This command allows clearing an existing Aliro Reader configuration for the lock. */ timed command access(invoke: administer) ClearAliroReaderConfig(): DefaultSuccess = 41; } diff --git a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter index a5a8f77c6847ab..72f500e8b6a13e 100644 --- a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter +++ b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter @@ -2061,6 +2061,11 @@ cluster DoorLock = 257 { kAliro = 10; } + enum StatusCodeEnum : enum8 { + kDUPLICATE = 2 [spec_name = "DUPLICATE"]; + kOCCUPIED = 3 [spec_name = "OCCUPIED"]; + } + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; @@ -2301,15 +2306,15 @@ cluster DoorLock = 257 { attribute access(write: administer) optional boolean sendPINOverTheAir = 50; attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; attribute access(write: administer) optional int16u expiringUserTimeout = 53; - provisional readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; - provisional readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; - provisional readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; - provisional readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; - provisional readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; - provisional readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; - provisional readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; + readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; + readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; + readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; + readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; + readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; + readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; + readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -2411,7 +2416,7 @@ cluster DoorLock = 257 { request struct SetUserRequest { DataOperationTypeEnum operationType = 0; int16u userIndex = 1; - nullable char_string userName = 2; + nullable char_string<10> userName = 2; nullable int32u userUniqueID = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -2424,7 +2429,7 @@ cluster DoorLock = 257 { response struct GetUserResponse = 28 { int16u userIndex = 0; - nullable char_string userName = 1; + nullable char_string<10> userName = 1; nullable int32u userUniqueID = 2; nullable UserStatusEnum userStatus = 3; nullable UserTypeEnum userType = 4; @@ -2442,7 +2447,7 @@ cluster DoorLock = 257 { request struct SetCredentialRequest { DataOperationTypeEnum operationType = 0; CredentialStruct credential = 1; - long_octet_string credentialData = 2; + octet_string credentialData = 2; nullable int16u userIndex = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -2496,7 +2501,7 @@ cluster DoorLock = 257 { command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; /** Set a time-specific schedule ID for a specified user. */ command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; - /** Returns the year day schedule data for the specified schedule and user indexes. */ + /** Retrieve the specific year day schedule for the specific schedule and user indexes. */ command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; /** Clears the specific year day schedule or all year day schedules for the specific user. */ command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; @@ -2506,11 +2511,11 @@ cluster DoorLock = 257 { command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; /** Clears the holiday schedule or all holiday schedules. */ command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; - /** Set User into the lock. */ + /** Set user into the lock. */ timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; - /** Retrieve User. */ + /** Retrieve user. */ command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; - /** Clears a User or all Users. */ + /** Clears a user or all Users. */ timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; @@ -2520,9 +2525,9 @@ cluster DoorLock = 257 { timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; /** This command causes the lock device to unlock the door without pulling the latch. */ timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; - /** This command communicates an Aliro Reader configuration to the lock. */ + /** This command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock. */ timed command access(invoke: administer) SetAliroReaderConfig(SetAliroReaderConfigRequest): DefaultSuccess = 40; - /** This command clears an existing Aliro Reader configuration for the lock. */ + /** This command allows clearing an existing Aliro Reader configuration for the lock. */ timed command access(invoke: administer) ClearAliroReaderConfig(): DefaultSuccess = 41; } diff --git a/examples/lock-app/lock-common/lock-app.matter b/examples/lock-app/lock-common/lock-app.matter index 6af4eff8512222..87585649db4e7c 100644 --- a/examples/lock-app/lock-common/lock-app.matter +++ b/examples/lock-app/lock-common/lock-app.matter @@ -2459,6 +2459,11 @@ cluster DoorLock = 257 { kAliro = 10; } + enum StatusCodeEnum : enum8 { + kDUPLICATE = 2 [spec_name = "DUPLICATE"]; + kOCCUPIED = 3 [spec_name = "OCCUPIED"]; + } + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; @@ -2699,15 +2704,15 @@ cluster DoorLock = 257 { attribute access(write: administer) optional boolean sendPINOverTheAir = 50; attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; attribute access(write: administer) optional int16u expiringUserTimeout = 53; - provisional readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; - provisional readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; - provisional readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; - provisional readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; - provisional readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; - provisional readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; - provisional readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; + readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; + readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; + readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; + readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; + readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; + readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; + readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -2809,7 +2814,7 @@ cluster DoorLock = 257 { request struct SetUserRequest { DataOperationTypeEnum operationType = 0; int16u userIndex = 1; - nullable char_string userName = 2; + nullable char_string<10> userName = 2; nullable int32u userUniqueID = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -2822,7 +2827,7 @@ cluster DoorLock = 257 { response struct GetUserResponse = 28 { int16u userIndex = 0; - nullable char_string userName = 1; + nullable char_string<10> userName = 1; nullable int32u userUniqueID = 2; nullable UserStatusEnum userStatus = 3; nullable UserTypeEnum userType = 4; @@ -2840,7 +2845,7 @@ cluster DoorLock = 257 { request struct SetCredentialRequest { DataOperationTypeEnum operationType = 0; CredentialStruct credential = 1; - long_octet_string credentialData = 2; + octet_string credentialData = 2; nullable int16u userIndex = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -2894,7 +2899,7 @@ cluster DoorLock = 257 { command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; /** Set a time-specific schedule ID for a specified user. */ command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; - /** Returns the year day schedule data for the specified schedule and user indexes. */ + /** Retrieve the specific year day schedule for the specific schedule and user indexes. */ command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; /** Clears the specific year day schedule or all year day schedules for the specific user. */ command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; @@ -2904,11 +2909,11 @@ cluster DoorLock = 257 { command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; /** Clears the holiday schedule or all holiday schedules. */ command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; - /** Set User into the lock. */ + /** Set user into the lock. */ timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; - /** Retrieve User. */ + /** Retrieve user. */ command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; - /** Clears a User or all Users. */ + /** Clears a user or all Users. */ timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; @@ -2918,9 +2923,9 @@ cluster DoorLock = 257 { timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; /** This command causes the lock device to unlock the door without pulling the latch. */ timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; - /** This command communicates an Aliro Reader configuration to the lock. */ + /** This command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock. */ timed command access(invoke: administer) SetAliroReaderConfig(SetAliroReaderConfigRequest): DefaultSuccess = 40; - /** This command clears an existing Aliro Reader configuration for the lock. */ + /** This command allows clearing an existing Aliro Reader configuration for the lock. */ timed command access(invoke: administer) ClearAliroReaderConfig(): DefaultSuccess = 41; } diff --git a/examples/lock-app/nxp/zap/lock-app.matter b/examples/lock-app/nxp/zap/lock-app.matter index 8d9dd642fed42a..fabe278b77bda4 100644 --- a/examples/lock-app/nxp/zap/lock-app.matter +++ b/examples/lock-app/nxp/zap/lock-app.matter @@ -2083,6 +2083,11 @@ cluster DoorLock = 257 { kAliro = 10; } + enum StatusCodeEnum : enum8 { + kDUPLICATE = 2 [spec_name = "DUPLICATE"]; + kOCCUPIED = 3 [spec_name = "OCCUPIED"]; + } + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; @@ -2323,15 +2328,15 @@ cluster DoorLock = 257 { attribute access(write: administer) optional boolean sendPINOverTheAir = 50; attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; attribute access(write: administer) optional int16u expiringUserTimeout = 53; - provisional readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; - provisional readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; - provisional readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; - provisional readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; - provisional readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; - provisional readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; - provisional readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; + readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; + readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; + readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; + readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; + readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; + readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; + readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -2433,7 +2438,7 @@ cluster DoorLock = 257 { request struct SetUserRequest { DataOperationTypeEnum operationType = 0; int16u userIndex = 1; - nullable char_string userName = 2; + nullable char_string<10> userName = 2; nullable int32u userUniqueID = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -2446,7 +2451,7 @@ cluster DoorLock = 257 { response struct GetUserResponse = 28 { int16u userIndex = 0; - nullable char_string userName = 1; + nullable char_string<10> userName = 1; nullable int32u userUniqueID = 2; nullable UserStatusEnum userStatus = 3; nullable UserTypeEnum userType = 4; @@ -2464,7 +2469,7 @@ cluster DoorLock = 257 { request struct SetCredentialRequest { DataOperationTypeEnum operationType = 0; CredentialStruct credential = 1; - long_octet_string credentialData = 2; + octet_string credentialData = 2; nullable int16u userIndex = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -2518,7 +2523,7 @@ cluster DoorLock = 257 { command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; /** Set a time-specific schedule ID for a specified user. */ command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; - /** Returns the year day schedule data for the specified schedule and user indexes. */ + /** Retrieve the specific year day schedule for the specific schedule and user indexes. */ command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; /** Clears the specific year day schedule or all year day schedules for the specific user. */ command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; @@ -2528,11 +2533,11 @@ cluster DoorLock = 257 { command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; /** Clears the holiday schedule or all holiday schedules. */ command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; - /** Set User into the lock. */ + /** Set user into the lock. */ timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; - /** Retrieve User. */ + /** Retrieve user. */ command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; - /** Clears a User or all Users. */ + /** Clears a user or all Users. */ timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; @@ -2542,9 +2547,9 @@ cluster DoorLock = 257 { timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; /** This command causes the lock device to unlock the door without pulling the latch. */ timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; - /** This command communicates an Aliro Reader configuration to the lock. */ + /** This command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock. */ timed command access(invoke: administer) SetAliroReaderConfig(SetAliroReaderConfigRequest): DefaultSuccess = 40; - /** This command clears an existing Aliro Reader configuration for the lock. */ + /** This command allows clearing an existing Aliro Reader configuration for the lock. */ timed command access(invoke: administer) ClearAliroReaderConfig(): DefaultSuccess = 41; } diff --git a/examples/lock-app/qpg/zap/lock.matter b/examples/lock-app/qpg/zap/lock.matter index 1e00cf91a393e6..34306fac7e81a7 100644 --- a/examples/lock-app/qpg/zap/lock.matter +++ b/examples/lock-app/qpg/zap/lock.matter @@ -2418,6 +2418,11 @@ cluster DoorLock = 257 { kAliro = 10; } + enum StatusCodeEnum : enum8 { + kDUPLICATE = 2 [spec_name = "DUPLICATE"]; + kOCCUPIED = 3 [spec_name = "OCCUPIED"]; + } + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; @@ -2658,15 +2663,15 @@ cluster DoorLock = 257 { attribute access(write: administer) optional boolean sendPINOverTheAir = 50; attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; attribute access(write: administer) optional int16u expiringUserTimeout = 53; - provisional readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; - provisional readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; - provisional readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; - provisional readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; - provisional readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; - provisional readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; - provisional readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; + readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; + readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; + readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; + readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; + readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; + readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; + readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -2768,7 +2773,7 @@ cluster DoorLock = 257 { request struct SetUserRequest { DataOperationTypeEnum operationType = 0; int16u userIndex = 1; - nullable char_string userName = 2; + nullable char_string<10> userName = 2; nullable int32u userUniqueID = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -2781,7 +2786,7 @@ cluster DoorLock = 257 { response struct GetUserResponse = 28 { int16u userIndex = 0; - nullable char_string userName = 1; + nullable char_string<10> userName = 1; nullable int32u userUniqueID = 2; nullable UserStatusEnum userStatus = 3; nullable UserTypeEnum userType = 4; @@ -2799,7 +2804,7 @@ cluster DoorLock = 257 { request struct SetCredentialRequest { DataOperationTypeEnum operationType = 0; CredentialStruct credential = 1; - long_octet_string credentialData = 2; + octet_string credentialData = 2; nullable int16u userIndex = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -2853,7 +2858,7 @@ cluster DoorLock = 257 { command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; /** Set a time-specific schedule ID for a specified user. */ command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; - /** Returns the year day schedule data for the specified schedule and user indexes. */ + /** Retrieve the specific year day schedule for the specific schedule and user indexes. */ command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; /** Clears the specific year day schedule or all year day schedules for the specific user. */ command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; @@ -2863,11 +2868,11 @@ cluster DoorLock = 257 { command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; /** Clears the holiday schedule or all holiday schedules. */ command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; - /** Set User into the lock. */ + /** Set user into the lock. */ timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; - /** Retrieve User. */ + /** Retrieve user. */ command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; - /** Clears a User or all Users. */ + /** Clears a user or all Users. */ timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; @@ -2877,9 +2882,9 @@ cluster DoorLock = 257 { timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; /** This command causes the lock device to unlock the door without pulling the latch. */ timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; - /** This command communicates an Aliro Reader configuration to the lock. */ + /** This command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock. */ timed command access(invoke: administer) SetAliroReaderConfig(SetAliroReaderConfigRequest): DefaultSuccess = 40; - /** This command clears an existing Aliro Reader configuration for the lock. */ + /** This command allows clearing an existing Aliro Reader configuration for the lock. */ timed command access(invoke: administer) ClearAliroReaderConfig(): DefaultSuccess = 41; } diff --git a/examples/lock-app/realtek/data_model/lock-app.matter b/examples/lock-app/realtek/data_model/lock-app.matter index 3b8dc2e739bce8..6f751026baa342 100644 --- a/examples/lock-app/realtek/data_model/lock-app.matter +++ b/examples/lock-app/realtek/data_model/lock-app.matter @@ -2056,6 +2056,11 @@ cluster DoorLock = 257 { kAliro = 10; } + enum StatusCodeEnum : enum8 { + kDUPLICATE = 2 [spec_name = "DUPLICATE"]; + kOCCUPIED = 3 [spec_name = "OCCUPIED"]; + } + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; @@ -2296,15 +2301,15 @@ cluster DoorLock = 257 { attribute access(write: administer) optional boolean sendPINOverTheAir = 50; attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; attribute access(write: administer) optional int16u expiringUserTimeout = 53; - provisional readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; - provisional readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; - provisional readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; - provisional readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; - provisional readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; - provisional readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; - provisional readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; + readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; + readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; + readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; + readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; + readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; + readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; + readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -2406,7 +2411,7 @@ cluster DoorLock = 257 { request struct SetUserRequest { DataOperationTypeEnum operationType = 0; int16u userIndex = 1; - nullable char_string userName = 2; + nullable char_string<10> userName = 2; nullable int32u userUniqueID = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -2419,7 +2424,7 @@ cluster DoorLock = 257 { response struct GetUserResponse = 28 { int16u userIndex = 0; - nullable char_string userName = 1; + nullable char_string<10> userName = 1; nullable int32u userUniqueID = 2; nullable UserStatusEnum userStatus = 3; nullable UserTypeEnum userType = 4; @@ -2437,7 +2442,7 @@ cluster DoorLock = 257 { request struct SetCredentialRequest { DataOperationTypeEnum operationType = 0; CredentialStruct credential = 1; - long_octet_string credentialData = 2; + octet_string credentialData = 2; nullable int16u userIndex = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -2491,7 +2496,7 @@ cluster DoorLock = 257 { command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; /** Set a time-specific schedule ID for a specified user. */ command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; - /** Returns the year day schedule data for the specified schedule and user indexes. */ + /** Retrieve the specific year day schedule for the specific schedule and user indexes. */ command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; /** Clears the specific year day schedule or all year day schedules for the specific user. */ command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; @@ -2501,11 +2506,11 @@ cluster DoorLock = 257 { command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; /** Clears the holiday schedule or all holiday schedules. */ command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; - /** Set User into the lock. */ + /** Set user into the lock. */ timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; - /** Retrieve User. */ + /** Retrieve user. */ command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; - /** Clears a User or all Users. */ + /** Clears a user or all Users. */ timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; @@ -2515,9 +2520,9 @@ cluster DoorLock = 257 { timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; /** This command causes the lock device to unlock the door without pulling the latch. */ timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; - /** This command communicates an Aliro Reader configuration to the lock. */ + /** This command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock. */ timed command access(invoke: administer) SetAliroReaderConfig(SetAliroReaderConfigRequest): DefaultSuccess = 40; - /** This command clears an existing Aliro Reader configuration for the lock. */ + /** This command allows clearing an existing Aliro Reader configuration for the lock. */ timed command access(invoke: administer) ClearAliroReaderConfig(): DefaultSuccess = 41; } diff --git a/examples/lock-app/silabs/data_model/lock-app.matter b/examples/lock-app/silabs/data_model/lock-app.matter index c3506205c5c5f0..9e178053f51446 100644 --- a/examples/lock-app/silabs/data_model/lock-app.matter +++ b/examples/lock-app/silabs/data_model/lock-app.matter @@ -2459,6 +2459,11 @@ cluster DoorLock = 257 { kAliro = 10; } + enum StatusCodeEnum : enum8 { + kDUPLICATE = 2 [spec_name = "DUPLICATE"]; + kOCCUPIED = 3 [spec_name = "OCCUPIED"]; + } + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; @@ -2699,15 +2704,15 @@ cluster DoorLock = 257 { attribute access(write: administer) optional boolean sendPINOverTheAir = 50; attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; attribute access(write: administer) optional int16u expiringUserTimeout = 53; - provisional readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; - provisional readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; - provisional readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; - provisional readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; - provisional readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; - provisional readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; - provisional readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; + readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; + readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; + readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; + readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; + readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; + readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; + readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -2809,7 +2814,7 @@ cluster DoorLock = 257 { request struct SetUserRequest { DataOperationTypeEnum operationType = 0; int16u userIndex = 1; - nullable char_string userName = 2; + nullable char_string<10> userName = 2; nullable int32u userUniqueID = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -2822,7 +2827,7 @@ cluster DoorLock = 257 { response struct GetUserResponse = 28 { int16u userIndex = 0; - nullable char_string userName = 1; + nullable char_string<10> userName = 1; nullable int32u userUniqueID = 2; nullable UserStatusEnum userStatus = 3; nullable UserTypeEnum userType = 4; @@ -2840,7 +2845,7 @@ cluster DoorLock = 257 { request struct SetCredentialRequest { DataOperationTypeEnum operationType = 0; CredentialStruct credential = 1; - long_octet_string credentialData = 2; + octet_string credentialData = 2; nullable int16u userIndex = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -2894,7 +2899,7 @@ cluster DoorLock = 257 { command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; /** Set a time-specific schedule ID for a specified user. */ command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; - /** Returns the year day schedule data for the specified schedule and user indexes. */ + /** Retrieve the specific year day schedule for the specific schedule and user indexes. */ command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; /** Clears the specific year day schedule or all year day schedules for the specific user. */ command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; @@ -2904,11 +2909,11 @@ cluster DoorLock = 257 { command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; /** Clears the holiday schedule or all holiday schedules. */ command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; - /** Set User into the lock. */ + /** Set user into the lock. */ timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; - /** Retrieve User. */ + /** Retrieve user. */ command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; - /** Clears a User or all Users. */ + /** Clears a user or all Users. */ timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; @@ -2918,9 +2923,9 @@ cluster DoorLock = 257 { timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; /** This command causes the lock device to unlock the door without pulling the latch. */ timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; - /** This command communicates an Aliro Reader configuration to the lock. */ + /** This command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock. */ timed command access(invoke: administer) SetAliroReaderConfig(SetAliroReaderConfigRequest): DefaultSuccess = 40; - /** This command clears an existing Aliro Reader configuration for the lock. */ + /** This command allows clearing an existing Aliro Reader configuration for the lock. */ timed command access(invoke: administer) ClearAliroReaderConfig(): DefaultSuccess = 41; } diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter index 4c31b5062d2043..322ff60c608927 100644 --- a/examples/placeholder/linux/apps/app1/config.matter +++ b/examples/placeholder/linux/apps/app1/config.matter @@ -3732,6 +3732,11 @@ cluster DoorLock = 257 { kAliro = 10; } + enum StatusCodeEnum : enum8 { + kDUPLICATE = 2 [spec_name = "DUPLICATE"]; + kOCCUPIED = 3 [spec_name = "OCCUPIED"]; + } + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; @@ -3972,15 +3977,15 @@ cluster DoorLock = 257 { attribute access(write: administer) optional boolean sendPINOverTheAir = 50; attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; attribute access(write: administer) optional int16u expiringUserTimeout = 53; - provisional readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; - provisional readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; - provisional readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; - provisional readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; - provisional readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; - provisional readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; - provisional readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; + readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; + readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; + readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; + readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; + readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; + readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; + readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -4082,7 +4087,7 @@ cluster DoorLock = 257 { request struct SetUserRequest { DataOperationTypeEnum operationType = 0; int16u userIndex = 1; - nullable char_string userName = 2; + nullable char_string<10> userName = 2; nullable int32u userUniqueID = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -4095,7 +4100,7 @@ cluster DoorLock = 257 { response struct GetUserResponse = 28 { int16u userIndex = 0; - nullable char_string userName = 1; + nullable char_string<10> userName = 1; nullable int32u userUniqueID = 2; nullable UserStatusEnum userStatus = 3; nullable UserTypeEnum userType = 4; @@ -4113,7 +4118,7 @@ cluster DoorLock = 257 { request struct SetCredentialRequest { DataOperationTypeEnum operationType = 0; CredentialStruct credential = 1; - long_octet_string credentialData = 2; + octet_string credentialData = 2; nullable int16u userIndex = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -4167,7 +4172,7 @@ cluster DoorLock = 257 { command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; /** Set a time-specific schedule ID for a specified user. */ command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; - /** Returns the year day schedule data for the specified schedule and user indexes. */ + /** Retrieve the specific year day schedule for the specific schedule and user indexes. */ command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; /** Clears the specific year day schedule or all year day schedules for the specific user. */ command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; @@ -4177,11 +4182,11 @@ cluster DoorLock = 257 { command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; /** Clears the holiday schedule or all holiday schedules. */ command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; - /** Set User into the lock. */ + /** Set user into the lock. */ timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; - /** Retrieve User. */ + /** Retrieve user. */ command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; - /** Clears a User or all Users. */ + /** Clears a user or all Users. */ timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; @@ -4191,9 +4196,9 @@ cluster DoorLock = 257 { timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; /** This command causes the lock device to unlock the door without pulling the latch. */ timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; - /** This command communicates an Aliro Reader configuration to the lock. */ + /** This command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock. */ timed command access(invoke: administer) SetAliroReaderConfig(SetAliroReaderConfigRequest): DefaultSuccess = 40; - /** This command clears an existing Aliro Reader configuration for the lock. */ + /** This command allows clearing an existing Aliro Reader configuration for the lock. */ timed command access(invoke: administer) ClearAliroReaderConfig(): DefaultSuccess = 41; } @@ -4383,6 +4388,11 @@ cluster DoorLock = 257 { kAliro = 10; } + enum StatusCodeEnum : enum8 { + kDUPLICATE = 2 [spec_name = "DUPLICATE"]; + kOCCUPIED = 3 [spec_name = "OCCUPIED"]; + } + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; @@ -4623,15 +4633,15 @@ cluster DoorLock = 257 { attribute access(write: administer) optional boolean sendPINOverTheAir = 50; attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; attribute access(write: administer) optional int16u expiringUserTimeout = 53; - provisional readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; - provisional readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; - provisional readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; - provisional readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; - provisional readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; - provisional readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; - provisional readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; + readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; + readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; + readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; + readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; + readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; + readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; + readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -4733,7 +4743,7 @@ cluster DoorLock = 257 { request struct SetUserRequest { DataOperationTypeEnum operationType = 0; int16u userIndex = 1; - nullable char_string userName = 2; + nullable char_string<10> userName = 2; nullable int32u userUniqueID = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -4746,7 +4756,7 @@ cluster DoorLock = 257 { response struct GetUserResponse = 28 { int16u userIndex = 0; - nullable char_string userName = 1; + nullable char_string<10> userName = 1; nullable int32u userUniqueID = 2; nullable UserStatusEnum userStatus = 3; nullable UserTypeEnum userType = 4; @@ -4764,7 +4774,7 @@ cluster DoorLock = 257 { request struct SetCredentialRequest { DataOperationTypeEnum operationType = 0; CredentialStruct credential = 1; - long_octet_string credentialData = 2; + octet_string credentialData = 2; nullable int16u userIndex = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -4818,7 +4828,7 @@ cluster DoorLock = 257 { command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; /** Set a time-specific schedule ID for a specified user. */ command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; - /** Returns the year day schedule data for the specified schedule and user indexes. */ + /** Retrieve the specific year day schedule for the specific schedule and user indexes. */ command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; /** Clears the specific year day schedule or all year day schedules for the specific user. */ command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; @@ -4828,11 +4838,11 @@ cluster DoorLock = 257 { command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; /** Clears the holiday schedule or all holiday schedules. */ command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; - /** Set User into the lock. */ + /** Set user into the lock. */ timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; - /** Retrieve User. */ + /** Retrieve user. */ command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; - /** Clears a User or all Users. */ + /** Clears a user or all Users. */ timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; @@ -4842,9 +4852,9 @@ cluster DoorLock = 257 { timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; /** This command causes the lock device to unlock the door without pulling the latch. */ timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; - /** This command communicates an Aliro Reader configuration to the lock. */ + /** This command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock. */ timed command access(invoke: administer) SetAliroReaderConfig(SetAliroReaderConfigRequest): DefaultSuccess = 40; - /** This command clears an existing Aliro Reader configuration for the lock. */ + /** This command allows clearing an existing Aliro Reader configuration for the lock. */ timed command access(invoke: administer) ClearAliroReaderConfig(): DefaultSuccess = 41; } diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter index 11d33ee0c6e02f..88c1d0b2ab53b2 100644 --- a/examples/placeholder/linux/apps/app2/config.matter +++ b/examples/placeholder/linux/apps/app2/config.matter @@ -3732,6 +3732,11 @@ cluster DoorLock = 257 { kAliro = 10; } + enum StatusCodeEnum : enum8 { + kDUPLICATE = 2 [spec_name = "DUPLICATE"]; + kOCCUPIED = 3 [spec_name = "OCCUPIED"]; + } + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; @@ -3972,15 +3977,15 @@ cluster DoorLock = 257 { attribute access(write: administer) optional boolean sendPINOverTheAir = 50; attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; attribute access(write: administer) optional int16u expiringUserTimeout = 53; - provisional readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; - provisional readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; - provisional readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; - provisional readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; - provisional readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; - provisional readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; - provisional readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; + readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; + readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; + readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; + readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; + readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; + readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; + readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -4082,7 +4087,7 @@ cluster DoorLock = 257 { request struct SetUserRequest { DataOperationTypeEnum operationType = 0; int16u userIndex = 1; - nullable char_string userName = 2; + nullable char_string<10> userName = 2; nullable int32u userUniqueID = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -4095,7 +4100,7 @@ cluster DoorLock = 257 { response struct GetUserResponse = 28 { int16u userIndex = 0; - nullable char_string userName = 1; + nullable char_string<10> userName = 1; nullable int32u userUniqueID = 2; nullable UserStatusEnum userStatus = 3; nullable UserTypeEnum userType = 4; @@ -4113,7 +4118,7 @@ cluster DoorLock = 257 { request struct SetCredentialRequest { DataOperationTypeEnum operationType = 0; CredentialStruct credential = 1; - long_octet_string credentialData = 2; + octet_string credentialData = 2; nullable int16u userIndex = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -4167,7 +4172,7 @@ cluster DoorLock = 257 { command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; /** Set a time-specific schedule ID for a specified user. */ command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; - /** Returns the year day schedule data for the specified schedule and user indexes. */ + /** Retrieve the specific year day schedule for the specific schedule and user indexes. */ command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; /** Clears the specific year day schedule or all year day schedules for the specific user. */ command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; @@ -4177,11 +4182,11 @@ cluster DoorLock = 257 { command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; /** Clears the holiday schedule or all holiday schedules. */ command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; - /** Set User into the lock. */ + /** Set user into the lock. */ timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; - /** Retrieve User. */ + /** Retrieve user. */ command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; - /** Clears a User or all Users. */ + /** Clears a user or all Users. */ timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; @@ -4191,9 +4196,9 @@ cluster DoorLock = 257 { timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; /** This command causes the lock device to unlock the door without pulling the latch. */ timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; - /** This command communicates an Aliro Reader configuration to the lock. */ + /** This command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock. */ timed command access(invoke: administer) SetAliroReaderConfig(SetAliroReaderConfigRequest): DefaultSuccess = 40; - /** This command clears an existing Aliro Reader configuration for the lock. */ + /** This command allows clearing an existing Aliro Reader configuration for the lock. */ timed command access(invoke: administer) ClearAliroReaderConfig(): DefaultSuccess = 41; } @@ -4383,6 +4388,11 @@ cluster DoorLock = 257 { kAliro = 10; } + enum StatusCodeEnum : enum8 { + kDUPLICATE = 2 [spec_name = "DUPLICATE"]; + kOCCUPIED = 3 [spec_name = "OCCUPIED"]; + } + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; @@ -4623,15 +4633,15 @@ cluster DoorLock = 257 { attribute access(write: administer) optional boolean sendPINOverTheAir = 50; attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; attribute access(write: administer) optional int16u expiringUserTimeout = 53; - provisional readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; - provisional readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; - provisional readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; - provisional readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; - provisional readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; - provisional readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; - provisional readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; + readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; + readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; + readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; + readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; + readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; + readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; + readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -4733,7 +4743,7 @@ cluster DoorLock = 257 { request struct SetUserRequest { DataOperationTypeEnum operationType = 0; int16u userIndex = 1; - nullable char_string userName = 2; + nullable char_string<10> userName = 2; nullable int32u userUniqueID = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -4746,7 +4756,7 @@ cluster DoorLock = 257 { response struct GetUserResponse = 28 { int16u userIndex = 0; - nullable char_string userName = 1; + nullable char_string<10> userName = 1; nullable int32u userUniqueID = 2; nullable UserStatusEnum userStatus = 3; nullable UserTypeEnum userType = 4; @@ -4764,7 +4774,7 @@ cluster DoorLock = 257 { request struct SetCredentialRequest { DataOperationTypeEnum operationType = 0; CredentialStruct credential = 1; - long_octet_string credentialData = 2; + octet_string credentialData = 2; nullable int16u userIndex = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -4818,7 +4828,7 @@ cluster DoorLock = 257 { command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; /** Set a time-specific schedule ID for a specified user. */ command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; - /** Returns the year day schedule data for the specified schedule and user indexes. */ + /** Retrieve the specific year day schedule for the specific schedule and user indexes. */ command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; /** Clears the specific year day schedule or all year day schedules for the specific user. */ command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; @@ -4828,11 +4838,11 @@ cluster DoorLock = 257 { command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; /** Clears the holiday schedule or all holiday schedules. */ command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; - /** Set User into the lock. */ + /** Set user into the lock. */ timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; - /** Retrieve User. */ + /** Retrieve user. */ command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; - /** Clears a User or all Users. */ + /** Clears a user or all Users. */ timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; @@ -4842,9 +4852,9 @@ cluster DoorLock = 257 { timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; /** This command causes the lock device to unlock the door without pulling the latch. */ timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; - /** This command communicates an Aliro Reader configuration to the lock. */ + /** This command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock. */ timed command access(invoke: administer) SetAliroReaderConfig(SetAliroReaderConfigRequest): DefaultSuccess = 40; - /** This command clears an existing Aliro Reader configuration for the lock. */ + /** This command allows clearing an existing Aliro Reader configuration for the lock. */ timed command access(invoke: administer) ClearAliroReaderConfig(): DefaultSuccess = 41; } diff --git a/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter b/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter index 596120559d2ea1..5949db1f6c3851 100644 --- a/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter +++ b/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter @@ -2691,6 +2691,11 @@ cluster DoorLock = 257 { kAliro = 10; } + enum StatusCodeEnum : enum8 { + kDUPLICATE = 2 [spec_name = "DUPLICATE"]; + kOCCUPIED = 3 [spec_name = "OCCUPIED"]; + } + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; @@ -2931,15 +2936,15 @@ cluster DoorLock = 257 { attribute access(write: administer) optional boolean sendPINOverTheAir = 50; attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; attribute access(write: administer) optional int16u expiringUserTimeout = 53; - provisional readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; - provisional readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; - provisional readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; - provisional readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; - provisional readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; - provisional readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; - provisional readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; + readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; + readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; + readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; + readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; + readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; + readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; + readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -3041,7 +3046,7 @@ cluster DoorLock = 257 { request struct SetUserRequest { DataOperationTypeEnum operationType = 0; int16u userIndex = 1; - nullable char_string userName = 2; + nullable char_string<10> userName = 2; nullable int32u userUniqueID = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -3054,7 +3059,7 @@ cluster DoorLock = 257 { response struct GetUserResponse = 28 { int16u userIndex = 0; - nullable char_string userName = 1; + nullable char_string<10> userName = 1; nullable int32u userUniqueID = 2; nullable UserStatusEnum userStatus = 3; nullable UserTypeEnum userType = 4; @@ -3072,7 +3077,7 @@ cluster DoorLock = 257 { request struct SetCredentialRequest { DataOperationTypeEnum operationType = 0; CredentialStruct credential = 1; - long_octet_string credentialData = 2; + octet_string credentialData = 2; nullable int16u userIndex = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -3126,7 +3131,7 @@ cluster DoorLock = 257 { command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; /** Set a time-specific schedule ID for a specified user. */ command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; - /** Returns the year day schedule data for the specified schedule and user indexes. */ + /** Retrieve the specific year day schedule for the specific schedule and user indexes. */ command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; /** Clears the specific year day schedule or all year day schedules for the specific user. */ command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; @@ -3136,11 +3141,11 @@ cluster DoorLock = 257 { command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; /** Clears the holiday schedule or all holiday schedules. */ command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; - /** Set User into the lock. */ + /** Set user into the lock. */ timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; - /** Retrieve User. */ + /** Retrieve user. */ command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; - /** Clears a User or all Users. */ + /** Clears a user or all Users. */ timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; @@ -3150,9 +3155,9 @@ cluster DoorLock = 257 { timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; /** This command causes the lock device to unlock the door without pulling the latch. */ timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; - /** This command communicates an Aliro Reader configuration to the lock. */ + /** This command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock. */ timed command access(invoke: administer) SetAliroReaderConfig(SetAliroReaderConfigRequest): DefaultSuccess = 40; - /** This command clears an existing Aliro Reader configuration for the lock. */ + /** This command allows clearing an existing Aliro Reader configuration for the lock. */ timed command access(invoke: administer) ClearAliroReaderConfig(): DefaultSuccess = 41; } diff --git a/src/app/zap-templates/zcl/data-model/chip/door-lock-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/door-lock-cluster.xml index 5aab5a0e00e4cb..6a2674eef7b68a 100644 --- a/src/app/zap-templates/zcl/data-model/chip/door-lock-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/door-lock-cluster.xml @@ -1,6 +1,6 @@ - - - - - Closures - Door Lock - 0x0101 - DOOR_LOCK_CLUSTER - An interface to a generic way to secure a door - - - - - - - - - - - - - - - - - - true - true - - - - - - true - false - false - false - true - true - false - true - true - false - true - true - true - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + Closures + Door Lock + 0x0101 + DOOR_LOCK_CLUSTER + An interface to a generic way to secure a door + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + - + - @@ -158,7 +140,6 @@ limitations under the License. - @@ -166,44 +147,43 @@ limitations under the License. - - + - + - + - + - + - + @@ -233,76 +213,62 @@ limitations under the License. - + - + - - + - - + - - + - - + - - + - - - - - + + - - + - - + - - + - - + - - + - - + @@ -312,8 +278,7 @@ limitations under the License. - - + @@ -323,8 +288,7 @@ limitations under the License. - - + @@ -336,8 +300,7 @@ limitations under the License. - - + @@ -348,416 +311,439 @@ limitations under the License. - - + - + - + - + - + - + - + - + - + - + - + This command causes the lock device to lock the door. - - + - + + This command causes the lock device to unlock the door. - - + + - + This command causes the lock device to unlock the door with a timeout parameter. - + - + + - + Set a weekly repeating schedule for a specified user. - - - - - - - + + + + + + + + - + Retrieve the specific weekly schedule for the specific user. - - + + + - + Returns the weekly repeating schedule data for the specified schedule index. - - - - - - - - + + + + + + + + + - + Clear the specific weekly schedule or all weekly schedules for the specific user. - - + + + - + Set a time-specific schedule ID for a specified user. - - - - + + + + + - - Returns the year day schedule data for the specified schedule and user indexes. + + Retrieve the specific year day schedule for the specific schedule and user indexes. - - + + + - + Returns the year day schedule data for the specified schedule and user indexes. - - - - - + + + + + + - + Clears the specific year day schedule or all year day schedules for the specific user. - - + + + - + Set the holiday Schedule by specifying local start time and local end time with respect to any Lock Operating Mode. - - - - + + + + + - + Get the holiday schedule for the specified index. - + + - + Returns the Holiday Schedule Entry for the specified Holiday ID. - - - - - + + + + + + - + Clears the holiday schedule or all holiday schedules. - + + - - Set User into the lock. + + Set user into the lock. - - - - - - - + + + + + + + + - - Retrieve User. + + Retrieve user. - + + - - Returns the User for the specified UserIndex. - - - - - - - - - - + + Returns the user for the specified UserIndex. + + + + + + + + + + + - - Clears a User or all Users. + + Clears a user or all Users. - + + - + Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. - - - - - - + + + + + + + - + Returns the status for setting the specified credential. - - - + + + + - + Retrieve the status of a particular credential (e.g. PIN, RFID, Fingerprint, etc.) by index. - + + - + Returns the status for the specified credential. - - - - - - + + + + + + + - + Clear one, one type, or all credentials except ProgrammingPIN credential. - + - + + This command causes the lock device to unlock the door without pulling the latch. - + - - This command communicates an Aliro Reader configuration to the lock. + + + This command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock. - - - - + + + + - - This command clears an existing Aliro Reader configuration for the lock. + + + This command allows clearing an existing Aliro Reader configuration for the lock. - - The door lock cluster provides several alarms which can be sent when there is a critical state on the door lock. - - + The door lock server provides several alarms which can be sent when there is a critical state on the door lock. + + The door lock server sends out a DoorStateChange event when the door lock door state changes. - + + The door lock server sends out a LockOperation event when the event is triggered by the various lock operation sources. - - - - - + + + + + - - + + The door lock server sends out a LockOperationError event when a lock operation fails for various reasons. - - - - - - + + + + + + - - + - + + The door lock server sends out a LockUserChange event when a lock user, schedule, or credential change has occurred. - - - - - - - + + + + + + + - + @@ -788,8 +774,8 @@ limitations under the License. - - + + @@ -893,6 +879,12 @@ limitations under the License. + + + + + + @@ -914,7 +906,6 @@ limitations under the License. - @@ -928,7 +919,7 @@ limitations under the License. - + @@ -944,200 +935,203 @@ limitations under the License. - - - - + + + + - - + + + + - + + - - - - - - + + + + + + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index 999b0d00290844..762874cc0ae885 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -6046,6 +6046,11 @@ cluster DoorLock = 257 { kAliro = 10; } + enum StatusCodeEnum : enum8 { + kDUPLICATE = 2 [spec_name = "DUPLICATE"]; + kOCCUPIED = 3 [spec_name = "OCCUPIED"]; + } + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; @@ -6286,15 +6291,15 @@ cluster DoorLock = 257 { attribute access(write: administer) optional boolean sendPINOverTheAir = 50; attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; attribute access(write: administer) optional int16u expiringUserTimeout = 53; - provisional readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; - provisional readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; - provisional readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; - provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; - provisional readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; - provisional readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; - provisional readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; - provisional readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; + readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; + readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; + readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; + readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; + readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; + readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; + readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; + readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -6396,7 +6401,7 @@ cluster DoorLock = 257 { request struct SetUserRequest { DataOperationTypeEnum operationType = 0; int16u userIndex = 1; - nullable char_string userName = 2; + nullable char_string<10> userName = 2; nullable int32u userUniqueID = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -6409,7 +6414,7 @@ cluster DoorLock = 257 { response struct GetUserResponse = 28 { int16u userIndex = 0; - nullable char_string userName = 1; + nullable char_string<10> userName = 1; nullable int32u userUniqueID = 2; nullable UserStatusEnum userStatus = 3; nullable UserTypeEnum userType = 4; @@ -6427,7 +6432,7 @@ cluster DoorLock = 257 { request struct SetCredentialRequest { DataOperationTypeEnum operationType = 0; CredentialStruct credential = 1; - long_octet_string credentialData = 2; + octet_string credentialData = 2; nullable int16u userIndex = 3; nullable UserStatusEnum userStatus = 4; nullable UserTypeEnum userType = 5; @@ -6481,7 +6486,7 @@ cluster DoorLock = 257 { command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; /** Set a time-specific schedule ID for a specified user. */ command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; - /** Returns the year day schedule data for the specified schedule and user indexes. */ + /** Retrieve the specific year day schedule for the specific schedule and user indexes. */ command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; /** Clears the specific year day schedule or all year day schedules for the specific user. */ command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; @@ -6491,11 +6496,11 @@ cluster DoorLock = 257 { command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; /** Clears the holiday schedule or all holiday schedules. */ command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; - /** Set User into the lock. */ + /** Set user into the lock. */ timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; - /** Retrieve User. */ + /** Retrieve user. */ command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; - /** Clears a User or all Users. */ + /** Clears a user or all Users. */ timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; @@ -6505,9 +6510,9 @@ cluster DoorLock = 257 { timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; /** This command causes the lock device to unlock the door without pulling the latch. */ timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; - /** This command communicates an Aliro Reader configuration to the lock. */ + /** This command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock. */ timed command access(invoke: administer) SetAliroReaderConfig(SetAliroReaderConfigRequest): DefaultSuccess = 40; - /** This command clears an existing Aliro Reader configuration for the lock. */ + /** This command allows clearing an existing Aliro Reader configuration for the lock. */ timed command access(invoke: administer) ClearAliroReaderConfig(): DefaultSuccess = 41; } diff --git a/src/controller/python/matter/clusters/Objects.py b/src/controller/python/matter/clusters/Objects.py index dc0ca0b2643145..efc32714a0df65 100644 --- a/src/controller/python/matter/clusters/Objects.py +++ b/src/controller/python/matter/clusters/Objects.py @@ -27909,6 +27909,15 @@ class OperationSourceEnum(MatterIntEnum): # enum value. This specific value should never be transmitted. kUnknownEnumValue = 11 + class StatusCodeEnum(MatterIntEnum): + kDuplicate = 0x02 + kOccupied = 0x03 + # All received enum values that are not listed above will be mapped + # to kUnknownEnumValue. This is a helper enum value that should only + # be used by code to process how it handles receiving an unknown + # enum value. This specific value should never be transmitted. + kUnknownEnumValue = 0 + class UserStatusEnum(MatterIntEnum): kAvailable = 0x00 kOccupiedEnabled = 0x01 diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h index bf50810e64d86e..a394ab856770fb 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h @@ -8433,7 +8433,7 @@ MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) /** * Command GetYearDaySchedule * - * Returns the year day schedule data for the specified schedule and user indexes. + * Retrieve the specific year day schedule for the specific schedule and user indexes. */ - (void)getYearDayScheduleWithParams:(MTRDoorLockClusterGetYearDayScheduleParams *)params completion:(void (^)(MTRDoorLockClusterGetYearDayScheduleResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)); /** @@ -8463,19 +8463,19 @@ MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) /** * Command SetUser * - * Set User into the lock. + * Set user into the lock. */ - (void)setUserWithParams:(MTRDoorLockClusterSetUserParams *)params completion:(MTRStatusCompletion)completion MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)); /** * Command GetUser * - * Retrieve User. + * Retrieve user. */ - (void)getUserWithParams:(MTRDoorLockClusterGetUserParams *)params completion:(void (^)(MTRDoorLockClusterGetUserResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)); /** * Command ClearUser * - * Clears a User or all Users. + * Clears a user or all Users. */ - (void)clearUserWithParams:(MTRDoorLockClusterClearUserParams *)params completion:(MTRStatusCompletion)completion MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)); /** @@ -8507,13 +8507,13 @@ MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) /** * Command SetAliroReaderConfig * - * This command communicates an Aliro Reader configuration to the lock. + * This command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock. */ - (void)setAliroReaderConfigWithParams:(MTRDoorLockClusterSetAliroReaderConfigParams *)params completion:(MTRStatusCompletion)completion MTR_AVAILABLE(ios(18.4), macos(15.4), watchos(11.4), tvos(18.4)); /** * Command ClearAliroReaderConfig * - * This command clears an existing Aliro Reader configuration for the lock. + * This command allows clearing an existing Aliro Reader configuration for the lock. */ - (void)clearAliroReaderConfigWithParams:(MTRDoorLockClusterClearAliroReaderConfigParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_AVAILABLE(ios(18.4), macos(15.4), watchos(11.4), tvos(18.4)); - (void)clearAliroReaderConfigWithCompletion:(MTRStatusCompletion)completion @@ -20488,6 +20488,11 @@ typedef NS_ENUM(uint8_t, MTRDoorLockDlOperationSource) { MTRDoorLockDlOperationSourceBiometric MTR_DEPRECATED("Please use MTRDoorLockOperationSourceBiometric", ios(16.1, 16.4), macos(13.0, 13.3), watchos(9.1, 9.4), tvos(16.1, 16.4)) = 0x09, } MTR_DEPRECATED("Please use MTRDoorLockOperationSource", ios(16.1, 16.4), macos(13.0, 13.3), watchos(9.1, 9.4), tvos(16.1, 16.4)); +typedef NS_ENUM(uint8_t, MTRDoorLockStatusCode) { + MTRDoorLockStatusCodeDUPLICATE MTR_PROVISIONALLY_AVAILABLE = 0x02, + MTRDoorLockStatusCodeOCCUPIED MTR_PROVISIONALLY_AVAILABLE = 0x03, +} MTR_PROVISIONALLY_AVAILABLE; + typedef NS_ENUM(uint8_t, MTRDoorLockUserStatus) { MTRDoorLockUserStatusAvailable MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) = 0x00, MTRDoorLockUserStatusOccupiedEnabled MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) = 0x01, diff --git a/zzz_generated/app-common/clusters/DoorLock/Enums.h b/zzz_generated/app-common/clusters/DoorLock/Enums.h index 184f73b7c2668e..683377191b9167 100644 --- a/zzz_generated/app-common/clusters/DoorLock/Enums.h +++ b/zzz_generated/app-common/clusters/DoorLock/Enums.h @@ -336,6 +336,18 @@ enum class OperationSourceEnum : uint8_t kUnknownEnumValue = 11, }; +// Enum for StatusCodeEnum +enum class StatusCodeEnum : uint8_t +{ + kDuplicate = 0x02, + kOccupied = 0x03, + // All received enum values that are not listed above will be mapped + // to kUnknownEnumValue. This is a helper enum value that should only + // be used by code to process how it handles receiving and unknown + // enum value. This specific should never be transmitted. + kUnknownEnumValue = 0, +}; + // Enum for UserStatusEnum enum class UserStatusEnum : uint8_t { diff --git a/zzz_generated/app-common/clusters/DoorLock/EnumsCheck.h b/zzz_generated/app-common/clusters/DoorLock/EnumsCheck.h index cff336717d4008..6952cbf9f8d9b6 100644 --- a/zzz_generated/app-common/clusters/DoorLock/EnumsCheck.h +++ b/zzz_generated/app-common/clusters/DoorLock/EnumsCheck.h @@ -333,6 +333,18 @@ static auto __attribute__((unused)) EnsureKnownEnumValue(DoorLock::OperationSour return EnumType::kUnknownEnumValue; } } +static auto __attribute__((unused)) EnsureKnownEnumValue(DoorLock::StatusCodeEnum val) +{ + using EnumType = DoorLock::StatusCodeEnum; + switch (val) + { + case EnumType::kDuplicate: + case EnumType::kOccupied: + return val; + default: + return EnumType::kUnknownEnumValue; + } +} static auto __attribute__((unused)) EnsureKnownEnumValue(DoorLock::UserStatusEnum val) { using EnumType = DoorLock::UserStatusEnum; From 2b12893e3e3be491f56a0855e6c8b512a971d0d6 Mon Sep 17 00:00:00 2001 From: Moises Terrones Date: Thu, 30 Apr 2026 23:04:10 -0600 Subject: [PATCH 2/2] Update XML with latest Alchemy and spec --- .../zap-templates/zcl/data-model/chip/door-lock-cluster.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app/zap-templates/zcl/data-model/chip/door-lock-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/door-lock-cluster.xml index 6a2674eef7b68a..2a4290fd292984 100644 --- a/src/app/zap-templates/zcl/data-model/chip/door-lock-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/door-lock-cluster.xml @@ -17,9 +17,9 @@ limitations under the License.