Locks, closures, HVAC and lighting257 — Door Lock

Matter Cluster 257 — Door Lock

Matter Cluster 257 (0x0101) Door Lock: attributes, commands, events, data types, shadow paths and bridge payload examples.

Matter Cluster 257 — Door Lock Cluster

Matter Cluster 257, also written as 0x0101, is the Door Lock Cluster. The door lock cluster provides an interface to a generic way to secure a door. The physical object that provides the locking functionality is abstracted from the cluster. The cluster has a small list of mandatory attributes and functions and a list of optional features.

Cluster Identity

FieldValue
Cluster ID decimal257
Cluster ID hex0x0101
Cluster nameDoor Lock
Cluster revision (Matter 1.6.1)10
Roleapplication
ScopeEndpoint
PICS codeDRLK
Typical endpoint1

Revision history

RevisionChange
1Mandatory global ClusterRevision attribute added; CCB 1811 1812 1821
2CCB 2430
3CCB 2629 2630
4All Hubs changes and added feature map
5CCB 3472 3474 3338
6New data model format and notation. Added User features. General cleanup of functionality
7Added support for European door locks (unbolt feature)
8Removed LOG and NOT feature, fixed constraints on NumberOf*Schedules attributes and added support for Aliro credential provisioning
9Removed AlarmMask attribute
10Removed Zigbee related elements and P quality

Shadow Path Format

Cluster 257 values in the device shadow use this format:

endpoint_id / 257 / attribute_id

Example:

{
  "1/257/0": 1
}
PartMeaning
1Endpoint ID
257Door Lock cluster
0LockState attribute

Cluster 257 Features

The FeatureMap attribute (1/257/65532) is a bitmap. Each bit set means the device implements that feature and the attributes and commands that depend on it.

BitCodeFeatureConformanceMeaning
0PINPINCredentialOLock supports PIN credentials (via keypad, or over-the-air)
1RIDRFIDCredentialP, OLock supports RFID credentials
2FGPFingerCredentialsP, OLock supports finger related credentials (fingerprint, finger vein)
4WDSCHWeekDayAccessSchedulesOLock supports week day user access schedules
5DPSDoorPositionSensorOLock supports a door position sensor that indicates door's state
6FACEFaceCredentialsP, OLock supports face related credentials (face, iris, retina)
7COTACredentialOverTheAirAccessOPIN codes over-the-air supported for lock/unlock operations
8USRUserPIN | RID | FGP | FACE | ALIROLock supports the user commands and database
10YDSCHYearDayAccessSchedulesOLock supports year day user access schedules
11HDSCHHolidaySchedulesOLock supports holiday schedules
12UBOLTUnboltingOLock supports unbolting
13ALIROAliroProvisioningOLock supports Aliro credential provisioning as defined in Aliro
14ALBUAliroBLEUWB[ALIRO]Lock supports the Bluetooth LE + UWB Access Control Flow as defined in Aliro

Example: FeatureMap = 0 means no optional feature is enabled; 32247 means every feature listed above is enabled.


Data Types

AlarmCodeEnum

This enumeration indicates the alarm type.

ValueNameConformanceMeaning
0LockJammedMLocking Mechanism Jammed
1LockFactoryResetOLock Reset to Factory Defaults
3LockRadioPowerCycledOLock Radio Power Cycled
4WrongCodeEntryLimit[USR]Tamper Alarm - wrong code entry limit
5FrontEsceutcheonRemovedOTamper Alarm - front escutcheon removed from main
6DoorForcedOpen[DPS]Forced Door Open under Door Locked Condition
7DoorAjar[DPS]Door ajar
8ForcedUser[USR]Force User SOS alarm

CredentialRuleEnum

This enumeration indicates the credential rule that can be applied to a particular user.

ValueNameConformanceMeaning
0SingleUSROnly one credential is required for lock operation
1Dual[USR]Any two credentials are required for lock operation
2Tri[USR]Any three credentials are required for lock operation

CredentialTypeEnum

This enumeration indicates the credential type.

ValueNameConformanceMeaning
0ProgrammingPINOProgramming PIN code credential type
1PINPINPIN code credential type
2RFIDRIDRFID identifier credential type
3FingerprintFGPFingerprint identifier credential type
4FingerVeinFGPFinger vein identifier credential type
5FaceFACEFace identifier credential type
6AliroCredentialIssuerKeyALIROA Credential Issuer public key as defined in Aliro
7AliroEvictableEndpointKeyALIROAn Endpoint public key as defined in Aliro which can be evicted if space is needed for another endpoint key
8AliroNonEvictableEndpointKeyALIROAn Endpoint public key as defined in Aliro which cannot be evicted if space is needed for another endpoint key

DataOperationTypeEnum

This enumeration indicates the data operation performed.

ValueNameConformanceMeaning
0AddMData is being added or was added
1ClearMData is being cleared or was cleared
2ModifyMData is being modified or was modified

DoorStateEnum

This enumeration indicates the current door state.

ValueNameConformanceMeaning
0DoorOpenDPSDoor state is open
1DoorClosedDPSDoor state is closed
2DoorJammed[DPS]Door state is jammed
3DoorForcedOpen[DPS]Door state is currently forced open
4DoorUnspecifiedError[DPS]Door state is invalid for unspecified reason
5DoorAjar[DPS]Door state is ajar

EventTypeEnum

ValueNameConformanceMeaning
0OperationMEvent type is operation
1ProgrammingMEvent type is programming
2AlarmMEvent type is alarm

LEDSettingEnum

ValueNameConformanceMeaning
0NoLEDSignalMNever use LED for signalization
1NoLEDSignalAccessAllowedMUse LED signalization except for access allowed events
2LEDSignalAllMUse LED signalization for all events

LockDataTypeEnum

This enumeration indicates the data type that is being or has changed.

ValueNameConformanceMeaning
0UnspecifiedOUnspecified or manufacturer specific lock user data added, cleared, or modified.
1ProgrammingCodeOLock programming PIN code was added, cleared, or modified.
2UserIndexMLock user index was added, cleared, or modified.
3WeekDayScheduleWDSCHLock user week day schedule was added, cleared, or modified.
4YearDayScheduleYDSCHLock user year day schedule was added, cleared, or modified.
5HolidayScheduleHDSCHLock holiday schedule was added, cleared, or modified.
6PINPINLock user PIN code was added, cleared, or modified.
7RFIDRIDLock user RFID code was added, cleared, or modified.
8FingerprintFGPLock user fingerprint was added, cleared, or modified.
9FingerVeinFGPLock user finger-vein information was added, cleared, or modified.
10FaceFACELock user face information was added, cleared, or modified.
11AliroCredentialIssuerKeyALIROAn Aliro credential issuer key credential was added, cleared, or modified.
12AliroEvictableEndpointKeyALIROAn Aliro endpoint key credential which can be evicted credential was added, cleared, or modified.
13AliroNonEvictableEndpointKeyALIROAn Aliro endpoint key credential which cannot be evicted was added, cleared, or modified.

LockOperationTypeEnum

This enumeration indicates the type of Lock operation performed.

ValueNameConformanceMeaning
0LockMLock operation
1UnlockMUnlock operation
2NonAccessUserEventOTriggered by keypad entry for user with User Type set to Non Access User
3ForcedUserEventOTriggered by using a user with UserType set to Forced User
4UnlatchMUnlatch operation

LockStateEnum

ValueNameConformanceMeaning
0NotFullyLockedMLock state is not fully locked
1LockedMLock state is fully locked
2UnlockedMLock state is fully unlocked
3UnlatchedOLock state is fully unlocked and the latch is pulled

LockTypeEnum

ValueNameConformanceMeaning
0DeadBoltMPhysical lock type is dead bolt
1MagneticMPhysical lock type is magnetic
2OtherMPhysical lock type is other
3MortiseMPhysical lock type is mortise
4RimMPhysical lock type is rim
5LatchBoltMPhysical lock type is latch bolt
6CylindricalLockMPhysical lock type is cylindrical lock
7TubularLockMPhysical lock type is tubular lock
8InterconnectedLockMPhysical lock type is interconnected lock
9DeadLatchMPhysical lock type is dead latch
10DoorFurnitureMPhysical lock type is door furniture
11EurocylinderMPhysical lock type is euro cylinder

OperatingModeEnum

This enumeration indicates the lock operating mode.

ValueNameConformanceMeaning
0NormalMThe lock operates normally.
1VacationOOnly remote interaction is enabled.
2PrivacyOThis mode is only possible if the door is locked.
3NoRemoteLockUnlockMThis mode only disables remote interaction with the lock.
4PassageOThe lock is open or can be opened or closed at will without the use of a Keypad or other means of user validation (e.g. a lock for a business during work hours).

OperationErrorEnum

This enumeration indicates the error cause of the Lock/Unlock operation performed.

ValueNameConformanceMeaning
0UnspecifiedOLock/unlock error caused by unknown or unspecified source
1InvalidCredentialUSRLock/unlock error caused by invalid PIN, RFID, fingerprint or other credential
2DisabledUserDeniedMLock/unlock error caused by disabled USER or credential
3RestrictedWDSCH | YDSCHLock/unlock error caused by schedule restriction
4InsufficientBatteryOLock/unlock error caused by insufficient battery power left to safely actuate the lock

OperationSourceEnum

This enumeration indicates the source of the Lock/Unlock or user change operation performed.

ValueNameConformanceMeaning
0UnspecifiedOLock/unlock operation came from unspecified source
1ManualOLock/unlock operation came from manual operation (key, thumbturn, handle, etc).
2ProprietaryRemoteOLock/unlock operation came from proprietary remote source (e.g. vendor app/cloud)
3KeypadOLock/unlock operation came from keypad
4AutoOLock/unlock operation came from lock automatically (e.g. relock timer)
5ButtonOLock/unlock operation came from lock button (e.g. one touch or button)
6ScheduleHDSCHLock/unlock operation came from lock due to a schedule
7RemoteMLock/unlock operation came from remote node
8RFIDRIDLock/unlock operation came from RFID card
9Biometric[USR]Lock/unlock operation came from biometric source (e.g. face, fingerprint/fingervein)
10AliroALIROLock/unlock operation came from an interaction defined in Aliro, or user change operation was a step-up credential provisioning as defined in Aliro

