AutoRelockTime attribute of the Door Lock cluster as optional in the XML (#33701)
Co-authored-by: Andrei Litvin <andy314@gmail.com>
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 c20f7ee..f430a91 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 @@
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 842d8bc..e2ca298 100644
--- a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
+++ b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
@@ -1878,7 +1878,7 @@
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 14b549e..5c21291 100644
--- a/examples/lock-app/lock-common/lock-app.matter
+++ b/examples/lock-app/lock-common/lock-app.matter
@@ -2252,7 +2252,7 @@
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 fdc91f6..a8c73fa 100644
--- a/examples/lock-app/nxp/zap/lock-app.matter
+++ b/examples/lock-app/nxp/zap/lock-app.matter
@@ -1504,7 +1504,7 @@
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 997cf08..589eb09 100644
--- a/examples/lock-app/qpg/zap/lock.matter
+++ b/examples/lock-app/qpg/zap/lock.matter
@@ -1908,7 +1908,7 @@
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 ea4f9db..a4012f9 100644
--- a/examples/placeholder/linux/apps/app1/config.matter
+++ b/examples/placeholder/linux/apps/app1/config.matter
@@ -3566,7 +3566,7 @@
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 @@
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 73fc7b0..0375e33 100644
--- a/examples/placeholder/linux/apps/app2/config.matter
+++ b/examples/placeholder/linux/apps/app2/config.matter
@@ -3523,7 +3523,7 @@
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 @@
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 d0189c9..0de5569 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 @@
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 cc2bf49..8ebb31d 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 @@
<access op="read" role="view" />
<access op="write" role="manage" />
</attribute>
- <attribute side="server" code="35" define="AUTO_RELOCK_TIME" type="int32u" reportable="true" writable="true">
+ <attribute side="server" code="35" define="AUTO_RELOCK_TIME" type="int32u" reportable="true" writable="true" optional="true">
<description>AutoRelockTime</description>
<access op="read" role="view" />
<access op="write" role="manage" />
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index cfc5664..14f6587 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -5558,7 +5558,7 @@
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 f0a27f3..5e23a7b 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 @@
}
}
- suspend fun readAutoRelockTimeAttribute(): UInt {
+ suspend fun readAutoRelockTimeAttribute(): UInt? {
val ATTRIBUTE_ID: UInt = 35u
val attributePath =
@@ -3673,7 +3673,12 @@
// 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 @@
// 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 0c84c46..1a3bb03 100644
--- a/src/controller/python/chip/clusters/Objects.py
+++ b/src/controller/python/chip/clusters/Objects.py
@@ -26773,7 +26773,7 @@
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 @@
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 @@
@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):