diff --git a/src/app/zap-templates/zcl/data-model/chip/dishwasher-alarm-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/dishwasher-alarm-cluster.xml
index a7c72885433322..b734980d1d78ba 100644
--- a/src/app/zap-templates/zcl/data-model/chip/dishwasher-alarm-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/dishwasher-alarm-cluster.xml
@@ -40,7 +40,7 @@ limitations under the License.
Mask
Latch
State
- State
+ Supported
Reset alarm
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index a36a1ee8b6670a..61e32ebc20e00c 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -3277,7 +3277,7 @@ client cluster DishwasherAlarm = 93 {
readonly attribute AlarmMap mask = 0;
readonly attribute optional AlarmMap latch = 1;
readonly attribute AlarmMap state = 2;
- readonly attribute AlarmMap state = 3;
+ readonly attribute AlarmMap supported = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/src/controller/data_model/controller-clusters.zap b/src/controller/data_model/controller-clusters.zap
index 3932fe0b91bc77..08ca2f42e9fc45 100644
--- a/src/controller/data_model/controller-clusters.zap
+++ b/src/controller/data_model/controller-clusters.zap
@@ -16,12 +16,6 @@
}
],
"package": [
- {
- "pathRelativity": "relativeToZap",
- "path": "../../app/zap-templates/app-templates.json",
- "type": "gen-templates-json",
- "version": "chip-v1"
- },
{
"pathRelativity": "relativeToZap",
"path": "../../app/zap-templates/zcl/zcl.json",
@@ -29,6 +23,12 @@
"category": "matter",
"version": 1,
"description": "Matter SDK ZCL data"
+ },
+ {
+ "pathRelativity": "relativeToZap",
+ "path": "../../app/zap-templates/app-templates.json",
+ "type": "gen-templates-json",
+ "version": "chip-v1"
}
],
"endpointTypes": [
@@ -10550,7 +10550,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -10614,7 +10614,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -10630,7 +10630,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -10646,7 +10646,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -10662,7 +10662,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -10775,30 +10775,14 @@
}
],
"attributes": [
- {
- "name": "Description",
- "code": 0,
- "mfgCode": null,
- "side": "server",
- "type": "char_string",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
{
"name": "SupportedModes",
- "code": 1,
+ "code": 0,
"mfgCode": null,
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -10809,7 +10793,7 @@
},
{
"name": "CurrentMode",
- "code": 2,
+ "code": 1,
"mfgCode": null,
"side": "server",
"type": "int8u",
@@ -10825,11 +10809,11 @@
},
{
"name": "StartUpMode",
- "code": 3,
+ "code": 2,
"mfgCode": null,
"side": "server",
"type": "int8u",
- "included": 0,
+ "included": 1,
"storageOption": "RAM",
"singleton": 0,
"bounded": 0,
@@ -10841,7 +10825,7 @@
},
{
"name": "OnMode",
- "code": 4,
+ "code": 3,
"mfgCode": null,
"side": "server",
"type": "int8u",
@@ -10862,7 +10846,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -10878,7 +10862,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -10894,7 +10878,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -10910,7 +10894,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -11023,30 +11007,14 @@
}
],
"attributes": [
- {
- "name": "Description",
- "code": 0,
- "mfgCode": null,
- "side": "server",
- "type": "char_string",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
{
"name": "SupportedModes",
- "code": 1,
+ "code": 0,
"mfgCode": null,
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -11057,7 +11025,7 @@
},
{
"name": "CurrentMode",
- "code": 2,
+ "code": 1,
"mfgCode": null,
"side": "server",
"type": "int8u",
@@ -11073,11 +11041,11 @@
},
{
"name": "StartUpMode",
- "code": 3,
+ "code": 2,
"mfgCode": null,
"side": "server",
"type": "int8u",
- "included": 0,
+ "included": 1,
"storageOption": "RAM",
"singleton": 0,
"bounded": 0,
@@ -11089,7 +11057,7 @@
},
{
"name": "OnMode",
- "code": 4,
+ "code": 3,
"mfgCode": null,
"side": "server",
"type": "int8u",
@@ -11110,7 +11078,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -11126,7 +11094,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -11142,7 +11110,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -11158,7 +11126,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -11483,30 +11451,14 @@
}
],
"attributes": [
- {
- "name": "Description",
- "code": 0,
- "mfgCode": null,
- "side": "server",
- "type": "char_string",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
{
"name": "SupportedModes",
- "code": 1,
+ "code": 0,
"mfgCode": null,
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -11517,7 +11469,7 @@
},
{
"name": "CurrentMode",
- "code": 2,
+ "code": 1,
"mfgCode": null,
"side": "server",
"type": "int8u",
@@ -11533,11 +11485,11 @@
},
{
"name": "StartUpMode",
- "code": 3,
+ "code": 2,
"mfgCode": null,
"side": "server",
"type": "int8u",
- "included": 0,
+ "included": 1,
"storageOption": "RAM",
"singleton": 0,
"bounded": 0,
@@ -11549,7 +11501,7 @@
},
{
"name": "OnMode",
- "code": 4,
+ "code": 3,
"mfgCode": null,
"side": "server",
"type": "int8u",
@@ -11570,7 +11522,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -11586,7 +11538,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -11602,7 +11554,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -11618,7 +11570,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -11731,30 +11683,14 @@
}
],
"attributes": [
- {
- "name": "Description",
- "code": 0,
- "mfgCode": null,
- "side": "server",
- "type": "char_string",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
{
"name": "SupportedModes",
- "code": 1,
+ "code": 0,
"mfgCode": null,
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -11765,7 +11701,7 @@
},
{
"name": "CurrentMode",
- "code": 2,
+ "code": 1,
"mfgCode": null,
"side": "server",
"type": "int8u",
@@ -11781,11 +11717,11 @@
},
{
"name": "StartUpMode",
- "code": 3,
+ "code": 2,
"mfgCode": null,
"side": "server",
"type": "int8u",
- "included": 0,
+ "included": 1,
"storageOption": "RAM",
"singleton": 0,
"bounded": 0,
@@ -11797,7 +11733,7 @@
},
{
"name": "OnMode",
- "code": 4,
+ "code": 3,
"mfgCode": null,
"side": "server",
"type": "int8u",
@@ -11818,7 +11754,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -11834,7 +11770,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -11850,7 +11786,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -11866,7 +11802,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -12413,30 +12349,14 @@
}
],
"attributes": [
- {
- "name": "Description",
- "code": 0,
- "mfgCode": null,
- "side": "server",
- "type": "char_string",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
{
"name": "SupportedModes",
- "code": 1,
+ "code": 0,
"mfgCode": null,
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -12447,7 +12367,7 @@
},
{
"name": "CurrentMode",
- "code": 2,
+ "code": 1,
"mfgCode": null,
"side": "server",
"type": "int8u",
@@ -12463,11 +12383,11 @@
},
{
"name": "StartUpMode",
- "code": 3,
+ "code": 2,
"mfgCode": null,
"side": "server",
"type": "int8u",
- "included": 0,
+ "included": 1,
"storageOption": "RAM",
"singleton": 0,
"bounded": 0,
@@ -12479,7 +12399,7 @@
},
{
"name": "OnMode",
- "code": 4,
+ "code": 3,
"mfgCode": null,
"side": "server",
"type": "int8u",
@@ -12500,7 +12420,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -12516,7 +12436,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -12532,7 +12452,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -12548,7 +12468,7 @@
"side": "server",
"type": "array",
"included": 1,
- "storageOption": "RAM",
+ "storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
diff --git a/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java b/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java
index f965b1a9f1787a..cebc371eb3b19d 100644
--- a/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java
+++ b/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java
@@ -7497,6 +7497,7 @@ public enum Attribute {
Mask(0L),
Latch(1L),
State(2L),
+ Supported(3L),
GeneratedCommandList(65528L),
AcceptedCommandList(65529L),
EventList(65530L),
diff --git a/src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java b/src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java
index e7be2adc3bc047..dd904597e3523e 100644
--- a/src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java
+++ b/src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java
@@ -7285,6 +7285,17 @@ private static Map readDishwasherAlarmInteractionInfo()
readDishwasherAlarmStateCommandParams
);
result.put("readStateAttribute", readDishwasherAlarmStateAttributeInteractionInfo);
+ Map readDishwasherAlarmSupportedCommandParams = new LinkedHashMap();
+ InteractionInfo readDishwasherAlarmSupportedAttributeInteractionInfo = new InteractionInfo(
+ (cluster, callback, commandArguments) -> {
+ ((ChipClusters.DishwasherAlarmCluster) cluster).readSupportedAttribute(
+ (ChipClusters.LongAttributeCallback) callback
+ );
+ },
+ () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
+ readDishwasherAlarmSupportedCommandParams
+ );
+ result.put("readSupportedAttribute", readDishwasherAlarmSupportedAttributeInteractionInfo);
Map readDishwasherAlarmGeneratedCommandListCommandParams = new LinkedHashMap();
InteractionInfo readDishwasherAlarmGeneratedCommandListAttributeInteractionInfo = new InteractionInfo(
(cluster, callback, commandArguments) -> {
diff --git a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
index 49118af0e03f1b..a0c89403cc163e 100644
--- a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
+++ b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
@@ -14811,6 +14811,21 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR
cppValue.Raw(), value);
return value;
}
+ case Attributes::Supported::Id: {
+ using TypeInfo = Attributes::Supported::TypeInfo;
+ TypeInfo::DecodableType cppValue;
+ *aError = app::DataModel::Decode(aReader, cppValue);
+ if (*aError != CHIP_NO_ERROR)
+ {
+ return nullptr;
+ }
+ jobject value;
+ std::string valueClassName = "java/lang/Long";
+ std::string valueCtorSignature = "(J)V";
+ chip::JniReferences::GetInstance().CreateBoxedObject(valueClassName.c_str(), valueCtorSignature.c_str(),
+ cppValue.Raw(), value);
+ return value;
+ }
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java b/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java
index 403a03ee87eae6..65c00ac837b937 100644
--- a/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java
+++ b/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java
@@ -16448,6 +16448,18 @@ public void subscribeStateAttribute(
subscribeStateAttribute(chipClusterPtr, callback, minInterval, maxInterval);
}
+ public void readSupportedAttribute(
+ LongAttributeCallback callback
+ ) {
+ readSupportedAttribute(chipClusterPtr, callback);
+ }
+ public void subscribeSupportedAttribute(
+ LongAttributeCallback callback
+,
+ int minInterval, int maxInterval) {
+ subscribeSupportedAttribute(chipClusterPtr, callback, minInterval, maxInterval);
+ }
+
public void readGeneratedCommandListAttribute(
GeneratedCommandListAttributeCallback callback
) {
@@ -16541,6 +16553,13 @@ private native void subscribeStateAttribute(long chipClusterPtr,
LongAttributeCallback callback
, int minInterval, int maxInterval);
+ private native void readSupportedAttribute(long chipClusterPtr,
+ LongAttributeCallback callback
+ );
+ private native void subscribeSupportedAttribute(long chipClusterPtr,
+ LongAttributeCallback callback
+, int minInterval, int maxInterval);
+
private native void readGeneratedCommandListAttribute(long chipClusterPtr,
GeneratedCommandListAttributeCallback callback
);
diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ChipIdLookup.java b/src/controller/java/zap-generated/chip/devicecontroller/ChipIdLookup.java
index 223e0b4c62c0d4..728f1a309f0d41 100644
--- a/src/controller/java/zap-generated/chip/devicecontroller/ChipIdLookup.java
+++ b/src/controller/java/zap-generated/chip/devicecontroller/ChipIdLookup.java
@@ -2532,6 +2532,9 @@ public static String attributeIdToName(long clusterId, long attributeId) {
if (attributeId == 2L) {
return "State";
}
+ if (attributeId == 3L) {
+ return "Supported";
+ }
if (attributeId == 65528L) {
return "GeneratedCommandList";
}
diff --git a/src/controller/python/chip/clusters/CHIPClusters.py b/src/controller/python/chip/clusters/CHIPClusters.py
index 3b1a5a60068eee..c2b0dca3ae31bf 100644
--- a/src/controller/python/chip/clusters/CHIPClusters.py
+++ b/src/controller/python/chip/clusters/CHIPClusters.py
@@ -5167,6 +5167,12 @@ class ChipClusters:
"type": "int",
"reportable": True,
},
+ 0x00000003: {
+ "attributeName": "Supported",
+ "attributeId": 0x00000003,
+ "type": "int",
+ "reportable": True,
+ },
0x0000FFF8: {
"attributeName": "GeneratedCommandList",
"attributeId": 0x0000FFF8,
diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py
index 525e99d6af4635..d28e18e802fce4 100644
--- a/src/controller/python/chip/clusters/Objects.py
+++ b/src/controller/python/chip/clusters/Objects.py
@@ -17931,6 +17931,7 @@ def descriptor(cls) -> ClusterObjectDescriptor:
ClusterObjectFieldDescriptor(Label="mask", Tag=0x00000000, Type=uint),
ClusterObjectFieldDescriptor(Label="latch", Tag=0x00000001, Type=typing.Optional[uint]),
ClusterObjectFieldDescriptor(Label="state", Tag=0x00000002, Type=uint),
+ ClusterObjectFieldDescriptor(Label="supported", Tag=0x00000003, Type=uint),
ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]),
ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]),
ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]),
@@ -17942,6 +17943,7 @@ def descriptor(cls) -> ClusterObjectDescriptor:
mask: 'uint' = None
latch: 'typing.Optional[uint]' = None
state: 'uint' = None
+ supported: 'uint' = None
generatedCommandList: 'typing.List[uint]' = None
acceptedCommandList: 'typing.List[uint]' = None
eventList: 'typing.List[uint]' = None
@@ -17958,14 +17960,6 @@ class AlarmMap(IntFlag):
kTempTooHigh = 0x10
kWaterLevelError = 0x20
- class Feature(IntFlag):
- kInflowAlarm = 0x1
- kDrainAlarm = 0x2
- kDoorAlarm = 0x4
- kLowTemperatureAlarm = 0x8
- kHighTemperatureAlarm = 0x10
- kWaterLevelAlarm = 0x20
-
class Commands:
@dataclass
class Reset(ClusterCommand):
@@ -17994,10 +17988,10 @@ class ModifyEnabledAlarms(ClusterCommand):
def descriptor(cls) -> ClusterObjectDescriptor:
return ClusterObjectDescriptor(
Fields=[
- ClusterObjectFieldDescriptor(Label="mask", Tag=0, Type=typing.Optional[uint]),
+ ClusterObjectFieldDescriptor(Label="mask", Tag=0, Type=uint),
])
- mask: 'typing.Optional[uint]' = None
+ mask: 'uint' = 0
class Attributes:
@dataclass
@@ -18048,6 +18042,22 @@ def attribute_type(cls) -> ClusterObjectFieldDescriptor:
value: 'uint' = 0
+ @dataclass
+ class Supported(ClusterAttributeDescriptor):
+ @ChipUtility.classproperty
+ def cluster_id(cls) -> int:
+ return 0x005D
+
+ @ChipUtility.classproperty
+ def attribute_id(cls) -> int:
+ return 0x00000003
+
+ @ChipUtility.classproperty
+ def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+ return ClusterObjectFieldDescriptor(Type=uint)
+
+ value: 'uint' = 0
+
@dataclass
class GeneratedCommandList(ClusterAttributeDescriptor):
@ChipUtility.classproperty
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeSpecifiedCheck.mm b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeSpecifiedCheck.mm
index 39fb07dc5ee1a5..bbcbaf32933ed9 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeSpecifiedCheck.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeSpecifiedCheck.mm
@@ -1986,6 +1986,9 @@ static BOOL AttributeIsSpecifiedInDishwasherAlarmCluster(AttributeId aAttributeI
case Attributes::State::Id: {
return YES;
}
+ case Attributes::Supported::Id: {
+ return YES;
+ }
case Attributes::GeneratedCommandList::Id: {
return YES;
}
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
index ca2bccbd9eff8c..e1ce8931f6af79 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
@@ -10095,6 +10095,17 @@ static id _Nullable DecodeAttributeValueForDishwasherAlarmCluster(
value = [NSNumber numberWithUnsignedInt:cppValue.Raw()];
return value;
}
+ case Attributes::Supported::Id: {
+ using TypeInfo = Attributes::Supported::TypeInfo;
+ TypeInfo::DecodableType cppValue;
+ *aError = DataModel::Decode(aReader, cppValue);
+ if (*aError != CHIP_NO_ERROR) {
+ return nil;
+ }
+ NSNumber * _Nonnull value;
+ value = [NSNumber numberWithUnsignedInt:cppValue.Raw()];
+ return value;
+ }
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
index d7c9fae89e3b33..fac4fef54246fa 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
@@ -8551,7 +8551,7 @@ MTR_NEWLY_AVAILABLE
*
* Modify enabled alarms
*/
-- (void)modifyEnabledAlarmsWithParams:(MTRDishwasherAlarmClusterModifyEnabledAlarmsParams * _Nullable)params
+- (void)modifyEnabledAlarmsWithParams:(MTRDishwasherAlarmClusterModifyEnabledAlarmsParams *)params
completion:(MTRStatusCompletion)completion MTR_NEWLY_AVAILABLE;
- (void)readAttributeMaskWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
@@ -8590,6 +8590,18 @@ MTR_NEWLY_AVAILABLE
completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
MTR_NEWLY_AVAILABLE;
+- (void)readAttributeSupportedWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+ MTR_NEWLY_AVAILABLE;
+- (void)subscribeAttributeSupportedWithParams:(MTRSubscribeParams *)params
+ subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+ reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+ MTR_NEWLY_AVAILABLE;
++ (void)readAttributeSupportedWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer
+ endpoint:(NSNumber *)endpoint
+ queue:(dispatch_queue_t)queue
+ completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+ MTR_NEWLY_AVAILABLE;
+
- (void)readAttributeGeneratedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
MTR_NEWLY_AVAILABLE;
- (void)subscribeAttributeGeneratedCommandListWithParams:(MTRSubscribeParams *)params
@@ -24778,15 +24790,6 @@ typedef NS_OPTIONS(uint32_t, MTRDishwasherAlarmAlarmMap) {
MTRDishwasherAlarmAlarmMapWaterLevelError MTR_NEWLY_AVAILABLE = 0x20,
} MTR_NEWLY_AVAILABLE;
-typedef NS_OPTIONS(uint32_t, MTRDishwasherAlarmFeature) {
- MTRDishwasherAlarmFeatureInflowAlarm MTR_NEWLY_AVAILABLE = 0x1,
- MTRDishwasherAlarmFeatureDrainAlarm MTR_NEWLY_AVAILABLE = 0x2,
- MTRDishwasherAlarmFeatureDoorAlarm MTR_NEWLY_AVAILABLE = 0x4,
- MTRDishwasherAlarmFeatureLowTemperatureAlarm MTR_NEWLY_AVAILABLE = 0x8,
- MTRDishwasherAlarmFeatureHighTemperatureAlarm MTR_NEWLY_AVAILABLE = 0x10,
- MTRDishwasherAlarmFeatureWaterLevelAlarm MTR_NEWLY_AVAILABLE = 0x20,
-} MTR_NEWLY_AVAILABLE;
-
typedef NS_ENUM(uint8_t, MTROperationalStateErrorState) {
MTROperationalStateErrorStateNoError MTR_NEWLY_AVAILABLE = 0x00,
MTROperationalStateErrorStateUnableToStartOrResume MTR_NEWLY_AVAILABLE = 0x01,
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
index 5868de812e6355..659c18c5cfcef2 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
@@ -50051,7 +50051,7 @@ - (void)resetWithParams:(MTRDishwasherAlarmClusterResetParams *)params completio
std::move(*bridge).DispatchAction(self.device);
}
-- (void)modifyEnabledAlarmsWithParams:(MTRDishwasherAlarmClusterModifyEnabledAlarmsParams * _Nullable)params
+- (void)modifyEnabledAlarmsWithParams:(MTRDishwasherAlarmClusterModifyEnabledAlarmsParams *)params
completion:(MTRStatusCompletion)completion
{
// Make a copy of params before we go async.
@@ -50080,12 +50080,7 @@ - (void)modifyEnabledAlarmsWithParams:(MTRDishwasherAlarmClusterModifyEnabledAla
invokeTimeout.SetValue(Seconds16(serverSideProcessingTimeout.unsignedShortValue));
}
}
- if (params != nil) {
- if (params.mask != nil) {
- auto & definedValue_0 = request.mask.Emplace();
- definedValue_0 = static_cast>(params.mask.unsignedIntValue);
- }
- }
+ request.mask = static_cast>(params.mask.unsignedIntValue);
return MTRStartInvokeInteraction(typedBridge, request, exchangeManager, session, successCb, failureCb, self->_endpoint,
timedInvokeTimeoutMs, invokeTimeout);
@@ -50222,6 +50217,49 @@ + (void)readAttributeStateWithClusterStateCache:(MTRClusterStateCacheContainer *
});
}
+- (void)readAttributeSupportedWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+ MTRReadParams * params = [[MTRReadParams alloc] init];
+ using TypeInfo = DishwasherAlarm::Attributes::Supported::TypeInfo;
+ return MTRReadAttribute(
+ params, completion, self.callbackQueue, self.device, self->_endpoint, TypeInfo::GetClusterId(), TypeInfo::GetAttributeId());
+}
+
+- (void)subscribeAttributeSupportedWithParams:(MTRSubscribeParams * _Nonnull)params
+ subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+ reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+ using TypeInfo = DishwasherAlarm::Attributes::Supported::TypeInfo;
+ MTRSubscribeAttribute(params,
+ subscriptionEstablished, reportHandler, self.callbackQueue, self.device, self->_endpoint, TypeInfo::GetClusterId(),
+ TypeInfo::GetAttributeId());
+}
+
++ (void)readAttributeSupportedWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer
+ endpoint:(NSNumber *)endpoint
+ queue:(dispatch_queue_t)queue
+ completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+ auto * bridge = new MTRDishwasherAlarmSupportedAttributeCallbackBridge(queue, completion);
+ std::move(*bridge).DispatchLocalAction(
+ clusterStateCacheContainer.baseDevice, ^(DishwasherAlarmSupportedAttributeCallback successCb, MTRErrorCallback failureCb) {
+ if (clusterStateCacheContainer.cppClusterStateCache) {
+ chip::app::ConcreteAttributePath path;
+ using TypeInfo = DishwasherAlarm::Attributes::Supported::TypeInfo;
+ path.mEndpointId = static_cast([endpoint unsignedShortValue]);
+ path.mClusterId = TypeInfo::GetClusterId();
+ path.mAttributeId = TypeInfo::GetAttributeId();
+ TypeInfo::DecodableType value;
+ CHIP_ERROR err = clusterStateCacheContainer.cppClusterStateCache->Get(path, value);
+ if (err == CHIP_NO_ERROR) {
+ successCb(bridge, value);
+ }
+ return err;
+ }
+ return CHIP_ERROR_NOT_FOUND;
+ });
+}
+
- (void)readAttributeGeneratedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
{
MTRReadParams * params = [[MTRReadParams alloc] init];
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.h b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.h
index af13b0ab12bdf6..fe247dbf8c9715 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.h
@@ -1216,6 +1216,7 @@ typedef void (*SmokeCOAlarmAttributeListListAttributeCallback)(void * context,
typedef void (*DishwasherAlarmMaskAttributeCallback)(void *, chip::BitMask);
typedef void (*DishwasherAlarmLatchAttributeCallback)(void *, chip::BitMask);
typedef void (*DishwasherAlarmStateAttributeCallback)(void *, chip::BitMask);
+typedef void (*DishwasherAlarmSupportedAttributeCallback)(void *, chip::BitMask);
typedef void (*DishwasherAlarmGeneratedCommandListListAttributeCallback)(
void * context, const chip::app::DataModel::DecodableList & data);
typedef void (*DishwasherAlarmAcceptedCommandListListAttributeCallback)(
@@ -9451,6 +9452,36 @@ class MTRDishwasherAlarmStateAttributeCallbackSubscriptionBridge : public MTRDis
MTRSubscriptionEstablishedHandler mEstablishedHandler;
};
+class MTRDishwasherAlarmSupportedAttributeCallbackBridge : public MTRCallbackBridge
+{
+public:
+ MTRDishwasherAlarmSupportedAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler) :
+ MTRCallbackBridge(queue, handler, OnSuccessFn){};
+
+ MTRDishwasherAlarmSupportedAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action) :
+ MTRCallbackBridge(queue, handler, action, OnSuccessFn){};
+
+ static void OnSuccessFn(void * context, chip::BitMask value);
+};
+
+class MTRDishwasherAlarmSupportedAttributeCallbackSubscriptionBridge : public MTRDishwasherAlarmSupportedAttributeCallbackBridge
+{
+public:
+ MTRDishwasherAlarmSupportedAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
+ MTRActionBlock action,
+ MTRSubscriptionEstablishedHandler establishedHandler) :
+ MTRDishwasherAlarmSupportedAttributeCallbackBridge(queue, handler, action),
+ mEstablishedHandler(establishedHandler)
+ {}
+
+ void OnSubscriptionEstablished();
+ using MTRDishwasherAlarmSupportedAttributeCallbackBridge::KeepAliveOnCallback;
+ using MTRDishwasherAlarmSupportedAttributeCallbackBridge::OnDone;
+
+private:
+ MTRSubscriptionEstablishedHandler mEstablishedHandler;
+};
+
class MTRDishwasherAlarmGeneratedCommandListListAttributeCallbackBridge
: public MTRCallbackBridge
{
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm
index 19c8437dc32090..8c5684ee08b5a2 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm
@@ -8971,6 +8971,29 @@
}
}
+void MTRDishwasherAlarmSupportedAttributeCallbackBridge::OnSuccessFn(
+ void * context, chip::BitMask value)
+{
+ NSNumber * _Nonnull objCValue;
+ objCValue = [NSNumber numberWithUnsignedInt:value.Raw()];
+ DispatchSuccess(context, objCValue);
+};
+
+void MTRDishwasherAlarmSupportedAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished()
+{
+ if (!mQueue) {
+ return;
+ }
+
+ if (mEstablishedHandler != nil) {
+ dispatch_async(mQueue, mEstablishedHandler);
+ // On failure, mEstablishedHandler will be cleaned up by our destructor,
+ // but we can clean it up earlier on successful subscription
+ // establishment.
+ mEstablishedHandler = nil;
+ }
+}
+
void MTRDishwasherAlarmGeneratedCommandListListAttributeCallbackBridge::OnSuccessFn(
void * context, const chip::app::DataModel::DecodableList & value)
{
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h b/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h
index 22f0a03011ca2b..5a1cd240610cdc 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h
@@ -3811,6 +3811,7 @@ typedef NS_ENUM(uint32_t, MTRAttributeIDType) {
MTRAttributeIDTypeClusterDishwasherAlarmAttributeMaskID MTR_NEWLY_AVAILABLE = 0x00000000,
MTRAttributeIDTypeClusterDishwasherAlarmAttributeLatchID MTR_NEWLY_AVAILABLE = 0x00000001,
MTRAttributeIDTypeClusterDishwasherAlarmAttributeStateID MTR_NEWLY_AVAILABLE = 0x00000002,
+ MTRAttributeIDTypeClusterDishwasherAlarmAttributeSupportedID MTR_NEWLY_AVAILABLE = 0x00000003,
MTRAttributeIDTypeClusterDishwasherAlarmAttributeGeneratedCommandListID MTR_NEWLY_AVAILABLE
= MTRAttributeIDTypeGlobalAttributeGeneratedCommandListID,
MTRAttributeIDTypeClusterDishwasherAlarmAttributeAcceptedCommandListID MTR_NEWLY_AVAILABLE
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h
index 73e412259f063d..98012c5e320252 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h
@@ -2993,7 +2993,7 @@ MTR_NEWLY_AVAILABLE
expectedValues:(NSArray *> * _Nullable)expectedDataValueDictionaries
expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
completion:(MTRStatusCompletion)completion MTR_NEWLY_AVAILABLE;
-- (void)modifyEnabledAlarmsWithParams:(MTRDishwasherAlarmClusterModifyEnabledAlarmsParams * _Nullable)params
+- (void)modifyEnabledAlarmsWithParams:(MTRDishwasherAlarmClusterModifyEnabledAlarmsParams *)params
expectedValues:(NSArray *> * _Nullable)expectedDataValueDictionaries
expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
completion:(MTRStatusCompletion)completion MTR_NEWLY_AVAILABLE;
@@ -3004,6 +3004,8 @@ MTR_NEWLY_AVAILABLE
- (NSDictionary *)readAttributeStateWithParams:(MTRReadParams * _Nullable)params MTR_NEWLY_AVAILABLE;
+- (NSDictionary *)readAttributeSupportedWithParams:(MTRReadParams * _Nullable)params MTR_NEWLY_AVAILABLE;
+
- (NSDictionary *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params MTR_NEWLY_AVAILABLE;
- (NSDictionary *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params MTR_NEWLY_AVAILABLE;
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
index c5a7aa27d101d1..833a31f8401da6 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
@@ -13579,7 +13579,7 @@ - (void)resetWithParams:(MTRDishwasherAlarmClusterResetParams *)params
}
}
-- (void)modifyEnabledAlarmsWithParams:(MTRDishwasherAlarmClusterModifyEnabledAlarmsParams * _Nullable)params
+- (void)modifyEnabledAlarmsWithParams:(MTRDishwasherAlarmClusterModifyEnabledAlarmsParams *)params
expectedValues:(NSArray *> *)expectedValues
expectedValueInterval:(NSNumber *)expectedValueIntervalMs
completion:(MTRStatusCompletion)completion
@@ -13626,13 +13626,7 @@ - (void)modifyEnabledAlarmsWithParams:(MTRDishwasherAlarmClusterModifyEnabledAla
invokeTimeout.SetValue(Seconds16(serverSideProcessingTimeout.unsignedShortValue));
}
}
- if (params != nil) {
- if (params.mask != nil) {
- auto & definedValue_0 = request.mask.Emplace();
- definedValue_0
- = static_cast>(params.mask.unsignedIntValue);
- }
- }
+ request.mask = static_cast>(params.mask.unsignedIntValue);
return MTRStartInvokeInteraction(typedBridge, request, exchangeManager, session, successCb, failureCb,
self->_endpoint, timedInvokeTimeoutMs, invokeTimeout);
@@ -13677,6 +13671,14 @@ - (void)modifyEnabledAlarmsWithParams:(MTRDishwasherAlarmClusterModifyEnabledAla
params:params];
}
+- (NSDictionary *)readAttributeSupportedWithParams:(MTRReadParams * _Nullable)params
+{
+ return [self.device readAttributeWithEndpointID:@(_endpoint)
+ clusterID:@(MTRClusterIDTypeDishwasherAlarmID)
+ attributeID:@(MTRAttributeIDTypeClusterDishwasherAlarmAttributeSupportedID)
+ params:params];
+}
+
- (NSDictionary *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
{
return [self.device readAttributeWithEndpointID:@(_endpoint)
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h
index db00b9bd66ebbd..b107be41ce3ae4 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h
@@ -4168,7 +4168,7 @@ MTR_NEWLY_AVAILABLE
MTR_NEWLY_AVAILABLE
@interface MTRDishwasherAlarmClusterModifyEnabledAlarmsParams : NSObject
-@property (nonatomic, copy) NSNumber * _Nullable mask MTR_NEWLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull mask MTR_NEWLY_AVAILABLE;
/**
* Controls whether the command is a timed command (using Timed Invoke).
*
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm
index b2ae21e3d41196..848c6646765fa3 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm
@@ -6542,7 +6542,7 @@ - (instancetype)init
{
if (self = [super init]) {
- _mask = nil;
+ _mask = @(0);
_timedInvokeTimeoutMs = nil;
_serverSideProcessingTimeout = nil;
}
diff --git a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
index 1d739ac1d30e96..678278b070385e 100644
--- a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
+++ b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
@@ -9464,6 +9464,37 @@ EmberAfStatus Set(chip::EndpointId endpoint, chip::BitMask * value)
+{
+ using Traits = NumericAttributeTraits>;
+ Traits::StorageType temp;
+ uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp);
+ EmberAfStatus status = emberAfReadAttribute(endpoint, Clusters::DishwasherAlarm::Id, Id, readable, sizeof(temp));
+ VerifyOrReturnError(EMBER_ZCL_STATUS_SUCCESS == status, status);
+ if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+ {
+ return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
+ }
+ *value = Traits::StorageToWorking(temp);
+ return status;
+}
+EmberAfStatus Set(chip::EndpointId endpoint, chip::BitMask value)
+{
+ using Traits = NumericAttributeTraits>;
+ if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+ {
+ return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
+ }
+ Traits::StorageType storageValue;
+ Traits::WorkingToStorage(value, storageValue);
+ uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+ return emberAfWriteAttribute(endpoint, Clusters::DishwasherAlarm::Id, Id, writable, ZCL_BITMAP32_ATTRIBUTE_TYPE);
+}
+
+} // namespace Supported
+
namespace FeatureMap {
EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value)
diff --git a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h
index 87ccf5d163218a..caffd88411f479 100644
--- a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h
+++ b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h
@@ -1775,6 +1775,11 @@ EmberAfStatus Get(chip::EndpointId endpoint, chip::BitMask value);
} // namespace State
+namespace Supported {
+EmberAfStatus Get(chip::EndpointId endpoint, chip::BitMask * value); // AlarmMap
+EmberAfStatus Set(chip::EndpointId endpoint, chip::BitMask value);
+} // namespace Supported
+
namespace FeatureMap {
EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value); // bitmap32
EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value);
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h
index f2251dd4262ab0..a5d586c35408e0 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h
@@ -1777,17 +1777,6 @@ enum class AlarmMap : uint32_t
kTempTooHigh = 0x10,
kWaterLevelError = 0x20,
};
-
-// Bitmap for Feature
-enum class Feature : uint32_t
-{
- kInflowAlarm = 0x1,
- kDrainAlarm = 0x2,
- kDoorAlarm = 0x4,
- kLowTemperatureAlarm = 0x8,
- kHighTemperatureAlarm = 0x10,
- kWaterLevelAlarm = 0x20,
-};
} // namespace DishwasherAlarm
namespace OperationalState {
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp
index 4c3f92d96810f8..5a97bc29662fc0 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp
@@ -13108,6 +13108,9 @@ CHIP_ERROR TypeInfo::DecodableType::Decode(TLV::TLVReader & reader, const Concre
case Attributes::State::TypeInfo::GetAttributeId():
ReturnErrorOnFailure(DataModel::Decode(reader, state));
break;
+ case Attributes::Supported::TypeInfo::GetAttributeId():
+ ReturnErrorOnFailure(DataModel::Decode(reader, supported));
+ break;
case Attributes::GeneratedCommandList::TypeInfo::GetAttributeId():
ReturnErrorOnFailure(DataModel::Decode(reader, generatedCommandList));
break;
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
index 98c843a48f6dcd..2fc40e8ff14715 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
@@ -16463,7 +16463,7 @@ struct Type
static constexpr CommandId GetCommandId() { return Commands::ModifyEnabledAlarms::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::DishwasherAlarm::Id; }
- Optional> mask;
+ chip::BitMask mask = static_cast>(0);
CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const;
@@ -16478,7 +16478,7 @@ struct DecodableType
static constexpr CommandId GetCommandId() { return Commands::ModifyEnabledAlarms::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::DishwasherAlarm::Id; }
- Optional> mask;
+ chip::BitMask mask = static_cast>(0);
CHIP_ERROR Decode(TLV::TLVReader & reader);
};
}; // namespace ModifyEnabledAlarms
@@ -16522,6 +16522,18 @@ struct TypeInfo
static constexpr bool MustUseTimedWrite() { return false; }
};
} // namespace State
+namespace Supported {
+struct TypeInfo
+{
+ using Type = chip::BitMask;
+ using DecodableType = chip::BitMask;
+ using DecodableArgType = chip::BitMask;
+
+ static constexpr ClusterId GetClusterId() { return Clusters::DishwasherAlarm::Id; }
+ static constexpr AttributeId GetAttributeId() { return Attributes::Supported::Id; }
+ static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace Supported
namespace GeneratedCommandList {
struct TypeInfo : public Clusters::Globals::Attributes::GeneratedCommandList::TypeInfo
{
@@ -16573,6 +16585,8 @@ struct TypeInfo
static_cast>(0);
Attributes::State::TypeInfo::DecodableType state =
static_cast>(0);
+ Attributes::Supported::TypeInfo::DecodableType supported =
+ static_cast>(0);
Attributes::GeneratedCommandList::TypeInfo::DecodableType generatedCommandList;
Attributes::AcceptedCommandList::TypeInfo::DecodableType acceptedCommandList;
Attributes::EventList::TypeInfo::DecodableType eventList;
diff --git a/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h b/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h
index ceff4406c8d694..b1037728086c98 100644
--- a/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h
+++ b/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h
@@ -2962,6 +2962,10 @@ namespace State {
static constexpr AttributeId Id = 0x00000002;
} // namespace State
+namespace Supported {
+static constexpr AttributeId Id = 0x00000003;
+} // namespace Supported
+
namespace GeneratedCommandList {
static constexpr AttributeId Id = Globals::Attributes::GeneratedCommandList::Id;
} // namespace GeneratedCommandList
diff --git a/zzz_generated/app-common/app-common/zap-generated/print-cluster.h b/zzz_generated/app-common/app-common/zap-generated/print-cluster.h
index 3c74019c71f4d4..8dcd1f3887a8e4 100644
--- a/zzz_generated/app-common/app-common/zap-generated/print-cluster.h
+++ b/zzz_generated/app-common/app-common/zap-generated/print-cluster.h
@@ -355,10 +355,10 @@
#define CHIP_PRINTCLUSTER_SMOKE_CO_ALARM_CLUSTER
#endif
-#if defined(ZCL_USING_DISHWASHER_ALARM_SERVER) || defined(ZCL_USING_DISHWASHER_ALARM_CLIENT)
-#define CHIP_PRINTCLUSTER_DISHWASHER_ALARM { chip::app::Clusters::DishwasherAlarm::Id, "Dishwasher Alarm" },
+#if defined(ZCL_USING_DISHWASHER_ALARM_CLUSTER_SERVER) || defined(ZCL_USING_DISHWASHER_ALARM_CLUSTER_CLIENT)
+#define CHIP_PRINTCLUSTER_DISHWASHER_ALARM_CLUSTER { chip::app::Clusters::DishwasherAlarm::Id, "Dishwasher Alarm" },
#else
-#define CHIP_PRINTCLUSTER_DISHWASHER_ALARM
+#define CHIP_PRINTCLUSTER_DISHWASHER_ALARM_CLUSTER
#endif
#if defined(ZCL_USING_OPERATIONAL_STATE_CLUSTER_SERVER) || defined(ZCL_USING_OPERATIONAL_STATE_CLUSTER_CLIENT)
@@ -987,7 +987,7 @@
CHIP_PRINTCLUSTER_DISHWASHER_MODE_CLUSTER \
CHIP_PRINTCLUSTER_AIR_QUALITY_CLUSTER \
CHIP_PRINTCLUSTER_SMOKE_CO_ALARM_CLUSTER \
- CHIP_PRINTCLUSTER_DISHWASHER_ALARM \
+ CHIP_PRINTCLUSTER_DISHWASHER_ALARM_CLUSTER \
CHIP_PRINTCLUSTER_OPERATIONAL_STATE_CLUSTER \
CHIP_PRINTCLUSTER_OPERATIONAL_STATE_RVC_CLUSTER \
CHIP_PRINTCLUSTER_HEPA_FILTER_MONITORING_CLUSTER \
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
index 9669053358901e..453c955ff64d48 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
+++ b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
@@ -4533,6 +4533,7 @@ class SmokeCoAlarmSelfTestRequest : public ClusterCommand
| * Mask | 0x0000 |
| * Latch | 0x0001 |
| * State | 0x0002 |
+| * Supported | 0x0003 |
| * GeneratedCommandList | 0xFFF8 |
| * AcceptedCommandList | 0xFFF9 |
| * EventList | 0xFFFA |
@@ -15466,6 +15467,7 @@ void registerClusterDishwasherAlarm(Commands & commands, CredentialIssuerCommand
make_unique(Id, "mask", Attributes::Mask::Id, credsIssuerConfig), //
make_unique(Id, "latch", Attributes::Latch::Id, credsIssuerConfig), //
make_unique(Id, "state", Attributes::State::Id, credsIssuerConfig), //
+ make_unique(Id, "supported", Attributes::Supported::Id, credsIssuerConfig), //
make_unique(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
make_unique(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig), //
make_unique(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig), //
@@ -15479,6 +15481,8 @@ void registerClusterDishwasherAlarm(Commands & commands, CredentialIssuerCommand
Id, "latch", 0, UINT32_MAX, Attributes::Latch::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
make_unique>>(
Id, "state", 0, UINT32_MAX, Attributes::State::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+ make_unique>>(
+ Id, "supported", 0, UINT32_MAX, Attributes::Supported::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
make_unique>>(
Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
credsIssuerConfig), //
@@ -15496,6 +15500,7 @@ void registerClusterDishwasherAlarm(Commands & commands, CredentialIssuerCommand
make_unique(Id, "mask", Attributes::Mask::Id, credsIssuerConfig), //
make_unique(Id, "latch", Attributes::Latch::Id, credsIssuerConfig), //
make_unique(Id, "state", Attributes::State::Id, credsIssuerConfig), //
+ make_unique(Id, "supported", Attributes::Supported::Id, credsIssuerConfig), //
make_unique(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
make_unique(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig), //
make_unique(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig), //
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
index 4cd8e789631c66..0e1dd3f1abcbaf 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
+++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
@@ -8541,6 +8541,11 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
return DataModelLogger::LogValue("State", 1, value);
}
+ case DishwasherAlarm::Attributes::Supported::Id: {
+ chip::BitMask value;
+ ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+ return DataModelLogger::LogValue("Supported", 1, value);
+ }
case DishwasherAlarm::Attributes::GeneratedCommandList::Id: {
chip::app::DataModel::DecodableList value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
diff --git a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
index fe3f7121cc861f..defade81307f62 100644
--- a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
+++ b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
@@ -43994,6 +43994,7 @@ class SubscribeAttributeSmokeCoAlarmClusterRevision : public SubscribeAttribute
| * Mask | 0x0000 |
| * Latch | 0x0001 |
| * State | 0x0002 |
+| * Supported | 0x0003 |
| * GeneratedCommandList | 0xFFF8 |
| * AcceptedCommandList | 0xFFF9 |
| * EventList | 0xFFFA |
@@ -44074,11 +44075,7 @@ class DishwasherAlarmModifyEnabledAlarms : public ClusterCommand {
__auto_type * params = [[MTRDishwasherAlarmClusterModifyEnabledAlarmsParams alloc] init];
params.timedInvokeTimeoutMs
= mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
- if (mRequest.mask.HasValue()) {
- params.mask = [NSNumber numberWithUnsignedInt:mRequest.mask.Value().Raw()];
- } else {
- params.mask = nil;
- }
+ params.mask = [NSNumber numberWithUnsignedInt:mRequest.mask.Raw()];
uint16_t repeatCount = mRepeatCount.ValueOr(1);
uint16_t __block responsesNeeded = repeatCount;
while (repeatCount--) {
@@ -44311,6 +44308,76 @@ class SubscribeAttributeDishwasherAlarmState : public SubscribeAttribute {
}
};
+/*
+ * Attribute Supported
+ */
+class ReadDishwasherAlarmSupported : public ReadAttribute {
+public:
+ ReadDishwasherAlarmSupported()
+ : ReadAttribute("supported")
+ {
+ }
+
+ ~ReadDishwasherAlarmSupported() {}
+
+ CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+ {
+ ChipLogProgress(chipTool, "Sending cluster (0x0000005D) ReadAttribute (0x00000003) on endpoint %u", endpointId);
+
+ dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+ __auto_type * cluster = [[MTRBaseClusterDishwasherAlarm alloc] initWithDevice:device
+ endpointID:@(endpointId)
+ queue:callbackQueue];
+ [cluster readAttributeSupportedWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+ NSLog(@"DishwasherAlarm.Supported response %@", [value description]);
+ if (error != nil) {
+ LogNSError("DishwasherAlarm Supported read Error", error);
+ }
+ SetCommandExitStatus(error);
+ }];
+ return CHIP_NO_ERROR;
+ }
+};
+
+class SubscribeAttributeDishwasherAlarmSupported : public SubscribeAttribute {
+public:
+ SubscribeAttributeDishwasherAlarmSupported()
+ : SubscribeAttribute("supported")
+ {
+ }
+
+ ~SubscribeAttributeDishwasherAlarmSupported() {}
+
+ CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+ {
+ ChipLogProgress(chipTool, "Sending cluster (0x0000005D) ReportAttribute (0x00000003) on endpoint %u", endpointId);
+ dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+ __auto_type * cluster = [[MTRBaseClusterDishwasherAlarm alloc] initWithDevice:device
+ endpointID:@(endpointId)
+ queue:callbackQueue];
+ __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+ if (mKeepSubscriptions.HasValue()) {
+ params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+ }
+ if (mFabricFiltered.HasValue()) {
+ params.filterByFabric = mFabricFiltered.Value();
+ }
+ if (mAutoResubscribe.HasValue()) {
+ params.resubscribeAutomatically = mAutoResubscribe.Value();
+ }
+ [cluster subscribeAttributeSupportedWithParams:params
+ subscriptionEstablished:^() {
+ mSubscriptionEstablished = YES;
+ }
+ reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+ NSLog(@"DishwasherAlarm.Supported response %@", [value description]);
+ SetCommandExitStatus(error);
+ }];
+
+ return CHIP_NO_ERROR;
+ }
+};
+
/*
* Attribute GeneratedCommandList
*/
@@ -124368,6 +124435,8 @@ void registerClusterDishwasherAlarm(Commands & commands)
make_unique(), //
make_unique(), //
make_unique(), //
+ make_unique(), //
+ make_unique(), //
make_unique(), //
make_unique(), //
make_unique(), //