SoundVolumeEnum

ValueNameConformanceMeaning
0SilentMSilent Mode
1LowMLow Volume
2HighMHigh Volume
3MediumMMedium Volume

StatusCodeEnum

ValueNameConformanceMeaning
2DuplicateMEntry would cause a duplicate credential/ID.
3OccupiedMEntry would replace an occupied slot.

UserStatusEnum

This enumeration indicates what the status is for a specific user ID.

ValueNameConformanceMeaning
0AvailableMThe user ID is available
1OccupiedEnabledMThe user ID is occupied and enabled
3OccupiedDisabledOThe user ID is occupied and disabled

UserTypeEnum

This enumeration indicates what the type is for a specific user ID.

ValueNameConformanceMeaning
0UnrestrictedUserMThe user ID type is unrestricted
1YearDayScheduleUserOThe user ID type is schedule
2WeekDayScheduleUserOThe user ID type is schedule
3ProgrammingUserOThe user ID type is programming
4NonAccessUserOThe user ID type is non access
5ForcedUser[USR]The user ID type is forced
6DisposableUser[USR]The user ID type is disposable
7ExpiringUser[USR]The user ID type is expiring
8ScheduleRestrictedUserWDSCH | YDSCHThe user ID type is schedule restricted
9RemoteOnlyUserUSR & COTA & PINThe user ID type is remote only

AlarmMaskBitmap (bitmap)

BitNameConformanceMeaning
0LockJammedMLocking Mechanism Jammed
1LockFactoryResetOLock Reset to Factory Defaults
3LockRadioPowerCycledORF Module Power Cycled
4WrongCodeEntryLimitPIN | RIDTamper Alarm - wrong code entry limit
5FrontEscutcheonRemovedOTamper Alarm - front escutcheon removed from main
6DoorForcedOpenOForced Door Open under Door Locked Condition

ConfigurationRegisterBitmap (bitmap)

BitNameConformanceMeaning
0LocalProgrammingMThe state of local programming functionality
1KeypadInterfaceMThe state of the keypad interface
2RemoteInterfaceMThe state of the remote interface
5SoundVolumeMSound volume is set to Silent value
6AutoRelockTimeMAuto relock time it set to 0
7LEDSettingsMLEDs is disabled

CredentialRulesBitmap (bitmap)

BitNameConformanceMeaning
0SingleMOnly one credential is required for lock operation
1DualMAny two credentials are required for lock operation
2TriMAny three credentials are required for lock operation

DaysMaskBitmap (bitmap)

This bitmap indicates the days of the week the Week Day schedule applies for.

BitNameConformanceMeaning
0SundayMSchedule is applied on Sunday
1MondayMSchedule is applied on Monday
2TuesdayMSchedule is applied on Tuesday
3WednesdayMSchedule is applied on Wednesday
4ThursdayMSchedule is applied on Thursday
5FridayMSchedule is applied on Friday
6SaturdayMSchedule is applied on Saturday

LocalProgrammingFeaturesBitmap (bitmap)

BitNameConformanceMeaning
0AddUsersCredentialsSchedulesMThe state of the ability to add users, credentials or schedules on the device
1ModifyUsersCredentialsSchedulesMThe state of the ability to modify users, credentials or schedules on the device
2ClearUsersCredentialsSchedulesMThe state of the ability to clear users, credentials or schedules on the device
3AdjustSettingsMThe state of the ability to adjust settings on the device

OperatingModesBitmap (bitmap)

For the OperatingModesBitmap, a bit SET indicates that the operating mode IS NOT supported. A bit CLEAR indicates that the operating mode IS supported.

BitNameConformanceMeaning
0NormalMNormal operation mode
1VacationOVacation operation mode
2PrivacyOPrivacy operation mode
3NoRemoteLockUnlockMNo remote lock and unlock operation mode
4PassageOPassage operation mode

CredentialStruct (struct)

This struct indicates the credential types and their corresponding indices (if any) for the event or user record.

