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 c20f7eecf4cf6f..f430a91801c93d 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
@@ -2972,7 +2972,7 @@ cluster DoorLock = 257 {
readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28;
attribute access(write: manage) optional char_string<3> language = 33;
attribute access(write: manage) optional int8u LEDSettings = 34;
- attribute access(write: manage) int32u autoRelockTime = 35;
+ attribute access(write: manage) optional int32u autoRelockTime = 35;
attribute access(write: manage) optional int8u soundVolume = 36;
attribute access(write: manage) OperatingModeEnum operatingMode = 37;
readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38;
diff --git a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
index 842d8bc79ef7d5..e2ca298b2d9e77 100644
--- a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
+++ b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
@@ -1878,7 +1878,7 @@ cluster DoorLock = 257 {
readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28;
attribute access(write: manage) optional char_string<3> language = 33;
attribute access(write: manage) optional int8u LEDSettings = 34;
- attribute access(write: manage) int32u autoRelockTime = 35;
+ attribute access(write: manage) optional int32u autoRelockTime = 35;
attribute access(write: manage) optional int8u soundVolume = 36;
attribute access(write: manage) OperatingModeEnum operatingMode = 37;
readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38;
diff --git a/examples/lock-app/lock-common/lock-app.matter b/examples/lock-app/lock-common/lock-app.matter
index 14b549e9075b30..5c21291397494c 100644
--- a/examples/lock-app/lock-common/lock-app.matter
+++ b/examples/lock-app/lock-common/lock-app.matter
@@ -2252,7 +2252,7 @@ cluster DoorLock = 257 {
readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28;
attribute access(write: manage) optional char_string<3> language = 33;
attribute access(write: manage) optional int8u LEDSettings = 34;
- attribute access(write: manage) int32u autoRelockTime = 35;
+ attribute access(write: manage) optional int32u autoRelockTime = 35;
attribute access(write: manage) optional int8u soundVolume = 36;
attribute access(write: manage) OperatingModeEnum operatingMode = 37;
readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38;
diff --git a/examples/lock-app/nxp/zap/lock-app.matter b/examples/lock-app/nxp/zap/lock-app.matter
index fdc91f68db4f63..a8c73faab0fc20 100644
--- a/examples/lock-app/nxp/zap/lock-app.matter
+++ b/examples/lock-app/nxp/zap/lock-app.matter
@@ -1504,7 +1504,7 @@ cluster DoorLock = 257 {
readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28;
attribute access(write: manage) optional char_string<3> language = 33;
attribute access(write: manage) optional int8u LEDSettings = 34;
- attribute access(write: manage) int32u autoRelockTime = 35;
+ attribute access(write: manage) optional int32u autoRelockTime = 35;
attribute access(write: manage) optional int8u soundVolume = 36;
attribute access(write: manage) OperatingModeEnum operatingMode = 37;
readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38;
diff --git a/examples/lock-app/qpg/zap/lock.matter b/examples/lock-app/qpg/zap/lock.matter
index 997cf08f7e41f9..589eb097561c77 100644
--- a/examples/lock-app/qpg/zap/lock.matter
+++ b/examples/lock-app/qpg/zap/lock.matter
@@ -1908,7 +1908,7 @@ cluster DoorLock = 257 {
readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28;
attribute access(write: manage) optional char_string<3> language = 33;
attribute access(write: manage) optional int8u LEDSettings = 34;
- attribute access(write: manage) int32u autoRelockTime = 35;
+ attribute access(write: manage) optional int32u autoRelockTime = 35;
attribute access(write: manage) optional int8u soundVolume = 36;
attribute access(write: manage) OperatingModeEnum operatingMode = 37;
readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38;
diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter
index ea4f9dbac648a1..a4012f93a9d461 100644
--- a/examples/placeholder/linux/apps/app1/config.matter
+++ b/examples/placeholder/linux/apps/app1/config.matter
@@ -3566,7 +3566,7 @@ cluster DoorLock = 257 {
readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28;
attribute access(write: manage) optional char_string<3> language = 33;
attribute access(write: manage) optional int8u LEDSettings = 34;
- attribute access(write: manage) int32u autoRelockTime = 35;
+ attribute access(write: manage) optional int32u autoRelockTime = 35;
attribute access(write: manage) optional int8u soundVolume = 36;
attribute access(write: manage) OperatingModeEnum operatingMode = 37;
readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38;
@@ -4217,7 +4217,7 @@ cluster DoorLock = 257 {
readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28;
attribute access(write: manage) optional char_string<3> language = 33;
attribute access(write: manage) optional int8u LEDSettings = 34;
- attribute access(write: manage) int32u autoRelockTime = 35;
+ attribute access(write: manage) optional int32u autoRelockTime = 35;
attribute access(write: manage) optional int8u soundVolume = 36;
attribute access(write: manage) OperatingModeEnum operatingMode = 37;
readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38;
diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter
index 73fc7b0e9d59a7..0375e33fe3d25d 100644
--- a/examples/placeholder/linux/apps/app2/config.matter
+++ b/examples/placeholder/linux/apps/app2/config.matter
@@ -3523,7 +3523,7 @@ cluster DoorLock = 257 {
readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28;
attribute access(write: manage) optional char_string<3> language = 33;
attribute access(write: manage) optional int8u LEDSettings = 34;
- attribute access(write: manage) int32u autoRelockTime = 35;
+ attribute access(write: manage) optional int32u autoRelockTime = 35;
attribute access(write: manage) optional int8u soundVolume = 36;
attribute access(write: manage) OperatingModeEnum operatingMode = 37;
readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38;
@@ -4174,7 +4174,7 @@ cluster DoorLock = 257 {
readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28;
attribute access(write: manage) optional char_string<3> language = 33;
attribute access(write: manage) optional int8u LEDSettings = 34;
- attribute access(write: manage) int32u autoRelockTime = 35;
+ attribute access(write: manage) optional int32u autoRelockTime = 35;
attribute access(write: manage) optional int8u soundVolume = 36;
attribute access(write: manage) OperatingModeEnum operatingMode = 37;
readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38;
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 d0189c9b4cb791..0de556963e6953 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
@@ -2448,7 +2448,7 @@ cluster DoorLock = 257 {
readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28;
attribute access(write: manage) optional char_string<3> language = 33;
attribute access(write: manage) optional int8u LEDSettings = 34;
- attribute access(write: manage) int32u autoRelockTime = 35;
+ attribute access(write: manage) optional int32u autoRelockTime = 35;
attribute access(write: manage) optional int8u soundVolume = 36;
attribute access(write: manage) OperatingModeEnum operatingMode = 37;
readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38;
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 cc2bf491f25045..8ebb31df118d92 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
@@ -190,7 +190,7 @@ limitations under the License.
-
+
AutoRelockTime
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index cfc5664283add6..14f6587b5461d0 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -5558,7 +5558,7 @@ cluster DoorLock = 257 {
readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28;
attribute access(write: manage) optional char_string<3> language = 33;
attribute access(write: manage) optional int8u LEDSettings = 34;
- attribute access(write: manage) int32u autoRelockTime = 35;
+ attribute access(write: manage) optional int32u autoRelockTime = 35;
attribute access(write: manage) optional int8u soundVolume = 36;
attribute access(write: manage) OperatingModeEnum operatingMode = 37;
readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38;
diff --git a/src/controller/java/generated/java/matter/controller/cluster/clusters/DoorLockCluster.kt b/src/controller/java/generated/java/matter/controller/cluster/clusters/DoorLockCluster.kt
index f0a27f30273c39..5e23a7bb20c727 100644
--- a/src/controller/java/generated/java/matter/controller/cluster/clusters/DoorLockCluster.kt
+++ b/src/controller/java/generated/java/matter/controller/cluster/clusters/DoorLockCluster.kt
@@ -3647,7 +3647,7 @@ class DoorLockCluster(private val controller: MatterController, private val endp
}
}
- suspend fun readAutoRelockTimeAttribute(): UInt {
+ suspend fun readAutoRelockTimeAttribute(): UInt? {
val ATTRIBUTE_ID: UInt = 35u
val attributePath =
@@ -3673,7 +3673,12 @@ class DoorLockCluster(private val controller: MatterController, private val endp
// Decode the TLV data into the appropriate type
val tlvReader = TlvReader(attributeData.data)
- val decodedValue: UInt = tlvReader.getUInt(AnonymousTag)
+ val decodedValue: UInt? =
+ if (tlvReader.isNextTag(AnonymousTag)) {
+ tlvReader.getUInt(AnonymousTag)
+ } else {
+ null
+ }
return decodedValue
}
@@ -3759,9 +3764,14 @@ class DoorLockCluster(private val controller: MatterController, private val endp
// Decode the TLV data into the appropriate type
val tlvReader = TlvReader(attributeData.data)
- val decodedValue: UInt = tlvReader.getUInt(AnonymousTag)
+ val decodedValue: UInt? =
+ if (tlvReader.isNextTag(AnonymousTag)) {
+ tlvReader.getUInt(AnonymousTag)
+ } else {
+ null
+ }
- emit(UIntSubscriptionState.Success(decodedValue))
+ decodedValue?.let { emit(UIntSubscriptionState.Success(it)) }
}
SubscriptionState.SubscriptionEstablished -> {
emit(UIntSubscriptionState.SubscriptionEstablished)
diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py
index 0c84c46e72cb4c..1a3bb036add4b7 100644
--- a/src/controller/python/chip/clusters/Objects.py
+++ b/src/controller/python/chip/clusters/Objects.py
@@ -26773,7 +26773,7 @@ def descriptor(cls) -> ClusterObjectDescriptor:
ClusterObjectFieldDescriptor(Label="numberOfCredentialsSupportedPerUser", Tag=0x0000001C, Type=typing.Optional[uint]),
ClusterObjectFieldDescriptor(Label="language", Tag=0x00000021, Type=typing.Optional[str]),
ClusterObjectFieldDescriptor(Label="LEDSettings", Tag=0x00000022, Type=typing.Optional[uint]),
- ClusterObjectFieldDescriptor(Label="autoRelockTime", Tag=0x00000023, Type=uint),
+ ClusterObjectFieldDescriptor(Label="autoRelockTime", Tag=0x00000023, Type=typing.Optional[uint]),
ClusterObjectFieldDescriptor(Label="soundVolume", Tag=0x00000024, Type=typing.Optional[uint]),
ClusterObjectFieldDescriptor(Label="operatingMode", Tag=0x00000025, Type=DoorLock.Enums.OperatingModeEnum),
ClusterObjectFieldDescriptor(Label="supportedOperatingModes", Tag=0x00000026, Type=uint),
@@ -26826,7 +26826,7 @@ def descriptor(cls) -> ClusterObjectDescriptor:
numberOfCredentialsSupportedPerUser: 'typing.Optional[uint]' = None
language: 'typing.Optional[str]' = None
LEDSettings: 'typing.Optional[uint]' = None
- autoRelockTime: 'uint' = None
+ autoRelockTime: 'typing.Optional[uint]' = None
soundVolume: 'typing.Optional[uint]' = None
operatingMode: 'DoorLock.Enums.OperatingModeEnum' = None
supportedOperatingModes: 'uint' = None
@@ -28223,9 +28223,9 @@ def attribute_id(cls) -> int:
@ChipUtility.classproperty
def attribute_type(cls) -> ClusterObjectFieldDescriptor:
- return ClusterObjectFieldDescriptor(Type=uint)
+ return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
- value: 'uint' = 0
+ value: 'typing.Optional[uint]' = None
@dataclass
class SoundVolume(ClusterAttributeDescriptor):