FieldNameTypeConformanceConstraintMeaning
0CredentialTypeCredentialTypeEnumM—Indicates the credential field used to authorize the lock operation.
1CredentialIndexuint16M—Indicates the index of the specific credential used to authorize the lock operation in the list of credentials identified by CredentialType (e.g.

Cluster 257 Attributes

Cluster 257 defines 46 attributes plus the global attributes. Conformance: M mandatory, O optional, a feature code means "mandatory when that feature is present", square brackets mean "optional when …".

IDHexAttributeTypeConformanceAccessQualitiesDefault
00x0000LockStateLockStateEnumMR (read: view)nullable—
10x0001LockTypeLockTypeEnumMR (read: view)——
20x0002ActuatorEnabledboolMR (read: view)——
30x0003DoorStateDoorStateEnumDPSR (read: view)nullable—
40x0004DoorOpenEventsuint32[DPS]R/W (read: view, write: manage)——
50x0005DoorClosedEventsuint32[DPS]R/W (read: view, write: manage)——
60x0006OpenPerioduint16[DPS]R/W (read: view, write: manage)——
170x0011NumberOfTotalUsersSupporteduint16USRR (read: view)——
180x0012NumberOfPINUsersSupporteduint16PINR (read: view)——
190x0013NumberOfRFIDUsersSupporteduint16RIDR (read: view)——
200x0014NumberOfWeekDaySchedulesSupportedPerUseruint8WDSCHR (read: view)——
210x0015NumberOfYearDaySchedulesSupportedPerUseruint8YDSCHR (read: view)——
220x0016NumberOfHolidaySchedulesSupporteduint8HDSCHR (read: view)——
230x0017MaxPINCodeLengthuint8PINR (read: view)——
240x0018MinPINCodeLengthuint8PINR (read: view)——
250x0019MaxRFIDCodeLengthuint8RIDR (read: view)——
260x001AMinRFIDCodeLengthuint8RIDR (read: view)——
270x001BCredentialRulesSupportCredentialRulesBitmapUSRR (read: view)——
280x001CNumberOfCredentialsSupportedPerUseruint8USRR (read: view)——
330x0021LanguagestringOR/W(opt) (read: view, write: manage)—MS
340x0022LEDSettingsLEDSettingEnumOR/W(opt) (read: view, write: manage)—0
350x0023AutoRelockTimeuint32OR/W(opt) (read: view, write: manage)—MS
360x0024SoundVolumeSoundVolumeEnumOR/W(opt) (read: view, write: manage)—0
370x0025OperatingModeOperatingModeEnumMR/W(opt) (read: view, write: manage)——
380x0026SupportedOperatingModesOperatingModesBitmapMR (read: view)——
390x0027DefaultConfigurationRegisterConfigurationRegisterBitmapOR (read: view)—0
400x0028EnableLocalProgrammingboolOR/W(opt) (read: view, write: admin)—true
410x0029EnableOneTouchLockingboolOR/W (read: view, write: manage)—false
420x002AEnableInsideStatusLEDboolOR/W (read: view, write: manage)—false
430x002BEnablePrivacyModeButtonboolOR/W (read: view, write: manage)—false
440x002CLocalProgrammingFeaturesLocalProgrammingFeaturesBitmapOR/W(opt) (read: view, write: admin)—0
480x0030WrongCodeEntryLimituint8PIN | RIDR/W(opt) (read: view, write: admin)——
490x0031UserCodeTemporaryDisableTimeuint8PIN | RIDR/W(opt) (read: view, write: admin)——
500x0032SendPINOverTheAirbool[!USR & PIN]R/W(opt) (read: view, write: admin)—false
510x0033RequirePINforRemoteOperationboolCOTA & PINR/W(opt) (read: view, write: admin)——
520x0034SecurityLevelDR (read: view)—0
530x0035ExpiringUserTimeoutuint16[USR]R/W(opt) (read: view, write: admin)—MS
1280x0080AliroReaderVerificationKeyoctstrALIROR (read: admin)nullable—
1290x0081AliroReaderGroupIdentifieroctstrALIROR (read: admin)nullable—
1300x0082AliroReaderGroupSubIdentifieroctstrALIROR (read: admin)——
1310x0083AliroExpeditedTransactionSupportedProtocolVersionslist of octstrALIROR (read: admin)——
1320x0084AliroGroupResolvingKeyoctstrALBUR (read: admin)nullable—
1330x0085AliroSupportedBLEUWBProtocolVersionslist of octstrALBUR (read: admin)——
1340x0086AliroBLEAdvertisingVersionuint8ALBUR (read: admin)——
1350x0087NumberOfAliroCredentialIssuerKeysSupporteduint16ALIROR (read: view)——
1360x0088NumberOfAliroEndpointKeysSupporteduint16ALIROR (read: view)——

Global attributes

IDHexAttributeMeaning
655280xFFF8GeneratedCommandListResponse command IDs this server generates.
655290xFFF9AcceptedCommandListCommand IDs this server accepts.
655310xFFFBAttributeListAttribute IDs implemented.
655320xFFFCFeatureMapImplemented optional features (see above).
655330xFFFDClusterRevisionCluster revision implemented; 10 for a Matter 1.6.1 device.

Attribute Details

Attribute 0 / 0x0000 — LockState

Path example:

1/257/0

This attribute may be null if the lock hardware does not currently know the status of the locking mechanism. For example, a lock may not know the LockState status after a power cycle until the first lock actuation is completed. The Not Fully Locked value is used by a lock to indicate that the state of the lock is somewhere between Locked and Unlocked so it is only partially secured. For example, a deadbolt could be partially extended and not in a dead latched state.

PropertyValue
TypeLockStateEnum
ConformanceM
AccessR (read: view)
Qualitiesnullable
Constraintdesc

Values (LockStateEnum):

ValueNameMeaning
0NotFullyLockedLock state is not fully locked
1LockedLock state is fully locked
2UnlockedLock state is fully unlocked
3UnlatchedLock state is fully unlocked and the latch is pulled

Example:

{
  "1/257/0": 1
}

Attribute 1 / 0x0001 — LockType

Path example:

1/257/1

Indicates the type of door lock as defined in LockTypeEnum.

PropertyValue
TypeLockTypeEnum
ConformanceM
AccessR (read: view)
Constraintdesc

Values (LockTypeEnum):

ValueNameMeaning
0DeadBoltPhysical lock type is dead bolt
1MagneticPhysical lock type is magnetic
2OtherPhysical lock type is other
3MortisePhysical lock type is mortise
4RimPhysical lock type is rim
5LatchBoltPhysical lock type is latch bolt
6CylindricalLockPhysical lock type is cylindrical lock
7TubularLockPhysical lock type is tubular lock
8InterconnectedLockPhysical lock type is interconnected lock
9DeadLatchPhysical lock type is dead latch
10DoorFurniturePhysical lock type is door furniture
11EurocylinderPhysical lock type is euro cylinder

Example:

{
  "1/257/1": 0
}

Attribute 2 / 0x0002 — ActuatorEnabled

Path example:

1/257/2

Indicates if the lock is currently able to (Enabled) or not able to (Disabled) process remote Lock, Unlock, or Unlock with Timeout commands.

PropertyValue
Typebool
ConformanceM
AccessR (read: view)

Example:

{
  "1/257/2": true
}

Attribute 3 / 0x0003 — DoorState

Path example:

1/257/3

Indicates the current door state as defined in DoorStateEnum. Null only if an internal error prevents the retrieval of the current door state.

PropertyValue
TypeDoorStateEnum
ConformanceDPS
AccessR (read: view)
Qualitiesnullable
Constraintdesc

Values (DoorStateEnum):

ValueNameMeaning
0DoorOpenDoor state is open
1DoorClosedDoor state is closed
2DoorJammedDoor state is jammed
3DoorForcedOpenDoor state is currently forced open
4DoorUnspecifiedErrorDoor state is invalid for unspecified reason
5DoorAjarDoor state is ajar

Example:

{
  "1/257/3": 0
}

Attribute 4 / 0x0004 — DoorOpenEvents

Path example:

1/257/4

This attribute holds the number of door open events that have occurred since it was last zeroed.

PropertyValue
Typeuint32
Conformance[DPS]
AccessR/W (read: view, write: manage)

Example:

{
  "1/257/4": 1
}

Attribute 5 / 0x0005 — DoorClosedEvents

Path example:

1/257/5

This attribute holds the number of door closed events that have occurred since it was last zeroed.

PropertyValue
Typeuint32
Conformance[DPS]
AccessR/W (read: view, write: manage)

Example:

{
  "1/257/5": 1
}

Attribute 6 / 0x0006 — OpenPeriod

Path example:

1/257/6

This attribute holds the number of minutes the door has been open since the last time it transitioned from closed to open.

PropertyValue
Typeuint16
Conformance[DPS]
AccessR/W (read: view, write: manage)

Example:

{
  "1/257/6": 1
}

Attribute 17 / 0x0011 — NumberOfTotalUsersSupported

Path example:

1/257/17

Indicates the number of total users supported by the lock.

PropertyValue
Typeuint16
ConformanceUSR
AccessR (read: view)

Example:

{
  "1/257/17": 1
}

Attribute 18 / 0x0012 — NumberOfPINUsersSupported

Path example:

1/257/18

No condensed specification text is available for NumberOfPINUsersSupported; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typeuint16
ConformancePIN
AccessR (read: view)

Example:

{
  "1/257/18": 1
}

Attribute 19 / 0x0013 — NumberOfRFIDUsersSupported

Path example:

1/257/19

No condensed specification text is available for NumberOfRFIDUsersSupported; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typeuint16
ConformanceRID
AccessR (read: view)

Example:

{
  "1/257/19": 1
}

Attribute 20 / 0x0014 — NumberOfWeekDaySchedulesSupportedPerUser

Path example:

1/257/20

Indicates the number of configurable week day schedule supported per user.

PropertyValue
Typeuint8
ConformanceWDSCH
AccessR (read: view)
Constraintmax 0xFD

Example:

{
  "1/257/20": 1
}

Attribute 21 / 0x0015 — NumberOfYearDaySchedulesSupportedPerUser

Path example:

1/257/21

Indicates the number of configurable year day schedule supported per user.

PropertyValue
Typeuint8
ConformanceYDSCH
AccessR (read: view)
Constraintmax 0xFD

Example:

{
  "1/257/21": 1
}

Attribute 22 / 0x0016 — NumberOfHolidaySchedulesSupported

Path example:

1/257/22

Indicates the number of holiday schedules supported for the entire door lock device.

PropertyValue
Typeuint8
ConformanceHDSCH
AccessR (read: view)
Constraintmax 0xFD

Example:

{
  "1/257/22": 1
}

Attribute 23 / 0x0017 — MaxPINCodeLength

Path example:

1/257/23

No condensed specification text is available for MaxPINCodeLength; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typeuint8
ConformancePIN
AccessR (read: view)

Example:

{
  "1/257/23": 1
}

Attribute 24 / 0x0018 — MinPINCodeLength

Path example:

1/257/24

No condensed specification text is available for MinPINCodeLength; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typeuint8
ConformancePIN
AccessR (read: view)

Example:

{
  "1/257/24": 1
}

Attribute 25 / 0x0019 — MaxRFIDCodeLength

Path example:

1/257/25

No condensed specification text is available for MaxRFIDCodeLength; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typeuint8
ConformanceRID
AccessR (read: view)

Example:

{
  "1/257/25": 1
}

Attribute 26 / 0x001A — MinRFIDCodeLength

Path example:

1/257/26

No condensed specification text is available for MinRFIDCodeLength; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typeuint8
ConformanceRID
AccessR (read: view)

Example:

{
  "1/257/26": 1
}

Attribute 27 / 0x001B — CredentialRulesSupport

Path example:

1/257/27

This attribute contains a bitmap with the bits set for the values of CredentialRuleEnum supported on this device.

PropertyValue
TypeCredentialRulesBitmap
ConformanceUSR
AccessR (read: view)

Bits (CredentialRulesBitmap):

BitNameMeaning
0SingleOnly one credential is required for lock operation
1DualAny two credentials are required for lock operation
2TriAny three credentials are required for lock operation

Example:

{
  "1/257/27": 0
}

Attribute 28 / 0x001C — NumberOfCredentialsSupportedPerUser

Path example:

1/257/28

Indicates the number of credentials that could be assigned for each user. Depending on the value of NumberOfRFIDUsersSupported and NumberOfPINUsersSupported it may not be possible to assign that number of credentials for a user. For example, if the device supports only PIN and RFID credential types, NumberOfCredentialsSupportedPerUser is set to 10, NumberOfPINUsersSupported is set to 5 and NumberOfRFIDUsersSupported is set to 3, it will not be possible to actually assign 10 credentials for a user because maximum number of credentials in the database is 8.

PropertyValue
Typeuint8
ConformanceUSR
AccessR (read: view)

Example:

{
  "1/257/28": 1
}

Attribute 33 / 0x0021 — Language

Path example:

1/257/33

Indicates the language for the on-screen or audible user interface using a 2-byte language code from ISO-639-1.

PropertyValue
Typestring
ConformanceO
AccessR/W(opt) (read: view, write: manage)
Constraintmax length 3
DefaultMS

Example:

{
  "1/257/33": "example"
}

Attribute 34 / 0x0022 — LEDSettings

Path example:

1/257/34

No condensed specification text is available for LEDSettings; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
TypeLEDSettingEnum
ConformanceO
AccessR/W(opt) (read: view, write: manage)
Default0

Values (LEDSettingEnum):

ValueNameMeaning
0NoLEDSignalNever use LED for signalization
1NoLEDSignalAccessAllowedUse LED signalization except for access allowed events
2LEDSignalAllUse LED signalization for all events

Example:

{
  "1/257/34": 0
}

Attribute 35 / 0x0023 — AutoRelockTime

Path example:

1/257/35

Indicates the number of seconds to wait after unlocking a lock before it automatically locks again. 0=disabled. If set, unlock operations from any source will be timed. For one time unlock with timeout use the specific command.

PropertyValue
Typeuint32
ConformanceO
AccessR/W(opt) (read: view, write: manage)
DefaultMS

Example:

{
  "1/257/35": 0
}

Attribute 36 / 0x0024 — SoundVolume

Path example:

1/257/36

Indicates the sound volume on a door lock as defined by SoundVolumeEnum.

PropertyValue
TypeSoundVolumeEnum
ConformanceO
AccessR/W(opt) (read: view, write: manage)
Default0

Values (SoundVolumeEnum):

ValueNameMeaning
0SilentSilent Mode
1LowLow Volume
2HighHigh Volume
3MediumMedium Volume

Example:

{
  "1/257/36": 0
}

Attribute 37 / 0x0025 — OperatingMode

Path example:

1/257/37

Indicates the current operating mode of the lock as defined in OperatingModeEnum.

PropertyValue
TypeOperatingModeEnum
ConformanceM
AccessR/W(opt) (read: view, write: manage)
Constraintdesc

Values (OperatingModeEnum):

ValueNameMeaning
0NormalThe lock operates normally.
1VacationOnly remote interaction is enabled.
2PrivacyThis mode is only possible if the door is locked.
3NoRemoteLockUnlockThis mode only disables remote interaction with the lock.
4PassageThe lock is open or can be opened or closed at will without the use of a Keypad or other means of user validation (e.g. a lock for a business during work hours).

Example:

{
  "1/257/37": 0
}

Attribute 38 / 0x0026 — SupportedOperatingModes

Path example:

1/257/38

This attribute contains a bitmap with all operating bits of the OperatingMode attribute supported by the lock. A bit position set to zero indicates that the mode is supported. A bit position set to one indicates that the mode is not supported. Any bit that is not yet defined in OperatingModesBitmap is set to 1.

PropertyValue
TypeOperatingModesBitmap
ConformanceM
AccessR (read: view)

Bits (OperatingModesBitmap):

BitNameMeaning
0NormalNormal operation mode
1VacationVacation operation mode
2PrivacyPrivacy operation mode
3NoRemoteLockUnlockNo remote lock and unlock operation mode
4PassagePassage operation mode

Example:

{
  "1/257/38": 0
}

Attribute 39 / 0x0027 — DefaultConfigurationRegister

Path example:

1/257/39

Indicates the default configurations as they are physically set on the device (example: hardware dip switch setting, etc…) and represents the default setting for some of the attributes within this cluster (for example: LED, Auto Lock, Sound Volume, and Operating Mode attributes). This is a read-only attribute and is intended to allow clients to determine what changes may need to be made without having to query all the included attributes. It may be beneficial for the clients to know what the device’s original settings were in the event that the device needs to be restored to factory default settings.

PropertyValue
TypeConfigurationRegisterBitmap
ConformanceO
AccessR (read: view)
Default0

Bits (ConfigurationRegisterBitmap):

BitNameMeaning
0LocalProgrammingThe state of local programming functionality
1KeypadInterfaceThe state of the keypad interface
2RemoteInterfaceThe state of the remote interface
5SoundVolumeSound volume is set to Silent value
6AutoRelockTimeAuto relock time it set to 0
7LEDSettingsLEDs is disabled

Example:

{
  "1/257/39": 0
}

Attribute 40 / 0x0028 — EnableLocalProgramming

Path example:

1/257/40

This attribute must enable/disable local programming on the door lock of certain features. If this value is set to TRUE then local programming is enabled on the door lock for all features. If it is set to FALSE then local programming is disabled on the door lock for those features whose bit is set to 0 in the LocalProgrammingFeatures attribute. Local programming is enabled by default.

PropertyValue
Typebool
ConformanceO
AccessR/W(opt) (read: view, write: admin)
Defaulttrue

Example:

{
  "1/257/40": true
}

Attribute 41 / 0x0029 — EnableOneTouchLocking

Path example:

1/257/41

This attribute must enable/disable the ability to lock the door lock with a single touch on the door lock.

PropertyValue
Typebool
ConformanceO
AccessR/W (read: view, write: manage)
Defaultfalse

Example:

{
  "1/257/41": true
}

Attribute 42 / 0x002A — EnableInsideStatusLED

Path example:

1/257/42

No condensed specification text is available for EnableInsideStatusLED; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typebool
ConformanceO
AccessR/W (read: view, write: manage)
Defaultfalse

Example:

{
  "1/257/42": true
}

Attribute 43 / 0x002B — EnablePrivacyModeButton

Path example:

1/257/43

This attribute must enable/disable a button inside the door that is used to put the lock into privacy mode. When the lock is in privacy mode it cannot be manipulated from the outside.

PropertyValue
Typebool
ConformanceO
AccessR/W (read: view, write: manage)
Defaultfalse

Example:

{
  "1/257/43": true
}

Attribute 44 / 0x002C — LocalProgrammingFeatures

Path example:

1/257/44

Indicates the local programming features that will be disabled when EnableLocalProgramming attribute is set to False. If a door lock doesn't support disabling one aspect of local programming it returns CONSTRAINT_ERROR during a write operation of this attribute. If the EnableLocalProgramming attribute is set to True then all local programming features is enabled regardless of the bits set to 0 in this attribute. The features that can be disabled from local programming are defined in LocalProgrammingFeaturesBitmap.

PropertyValue
TypeLocalProgrammingFeaturesBitmap
ConformanceO
AccessR/W(opt) (read: view, write: admin)
Default0

Bits (LocalProgrammingFeaturesBitmap):

BitNameMeaning
0AddUsersCredentialsSchedulesThe state of the ability to add users, credentials or schedules on the device
1ModifyUsersCredentialsSchedulesThe state of the ability to modify users, credentials or schedules on the device
2ClearUsersCredentialsSchedulesThe state of the ability to clear users, credentials or schedules on the device
3AdjustSettingsThe state of the ability to adjust settings on the device

Example:

{
  "1/257/44": 0
}

Attribute 48 / 0x0030 — WrongCodeEntryLimit

Path example:

1/257/48

Indicates the number of incorrect Pin codes or RFID presentment attempts a user is allowed to enter before the lock will enter a lockout state. The value of this attribute is compared to all failing forms of credential presentation, including Pin codes used in an Unlock Command when RequirePINforRemoteOperation is set to true. Valid range is 1-255 incorrect attempts. The lockout state will be for the duration of UserCodeTemporaryDisableTime.

PropertyValue
Typeuint8
ConformancePIN | RID
AccessR/W(opt) (read: view, write: admin)
Constraint1 to 255

Example:

{
  "1/257/48": 1
}

Attribute 49 / 0x0031 — UserCodeTemporaryDisableTime

Path example:

1/257/49

Indicates the number of seconds that the lock shuts down following wrong code entry. Valid range is 1-255 seconds. Device can shut down to lock user out for specified amount of time. (Makes it difficult to try and guess a PIN for the device.) If the attribute accepts writes and an attempt to write the attribute to 0 is made, the device must respond with CONSTRAINT_ERROR.

PropertyValue
Typeuint8
ConformancePIN | RID
AccessR/W(opt) (read: view, write: admin)
Constraint1 to 255

Example:

{
  "1/257/49": 1
}

Attribute 50 / 0x0032 — SendPINOverTheAir

Path example:

1/257/50

No condensed specification text is available for SendPINOverTheAir; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typebool
Conformance[!USR & PIN]
AccessR/W(opt) (read: view, write: admin)
Defaultfalse

Example:

{
  "1/257/50": true
}

Attribute 51 / 0x0033 — RequirePINforRemoteOperation

Path example:

1/257/51

No condensed specification text is available for RequirePINforRemoteOperation; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typebool
ConformanceCOTA & PIN
AccessR/W(opt) (read: view, write: admin)

Example:

{
  "1/257/51": true
}

Attribute 52 / 0x0034 — SecurityLevel

Path example:

1/257/52

No condensed specification text is available for SecurityLevel; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Type
ConformanceD
AccessR (read: view)
Default0

Example:

{
  "1/257/52": 0
}

Attribute 53 / 0x0035 — ExpiringUserTimeout

Path example:

1/257/53

Indicates the number of minutes a PIN, RFID, Fingerprint, or other credential associated with a user of type ExpiringUser must remain valid after its first use before expiring. When the credential expires the UserStatus for the corresponding user record is set to OccupiedDisabled.

PropertyValue
Typeuint16
Conformance[USR]
AccessR/W(opt) (read: view, write: admin)
Constraint1 to 2880
DefaultMS

Example:

{
  "1/257/53": 1
}

Attribute 128 / 0x0080 — AliroReaderVerificationKey

Path example:

1/257/128

Indicates the verification key component of the Reader's key pair as defined in Aliro.

PropertyValue
Typeoctstr
ConformanceALIRO
AccessR (read: admin)
Qualitiesnullable
Constraintallowed: 65

Example:

{
  "1/257/128": "AQID"
}

Attribute 129 / 0x0081 — AliroReaderGroupIdentifier

Path example:

1/257/129

Indicates the reader_group_identifier as defined in Aliro.

PropertyValue
Typeoctstr
ConformanceALIRO
AccessR (read: admin)
Qualitiesnullable
Constraintallowed: 16

Example:

{
  "1/257/129": "AQID"
}

Attribute 130 / 0x0082 — AliroReaderGroupSubIdentifier

Path example:

1/257/130

Indicates the reader_group_sub_identifier as defined in Aliro.

PropertyValue
Typeoctstr
ConformanceALIRO
AccessR (read: admin)
Constraintallowed: 16

Example:

{
  "1/257/130": "AQID"
}

Attribute 131 / 0x0083 — AliroExpeditedTransactionSupportedProtocolVersions

Path example:

1/257/131

Indicates the list of protocol versions supported for expedited transactions as defined in Aliro.

PropertyValue
Typelist of octstr
ConformanceALIRO
AccessR (read: admin)
Constraintmax 16 entries

Example:

{
  "1/257/131": []
}

Attribute 132 / 0x0084 — AliroGroupResolvingKey

Path example:

1/257/132

Indicates the Group Resolving Key as defined in Aliro.

PropertyValue
Typeoctstr
ConformanceALBU
AccessR (read: admin)
Qualitiesnullable
Constraintallowed: 16

Example:

{
  "1/257/132": "AQID"
}

Attribute 133 / 0x0085 — AliroSupportedBLEUWBProtocolVersions

Path example:

1/257/133

No condensed specification text is available for AliroSupportedBLEUWBProtocolVersions; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typelist of octstr
ConformanceALBU
AccessR (read: admin)
Constraintmax 16 entries

Example:

{
  "1/257/133": []
}

Attribute 134 / 0x0086 — AliroBLEAdvertisingVersion

Path example:

1/257/134

No condensed specification text is available for AliroBLEAdvertisingVersion; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typeuint8
ConformanceALBU
AccessR (read: admin)

Example:

{
  "1/257/134": 1
}

Attribute 135 / 0x0087 — NumberOfAliroCredentialIssuerKeysSupported

Path example:

1/257/135

Indicates the maximum number of AliroCredentialIssuerKey credentials that can be stored on the lock.

PropertyValue
Typeuint16
ConformanceALIRO
AccessR (read: view)

Example:

{
  "1/257/135": 1
}

Attribute 136 / 0x0088 — NumberOfAliroEndpointKeysSupported

Path example:

1/257/136

Indicates the maximum number of endpoint key credentials that can be stored on the lock. This limit applies to the sum of the number of AliroEvictableEndpointKey credentials and the number of AliroNonEvictableEndpointKey credentials. The credential indices used for these two credential types are independent of each other, similar to all other credential types. As long as NumberOfAliroEndpointKeysSupported is at least 2 a client could add a credential of type AliroEvictableEndpointKey at any index from 1 to NumberOfAliroEndpointKeysSupported and also add a credential of type AliroNonEvictableEndpointKey at the same index, and both credentials would exist on the server.

PropertyValue
Typeuint16
ConformanceALIRO
AccessR (read: view)

Example:

{
  "1/257/136": 1
}

Cluster 257 Commands

Cluster 257 has 22 client-to-server commands and 6 responses.

IDHexCommandDirectionConformanceResponseDescription
00x00LockDoorclient → serverMstatusThis command causes the lock device to lock the door.
10x01UnlockDoorclient → serverMstatusThis command causes the lock device to unlock the door.
20x02Toggleclient → serverXstatus—
30x03UnlockWithTimeoutclient → serverOstatusThis command causes the lock device to unlock the door with a timeout parameter.
110x0BSetWeekDayScheduleclient → serverWDSCHstatusSet a weekly repeating schedule for a specified user.
120x0CGetWeekDayScheduleclient → serverWDSCHGetWeekDayScheduleResponseRetrieve the specific weekly schedule for the specific user.
120x0CGetWeekDayScheduleResponseserver → clientWDSCH—Returns the weekly repeating schedule data for the specified schedule index.
130x0DClearWeekDayScheduleclient → serverWDSCHstatusClear the specific weekly schedule or all weekly schedules for the specific user.
140x0ESetYearDayScheduleclient → serverYDSCHstatusSet a time-specific schedule ID for a specified user.
150x0FGetYearDayScheduleclient → serverYDSCHGetYearDayScheduleResponseRetrieve the specific year day schedule for the specific schedule and user indexes.
150x0FGetYearDayScheduleResponseserver → clientYDSCH—Returns the year day schedule data for the specified schedule and user indexes.
160x10ClearYearDayScheduleclient → serverYDSCHstatusClears the specific year day schedule or all year day schedules for the specific user.
170x11SetHolidayScheduleclient → serverHDSCHstatusSet the holiday Schedule by specifying local start time and local end time with respect to any Lock Operating Mode.
180x12GetHolidayScheduleclient → serverHDSCHGetHolidayScheduleResponseGet the holiday schedule for the specified index.
180x12GetHolidayScheduleResponseserver → clientHDSCH—Returns the Holiday Schedule Entry for the specified Holiday ID.
190x13ClearHolidayScheduleclient → serverHDSCHstatusClears the holiday schedule or all holiday schedules.
260x1ASetUserclient → serverUSRstatusSet user into the lock.
270x1BGetUserclient → serverUSRGetUserResponseRetrieve user.
280x1CGetUserResponseserver → clientUSR—Returns the user for the specified UserIndex.
290x1DClearUserclient → serverUSRstatusClears a user or all Users.
340x22SetCredentialclient → serverUSRSetCredentialResponseSet a credential (e.g.
350x23SetCredentialResponseserver → clientUSR—Returns the status for setting the specified credential.
360x24GetCredentialStatusclient → serverUSRGetCredentialStatusResponseRetrieve the status of a particular credential (e.g.
370x25GetCredentialStatusResponseserver → clientUSR—Returns the status for the specified credential.
380x26ClearCredentialclient → serverUSRstatusClear one, one type, or all credentials except ProgrammingPIN credential.
390x27UnboltDoorclient → serverUBOLTstatusThis command causes the lock device to unlock the door without pulling the latch.
400x28SetAliroReaderConfigclient → serverALIROstatusThis command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock.
410x29ClearAliroReaderConfigclient → serverALIROstatusThis command allows clearing an existing Aliro Reader configuration for the lock.

AcceptedCommandList

The AcceptedCommandList attribute lists the command IDs the endpoint actually implements:

endpoint_id / 257 / 65529
{
  "1/257/65529": [
    0,
    1,
    2,
    3,
    11,
    12,
    13,
    14,
    15,
    16,
    17,
    18,
    19,
    26,
    27,
    29,
    34,
    36,
    38,
    39,
    40,
    41
  ]
}

Before sending a Cluster 257 command, check that the command ID exists in endpoint/257/65529. Optional commands are only present when the matching feature is set in FeatureMap.


Bridge Command Payload Format

The bridge accepts Matter commands in this structure:

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "LockDoor",
    "payload": {},
    "timed_request_timeout_ms": 1000
  }
}

For Cluster 257, always use "cluster_id": 257. Payload keys are the command field names in lowerCamelCase. Octet-string fields are base64-encoded. timed_request_timeout_ms is required for timed commands and ignored otherwise.


Command: LockDoor

Purpose

This command causes the lock device to lock the door. This command includes an optional code for the lock. The door lock may require a PIN depending on the value of the RequirePINForRemoteOperation attribute.

Command Identity

FieldValue
Command ID0
Command hex0x00
Command nameLockDoor
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: operate, timed)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0PINCodepinCodeoctstr[COTA & PIN]——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "LockDoor",
    "payload": {
      "pinCode": "AQID"
    },
    "timed_request_timeout_ms": 1000
  }
}

This is a timed command: the bridge must send it inside a timed interaction, so timed_request_timeout_ms is required.


Command: UnlockDoor

Purpose

This command causes the lock device to unlock the door. This command includes an optional code for the lock. The door lock may require a code depending on the value of the RequirePINForRemoteOperation attribute. If the attribute AutoRelockTime is supported the lock will transition to the locked state when the auto relock time has expired.

Command Identity

FieldValue
Command ID1
Command hex0x01
Command nameUnlockDoor
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: operate, timed)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0PINCodepinCodeoctstr[COTA & PIN]——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "UnlockDoor",
    "payload": {
      "pinCode": "AQID"
    },
    "timed_request_timeout_ms": 1000
  }
}

This is a timed command: the bridge must send it inside a timed interaction, so timed_request_timeout_ms is required.


Command: Toggle

Purpose

Toggle is a client-to-server command of the Door Lock cluster.

Command Identity

FieldValue
Command ID2
Command hex0x02
Command nameToggle
Directionclient → server
ConformanceX
Responsestatus
Access(invoke: operate, timed)

Payload Fields

This command has no payload fields.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "Toggle",
    "payload": {},
    "timed_request_timeout_ms": 1000
  }
}

This is a timed command: the bridge must send it inside a timed interaction, so timed_request_timeout_ms is required.


Command: UnlockWithTimeout

Purpose

This command causes the lock device to unlock the door with a timeout parameter. After the time in seconds specified in the timeout field, the lock device will relock itself automatically. This timeout parameter is only temporary for this message transition and overrides the default relock time as specified in the AutoRelockTime attribute. If the door lock device is not capable of or does not want to support temporary Relock Timeout, it should NOT support this optional command.

Command Identity

FieldValue
Command ID3
Command hex0x03
Command nameUnlockWithTimeout
Directionclient → server
ConformanceO
Responsestatus
Access(invoke: operate, timed)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0Timeouttimeoutuint16M—Indicates the timeout in seconds to wait before relocking the door lock. This value is independent of the AutoRelockTime attribute value.
1PINCodepinCodeoctstr[COTA & PIN]——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "UnlockWithTimeout",
    "payload": {
      "timeout": 0
    },
    "timed_request_timeout_ms": 1000
  }
}

This is a timed command: the bridge must send it inside a timed interaction, so timed_request_timeout_ms is required.


Command: SetWeekDaySchedule

Purpose

Set a weekly repeating schedule for a specified user. The associated UserType may be changed to ScheduleRestrictedUser by the lock when a Week Day schedule is set. Return status is one of the following values:

Command Identity

FieldValue
Command ID11
Command hex0x0B
Command nameSetWeekDaySchedule
Directionclient → server
ConformanceWDSCH
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0WeekDayIndexweekDayIndexuint8M1 to NumberOfWeekDaySchedulesSupportedPerUserIndicates the index of the Week Day schedule.
1UserIndexuserIndexuint16M1 to NumberOfTotalUsersSupportedIndicates the user ID.
2DaysMaskdaysMaskDaysMaskBitmapM—Indicates which week days the schedule is active.
3StartHourstartHouruint8Mmax 23Indicates the starting hour for the Week Day schedule.
4StartMinutestartMinuteuint8Mmax 59Indicates the starting minute for the Week Day schedule.
5EndHourendHouruint8Mmax 23Indicates the ending hour for the Week Day schedule. EndHour is equal to or greater than StartHour.
6EndMinuteendMinuteuint8Mmax 59Indicates the ending minute for the Week Day schedule. If EndHour is equal to StartHour then EndMinute is greater than StartMinute.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "SetWeekDaySchedule",
    "payload": {
      "weekDayIndex": 1,
      "userIndex": 1,
      "daysMask": 0,
      "startHour": 1,
      "startMinute": 1,
      "endHour": 1,
      "endMinute": 1
    }
  }
}

Command: GetWeekDaySchedule

Purpose

Retrieve the specific weekly schedule for the specific user.

Command Identity

FieldValue
Command ID12
Command hex0x0C
Command nameGetWeekDaySchedule
Directionclient → server
ConformanceWDSCH
ResponseGetWeekDayScheduleResponse
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0WeekDayIndexweekDayIndexuint8M1 to NumberOfWeekDaySchedulesSupportedPerUser—
1UserIndexuserIndexuint16M1 to NumberOfTotalUsersSupported—

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "GetWeekDaySchedule",
    "payload": {
      "weekDayIndex": 1,
      "userIndex": 1
    }
  }
}

The device answers with GetWeekDayScheduleResponse (see below).


Command: GetWeekDayScheduleResponse

Purpose

Returns the weekly repeating schedule data for the specified schedule index.

Command Identity

FieldValue
Command ID12
Command hex0x0C
Command nameGetWeekDayScheduleResponse
Directionserver → client (response)
ConformanceWDSCH

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0WeekDayIndexweekDayIndexuint8M1 to NumberOfWeekDaySchedulesSupportedPerUserIndicates the index of the Week Day schedule.
1UserIndexuserIndexuint16M1 to NumberOfTotalUsersSupportedIndicates the user ID.
2Statusstatusenum8MdescStatus is one of the following values: - SUCCESS if both WeekDayIndex and UserIndex are valid and there is a corresponding schedule entry. - INVALID_COMMAND if either WeekDayIndex and/or UserIndex values are not within valid range - NOT_FOUND if no …
3DaysMaskdaysMaskDaysMaskBitmapO——
4StartHourstartHouruint8Omax 23Indicates the starting hour for the Week Day schedule.
5StartMinutestartMinuteuint8Omax 59Indicates the starting minute for the Week Day schedule.
6EndHourendHouruint8Omax 23Indicates the ending hour for the Week Day schedule. EndHour is equal to or greater than StartHour.
7EndMinuteendMinuteuint8Omax 59Indicates the ending minute for the Week Day schedule. If EndHour is equal to StartHour then EndMinute is greater than StartMinute.

Command: ClearWeekDaySchedule

Purpose

Clear the specific weekly schedule or all weekly schedules for the specific user. Return status is one of the following values:

Command Identity

FieldValue
Command ID13
Command hex0x0D
Command nameClearWeekDaySchedule
Directionclient → server
ConformanceWDSCH
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0WeekDayIndexweekDayIndexuint8M1 to NumberOfWeekDaySchedulesSupportedPerUser; allowed: 0xFEIndicates the Week Day schedule index to clear or 0xFE to clear all Week Day schedules for the specified user.
1UserIndexuserIndexuint16M1 to NumberOfTotalUsersSupportedIndicates the user ID.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "ClearWeekDaySchedule",
    "payload": {
      "weekDayIndex": 1,
      "userIndex": 1
    }
  }
}

Command: SetYearDaySchedule

Purpose

Set a time-specific schedule ID for a specified user. The associated UserType may be changed to ScheduleRestrictedUser by the lock when a Year Day schedule is set. Return status is one of the following values:

Command Identity

FieldValue
Command ID14
Command hex0x0E
Command nameSetYearDaySchedule
Directionclient → server
ConformanceYDSCH
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0YearDayIndexyearDayIndexuint8M1 to NumberOfYearDaySchedulesSupportedPerUserIndicates the index of the Year Day schedule.
1UserIndexuserIndexuint16M1 to NumberOfTotalUsersSupportedIndicates the user ID.
2LocalStartTimelocalStartTimeepoch-sM—Indicates the starting time for the Year Day schedule in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value.
3LocalEndTimelocalEndTimeepoch-sM—Indicates the ending time for the Year Day schedule in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value. LocalEndTime is greater than LocalStartTime.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "SetYearDaySchedule",
    "payload": {
      "yearDayIndex": 1,
      "userIndex": 1,
      "localStartTime": 0,
      "localEndTime": 0
    }
  }
}

Command: GetYearDaySchedule

Purpose

Retrieve the specific year day schedule for the specific schedule and user indexes.

Command Identity

FieldValue
Command ID15
Command hex0x0F
Command nameGetYearDaySchedule
Directionclient → server
ConformanceYDSCH
ResponseGetYearDayScheduleResponse
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0YearDayIndexyearDayIndexuint8M1 to NumberOfYearDaySchedulesSupportedPerUser—
1UserIndexuserIndexuint16M1 to NumberOfTotalUsersSupported—

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "GetYearDaySchedule",
    "payload": {
      "yearDayIndex": 1,
      "userIndex": 1
    }
  }
}

The device answers with GetYearDayScheduleResponse (see below).


Command: GetYearDayScheduleResponse

Purpose

Returns the year day schedule data for the specified schedule and user indexes.

Command Identity

FieldValue
Command ID15
Command hex0x0F
Command nameGetYearDayScheduleResponse
Directionserver → client (response)
ConformanceYDSCH

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0YearDayIndexyearDayIndexuint8M1 to NumberOfYearDaySchedulesSupportedPerUserIndicates the index of the Year Day schedule.
1UserIndexuserIndexuint16M1 to NumberOfTotalUsersSupportedIndicates the user ID.
2Statusstatusenum8MdescStatus is one of the following values: - SUCCESS if both YearDayIndex and UserIndex are valid and there is a corresponding schedule entry. - INVALID_COMMAND if either YearDayIndex and/or UserIndex values are not within valid range - NOT_FOUND if no …
3LocalStartTimelocalStartTimeepoch-sO—Indicates the starting time for the Year Day schedule in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value.
4LocalEndTimelocalEndTimeepoch-sO—Indicates the ending time for the Year Day schedule in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value. LocalEndTime is greater than LocalStartTime.

Command: ClearYearDaySchedule

Purpose

Clears the specific year day schedule or all year day schedules for the specific user. Return status is one of the following values:

Command Identity

FieldValue
Command ID16
Command hex0x10
Command nameClearYearDaySchedule
Directionclient → server
ConformanceYDSCH
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0YearDayIndexyearDayIndexuint8M1 to NumberOfYearDaySchedulesSupportedPerUser; allowed: 0xFEIndicates the Year Day schedule index to clear or 0xFE to clear all Year Day schedules for the specified user.
1UserIndexuserIndexuint16M1 to NumberOfTotalUsersSupportedIndicates the user ID.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "ClearYearDaySchedule",
    "payload": {
      "yearDayIndex": 1,
      "userIndex": 1
    }
  }
}

Command: SetHolidaySchedule

Purpose

Set the holiday Schedule by specifying local start time and local end time with respect to any Lock Operating Mode. Return status is one of the following values:

Command Identity

FieldValue
Command ID17
Command hex0x11
Command nameSetHolidaySchedule
Directionclient → server
ConformanceHDSCH
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0HolidayIndexholidayIndexuint8M1 to NumberOfHolidaySchedulesSupportedIndicates the index of the Holiday schedule.
1LocalStartTimelocalStartTimeepoch-sM—Indicates the starting time for the Holiday Day schedule in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value.
2LocalEndTimelocalEndTimeepoch-sM—Indicates the ending time for the Holiday Day schedule in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value. LocalEndTime is greater than LocalStartTime.
3OperatingModeoperatingModeOperatingModeEnumM—Indicates the operating mode to use during this Holiday schedule start/end time.

OperatingMode values (OperatingModeEnum): 0 = Normal, 1 = Vacation, 2 = Privacy, 3 = NoRemoteLockUnlock, 4 = Passage

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "SetHolidaySchedule",
    "payload": {
      "holidayIndex": 1,
      "localStartTime": 0,
      "localEndTime": 0,
      "operatingMode": 0
    }
  }
}

Command: GetHolidaySchedule

Purpose

Get the holiday schedule for the specified index.

Command Identity

FieldValue
Command ID18
Command hex0x12
Command nameGetHolidaySchedule
Directionclient → server
ConformanceHDSCH
ResponseGetHolidayScheduleResponse
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0HolidayIndexholidayIndexuint8M1 to NumberOfHolidaySchedulesSupported—

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "GetHolidaySchedule",
    "payload": {
      "holidayIndex": 1
    }
  }
}

The device answers with GetHolidayScheduleResponse (see below).


Command: GetHolidayScheduleResponse

Purpose

Returns the Holiday Schedule Entry for the specified Holiday ID.

Command Identity

FieldValue
Command ID18
Command hex0x12
Command nameGetHolidayScheduleResponse
Directionserver → client (response)
ConformanceHDSCH

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0HolidayIndexholidayIndexuint8M1 to NumberOfHolidaySchedulesSupportedIndicates the index of the Holiday schedule.
1Statusstatusenum8MdescStatus is one of the following values: - FAILURE if the attribute NumberOfHolidaySchedulesSupported is zero. - SUCCESS if the HolidayIndex is valid and there is a corresponding schedule entry. - INVALID_COMMAND if the HolidayIndex is not within valid range - …
2LocalStartTimelocalStartTimeepoch-s (nullable)O—Indicates the starting time for the Holiday schedule in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value. This is null if the schedule is not set for the HolidayIndex provided.
3LocalEndTimelocalEndTimeepoch-s (nullable)O—Indicates the ending time for the Holiday schedule in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value. LocalEndTime is greater than LocalStartTime.
4OperatingModeoperatingModeOperatingModeEnum (nullable)O—Indicates the operating mode to use during this Holiday schedule start/end time. This is null if the schedule is not set for the HolidayIndex provided.

OperatingMode values (OperatingModeEnum): 0 = Normal, 1 = Vacation, 2 = Privacy, 3 = NoRemoteLockUnlock, 4 = Passage


Command: ClearHolidaySchedule

Purpose

Clears the holiday schedule or all holiday schedules.

Command Identity

FieldValue
Command ID19
Command hex0x13
Command nameClearHolidaySchedule
Directionclient → server
ConformanceHDSCH
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0HolidayIndexholidayIndexuint8M1 to NumberOfHolidaySchedulesSupported; allowed: 0xFEIndicates the Holiday schedule index to clear or 0xFE to clear all Holiday schedules.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "ClearHolidaySchedule",
    "payload": {
      "holidayIndex": 1
    }
  }
}

Command: SetUser

Purpose

Set user into the lock. Fields used for different use cases: Return status is a global status code or a cluster-specific status code from the Status Codes table and is one of the following values: - SUCCESS, if setting User was successful. - FAILURE, if some unexpected internal error occurred setting User. - Occupied, if OperationType is Add and UserIndex points to an occupied slot. - INVALID_COMMAND, if one or more fields violate constraints or are invalid or if OperationType is Modify and UserIndex points to an available slot.

Command Identity

FieldValue
Command ID26
Command hex0x1A
Command nameSetUser
Directionclient → server
ConformanceUSR
Responsestatus
Access(invoke: admin, timed)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0OperationTypeoperationTypeDataOperationTypeEnumMallowed: Add, ModifyIndicates the type of operation.
1UserIndexuserIndexuint16M1 to NumberOfTotalUsersSupportedIndicates the user ID.
2UserNameuserNamestring (nullable)Mmax length 10This field contains a string to use as a human readable identifier for the user.
3UserUniqueIDuserUniqueIDuint32 (nullable)M——
4UserStatususerStatusUserStatusEnum (nullable)Mallowed: OccupiedEnabled, OccupiedDisabledIndicates the UserStatus to assign to this user when created or modified.
5UserTypeuserTypeUserTypeEnum (nullable)Mallowed: UnrestrictedUser, NonAccessUser, ForcedUser, DisposableUser, ExpiringUser, ScheduleRestrictedUser, RemoteOnlyUserIndicates the UserType to assign to this user when created or modified.
6CredentialRulecredentialRuleCredentialRuleEnum (nullable)M—Indicates the CredentialRule to use for this user. The valid CredentialRule enumeration values depends on the bits in the CredentialRulesBitmap map.

OperationType values (DataOperationTypeEnum): 0 = Add, 1 = Clear, 2 = Modify

UserStatus values (UserStatusEnum): 0 = Available, 1 = OccupiedEnabled, 3 = OccupiedDisabled

UserType values (UserTypeEnum): 0 = UnrestrictedUser, 1 = YearDayScheduleUser, 2 = WeekDayScheduleUser, 3 = ProgrammingUser, 4 = NonAccessUser, 5 = ForcedUser, 6 = DisposableUser, 7 = ExpiringUser, 8 = ScheduleRestrictedUser, 9 = RemoteOnlyUser

CredentialRule values (CredentialRuleEnum): 0 = Single, 1 = Dual, 2 = Tri

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "SetUser",
    "payload": {
      "operationType": 0,
      "userIndex": 1,
      "userName": "example",
      "userUniqueID": 1,
      "userStatus": 0,
      "userType": 0,
      "credentialRule": 0
    },
    "timed_request_timeout_ms": 1000
  }
}

This is a timed command: the bridge must send it inside a timed interaction, so timed_request_timeout_ms is required.


Command: GetUser

Purpose

Retrieve user. An InvokeResponse command is sent with an appropriate error (e.g. FAILURE, INVALID_COMMAND, etc.) as needed otherwise the GetUserResponse Command is sent implying a status of SUCCESS.

Command Identity

FieldValue
Command ID27
Command hex0x1B
Command nameGetUser
Directionclient → server
ConformanceUSR
ResponseGetUserResponse
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0UserIndexuserIndexuint16M1 to NumberOfTotalUsersSupported—

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "GetUser",
    "payload": {
      "userIndex": 1
    }
  }
}

The device answers with GetUserResponse (see below).


Command: GetUserResponse

Purpose

Returns the user for the specified UserIndex. If the requested UserIndex is valid and the UserStatus is Available for the requested UserIndex then UserName, UserUniqueID, UserStatus, UserType, CredentialRule, Credentials, CreatorFabricIndex, and LastModifiedFabricIndex must all be null in the response.

Command Identity

FieldValue
Command ID28
Command hex0x1C
Command nameGetUserResponse
Directionserver → client (response)
ConformanceUSR

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0UserIndexuserIndexuint16M1 to NumberOfTotalUsersSupportedIndicates the user ID.
1UserNameuserNamestring (nullable)Mmax length 10This field contains a string to use as a human readable identifier for the user.
2UserUniqueIDuserUniqueIDuint32 (nullable)M——
3UserStatususerStatusUserStatusEnum (nullable)M—Indicates the UserStatus assigned to the user when created or modified.
4UserTypeuserTypeUserTypeEnum (nullable)M—Indicates the UserType assigned to this user when created or modified.
5CredentialRulecredentialRuleCredentialRuleEnum (nullable)MdescIndicates the CredentialRule set for this user.
6Credentialscredentialslist of CredentialStruct (nullable)M0 to NumberOfCredentialsSupportedPerUser entriesThis field contains a list of credentials for this user.
7CreatorFabricIndexcreatorFabricIndexfabric-idx (nullable)M—Indicates the user's creator fabric index. CreatorFabricIndex is null if UserStatus is set to Available or when the creator fabric cannot be determined (for example, when user was created outside the Interaction Model) and must NOT be null otherwise.
8LastModifiedFabricIndexlastModifiedFabricIndexfabric-idx (nullable)M—Indicates the user's last modifier fabric index.
9NextUserIndexnextUserIndexuint16 (nullable)M1 to NumberOfTotalUsersSupportedIndicates the next occupied UserIndex in the database which is useful for quickly identifying occupied user slots in the database.

UserStatus values (UserStatusEnum): 0 = Available, 1 = OccupiedEnabled, 3 = OccupiedDisabled

UserType values (UserTypeEnum): 0 = UnrestrictedUser, 1 = YearDayScheduleUser, 2 = WeekDayScheduleUser, 3 = ProgrammingUser, 4 = NonAccessUser, 5 = ForcedUser, 6 = DisposableUser, 7 = ExpiringUser, 8 = ScheduleRestrictedUser, 9 = RemoteOnlyUser

CredentialRule values (CredentialRuleEnum): 0 = Single, 1 = Dual, 2 = Tri


Command: ClearUser

Purpose

Clears a user or all Users. For each user to clear, all associated credentials (e.g. PIN, RFID, fingerprint, etc.) is cleared and the user entry values is reset to their default values (e.g. UserStatus is Available, UserType is UnrestrictedUser) and all associated schedules is cleared.

Command Identity

FieldValue
Command ID29
Command hex0x1D
Command nameClearUser
Directionclient → server
ConformanceUSR
Responsestatus
Access(invoke: admin, timed)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0UserIndexuserIndexuint16M1 to NumberOfTotalUsersSupported; allowed: 0xFFFEThis field specifies a valid User index or 0xFFFE to indicate all user slots is cleared.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "ClearUser",
    "payload": {
      "userIndex": 1
    },
    "timed_request_timeout_ms": 1000
  }
}

This is a timed command: the bridge must send it inside a timed interaction, so timed_request_timeout_ms is required.


Command: SetCredential

Purpose

Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. Fields used for different use cases:

Command Identity

FieldValue
Command ID34
Command hex0x22
Command nameSetCredential
Directionclient → server
ConformanceUSR
ResponseSetCredentialResponse
Access(invoke: admin, timed)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0OperationTypeoperationTypeDataOperationTypeEnumMallowed: Add, ModifyIndicates the set credential operation type requested.
1CredentialcredentialCredentialStructM—This field contains a credential structure that contains the CredentialTypeEnum and the credential index (if applicable or 0 if not) to set.
2CredentialDatacredentialDataoctstrMdescIndicates the credential data to set for the credential being added or modified.
3UserIndexuserIndexuint16 (nullable)M1 to NumberOfTotalUsersSupportedIndicates the user index to the user record that corresponds to the credential being added or modified. This is null if OperationType is add and a new credential and user is being added at the same time.
4UserStatususerStatusUserStatusEnum (nullable)Mallowed: OccupiedEnabled, OccupiedDisabledIndicates the user status to use in the new user record if a new user is being created. This is null if OperationType is Modify.
5UserTypeuserTypeUserTypeEnum (nullable)Mallowed: UnrestrictedUser, ProgrammingUser, NonAccessUser, ForcedUser, DisposableUser, ExpiringUser, RemoteOnlyUserIndicates the user type to use in the new user record if a new user is being created. This is null if OperationType is Modify.

OperationType values (DataOperationTypeEnum): 0 = Add, 1 = Clear, 2 = Modify

UserStatus values (UserStatusEnum): 0 = Available, 1 = OccupiedEnabled, 3 = OccupiedDisabled

UserType values (UserTypeEnum): 0 = UnrestrictedUser, 1 = YearDayScheduleUser, 2 = WeekDayScheduleUser, 3 = ProgrammingUser, 4 = NonAccessUser, 5 = ForcedUser, 6 = DisposableUser, 7 = ExpiringUser, 8 = ScheduleRestrictedUser, 9 = RemoteOnlyUser

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "SetCredential",
    "payload": {
      "operationType": 0,
      "credential": {
        "credentialType": 0,
        "credentialIndex": 1
      },
      "credentialData": "AQID",
      "userIndex": 1,
      "userStatus": 0,
      "userType": 0
    },
    "timed_request_timeout_ms": 1000
  }
}

This is a timed command: the bridge must send it inside a timed interaction, so timed_request_timeout_ms is required.

The device answers with SetCredentialResponse (see below).


Command: SetCredentialResponse

Purpose

Returns the status for setting the specified credential.

Command Identity

FieldValue
Command ID35
Command hex0x23
Command nameSetCredentialResponse
Directionserver → client (response)
ConformanceUSR

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0StatusstatusstatusMdescStatus comes from the Status Codes table and is one of the following values: - SUCCESS, if setting user credential was successful. - FAILURE, if some unexpected internal error occurred setting user credential. - Occupied, if OperationType is Add and …
1UserIndexuserIndexuint16 (nullable)M1 to NumberOfTotalUsersSupportedIndicates the user index that was created with the new credential. If the status being returned is not success then this is null.
2NextCredentialIndexnextCredentialIndexuint16 (nullable)OdescIndicates the next available index in the database for the credential type set, which is useful for quickly identifying available credential slots in the database.

Command: GetCredentialStatus

Purpose

Retrieve the status of a particular credential (e.g. PIN, RFID, Fingerprint, etc.) by index. An InvokeResponse command is sent with an appropriate error (e.g. FAILURE, INVALID_COMMAND, etc.) as needed otherwise the GetCredentialStatusResponse command is sent implying a status of SUCCESS.

Command Identity

FieldValue
Command ID36
Command hex0x24
Command nameGetCredentialStatus
Directionclient → server
ConformanceUSR
ResponseGetCredentialStatusResponse
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0CredentialcredentialCredentialStructM—This field contains a credential structure that contains the CredentialTypeEnum and the credential index (if applicable or 0 if not) to retrieve the status for.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "GetCredentialStatus",
    "payload": {
      "credential": {
        "credentialType": 0,
        "credentialIndex": 1
      }
    }
  }
}

The device answers with GetCredentialStatusResponse (see below).


Command: GetCredentialStatusResponse

Purpose

Returns the status for the specified credential.

Command Identity

FieldValue
Command ID37
Command hex0x25
Command nameGetCredentialStatusResponse
Directionserver → client (response)
ConformanceUSR

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0CredentialExistscredentialExistsboolM—Indicates if the requested credential type and index exists and is populated for the requested user index.
1UserIndexuserIndexuint16 (nullable)M1 to NumberOfTotalUsersSupportedIndicates the credential's corresponding user index value if the credential exists.
2CreatorFabricIndexcreatorFabricIndexfabric-idx (nullable)M—Indicates the credential's creator fabric index.
3LastModifiedFabricIndexlastModifiedFabricIndexfabric-idx (nullable)M—Indicates the credential's last modifier fabric index.
4NextCredentialIndexnextCredentialIndexuint16 (nullable)OdescIndicates the next occupied index in the database for the credential type requested, which is useful for quickly identifying occupied credential slots in the database.
5CredentialDatacredentialDataoctstr (nullable)[ALIRO]descIndicates the credential data for the requested user index. If the CredentialType in the GetCredentialStatus command was not AliroCredentialIssuerKey, AliroEvictableEndpointKey, or AliroNonEvictableEndpointKey, this field must NOT be included.

Command: ClearCredential

Purpose

Clear one, one type, or all credentials except ProgrammingPIN credential. Fields used for different use cases: For each credential cleared whose user doesn't have another valid credential, the corresponding user record is reset back to default values and its UserStatus value is set to Available and UserType value is set to UnrestrictedUser and all schedules is cleared. In this case a LockUserChange event is generated for the user being cleared. Return status is one of the following values:

Command Identity

FieldValue
Command ID38
Command hex0x26
Command nameClearCredential
Directionclient → server
ConformanceUSR
Responsestatus
Access(invoke: admin, timed)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0CredentialcredentialCredentialStruct (nullable)MdescThis field contains a credential structure that contains the CredentialTypeEnum and the credential index (0xFFFE for all credentials or 0 if not applicable) to clear. This is null if clearing all credential types otherwise it must NOT be null.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "ClearCredential",
    "payload": {
      "credential": {
        "credentialType": 0,
        "credentialIndex": 1
      }
    },
    "timed_request_timeout_ms": 1000
  }
}

This is a timed command: the bridge must send it inside a timed interaction, so timed_request_timeout_ms is required.


Command: UnboltDoor

Purpose

This command causes the lock device to unlock the door without pulling the latch. This command includes an optional code for the lock. The door lock may require a code depending on the value of the RequirePINForRemoteOperation attribute. If the attribute AutoRelockTime is supported, the lock will transition to the locked state when the auto relock time has expired.

Command Identity

FieldValue
Command ID39
Command hex0x27
Command nameUnboltDoor
Directionclient → server
ConformanceUBOLT
Responsestatus
Access(invoke: operate, timed)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0PINCodepinCodeoctstr[COTA & PIN]——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "UnboltDoor",
    "payload": {
      "pinCode": "AQID"
    },
    "timed_request_timeout_ms": 1000
  }
}

This is a timed command: the bridge must send it inside a timed interaction, so timed_request_timeout_ms is required.


Command: SetAliroReaderConfig

Purpose

This command allows communicating an Aliro Reader configuration, as defined in Aliro, to the lock.

Command Identity

FieldValue
Command ID40
Command hex0x28
Command nameSetAliroReaderConfig
Directionclient → server
ConformanceALIRO
Responsestatus
Access(invoke: admin, timed)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0SigningKeysigningKeyoctstrMallowed: 32Indicates the signing key component of the Reader's key pair.
1VerificationKeyverificationKeyoctstrMallowed: 65Indicates the verification key component of the Reader's key pair.
2GroupIdentifiergroupIdentifieroctstrMallowed: 16Indicates the reader group identifier for the lock.
3GroupResolvingKeygroupResolvingKeyoctstrALBUallowed: 16Indicates the group resolving key for the lock.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "SetAliroReaderConfig",
    "payload": {
      "signingKey": "AQID",
      "verificationKey": "AQID",
      "groupIdentifier": "AQID"
    },
    "timed_request_timeout_ms": 1000
  }
}

This is a timed command: the bridge must send it inside a timed interaction, so timed_request_timeout_ms is required.


Command: ClearAliroReaderConfig

Purpose

This command allows clearing an existing Aliro Reader configuration for the lock. Administrators must NOT clear an Aliro Reader configuration without explicit user permission. Using this command will revoke the ability of all existing Aliro user devices that have the old verification key to interact with the lock. This effect is not restricted to a single fabric or otherwise scoped in any way.

Command Identity

FieldValue
Command ID41
Command hex0x29
Command nameClearAliroReaderConfig
Directionclient → server
ConformanceALIRO
Responsestatus
Access(invoke: admin, timed)

Payload Fields

This command has no payload fields.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 257,
    "command_name": "ClearAliroReaderConfig",
    "payload": {},
    "timed_request_timeout_ms": 1000
  }
}

This is a timed command: the bridge must send it inside a timed interaction, so timed_request_timeout_ms is required.


Cluster 257 Events

IDHexEventPriorityConformanceDescription
00x00DoorLockAlarmcriticalMThe door lock server provides several alarms which can be sent when there is a critical state on the door lock.
10x01DoorStateChangedescDPSThe door lock server sends out a DoorStateChange event when the door lock door state changes.
20x02LockOperationdescMThe door lock server sends out a LockOperation event when the event is triggered by the various lock operation sources. - If the door lock server supports the Unbolt Door command, it must generate a …
30x03LockOperationErrordescMThe door lock server sends out a LockOperationError event when a lock operation fails for various reasons.
40x04LockUserChangeinfoUSRThe door lock server sends out a LockUserChange event when a lock user, schedule, or credential change has occurred.

Event 0 — DoorLockAlarm

The door lock server provides several alarms which can be sent when there is a critical state on the door lock. The alarms available for the door lock server are listed in AlarmCodeEnum.

IDFieldTypeConformanceMeaning
0AlarmCodeAlarmCodeEnumMIndicates the alarm code of the event that has happened.

Event 1 — DoorStateChange

The door lock server sends out a DoorStateChange event when the door lock door state changes.

IDFieldTypeConformanceMeaning
0DoorStateDoorStateEnumMIndicates the new door state for this door event.

Event 2 — LockOperation

The door lock server sends out a LockOperation event when the event is triggered by the various lock operation sources. - If the door lock server supports the Unbolt Door command, it must generate a LockOperation event with LockOperationType set to Unlock after an Unbolt Door command succeeds. - If the door lock server supports the Unbolting feature and an Unlock Door command is performed, it must generate a LockOperation event with LockOperationType set to Unlatch when the unlatched state is reached and a LockOperation event with LockOperationType set to Unlock when the lock successfully …

IDFieldTypeConformanceMeaning
0LockOperationTypeLockOperationTypeEnumMIndicates the type of the lock operation that was performed.
1OperationSourceOperationSourceEnumMIndicates the source of the lock operation that was performed.
2UserIndexuint16 (nullable)MIndicates the UserIndex who performed the lock operation. This is null if there is no user index that can be determined for the given operation source.
3FabricIndexfabric-idx (nullable)MIndicates the fabric index of the fabric that performed the lock operation. This is null if there is no fabric that can be determined for the given operation source.
4SourceNodenode-id (nullable)MIndicates the Node ID of the node that performed the lock operation. This is null if there is no Node associated with the given operation source.
5Credentialslist of CredentialStruct (nullable)[USR]Indicates the list of credentials used in performing the lock operation. This is null if no credentials were involved.

Event 3 — LockOperationError

The door lock server sends out a LockOperationError event when a lock operation fails for various reasons.

IDFieldTypeConformanceMeaning
0LockOperationTypeLockOperationTypeEnumMIndicates the type of the lock operation that was performed.
1OperationSourceOperationSourceEnumMIndicates the source of the lock operation that was performed.
2OperationErrorOperationErrorEnumMIndicates the lock operation error triggered when the operation was performed.
3UserIndexuint16 (nullable)MIndicates the lock UserIndex who performed the lock operation. This is null if there is no user id that can be determined for the given operation source.
4FabricIndexfabric-idx (nullable)MIndicates the fabric index of the fabric that performed the lock operation. This is null if there is no fabric that can be determined for the given operation source.
5SourceNodenode-id (nullable)MIndicates the Node ID of the node that performed the lock operation. This is null if there is no Node associated with the given operation source.
6Credentialslist of CredentialStruct (nullable)[USR]Indicates the list of credentials used in performing the lock operation. This is null if no credentials were involved.

Event 4 — LockUserChange

The door lock server sends out a LockUserChange event when a lock user, schedule, or credential change has occurred.

IDFieldTypeConformanceMeaning
0LockDataTypeLockDataTypeEnumMIndicates the lock data type that was changed.
1DataOperationTypeDataOperationTypeEnumMIndicates the data operation performed on the lock data type changed.
2OperationSourceOperationSourceEnumMIndicates the source of the user data change.
3UserIndexuint16 (nullable)MIndicates the lock UserIndex associated with the change (if any). This is null if there is no specific user associated with the data operation.
4FabricIndexfabric-idx (nullable)MIndicates the fabric index of the fabric that performed the change (if any). This is null if there is no fabric that can be determined to have caused the change.
5SourceNodenode-id (nullable)MIndicates the Node ID that performed the change (if any). The Node ID of the node that performed the change.
6DataIndexuint16 (nullable)MIndicates the index of the specific item that was changed (e.g. schedule, PIN, RFID, etc.) in the list of items identified by LockDataType. This is null if the LockDataType does not correspond to a list that can be indexed into (e.g.

SmartphoneKey Notes

  • Door locks are the primary SmartphoneKey device class. LockState (1/257/0) drives the lock/unlock state shown in the app.
  • LockDoor / UnlockDoor are timed commands: the bridge sends them with timed_request_timeout_ms. Yale locks enforce a 60 s lockout after repeated wrong PIN codes.
  • PINCode in command payloads is sent as a base64-encoded octet string.
  • User, credential and schedule management commands (SetUser, SetCredential, ...) require the lock to report the USR / PIN features in FeatureMap.
  • Shadow paths follow endpoint/257/attribute; attribute values that the device reports as unreadable are written as n/a.
  • Attribute IDs, command IDs and enum values on this page come from the CSA Matter 1.6.1 data model; descriptions are condensed from the specification text.