diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
index 93150f4b003e2e..234647730969f0 100644
--- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
+++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
@@ -9178,6 +9178,73 @@
}
]
},
+ {
+ "name": "Boolean State",
+ "code": 69,
+ "mfgCode": null,
+ "define": "BOOLEAN_STATE_CLUSTER",
+ "side": "client",
+ "enabled": 0,
+ "commands": [],
+ "attributes": [
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "1",
+ "reportable": 0,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "Boolean State",
+ "code": 69,
+ "mfgCode": null,
+ "define": "BOOLEAN_STATE_CLUSTER",
+ "side": "server",
+ "enabled": 1,
+ "commands": [],
+ "attributes": [
+ {
+ "name": "StateValue",
+ "code": 0,
+ "mfgCode": null,
+ "side": "server",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "server",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "1",
+ "reportable": 0,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
{
"name": "Door Lock",
"code": 257,
diff --git a/src/app/zap-templates/zcl/data-model/chip/boolean-state-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/boolean-state-cluster.xml
new file mode 100644
index 00000000000000..a38e8896406a08
--- /dev/null
+++ b/src/app/zap-templates/zcl/data-model/chip/boolean-state-cluster.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ Boolean State
+ General
+ This cluster provides an interface to a boolean state called StateValue.
+ 0x0045
+ BOOLEAN_STATE_CLUSTER
+ true
+ true
+
+ StateValue
+
+
+ This event SHALL be generated when the StateValue attribute changes.
+
+
+
+
diff --git a/src/app/zap-templates/zcl/zcl.json b/src/app/zap-templates/zcl/zcl.json
index e3dc9b02de2ac4..33b491eb267e7d 100644
--- a/src/app/zap-templates/zcl/zcl.json
+++ b/src/app/zap-templates/zcl/zcl.json
@@ -9,6 +9,7 @@
"audio-output-cluster.xml",
"basic-information-cluster.xml",
"binding-cluster.xml",
+ "boolean-state-cluster.xml",
"bridged-device-basic.xml",
"chip-devices.xml",
"chip-ota.xml",
diff --git a/src/app/zap_cluster_list.py b/src/app/zap_cluster_list.py
index 3dcad2769e5dce..40716447d83b7d 100755
--- a/src/app/zap_cluster_list.py
+++ b/src/app/zap_cluster_list.py
@@ -19,6 +19,7 @@
'BASIC_CLUSTER': ['basic'],
'BINARY_INPUT_BASIC_CLUSTER': [],
'BINDING_CLUSTER': ['bindings'],
+ 'BOOLEAN_STATE_CLUSTER': [],
'BRIDGED_DEVICE_BASIC_CLUSTER': [],
'COLOR_CONTROL_CLUSTER': ['color-control-server'],
'COMMISSIONING_CLUSTER': [],
@@ -83,6 +84,7 @@
'BASIC_CLUSTER': [],
'BINARY_INPUT_BASIC_CLUSTER': [],
'BINDING_CLUSTER': [],
+ 'BOOLEAN_STATE_CLUSTER': [],
'BRIDGED_DEVICE_BASIC_CLUSTER': [],
'COLOR_CONTROL_CLUSTER': [],
'COMMISSIONING_CLUSTER': [],
diff --git a/src/controller/data_model/controller-clusters.zap b/src/controller/data_model/controller-clusters.zap
index 582246aa8aaa7a..a97e2d16b0d2ee 100644
--- a/src/controller/data_model/controller-clusters.zap
+++ b/src/controller/data_model/controller-clusters.zap
@@ -5202,6 +5202,73 @@
}
]
},
+ {
+ "name": "Boolean State",
+ "code": 69,
+ "mfgCode": null,
+ "define": "BOOLEAN_STATE_CLUSTER",
+ "side": "client",
+ "enabled": 1,
+ "commands": [],
+ "attributes": [
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "1",
+ "reportable": 0,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "Boolean State",
+ "code": 69,
+ "mfgCode": null,
+ "define": "BOOLEAN_STATE_CLUSTER",
+ "side": "server",
+ "enabled": 0,
+ "commands": [],
+ "attributes": [
+ {
+ "name": "StateValue",
+ "code": 0,
+ "mfgCode": null,
+ "side": "server",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "server",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "1",
+ "reportable": 0,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
{
"name": "Door Lock",
"code": 257,
diff --git a/src/controller/java/zap-generated/CHIPClusters-JNI.cpp b/src/controller/java/zap-generated/CHIPClusters-JNI.cpp
index 371517183baaa9..b41e8d47f28a27 100644
--- a/src/controller/java/zap-generated/CHIPClusters-JNI.cpp
+++ b/src/controller/java/zap-generated/CHIPClusters-JNI.cpp
@@ -10400,6 +10400,111 @@ JNI_METHOD(void, BindingCluster, readClusterRevisionAttribute)(JNIEnv * env, job
onSuccess.release();
onFailure.release();
}
+JNI_METHOD(jlong, BooleanStateCluster, initWithDevice)(JNIEnv * env, jobject self, jlong devicePtr, jint endpointId)
+{
+ chip::DeviceLayer::StackLock lock;
+ BooleanStateCluster * cppCluster = new BooleanStateCluster();
+
+ cppCluster->Associate(reinterpret_cast(devicePtr), endpointId);
+ return reinterpret_cast(cppCluster);
+}
+
+JNI_METHOD(void, BooleanStateCluster, readStateValueAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback)
+{
+ chip::DeviceLayer::StackLock lock;
+ std::unique_ptr onSuccess(
+ Platform::New(callback), Platform::Delete);
+ VerifyOrReturn(onSuccess.get() != nullptr,
+ ReturnIllegalStateException(env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY));
+
+ std::unique_ptr onFailure(
+ Platform::New(callback), Platform::Delete);
+ VerifyOrReturn(onFailure.get() != nullptr,
+ ReturnIllegalStateException(env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY));
+
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ BooleanStateCluster * cppCluster = reinterpret_cast(clusterPtr);
+ VerifyOrReturn(cppCluster != nullptr,
+ ReturnIllegalStateException(env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE));
+
+ err = cppCluster->ReadAttributeStateValue(onSuccess->Cancel(), onFailure->Cancel());
+ VerifyOrReturn(err == CHIP_NO_ERROR, ReturnIllegalStateException(env, callback, "Error reading attribute", err));
+
+ onSuccess.release();
+ onFailure.release();
+}
+
+JNI_METHOD(void, BooleanStateCluster, subscribeStateValueAttribute)
+(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback, jint minInterval, jint maxInterval)
+{
+ chip::DeviceLayer::StackLock lock;
+ std::unique_ptr onSuccess(
+ Platform::New(callback), Platform::Delete);
+ VerifyOrReturn(onSuccess.get() != nullptr,
+ ReturnIllegalStateException(env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY));
+
+ std::unique_ptr onFailure(
+ Platform::New(callback), Platform::Delete);
+ VerifyOrReturn(onFailure.get() != nullptr,
+ ReturnIllegalStateException(env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY));
+
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ BooleanStateCluster * cppCluster = reinterpret_cast(clusterPtr);
+ VerifyOrReturn(cppCluster != nullptr,
+ ReturnIllegalStateException(env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE));
+
+ err = cppCluster->SubscribeAttributeStateValue(onSuccess->Cancel(), onFailure->Cancel(), static_cast(minInterval),
+ static_cast(maxInterval));
+ VerifyOrReturn(err == CHIP_NO_ERROR, ReturnIllegalStateException(env, callback, "Error subscribing to attribute", err));
+
+ onSuccess.release();
+ onFailure.release();
+}
+
+JNI_METHOD(void, BooleanStateCluster, reportStateValueAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback)
+{
+ chip::DeviceLayer::StackLock lock;
+ std::unique_ptr onReport(
+ Platform::New(callback, true), Platform::Delete);
+ VerifyOrReturn(onReport.get() != nullptr,
+ ReturnIllegalStateException(env, callback, "Error creating native report callback", CHIP_ERROR_NO_MEMORY));
+
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ BooleanStateCluster * cppCluster = reinterpret_cast(clusterPtr);
+ VerifyOrReturn(cppCluster != nullptr,
+ ReturnIllegalStateException(env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE));
+
+ err = cppCluster->ReportAttributeStateValue(onReport->Cancel());
+ VerifyOrReturn(err == CHIP_NO_ERROR,
+ ReturnIllegalStateException(env, callback, "Error registering for attribute reporting", err));
+
+ onReport.release();
+}
+
+JNI_METHOD(void, BooleanStateCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback)
+{
+ chip::DeviceLayer::StackLock lock;
+ std::unique_ptr onSuccess(
+ Platform::New(callback), Platform::Delete);
+ VerifyOrReturn(onSuccess.get() != nullptr,
+ ReturnIllegalStateException(env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY));
+
+ std::unique_ptr onFailure(
+ Platform::New(callback), Platform::Delete);
+ VerifyOrReturn(onFailure.get() != nullptr,
+ ReturnIllegalStateException(env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY));
+
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ BooleanStateCluster * cppCluster = reinterpret_cast(clusterPtr);
+ VerifyOrReturn(cppCluster != nullptr,
+ ReturnIllegalStateException(env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE));
+
+ err = cppCluster->ReadAttributeClusterRevision(onSuccess->Cancel(), onFailure->Cancel());
+ VerifyOrReturn(err == CHIP_NO_ERROR, ReturnIllegalStateException(env, callback, "Error reading attribute", err));
+
+ onSuccess.release();
+ onFailure.release();
+}
JNI_METHOD(jlong, BridgedDeviceBasicCluster, initWithDevice)(JNIEnv * env, jobject self, jlong devicePtr, jint endpointId)
{
chip::DeviceLayer::StackLock lock;
diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java b/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java
index 6b065eddd92444..56d5456926b6ef 100644
--- a/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java
+++ b/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java
@@ -766,6 +766,48 @@ private native void readClusterRevisionAttribute(
long chipClusterPtr, IntegerAttributeCallback callback);
}
+ public static class BooleanStateCluster extends BaseChipCluster {
+ public BooleanStateCluster(long devicePtr, int endpointId) {
+ super(devicePtr, endpointId);
+ }
+
+ public static long clusterId() {
+ return Long.parseUnsignedLong("69");
+ }
+
+ @Override
+ public native long initWithDevice(long devicePtr, int endpointId);
+
+ public void readStateValueAttribute(BooleanAttributeCallback callback) {
+ readStateValueAttribute(chipClusterPtr, callback);
+ }
+
+ public void subscribeStateValueAttribute(
+ DefaultClusterCallback callback, int minInterval, int maxInterval) {
+ subscribeStateValueAttribute(chipClusterPtr, callback, minInterval, maxInterval);
+ }
+
+ public void reportStateValueAttribute(BooleanAttributeCallback callback) {
+ reportStateValueAttribute(chipClusterPtr, callback);
+ }
+
+ public void readClusterRevisionAttribute(IntegerAttributeCallback callback) {
+ readClusterRevisionAttribute(chipClusterPtr, callback);
+ }
+
+ private native void readStateValueAttribute(
+ long chipClusterPtr, BooleanAttributeCallback callback);
+
+ private native void subscribeStateValueAttribute(
+ long chipClusterPtr, DefaultClusterCallback callback, int minInterval, int maxInterval);
+
+ private native void reportStateValueAttribute(
+ long chipClusterPtr, BooleanAttributeCallback callback);
+
+ private native void readClusterRevisionAttribute(
+ long chipClusterPtr, IntegerAttributeCallback callback);
+ }
+
public static class BridgedDeviceBasicCluster extends BaseChipCluster {
public BridgedDeviceBasicCluster(long devicePtr, int endpointId) {
super(devicePtr, endpointId);
diff --git a/src/controller/python/chip/clusters/CHIPClusters.cpp b/src/controller/python/chip/clusters/CHIPClusters.cpp
index 81ffb0b218dddd..1b6cf2f47924ef 100644
--- a/src/controller/python/chip/clusters/CHIPClusters.cpp
+++ b/src/controller/python/chip/clusters/CHIPClusters.cpp
@@ -2020,6 +2020,42 @@ chip::ChipError::StorageType chip_ime_ReadAttribute_Binding_ClusterRevision(chip
}
// End of Cluster Binding
+// Cluster BooleanState
+
+chip::ChipError::StorageType chip_ime_ReadAttribute_BooleanState_StateValue(chip::Controller::Device * device,
+ chip::EndpointId ZCLendpointId,
+ chip::GroupId /* ZCLgroupId */)
+{
+ VerifyOrReturnError(device != nullptr, CHIP_ERROR_INVALID_ARGUMENT.AsInteger());
+ chip::Controller::BooleanStateCluster cluster;
+ cluster.Associate(device, ZCLendpointId);
+ return cluster.ReadAttributeStateValue(gBooleanAttributeCallback.Cancel(), gDefaultFailureCallback.Cancel()).AsInteger();
+}
+
+chip::ChipError::StorageType chip_ime_SubscribeAttribute_BooleanState_StateValue(chip::Controller::Device * device,
+ chip::EndpointId ZCLendpointId,
+ uint16_t minInterval, uint16_t maxInterval)
+{
+ VerifyOrReturnError(device != nullptr, CHIP_ERROR_INVALID_ARGUMENT.AsInteger());
+ chip::Controller::BooleanStateCluster cluster;
+ cluster.Associate(device, ZCLendpointId);
+ return cluster
+ .SubscribeAttributeStateValue(gBooleanAttributeCallback.Cancel(), gDefaultFailureCallback.Cancel(), minInterval,
+ maxInterval)
+ .AsInteger();
+}
+
+chip::ChipError::StorageType chip_ime_ReadAttribute_BooleanState_ClusterRevision(chip::Controller::Device * device,
+ chip::EndpointId ZCLendpointId,
+ chip::GroupId /* ZCLgroupId */)
+{
+ VerifyOrReturnError(device != nullptr, CHIP_ERROR_INVALID_ARGUMENT.AsInteger());
+ chip::Controller::BooleanStateCluster cluster;
+ cluster.Associate(device, ZCLendpointId);
+ return cluster.ReadAttributeClusterRevision(gInt16uAttributeCallback.Cancel(), gDefaultFailureCallback.Cancel()).AsInteger();
+}
+
+// End of Cluster BooleanState
// Cluster BridgedDeviceBasic
chip::ChipError::StorageType chip_ime_ReadAttribute_BridgedDeviceBasic_VendorName(chip::Controller::Device * device,
diff --git a/src/controller/python/chip/clusters/CHIPClusters.py b/src/controller/python/chip/clusters/CHIPClusters.py
index 6eb18ea4f8908b..18c552cc396e6a 100644
--- a/src/controller/python/chip/clusters/CHIPClusters.py
+++ b/src/controller/python/chip/clusters/CHIPClusters.py
@@ -449,6 +449,25 @@ class ChipClusters:
},
},
}
+ _BOOLEAN_STATE_CLUSTER_INFO = {
+ "clusterName": "BooleanState",
+ "clusterId": 0x00000045,
+ "commands": {
+ },
+ "attributes": {
+ 0x00000000: {
+ "attributeName": "StateValue",
+ "attributeId": 0x00000000,
+ "type": "bool",
+ "reportable": True,
+ },
+ 0x0000FFFD: {
+ "attributeName": "ClusterRevision",
+ "attributeId": 0x0000FFFD,
+ "type": "int",
+ },
+ },
+ }
_BRIDGED_DEVICE_BASIC_CLUSTER_INFO = {
"clusterName": "BridgedDeviceBasic",
"clusterId": 0x00000039,
@@ -4037,6 +4056,7 @@ class ChipClusters:
0x00000028: _BASIC_CLUSTER_INFO,
0x0000000F: _BINARY_INPUT_BASIC_CLUSTER_INFO,
0x0000F000: _BINDING_CLUSTER_INFO,
+ 0x00000045: _BOOLEAN_STATE_CLUSTER_INFO,
0x00000039: _BRIDGED_DEVICE_BASIC_CLUSTER_INFO,
0x00000300: _COLOR_CONTROL_CLUSTER_INFO,
0x0000050A: _CONTENT_LAUNCHER_CLUSTER_INFO,
@@ -4093,6 +4113,7 @@ class ChipClusters:
"Basic": _BASIC_CLUSTER_INFO,
"BinaryInputBasic": _BINARY_INPUT_BASIC_CLUSTER_INFO,
"Binding": _BINDING_CLUSTER_INFO,
+ "BooleanState": _BOOLEAN_STATE_CLUSTER_INFO,
"BridgedDeviceBasic": _BRIDGED_DEVICE_BASIC_CLUSTER_INFO,
"ColorControl": _COLOR_CONTROL_CLUSTER_INFO,
"ContentLauncher": _CONTENT_LAUNCHER_CLUSTER_INFO,
@@ -5209,6 +5230,15 @@ def ClusterBinaryInputBasic_ReadAttributeClusterRevision(self, device: ctypes.c_
def ClusterBinding_ReadAttributeClusterRevision(self, device: ctypes.c_void_p, ZCLendpoint: int, ZCLgroupid: int):
return self._chipLib.chip_ime_ReadAttribute_Binding_ClusterRevision(device, ZCLendpoint, ZCLgroupid)
+ def ClusterBooleanState_ReadAttributeStateValue(self, device: ctypes.c_void_p, ZCLendpoint: int, ZCLgroupid: int):
+ return self._chipLib.chip_ime_ReadAttribute_BooleanState_StateValue(device, ZCLendpoint, ZCLgroupid)
+
+ def ClusterBooleanState_SubscribeAttributeStateValue(self, device: ctypes.c_void_p, ZCLendpoint: int, minInterval: int, maxInterval: int):
+ return self._chipLib.chip_ime_SubscribeAttribute_BooleanState_StateValue(device, ZCLendpoint, minInterval, maxInterval)
+
+ def ClusterBooleanState_ReadAttributeClusterRevision(self, device: ctypes.c_void_p, ZCLendpoint: int, ZCLgroupid: int):
+ return self._chipLib.chip_ime_ReadAttribute_BooleanState_ClusterRevision(device, ZCLendpoint, ZCLgroupid)
+
def ClusterBridgedDeviceBasic_ReadAttributeVendorName(self, device: ctypes.c_void_p, ZCLendpoint: int, ZCLgroupid: int):
return self._chipLib.chip_ime_ReadAttribute_BridgedDeviceBasic_VendorName(device, ZCLendpoint, ZCLgroupid)
@@ -6937,6 +6967,19 @@ def InitLib(self, chipLib):
self._chipLib.chip_ime_ReadAttribute_Binding_ClusterRevision.argtypes = [
ctypes.c_void_p, ctypes.c_uint8, ctypes.c_uint16]
self._chipLib.chip_ime_ReadAttribute_Binding_ClusterRevision.restype = ctypes.c_uint32
+ # Cluster BooleanState
+ # Cluster BooleanState ReadAttribute StateValue
+ self._chipLib.chip_ime_ReadAttribute_BooleanState_StateValue.argtypes = [
+ ctypes.c_void_p, ctypes.c_uint8, ctypes.c_uint16]
+ self._chipLib.chip_ime_ReadAttribute_BooleanState_StateValue.restype = ctypes.c_uint32
+ # Cluster BooleanState SubscribeAttribute StateValue
+ self._chipLib.chip_ime_SubscribeAttribute_BooleanState_StateValue.argtypes = [
+ ctypes.c_void_p, ctypes.c_uint8, ctypes.c_uint16, ctypes.c_uint16]
+ self._chipLib.chip_ime_SubscribeAttribute_BooleanState_StateValue.restype = ctypes.c_uint32
+ # Cluster BooleanState ReadAttribute ClusterRevision
+ self._chipLib.chip_ime_ReadAttribute_BooleanState_ClusterRevision.argtypes = [
+ ctypes.c_void_p, ctypes.c_uint8, ctypes.c_uint16]
+ self._chipLib.chip_ime_ReadAttribute_BooleanState_ClusterRevision.restype = ctypes.c_uint32
# Cluster BridgedDeviceBasic
# Cluster BridgedDeviceBasic ReadAttribute VendorName
self._chipLib.chip_ime_ReadAttribute_BridgedDeviceBasic_VendorName.argtypes = [
diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py
index 2b7e5330a1941f..74050e2297472f 100644
--- a/src/controller/python/chip/clusters/Objects.py
+++ b/src/controller/python/chip/clusters/Objects.py
@@ -8508,6 +8508,51 @@ def attribute_type(cls) -> ClusterObjectFieldDescriptor:
return ClusterObjectFieldDescriptor(Type=uint)
+@dataclass
+class BooleanState:
+ id: typing.ClassVar[int] = 0x0045
+
+ class Attributes:
+ class StateValue(ClusterAttributeDescriptor):
+ @ChipUtility.classproperty
+ def cluster_id(cls) -> int:
+ return 0x0045
+
+ @ChipUtility.classproperty
+ def attribute_id(cls) -> int:
+ return 0x0000
+
+ @ChipUtility.classproperty
+ def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+ return ClusterObjectFieldDescriptor(Type=bool)
+
+ class FeatureMap(ClusterAttributeDescriptor):
+ @ChipUtility.classproperty
+ def cluster_id(cls) -> int:
+ return 0x0045
+
+ @ChipUtility.classproperty
+ def attribute_id(cls) -> int:
+ return 0xFFFC
+
+ @ChipUtility.classproperty
+ def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+ return ClusterObjectFieldDescriptor(Type=uint)
+
+ class ClusterRevision(ClusterAttributeDescriptor):
+ @ChipUtility.classproperty
+ def cluster_id(cls) -> int:
+ return 0x0045
+
+ @ChipUtility.classproperty
+ def attribute_id(cls) -> int:
+ return 0xFFFD
+
+ @ChipUtility.classproperty
+ def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+ return ClusterObjectFieldDescriptor(Type=uint)
+
+
@dataclass
class ShadeConfiguration:
id: typing.ClassVar[int] = 0x0100
diff --git a/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc.h b/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc.h
index 7cb0431ed4e973..dde244762bae98 100644
--- a/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc.h
+++ b/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc.h
@@ -244,6 +244,22 @@ NS_ASSUME_NONNULL_BEGIN
@end
+/**
+ * Cluster Boolean State
+ *
+ */
+@interface CHIPBooleanState : CHIPCluster
+
+- (void)readAttributeStateValueWithResponseHandler:(ResponseHandler)responseHandler;
+- (void)subscribeAttributeStateValueWithMinInterval:(uint16_t)minInterval
+ maxInterval:(uint16_t)maxInterval
+ responseHandler:(ResponseHandler)responseHandler;
+- (void)reportAttributeStateValueWithResponseHandler:(ResponseHandler)responseHandler;
+
+- (void)readAttributeClusterRevisionWithResponseHandler:(ResponseHandler)responseHandler;
+
+@end
+
/**
* Cluster Bridged Device Basic
*
diff --git a/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc.mm b/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc.mm
index 559f0c31214b47..827b02d3db7292 100644
--- a/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc.mm
@@ -624,6 +624,48 @@ new CHIPInt16uAttributeCallbackBridge(self.callbackQueue, responseHandler, ^(Can
@end
+@implementation CHIPBooleanState
+
+- (chip::Controller::ClusterBase *)getCluster
+{
+ return &_cppCluster;
+}
+
+- (void)readAttributeStateValueWithResponseHandler:(ResponseHandler)responseHandler
+{
+ new CHIPBooleanAttributeCallbackBridge(self.callbackQueue, responseHandler, ^(Cancelable * success, Cancelable * failure) {
+ return self.cppCluster.ReadAttributeStateValue(success, failure);
+ });
+}
+
+- (void)subscribeAttributeStateValueWithMinInterval:(uint16_t)minInterval
+ maxInterval:(uint16_t)maxInterval
+ responseHandler:(ResponseHandler)responseHandler
+{
+ new CHIPBooleanAttributeCallbackBridge(self.callbackQueue, responseHandler, ^(Cancelable * success, Cancelable * failure) {
+ return self.cppCluster.SubscribeAttributeStateValue(success, failure, minInterval, maxInterval);
+ });
+}
+
+- (void)reportAttributeStateValueWithResponseHandler:(ResponseHandler)responseHandler
+{
+ new CHIPBooleanAttributeCallbackBridge(
+ self.callbackQueue, responseHandler,
+ ^(Cancelable * success, Cancelable * failure) {
+ return self.cppCluster.ReportAttributeStateValue(success);
+ },
+ true);
+}
+
+- (void)readAttributeClusterRevisionWithResponseHandler:(ResponseHandler)responseHandler
+{
+ new CHIPInt16uAttributeCallbackBridge(self.callbackQueue, responseHandler, ^(Cancelable * success, Cancelable * failure) {
+ return self.cppCluster.ReadAttributeClusterRevision(success, failure);
+ });
+}
+
+@end
+
@implementation CHIPBridgedDeviceBasic
- (chip::Controller::ClusterBase *)getCluster
diff --git a/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc_internal.h b/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc_internal.h
index 99b042bcfa15b4..26c9aea951372b 100644
--- a/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc_internal.h
+++ b/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc_internal.h
@@ -57,6 +57,10 @@
@property (readonly) chip::Controller::BindingCluster cppCluster;
@end
+@interface CHIPBooleanState ()
+@property (readonly) chip::Controller::BooleanStateCluster cppCluster;
+@end
+
@interface CHIPBridgedDeviceBasic ()
@property (readonly) chip::Controller::BridgedDeviceBasicCluster cppCluster;
@end
diff --git a/src/darwin/Framework/CHIP/zap-generated/CHIPTestClustersObjc.h b/src/darwin/Framework/CHIP/zap-generated/CHIPTestClustersObjc.h
index 4b99093d2e5c38..611335e27f41e2 100644
--- a/src/darwin/Framework/CHIP/zap-generated/CHIPTestClustersObjc.h
+++ b/src/darwin/Framework/CHIP/zap-generated/CHIPTestClustersObjc.h
@@ -143,6 +143,17 @@ NS_ASSUME_NONNULL_BEGIN
@end
+/**
+ * Cluster Boolean State
+ *
+ */
+@interface CHIPTestBooleanState : CHIPBooleanState
+
+- (void)writeAttributeStateValueWithValue:(bool)value responseHandler:(ResponseHandler)responseHandler;
+- (void)writeAttributeClusterRevisionWithValue:(uint16_t)value responseHandler:(ResponseHandler)responseHandler;
+
+@end
+
/**
* Cluster Bridged Device Basic
*
diff --git a/src/darwin/Framework/CHIP/zap-generated/CHIPTestClustersObjc.mm b/src/darwin/Framework/CHIP/zap-generated/CHIPTestClustersObjc.mm
index fbe5376a0aeba1..c2c6673ea5dfa4 100644
--- a/src/darwin/Framework/CHIP/zap-generated/CHIPTestClustersObjc.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/CHIPTestClustersObjc.mm
@@ -418,6 +418,33 @@ new CHIPDefaultSuccessCallbackBridge(self.callbackQueue, responseHandler, ^(Canc
@end
+@interface CHIPTestBooleanState ()
+@property (readonly) chip::Controller::BooleanStateClusterTest cppCluster;
+@end
+
+@implementation CHIPTestBooleanState
+
+- (chip::Controller::ClusterBase *)getCluster
+{
+ return &_cppCluster;
+}
+
+- (void)writeAttributeStateValueWithValue:(bool)value responseHandler:(ResponseHandler)responseHandler
+{
+ new CHIPDefaultSuccessCallbackBridge(self.callbackQueue, responseHandler, ^(Cancelable * success, Cancelable * failure) {
+ return self.cppCluster.WriteAttributeStateValue(success, failure, value);
+ });
+}
+
+- (void)writeAttributeClusterRevisionWithValue:(uint16_t)value responseHandler:(ResponseHandler)responseHandler
+{
+ new CHIPDefaultSuccessCallbackBridge(self.callbackQueue, responseHandler, ^(Cancelable * success, Cancelable * failure) {
+ return self.cppCluster.WriteAttributeClusterRevision(success, failure, value);
+ });
+}
+
+@end
+
@interface CHIPTestBridgedDeviceBasic ()
@property (readonly) chip::Controller::BridgedDeviceBasicClusterTest cppCluster;
@end
diff --git a/src/darwin/Framework/CHIPTests/CHIPClustersTests.m b/src/darwin/Framework/CHIPTests/CHIPClustersTests.m
index d7897f777d449e..575f44324ddaae 100644
--- a/src/darwin/Framework/CHIPTests/CHIPClustersTests.m
+++ b/src/darwin/Framework/CHIPTests/CHIPClustersTests.m
@@ -9757,6 +9757,43 @@ - (void)testSendClusterBindingReadAttributeClusterRevisionWithResponseHandler
[self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil];
}
+- (void)testSendClusterBooleanStateReadAttributeStateValueWithResponseHandler
+{
+ XCTestExpectation * expectation = [self expectationWithDescription:@"BooleanStateReadAttributeStateValueWithResponseHandler"];
+
+ CHIPDevice * device = GetConnectedDevice();
+ dispatch_queue_t queue = dispatch_get_main_queue();
+ CHIPBooleanState * cluster = [[CHIPBooleanState alloc] initWithDevice:device endpoint:1 queue:queue];
+ XCTAssertNotNil(cluster);
+
+ [cluster readAttributeStateValueWithResponseHandler:^(NSError * err, NSDictionary * values) {
+ NSLog(@"BooleanState StateValue Error: %@", err);
+ XCTAssertEqual(err.code, 0);
+ [expectation fulfill];
+ }];
+
+ [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil];
+}
+
+- (void)testSendClusterBooleanStateReadAttributeClusterRevisionWithResponseHandler
+{
+ XCTestExpectation * expectation =
+ [self expectationWithDescription:@"BooleanStateReadAttributeClusterRevisionWithResponseHandler"];
+
+ CHIPDevice * device = GetConnectedDevice();
+ dispatch_queue_t queue = dispatch_get_main_queue();
+ CHIPBooleanState * cluster = [[CHIPBooleanState alloc] initWithDevice:device endpoint:1 queue:queue];
+ XCTAssertNotNil(cluster);
+
+ [cluster readAttributeClusterRevisionWithResponseHandler:^(NSError * err, NSDictionary * values) {
+ NSLog(@"BooleanState ClusterRevision Error: %@", err);
+ XCTAssertEqual(err.code, 0);
+ [expectation fulfill];
+ }];
+
+ [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil];
+}
+
- (void)testSendClusterBridgedDeviceBasicReadAttributeVendorNameWithResponseHandler
{
XCTestExpectation * expectation =
diff --git a/zzz_generated/all-clusters-app/zap-generated/PluginApplicationCallbacks.h b/zzz_generated/all-clusters-app/zap-generated/PluginApplicationCallbacks.h
index 2e57e62312e33e..ae34edf0a5c251 100644
--- a/zzz_generated/all-clusters-app/zap-generated/PluginApplicationCallbacks.h
+++ b/zzz_generated/all-clusters-app/zap-generated/PluginApplicationCallbacks.h
@@ -31,6 +31,7 @@
MatterBasicPluginServerInitCallback(); \
MatterBinaryInputBasicPluginServerInitCallback(); \
MatterBindingPluginServerInitCallback(); \
+ MatterBooleanStatePluginServerInitCallback(); \
MatterBridgedDeviceBasicPluginServerInitCallback(); \
MatterColorControlPluginServerInitCallback(); \
MatterContentLauncherPluginServerInitCallback(); \
diff --git a/zzz_generated/all-clusters-app/zap-generated/callback-stub.cpp b/zzz_generated/all-clusters-app/zap-generated/callback-stub.cpp
index fa3881427262d3..cdee6c441b627d 100644
--- a/zzz_generated/all-clusters-app/zap-generated/callback-stub.cpp
+++ b/zzz_generated/all-clusters-app/zap-generated/callback-stub.cpp
@@ -56,6 +56,9 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
case ZCL_BINDING_CLUSTER_ID:
emberAfBindingClusterInitCallback(endpoint);
break;
+ case ZCL_BOOLEAN_STATE_CLUSTER_ID:
+ emberAfBooleanStateClusterInitCallback(endpoint);
+ break;
case ZCL_BRIDGED_DEVICE_BASIC_CLUSTER_ID:
emberAfBridgedDeviceBasicClusterInitCallback(endpoint);
break;
@@ -242,6 +245,11 @@ void __attribute__((weak)) emberAfBindingClusterInitCallback(EndpointId endpoint
// To prevent warning
(void) endpoint;
}
+void __attribute__((weak)) emberAfBooleanStateClusterInitCallback(EndpointId endpoint)
+{
+ // To prevent warning
+ (void) endpoint;
+}
void __attribute__((weak)) emberAfBridgedDeviceBasicClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
diff --git a/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h b/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h
index 48912ab87aa535..a11d1efb5f96de 100644
--- a/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h
+++ b/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h
@@ -2225,7 +2225,7 @@
#define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask
// This is an array of EmberAfAttributeMetadata structures.
-#define GENERATED_ATTRIBUTE_COUNT 467
+#define GENERATED_ATTRIBUTE_COUNT 469
#define GENERATED_ATTRIBUTES \
{ \
\
@@ -2527,6 +2527,10 @@
{ 0x0000, ZAP_TYPE(ARRAY), 254, 0, ZAP_LONG_DEFAULTS_INDEX(6260) }, /* label list */ \
{ 0xFFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */ \
\
+ /* Endpoint: 1, Cluster: Boolean State (server) */ \
+ { 0x0000, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_SIMPLE_DEFAULT(0) }, /* StateValue */ \
+ { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
/* Endpoint: 1, Cluster: Door Lock (server) */ \
{ 0x0000, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(2) }, /* lock state */ \
{ 0x0001, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() }, /* lock type */ \
@@ -2902,7 +2906,7 @@
};
#define ZAP_CLUSTER_MASK(mask) CLUSTER_MASK_##mask
-#define GENERATED_CLUSTER_COUNT 60
+#define GENERATED_CLUSTER_COUNT 61
#define GENERATED_CLUSTERS \
{ \
{ 0x0003, \
@@ -3031,116 +3035,119 @@
{ \
0x0040, ZAP_ATTRIBUTE_INDEX(222), 2, 256, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Fixed Label (server) */ \
+ { \
+ 0x0045, ZAP_ATTRIBUTE_INDEX(224), 2, 3, ZAP_CLUSTER_MASK(SERVER), NULL \
+ }, /* Endpoint: 1, Cluster: Boolean State (server) */ \
{ 0x0101, \
- ZAP_ATTRIBUTE_INDEX(224), \
+ ZAP_ATTRIBUTE_INDEX(226), \
4, \
5, \
ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION), \
chipFuncArrayDoorLockServer }, /* Endpoint: 1, Cluster: Door Lock (server) */ \
{ \
- 0x0102, ZAP_ATTRIBUTE_INDEX(228), 19, 31, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x0102, ZAP_ATTRIBUTE_INDEX(230), 19, 31, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Window Covering (server) */ \
{ \
- 0x0103, ZAP_ATTRIBUTE_INDEX(247), 5, 7, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x0103, ZAP_ATTRIBUTE_INDEX(249), 5, 7, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Barrier Control (server) */ \
{ \
0x0200, \
- ZAP_ATTRIBUTE_INDEX(252), \
+ ZAP_ATTRIBUTE_INDEX(254), \
24, \
48, \
ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION), \
chipFuncArrayPumpConfigurationAndControlServer \
}, /* Endpoint: 1, Cluster: Pump Configuration and Control (server) */ \
{ \
- 0x0201, ZAP_ATTRIBUTE_INDEX(276), 18, 33, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x0201, ZAP_ATTRIBUTE_INDEX(278), 18, 33, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Thermostat (server) */ \
{ \
- 0x0204, ZAP_ATTRIBUTE_INDEX(294), 4, 5, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x0204, ZAP_ATTRIBUTE_INDEX(296), 4, 5, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Thermostat User Interface Configuration (server) */ \
{ 0x0300, \
- ZAP_ATTRIBUTE_INDEX(298), \
+ ZAP_ATTRIBUTE_INDEX(300), \
53, \
341, \
ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
chipFuncArrayColorControlServer }, /* Endpoint: 1, Cluster: Color Control (server) */ \
{ \
- 0x0402, ZAP_ATTRIBUTE_INDEX(351), 4, 8, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x0402, ZAP_ATTRIBUTE_INDEX(353), 4, 8, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Temperature Measurement (server) */ \
{ \
- 0x0403, ZAP_ATTRIBUTE_INDEX(355), 4, 8, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x0403, ZAP_ATTRIBUTE_INDEX(357), 4, 8, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Pressure Measurement (server) */ \
{ \
- 0x0404, ZAP_ATTRIBUTE_INDEX(359), 4, 8, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x0404, ZAP_ATTRIBUTE_INDEX(361), 4, 8, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Flow Measurement (server) */ \
{ \
- 0x0405, ZAP_ATTRIBUTE_INDEX(363), 4, 8, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x0405, ZAP_ATTRIBUTE_INDEX(365), 4, 8, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Relative Humidity Measurement (server) */ \
{ 0x0406, \
- ZAP_ATTRIBUTE_INDEX(367), \
+ ZAP_ATTRIBUTE_INDEX(369), \
4, \
5, \
ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
chipFuncArrayOccupancySensingServer }, /* Endpoint: 1, Cluster: Occupancy Sensing (server) */ \
{ 0x0500, \
- ZAP_ATTRIBUTE_INDEX(371), \
+ ZAP_ATTRIBUTE_INDEX(373), \
6, \
16, \
ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION) | \
ZAP_CLUSTER_MASK(MESSAGE_SENT_FUNCTION), \
chipFuncArrayIasZoneServer }, /* Endpoint: 1, Cluster: IAS Zone (server) */ \
{ \
- 0x0503, ZAP_ATTRIBUTE_INDEX(377), 2, 35, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x0503, ZAP_ATTRIBUTE_INDEX(379), 2, 35, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Wake on LAN (server) */ \
{ \
- 0x0504, ZAP_ATTRIBUTE_INDEX(379), 4, 322, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x0504, ZAP_ATTRIBUTE_INDEX(381), 4, 322, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: TV Channel (server) */ \
{ \
- 0x0505, ZAP_ATTRIBUTE_INDEX(383), 2, 256, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x0505, ZAP_ATTRIBUTE_INDEX(385), 2, 256, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Target Navigator (server) */ \
{ \
- 0x0506, ZAP_ATTRIBUTE_INDEX(385), 9, 59, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x0506, ZAP_ATTRIBUTE_INDEX(387), 9, 59, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Media Playback (server) */ \
{ \
- 0x0507, ZAP_ATTRIBUTE_INDEX(394), 3, 257, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x0507, ZAP_ATTRIBUTE_INDEX(396), 3, 257, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Media Input (server) */ \
{ \
- 0x0508, ZAP_ATTRIBUTE_INDEX(397), 1, 2, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x0508, ZAP_ATTRIBUTE_INDEX(399), 1, 2, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Low Power (server) */ \
{ \
- 0x0509, ZAP_ATTRIBUTE_INDEX(398), 1, 2, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x0509, ZAP_ATTRIBUTE_INDEX(400), 1, 2, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Keypad Input (server) */ \
{ \
- 0x050A, ZAP_ATTRIBUTE_INDEX(399), 3, 510, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x050A, ZAP_ATTRIBUTE_INDEX(401), 3, 510, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Content Launcher (server) */ \
{ \
- 0x050B, ZAP_ATTRIBUTE_INDEX(402), 3, 257, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x050B, ZAP_ATTRIBUTE_INDEX(404), 3, 257, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Audio Output (server) */ \
{ \
- 0x050C, ZAP_ATTRIBUTE_INDEX(405), 4, 258, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x050C, ZAP_ATTRIBUTE_INDEX(407), 4, 258, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Application Launcher (server) */ \
{ \
- 0x050D, ZAP_ATTRIBUTE_INDEX(409), 8, 108, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x050D, ZAP_ATTRIBUTE_INDEX(411), 8, 108, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Application Basic (server) */ \
{ \
- 0x050E, ZAP_ATTRIBUTE_INDEX(417), 1, 2, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x050E, ZAP_ATTRIBUTE_INDEX(419), 1, 2, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Account Login (server) */ \
{ \
- 0x050F, ZAP_ATTRIBUTE_INDEX(418), 25, 2607, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x050F, ZAP_ATTRIBUTE_INDEX(420), 25, 2607, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Test Cluster (server) */ \
{ \
- 0x0B04, ZAP_ATTRIBUTE_INDEX(443), 12, 28, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0x0B04, ZAP_ATTRIBUTE_INDEX(445), 12, 28, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Electrical Measurement (server) */ \
{ \
- 0xF000, ZAP_ATTRIBUTE_INDEX(455), 1, 2, ZAP_CLUSTER_MASK(SERVER), NULL \
+ 0xF000, ZAP_ATTRIBUTE_INDEX(457), 1, 2, ZAP_CLUSTER_MASK(SERVER), NULL \
}, /* Endpoint: 1, Cluster: Binding (server) */ \
{ 0x0006, \
- ZAP_ATTRIBUTE_INDEX(456), \
+ ZAP_ATTRIBUTE_INDEX(458), \
7, \
13, \
ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
chipFuncArrayOnOffServer }, /* Endpoint: 2, Cluster: On/Off (server) */ \
{ 0x0406, \
- ZAP_ATTRIBUTE_INDEX(463), \
+ ZAP_ATTRIBUTE_INDEX(465), \
4, \
5, \
ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
@@ -3152,7 +3159,7 @@
// This is an array of EmberAfEndpointType structures.
#define GENERATED_ENDPOINT_TYPES \
{ \
- { ZAP_CLUSTER_INDEX(0), 18, 4392 }, { ZAP_CLUSTER_INDEX(18), 40, 7520 }, { ZAP_CLUSTER_INDEX(58), 2, 18 }, \
+ { ZAP_CLUSTER_INDEX(0), 18, 4392 }, { ZAP_CLUSTER_INDEX(18), 41, 7523 }, { ZAP_CLUSTER_INDEX(59), 2, 18 }, \
}
// Largest attribute size is needed for various buffers
@@ -3162,7 +3169,7 @@
#define ATTRIBUTE_SINGLETONS_SIZE (1518)
// Total size of attribute storage
-#define ATTRIBUTE_MAX_SIZE (11930)
+#define ATTRIBUTE_MAX_SIZE (11933)
// Number of fixed endpoints
#define FIXED_ENDPOINT_COUNT (3)
diff --git a/zzz_generated/all-clusters-app/zap-generated/gen_config.h b/zzz_generated/all-clusters-app/zap-generated/gen_config.h
index d91cc55e123be3..e3abeae03492c8 100644
--- a/zzz_generated/all-clusters-app/zap-generated/gen_config.h
+++ b/zzz_generated/all-clusters-app/zap-generated/gen_config.h
@@ -38,6 +38,7 @@
#define EMBER_AF_BASIC_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define EMBER_AF_BINARY_INPUT_BASIC_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define EMBER_AF_BINDING_CLUSTER_SERVER_ENDPOINT_COUNT (2)
+#define EMBER_AF_BOOLEAN_STATE_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define EMBER_AF_BRIDGED_DEVICE_BASIC_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define EMBER_AF_COLOR_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define EMBER_AF_CONTENT_LAUNCH_CLUSTER_SERVER_ENDPOINT_COUNT (1)
@@ -131,6 +132,11 @@
#define EMBER_AF_PLUGIN_BINDING_SERVER
#define EMBER_AF_PLUGIN_BINDING
+// Use this macro to check if the server side of the Boolean State cluster is included
+#define ZCL_USING_BOOLEAN_STATE_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_BOOLEAN_STATE_SERVER
+#define EMBER_AF_PLUGIN_BOOLEAN_STATE
+
// Use this macro to check if the server side of the Bridged Device Basic cluster is included
#define ZCL_USING_BRIDGED_DEVICE_BASIC_CLUSTER_SERVER
#define EMBER_AF_PLUGIN_BRIDGED_DEVICE_BASIC_SERVER
diff --git a/zzz_generated/app-common/app-common/zap-generated/attribute-id.h b/zzz_generated/app-common/app-common/zap-generated/attribute-id.h
index 830bc12b77dcd2..7abb52a49cba0c 100644
--- a/zzz_generated/app-common/app-common/zap-generated/attribute-id.h
+++ b/zzz_generated/app-common/app-common/zap-generated/attribute-id.h
@@ -531,6 +531,13 @@
// Server attributes
#define ZCL_LABEL_LIST_ATTRIBUTE_ID (0x0000)
+// Attribute ids for cluster: Boolean State
+
+// Client attributes
+
+// Server attributes
+#define ZCL_STATE_VALUE_ATTRIBUTE_ID (0x0000)
+
// Attribute ids for cluster: Shade Configuration
// Client attributes
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 59a18f00a64b6a..3ae239485dba76 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
@@ -3911,6 +3911,26 @@ namespace Attributes {
} // namespace Attributes
} // namespace FixedLabel
+namespace BooleanState {
+namespace Attributes {
+
+namespace StateValue {
+
+EmberAfStatus Get(chip::EndpointId endpoint, bool * stateValue)
+{
+ return emberAfReadServerAttribute(endpoint, BooleanState::Id, StateValue::Id, (uint8_t *) stateValue, sizeof(*stateValue));
+}
+EmberAfStatus Set(chip::EndpointId endpoint, bool stateValue)
+{
+ return emberAfWriteServerAttribute(endpoint, BooleanState::Id, StateValue::Id, (uint8_t *) &stateValue,
+ ZCL_BOOLEAN_ATTRIBUTE_TYPE);
+}
+
+} // namespace StateValue
+
+} // namespace Attributes
+} // namespace BooleanState
+
namespace ShadeConfiguration {
namespace Attributes {
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 1a1512a24eaa61..a5c68d797f10b5 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
@@ -1459,6 +1459,17 @@ namespace Attributes {
} // namespace Attributes
} // namespace FixedLabel
+namespace BooleanState {
+namespace Attributes {
+
+namespace StateValue {
+EmberAfStatus Get(chip::EndpointId endpoint, bool * stateValue); // boolean
+EmberAfStatus Set(chip::EndpointId endpoint, bool stateValue);
+} // namespace StateValue
+
+} // namespace Attributes
+} // namespace BooleanState
+
namespace ShadeConfiguration {
namespace Attributes {
diff --git a/zzz_generated/app-common/app-common/zap-generated/callback.h b/zzz_generated/app-common/app-common/zap-generated/callback.h
index 5906cf4051eaa7..240bfb9da43872 100644
--- a/zzz_generated/app-common/app-common/zap-generated/callback.h
+++ b/zzz_generated/app-common/app-common/zap-generated/callback.h
@@ -302,6 +302,14 @@ void emberAfOperationalCredentialsClusterInitCallback(chip::EndpointId endpoint)
*/
void emberAfFixedLabelClusterInitCallback(chip::EndpointId endpoint);
+/** @brief Boolean State Cluster Init
+ *
+ * Cluster Init
+ *
+ * @param endpoint Endpoint that is being initialized
+ */
+void emberAfBooleanStateClusterInitCallback(chip::EndpointId endpoint);
+
/** @brief Shade Configuration Cluster Init
*
* Cluster Init
@@ -4232,6 +4240,110 @@ void emberAfFixedLabelClusterServerTickCallback(chip::EndpointId endpoint);
*/
void emberAfFixedLabelClusterClientTickCallback(chip::EndpointId endpoint);
+//
+// Boolean State Cluster
+//
+
+/** @brief Boolean State Cluster Server Init
+ *
+ * Server Init
+ *
+ * @param endpoint Endpoint that is being initialized
+ */
+void emberAfBooleanStateClusterServerInitCallback(chip::EndpointId endpoint);
+
+/** @brief Boolean State Cluster Client Init
+ *
+ * Client Init
+ *
+ * @param endpoint Endpoint that is being initialized
+ */
+void emberAfBooleanStateClusterClientInitCallback(chip::EndpointId endpoint);
+
+/** @brief Boolean State Cluster Server Attribute Changed
+ *
+ * Server Attribute Changed
+ *
+ * @param attributePath Concrete attribute path that changed
+ */
+void MatterBooleanStateClusterServerAttributeChangedCallback(const chip::app::ConcreteAttributePath & attributePath);
+
+/** @brief Boolean State Cluster Client Attribute Changed
+ *
+ * Client Attribute Changed
+ *
+ * @param attributePath Concrete attribute path that changed
+ */
+void MatterBooleanStateClusterClientAttributeChangedCallback(const chip::app::ConcreteAttributePath & attributePath);
+
+/** @brief Boolean State Cluster Server Message Sent
+ *
+ * Server Message Sent
+ *
+ * @param destination The destination to which the message was sent
+ * @param apsFrame The APS frame for the message
+ * @param msgLen The length of the message
+ * @param message The message that was sent
+ * @param status The status of the sent message
+ */
+void emberAfBooleanStateClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
+ uint16_t msgLen, uint8_t * message, EmberStatus status);
+
+/** @brief Boolean State Cluster Client Message Sent
+ *
+ * Client Message Sent
+ *
+ * @param destination The destination to which the message was sent
+ * @param apsFrame The APS frame for the message
+ * @param msgLen The length of the message
+ * @param message The message that was sent
+ * @param status The status of the sent message
+ */
+void emberAfBooleanStateClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
+ uint16_t msgLen, uint8_t * message, EmberStatus status);
+
+/** @brief Boolean State Cluster Server Pre Attribute Changed
+ *
+ * Server Pre Attribute Changed
+ *
+ * @param attributePath Concrete attribute path to be changed
+ * @param attributeType Attribute type
+ * @param size Attribute size
+ * @param value Attribute value
+ */
+chip::Protocols::InteractionModel::Status
+MatterBooleanStateClusterServerPreAttributeChangedCallback(const chip::app::ConcreteAttributePath & attributePath,
+ EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);
+
+/** @brief Boolean State Cluster Client Pre Attribute Changed
+ *
+ * Client Pre Attribute Changed
+ *
+ * @param attributePath Concrete attribute path to be changed
+ * @param attributeType Attribute type
+ * @param size Attribute size
+ * @param value Attribute value
+ */
+chip::Protocols::InteractionModel::Status
+MatterBooleanStateClusterClientPreAttributeChangedCallback(const chip::app::ConcreteAttributePath & attributePath,
+ EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);
+
+/** @brief Boolean State Cluster Server Tick
+ *
+ * Server Tick
+ *
+ * @param endpoint Endpoint that is being served
+ */
+void emberAfBooleanStateClusterServerTickCallback(chip::EndpointId endpoint);
+
+/** @brief Boolean State Cluster Client Tick
+ *
+ * Client Tick
+ *
+ * @param endpoint Endpoint that is being served
+ */
+void emberAfBooleanStateClusterClientTickCallback(chip::EndpointId endpoint);
+
//
// Shade Configuration Cluster
//
diff --git a/zzz_generated/app-common/app-common/zap-generated/callbacks/PluginCallbacks.h b/zzz_generated/app-common/app-common/zap-generated/callbacks/PluginCallbacks.h
index ef2f2c60995346..a43228f02ec736 100644
--- a/zzz_generated/app-common/app-common/zap-generated/callbacks/PluginCallbacks.h
+++ b/zzz_generated/app-common/app-common/zap-generated/callbacks/PluginCallbacks.h
@@ -115,6 +115,9 @@ void __attribute__((weak)) MatterOperationalCredentialsPluginServerInitCallback(
void __attribute__((weak)) MatterFixedLabelPluginClientInitCallback(){};
void __attribute__((weak)) MatterFixedLabelPluginServerInitCallback(){};
+void __attribute__((weak)) MatterBooleanStatePluginClientInitCallback(){};
+void __attribute__((weak)) MatterBooleanStatePluginServerInitCallback(){};
+
void __attribute__((weak)) MatterShadeConfigurationPluginClientInitCallback(){};
void __attribute__((weak)) MatterShadeConfigurationPluginServerInitCallback(){};
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-id.h b/zzz_generated/app-common/app-common/zap-generated/cluster-id.h
index b740737d30722e..4ecece15b58a4f 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-id.h
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-id.h
@@ -118,6 +118,9 @@ static constexpr chip::ClusterId ZCL_OPERATIONAL_CREDENTIALS_CLUSTER_ID = 0x003E
// Definitions for cluster: Fixed Label
static constexpr chip::ClusterId ZCL_FIXED_LABEL_CLUSTER_ID = 0x0040;
+// Definitions for cluster: Boolean State
+static constexpr chip::ClusterId ZCL_BOOLEAN_STATE_CLUSTER_ID = 0x0045;
+
// Definitions for cluster: Shade Configuration
static constexpr chip::ClusterId ZCL_SHADE_CONFIG_CLUSTER_ID = 0x0100;
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 53b70f97c27da8..b300869e4a07b1 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
@@ -6995,6 +6995,49 @@ namespace Events {
} // namespace Events
} // namespace FixedLabel
+namespace BooleanState {
+
+namespace Commands {
+} // namespace Commands
+
+namespace Events {
+namespace StateChange {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & writer, TLV::Tag tag) const
+{
+ TLV::TLVType outer;
+ ReturnErrorOnFailure(writer.StartContainer(tag, TLV::kTLVType_Structure, outer));
+ ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kStateValue)), stateValue));
+ ReturnErrorOnFailure(writer.EndContainer(outer));
+ return CHIP_NO_ERROR;
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ TLV::TLVType outer;
+ VerifyOrReturnError(TLV::kTLVType_Structure == reader.GetType(), CHIP_ERROR_WRONG_TLV_TYPE);
+ ReturnErrorOnFailure(reader.EnterContainer(outer));
+ while ((err = reader.Next()) == CHIP_NO_ERROR)
+ {
+ VerifyOrReturnError(TLV::IsContextTag(reader.GetTag()), CHIP_ERROR_INVALID_TLV_TAG);
+ switch (TLV::TagNumFromTag(reader.GetTag()))
+ {
+ case to_underlying(Fields::kStateValue):
+ ReturnErrorOnFailure(DataModel::Decode(reader, stateValue));
+ break;
+ default:
+ break;
+ }
+ }
+
+ VerifyOrReturnError(err == CHIP_END_OF_TLV, err);
+ ReturnErrorOnFailure(reader.ExitContainer(outer));
+ return CHIP_NO_ERROR;
+}
+} // namespace StateChange.
+} // namespace Events
+
+} // namespace BooleanState
namespace ShadeConfiguration {
namespace Commands {
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 59f273371bb149..79339d80348ca1 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
@@ -9032,6 +9032,56 @@ struct TypeInfo
} // namespace LabelList
} // namespace Attributes
} // namespace FixedLabel
+namespace BooleanState {
+
+namespace Attributes {
+namespace StateValue {
+struct TypeInfo
+{
+ using Type = bool;
+ using DecodableType = bool;
+
+ static constexpr ClusterId GetClusterId() { return BooleanState::Id; }
+ static constexpr AttributeId GetAttributeId() { return Attributes::StateValue::Id; }
+};
+} // namespace StateValue
+} // namespace Attributes
+namespace Events {
+namespace StateChange {
+static constexpr PriorityLevel kPriorityLevel = PriorityLevel::Info;
+static constexpr EventId kEventId = 0x00000000;
+
+enum class Fields
+{
+ kStateValue = 0,
+};
+
+struct Type
+{
+public:
+ static constexpr PriorityLevel priorityLevel = PriorityLevel::Info;
+ static constexpr EventId eventId = 0x00000000;
+ static constexpr ClusterId GetClusterId() { return BooleanState::Id; }
+
+ bool stateValue;
+
+ CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const;
+};
+
+struct DecodableType
+{
+public:
+ static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; }
+ static constexpr EventId GetEventId() { return kEventId; }
+ static constexpr ClusterId GetClusterId() { return BooleanState::Id; }
+
+ bool stateValue;
+
+ CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+} // namespace StateChange
+} // namespace Events
+} // namespace BooleanState
namespace ShadeConfiguration {
namespace Attributes {
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 5ea6f40e9fd5cd..fdae2b78e0e386 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
@@ -1571,6 +1571,20 @@ namespace ClusterRevision = Globals::Attributes::ClusterRevision;
} // namespace Attributes
} // namespace FixedLabel
+namespace BooleanState {
+namespace Attributes {
+
+namespace StateValue {
+static constexpr AttributeId Id = 0x00000000;
+} // namespace StateValue
+
+namespace FeatureMap = Globals::Attributes::FeatureMap;
+
+namespace ClusterRevision = Globals::Attributes::ClusterRevision;
+
+} // namespace Attributes
+} // namespace BooleanState
+
namespace ShadeConfiguration {
namespace Attributes {
diff --git a/zzz_generated/app-common/app-common/zap-generated/ids/Clusters.h b/zzz_generated/app-common/app-common/zap-generated/ids/Clusters.h
index ae83eb4ad7ddd4..7f9147cbfc87b8 100644
--- a/zzz_generated/app-common/app-common/zap-generated/ids/Clusters.h
+++ b/zzz_generated/app-common/app-common/zap-generated/ids/Clusters.h
@@ -121,6 +121,9 @@ static constexpr ClusterId Id = 0x0000003E;
namespace FixedLabel {
static constexpr ClusterId Id = 0x00000040;
} // namespace FixedLabel
+namespace BooleanState {
+static constexpr ClusterId Id = 0x00000045;
+} // namespace BooleanState
namespace ShadeConfiguration {
static constexpr ClusterId Id = 0x00000100;
} // namespace ShadeConfiguration
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 83d9ca702ed9da..b4c5acc0a0217a 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
@@ -220,6 +220,12 @@
#define CHIP_PRINTCLUSTER_FIXED_LABEL_CLUSTER
#endif
+#if defined(ZCL_USING_BOOLEAN_STATE_CLUSTER_SERVER) || defined(ZCL_USING_BOOLEAN_STATE_CLUSTER_CLIENT)
+#define CHIP_PRINTCLUSTER_BOOLEAN_STATE_CLUSTER { ZCL_BOOLEAN_STATE_CLUSTER_ID, 69, "Boolean State" },
+#else
+#define CHIP_PRINTCLUSTER_BOOLEAN_STATE_CLUSTER
+#endif
+
#if defined(ZCL_USING_SHADE_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_SHADE_CONFIG_CLUSTER_CLIENT)
#define CHIP_PRINTCLUSTER_SHADE_CONFIG_CLUSTER { ZCL_SHADE_CONFIG_CLUSTER_ID, 256, "Shade Configuration" },
#else
@@ -764,6 +770,7 @@
CHIP_PRINTCLUSTER_ADMINISTRATOR_COMMISSIONING_CLUSTER \
CHIP_PRINTCLUSTER_OPERATIONAL_CREDENTIALS_CLUSTER \
CHIP_PRINTCLUSTER_FIXED_LABEL_CLUSTER \
+ CHIP_PRINTCLUSTER_BOOLEAN_STATE_CLUSTER \
CHIP_PRINTCLUSTER_SHADE_CONFIG_CLUSTER \
CHIP_PRINTCLUSTER_DOOR_LOCK_CLUSTER \
CHIP_PRINTCLUSTER_WINDOW_COVERING_CLUSTER \
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
index 588549720864cb..0e7ceaa57f8dfe 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
+++ b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
@@ -1973,6 +1973,7 @@ static void OnTestClusterTestSpecificResponseSuccess(
| Basic | 0x0028 |
| BinaryInputBasic | 0x000F |
| Binding | 0xF000 |
+| BooleanState | 0x0045 |
| BridgedDeviceBasic | 0x0039 |
| ColorControl | 0x0300 |
| ContentLauncher | 0x050A |
@@ -4328,6 +4329,130 @@ class ReadBindingClusterRevision : public ModelCommand
new chip::Callback::Callback(OnDefaultFailureResponse, this);
};
+/*----------------------------------------------------------------------------*\
+| Cluster BooleanState | 0x0045 |
+|------------------------------------------------------------------------------|
+| Commands: | |
+|------------------------------------------------------------------------------|
+| Attributes: | |
+| * StateValue | 0x0000 |
+| * ClusterRevision | 0xFFFD |
+\*----------------------------------------------------------------------------*/
+
+/*
+ * Attribute StateValue
+ */
+class ReadBooleanStateStateValue : public ModelCommand
+{
+public:
+ ReadBooleanStateStateValue() : ModelCommand("read")
+ {
+ AddArgument("attr-name", "state-value");
+ ModelCommand::AddArguments();
+ }
+
+ ~ReadBooleanStateStateValue()
+ {
+ delete onSuccessCallback;
+ delete onFailureCallback;
+ }
+
+ CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override
+ {
+ ChipLogProgress(chipTool, "Sending cluster (0x0045) command (0x00) on endpoint %" PRIu8, endpointId);
+
+ chip::Controller::BooleanStateCluster cluster;
+ cluster.Associate(device, endpointId);
+ return cluster.ReadAttributeStateValue(onSuccessCallback->Cancel(), onFailureCallback->Cancel());
+ }
+
+private:
+ chip::Callback::Callback * onSuccessCallback =
+ new chip::Callback::Callback(OnBooleanAttributeResponse, this);
+ chip::Callback::Callback * onFailureCallback =
+ new chip::Callback::Callback(OnDefaultFailureResponse, this);
+};
+
+class ReportBooleanStateStateValue : public ModelCommand
+{
+public:
+ ReportBooleanStateStateValue() : ModelCommand("report")
+ {
+ AddArgument("attr-name", "state-value");
+ AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval);
+ AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval);
+ ModelCommand::AddArguments();
+ }
+
+ ~ReportBooleanStateStateValue()
+ {
+ delete onSuccessCallback;
+ delete onFailureCallback;
+ delete onReportCallback;
+ }
+
+ CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override
+ {
+ ChipLogProgress(chipTool, "Sending cluster (0x0045) command (0x06) on endpoint %" PRIu8, endpointId);
+
+ chip::Controller::BooleanStateCluster cluster;
+ cluster.Associate(device, endpointId);
+
+ CHIP_ERROR err = cluster.ReportAttributeStateValue(onReportCallback->Cancel());
+ if (err != CHIP_NO_ERROR)
+ {
+ return err;
+ }
+
+ return cluster.SubscribeAttributeStateValue(onSuccessCallback->Cancel(), onFailureCallback->Cancel(), mMinInterval,
+ mMaxInterval);
+ }
+
+private:
+ chip::Callback::Callback * onSuccessCallback =
+ new chip::Callback::Callback(OnDefaultSuccessResponse, this);
+ chip::Callback::Callback * onFailureCallback =
+ new chip::Callback::Callback(OnDefaultFailureResponse, this);
+ chip::Callback::Callback * onReportCallback =
+ new chip::Callback::Callback(OnBooleanAttributeResponse, this);
+ uint16_t mMinInterval;
+ uint16_t mMaxInterval;
+};
+
+/*
+ * Attribute ClusterRevision
+ */
+class ReadBooleanStateClusterRevision : public ModelCommand
+{
+public:
+ ReadBooleanStateClusterRevision() : ModelCommand("read")
+ {
+ AddArgument("attr-name", "cluster-revision");
+ ModelCommand::AddArguments();
+ }
+
+ ~ReadBooleanStateClusterRevision()
+ {
+ delete onSuccessCallback;
+ delete onFailureCallback;
+ }
+
+ CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override
+ {
+ ChipLogProgress(chipTool, "Sending cluster (0x0045) command (0x00) on endpoint %" PRIu8, endpointId);
+
+ chip::Controller::BooleanStateCluster cluster;
+ cluster.Associate(device, endpointId);
+ return cluster.ReadAttributeClusterRevision(onSuccessCallback->Cancel(), onFailureCallback->Cancel());
+ }
+
+private:
+ chip::Callback::Callback * onSuccessCallback =
+ new chip::Callback::Callback(OnInt16uAttributeResponse, this);
+ chip::Callback::Callback * onFailureCallback =
+ new chip::Callback::Callback(OnDefaultFailureResponse, this);
+};
+
/*----------------------------------------------------------------------------*\
| Cluster BridgedDeviceBasic | 0x0039 |
|------------------------------------------------------------------------------|
@@ -25640,6 +25765,18 @@ void registerClusterBinding(Commands & commands)
commands.Register(clusterName, clusterCommands);
}
+void registerClusterBooleanState(Commands & commands)
+{
+ const char * clusterName = "BooleanState";
+
+ commands_list clusterCommands = {
+ make_unique(), //
+ make_unique(), //
+ make_unique(), //
+ };
+
+ commands.Register(clusterName, clusterCommands);
+}
void registerClusterBridgedDeviceBasic(Commands & commands)
{
const char * clusterName = "BridgedDeviceBasic";
@@ -26673,6 +26810,7 @@ void registerClusters(Commands & commands)
registerClusterBasic(commands);
registerClusterBinaryInputBasic(commands);
registerClusterBinding(commands);
+ registerClusterBooleanState(commands);
registerClusterBridgedDeviceBasic(commands);
registerClusterColorControl(commands);
registerClusterContentLauncher(commands);
diff --git a/zzz_generated/chip-tool/zap-generated/reporting/Commands.h b/zzz_generated/chip-tool/zap-generated/reporting/Commands.h
index 9bea6c53d76dd1..2e713a7d7ce1b0 100644
--- a/zzz_generated/chip-tool/zap-generated/reporting/Commands.h
+++ b/zzz_generated/chip-tool/zap-generated/reporting/Commands.h
@@ -32,6 +32,7 @@ class Listen : public ReportingCommand
{
delete onReportBinaryInputBasicPresentValueCallback;
delete onReportBinaryInputBasicStatusFlagsCallback;
+ delete onReportBooleanStateStateValueCallback;
delete onReportColorControlCurrentHueCallback;
delete onReportColorControlCurrentSaturationCallback;
delete onReportColorControlCurrentXCallback;
@@ -65,6 +66,8 @@ class Listen : public ReportingCommand
BasicAttributeFilter);
callbacksMgr.AddReportCallback(remoteId, endpointId, 0x000F, 0x006F, onReportBinaryInputBasicStatusFlagsCallback->Cancel(),
BasicAttributeFilter);
+ callbacksMgr.AddReportCallback(remoteId, endpointId, 0x0045, 0x0000, onReportBooleanStateStateValueCallback->Cancel(),
+ BasicAttributeFilter);
callbacksMgr.AddReportCallback(remoteId, endpointId, 0x0300, 0x0000, onReportColorControlCurrentHueCallback->Cancel(),
BasicAttributeFilter);
callbacksMgr.AddReportCallback(remoteId, endpointId, 0x0300, 0x0001,
@@ -165,6 +168,8 @@ class Listen : public ReportingCommand
new chip::Callback::Callback(OnBooleanAttributeResponse, this);
chip::Callback::Callback * onReportBinaryInputBasicStatusFlagsCallback =
new chip::Callback::Callback(OnInt8uAttributeResponse, this);
+ chip::Callback::Callback * onReportBooleanStateStateValueCallback =
+ new chip::Callback::Callback(OnBooleanAttributeResponse, this);
chip::Callback::Callback * onReportColorControlCurrentHueCallback =
new chip::Callback::Callback(OnInt8uAttributeResponse, this);
chip::Callback::Callback * onReportColorControlCurrentSaturationCallback =
diff --git a/zzz_generated/controller-clusters/zap-generated/CHIPClusters.cpp b/zzz_generated/controller-clusters/zap-generated/CHIPClusters.cpp
index 067590dac9a748..7a015b06b3e3e3 100644
--- a/zzz_generated/controller-clusters/zap-generated/CHIPClusters.cpp
+++ b/zzz_generated/controller-clusters/zap-generated/CHIPClusters.cpp
@@ -1413,6 +1413,50 @@ ClusterBase::InvokeCommand, CommandResponseFailureCallback);
+// BooleanState Cluster Commands
+// BooleanState Cluster Attributes
+CHIP_ERROR BooleanStateCluster::ReadAttributeStateValue(Callback::Cancelable * onSuccessCallback,
+ Callback::Cancelable * onFailureCallback)
+{
+ app::AttributePathParams attributePath;
+ attributePath.mEndpointId = mEndpoint;
+ attributePath.mClusterId = mClusterId;
+ attributePath.mFieldId = 0x00000000;
+ attributePath.mFlags.Set(app::AttributePathParams::Flags::kFieldIdValid);
+ return mDevice->SendReadAttributeRequest(attributePath, onSuccessCallback, onFailureCallback,
+ BasicAttributeFilter);
+}
+
+CHIP_ERROR BooleanStateCluster::SubscribeAttributeStateValue(Callback::Cancelable * onSuccessCallback,
+ Callback::Cancelable * onFailureCallback, uint16_t minInterval,
+ uint16_t maxInterval)
+{
+ chip::app::AttributePathParams attributePath;
+ attributePath.mEndpointId = mEndpoint;
+ attributePath.mClusterId = mClusterId;
+ attributePath.mFieldId = BooleanState::Attributes::StateValue::Id;
+ attributePath.mFlags.Set(chip::app::AttributePathParams::Flags::kFieldIdValid);
+ return mDevice->SendSubscribeAttributeRequest(attributePath, minInterval, maxInterval, onSuccessCallback, onFailureCallback);
+}
+
+CHIP_ERROR BooleanStateCluster::ReportAttributeStateValue(Callback::Cancelable * onReportCallback)
+{
+ return RequestAttributeReporting(BooleanState::Attributes::StateValue::Id, onReportCallback,
+ BasicAttributeFilter);
+}
+
+CHIP_ERROR BooleanStateCluster::ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback,
+ Callback::Cancelable * onFailureCallback)
+{
+ app::AttributePathParams attributePath;
+ attributePath.mEndpointId = mEndpoint;
+ attributePath.mClusterId = mClusterId;
+ attributePath.mFieldId = 0x0000FFFD;
+ attributePath.mFlags.Set(app::AttributePathParams::Flags::kFieldIdValid);
+ return mDevice->SendReadAttributeRequest(attributePath, onSuccessCallback, onFailureCallback,
+ BasicAttributeFilter);
+}
+
// BridgedDeviceBasic Cluster Commands
// BridgedDeviceBasic Cluster Attributes
CHIP_ERROR BridgedDeviceBasicCluster::ReadAttributeVendorName(Callback::Cancelable * onSuccessCallback,
diff --git a/zzz_generated/controller-clusters/zap-generated/CHIPClusters.h b/zzz_generated/controller-clusters/zap-generated/CHIPClusters.h
index 508db6dcbeae0f..be01f762e7f415 100644
--- a/zzz_generated/controller-clusters/zap-generated/CHIPClusters.h
+++ b/zzz_generated/controller-clusters/zap-generated/CHIPClusters.h
@@ -233,6 +233,20 @@ class DLL_EXPORT BindingCluster : public ClusterBase
private:
};
+class DLL_EXPORT BooleanStateCluster : public ClusterBase
+{
+public:
+ BooleanStateCluster() : ClusterBase(app::Clusters::BooleanState::Id) {}
+ ~BooleanStateCluster() {}
+
+ // Cluster Attributes
+ CHIP_ERROR ReadAttributeStateValue(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
+ CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
+ CHIP_ERROR SubscribeAttributeStateValue(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
+ uint16_t minInterval, uint16_t maxInterval);
+ CHIP_ERROR ReportAttributeStateValue(Callback::Cancelable * onReportCallback);
+};
+
class DLL_EXPORT BridgedDeviceBasicCluster : public ClusterBase
{
public:
diff --git a/zzz_generated/controller-clusters/zap-generated/PluginApplicationCallbacks.h b/zzz_generated/controller-clusters/zap-generated/PluginApplicationCallbacks.h
index 959ea4ae7e763f..cd5ddf7938e8e6 100644
--- a/zzz_generated/controller-clusters/zap-generated/PluginApplicationCallbacks.h
+++ b/zzz_generated/controller-clusters/zap-generated/PluginApplicationCallbacks.h
@@ -31,6 +31,7 @@
MatterBasicPluginClientInitCallback(); \
MatterBinaryInputBasicPluginClientInitCallback(); \
MatterBindingPluginClientInitCallback(); \
+ MatterBooleanStatePluginClientInitCallback(); \
MatterBridgedDeviceBasicPluginClientInitCallback(); \
MatterColorControlPluginClientInitCallback(); \
MatterContentLauncherPluginClientInitCallback(); \
diff --git a/zzz_generated/controller-clusters/zap-generated/callback-stub.cpp b/zzz_generated/controller-clusters/zap-generated/callback-stub.cpp
index bc31e9b4debf78..72ca2ee2efa2d4 100644
--- a/zzz_generated/controller-clusters/zap-generated/callback-stub.cpp
+++ b/zzz_generated/controller-clusters/zap-generated/callback-stub.cpp
@@ -56,6 +56,9 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
case ZCL_BINDING_CLUSTER_ID:
emberAfBindingClusterInitCallback(endpoint);
break;
+ case ZCL_BOOLEAN_STATE_CLUSTER_ID:
+ emberAfBooleanStateClusterInitCallback(endpoint);
+ break;
case ZCL_BRIDGED_DEVICE_BASIC_CLUSTER_ID:
emberAfBridgedDeviceBasicClusterInitCallback(endpoint);
break;
@@ -239,6 +242,11 @@ void __attribute__((weak)) emberAfBindingClusterInitCallback(EndpointId endpoint
// To prevent warning
(void) endpoint;
}
+void __attribute__((weak)) emberAfBooleanStateClusterInitCallback(EndpointId endpoint)
+{
+ // To prevent warning
+ (void) endpoint;
+}
void __attribute__((weak)) emberAfBridgedDeviceBasicClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
diff --git a/zzz_generated/controller-clusters/zap-generated/endpoint_config.h b/zzz_generated/controller-clusters/zap-generated/endpoint_config.h
index ccac0aeb52a47e..5d2246a792aa7c 100644
--- a/zzz_generated/controller-clusters/zap-generated/endpoint_config.h
+++ b/zzz_generated/controller-clusters/zap-generated/endpoint_config.h
@@ -73,7 +73,7 @@
#define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask
// This is an array of EmberAfAttributeMetadata structures.
-#define GENERATED_ATTRIBUTE_COUNT 53
+#define GENERATED_ATTRIBUTE_COUNT 54
#define GENERATED_ATTRIBUTES \
{ \
\
@@ -151,6 +151,9 @@
/* Endpoint: 1, Cluster: Fixed Label (client) */ \
{ 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */ \
\
+ /* Endpoint: 1, Cluster: Boolean State (client) */ \
+ { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
/* Endpoint: 1, Cluster: Door Lock (client) */ \
{ 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(3) }, /* ClusterRevision */ \
\
@@ -244,7 +247,7 @@
#define GENERATED_FUNCTION_ARRAYS
#define ZAP_CLUSTER_MASK(mask) CLUSTER_MASK_##mask
-#define GENERATED_CLUSTER_COUNT 53
+#define GENERATED_CLUSTER_COUNT 54
#define GENERATED_CLUSTERS \
{ \
{ 0x0003, ZAP_ATTRIBUTE_INDEX(0), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL }, /* Endpoint: 1, Cluster: Identify (client) */ \
@@ -311,88 +314,91 @@
0x0040, ZAP_ATTRIBUTE_INDEX(23), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Fixed Label (client) */ \
{ \
- 0x0101, ZAP_ATTRIBUTE_INDEX(24), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0045, ZAP_ATTRIBUTE_INDEX(24), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ }, /* Endpoint: 1, Cluster: Boolean State (client) */ \
+ { \
+ 0x0101, ZAP_ATTRIBUTE_INDEX(25), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Door Lock (client) */ \
{ \
- 0x0102, ZAP_ATTRIBUTE_INDEX(25), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0102, ZAP_ATTRIBUTE_INDEX(26), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Window Covering (client) */ \
{ \
- 0x0103, ZAP_ATTRIBUTE_INDEX(26), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0103, ZAP_ATTRIBUTE_INDEX(27), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Barrier Control (client) */ \
{ \
- 0x0200, ZAP_ATTRIBUTE_INDEX(27), 2, 6, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0200, ZAP_ATTRIBUTE_INDEX(28), 2, 6, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Pump Configuration and Control (client) */ \
{ \
- 0x0201, ZAP_ATTRIBUTE_INDEX(29), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0201, ZAP_ATTRIBUTE_INDEX(30), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Thermostat (client) */ \
{ \
- 0x0204, ZAP_ATTRIBUTE_INDEX(30), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0204, ZAP_ATTRIBUTE_INDEX(31), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Thermostat User Interface Configuration (client) */ \
{ \
- 0x0300, ZAP_ATTRIBUTE_INDEX(31), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0300, ZAP_ATTRIBUTE_INDEX(32), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Color Control (client) */ \
{ \
- 0x0402, ZAP_ATTRIBUTE_INDEX(32), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0402, ZAP_ATTRIBUTE_INDEX(33), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Temperature Measurement (client) */ \
{ \
- 0x0403, ZAP_ATTRIBUTE_INDEX(33), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0403, ZAP_ATTRIBUTE_INDEX(34), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Pressure Measurement (client) */ \
{ \
- 0x0404, ZAP_ATTRIBUTE_INDEX(34), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0404, ZAP_ATTRIBUTE_INDEX(35), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Flow Measurement (client) */ \
{ \
- 0x0405, ZAP_ATTRIBUTE_INDEX(35), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0405, ZAP_ATTRIBUTE_INDEX(36), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Relative Humidity Measurement (client) */ \
{ \
- 0x0406, ZAP_ATTRIBUTE_INDEX(36), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0406, ZAP_ATTRIBUTE_INDEX(37), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Occupancy Sensing (client) */ \
{ \
- 0x0503, ZAP_ATTRIBUTE_INDEX(37), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0503, ZAP_ATTRIBUTE_INDEX(38), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Wake on LAN (client) */ \
{ \
- 0x0504, ZAP_ATTRIBUTE_INDEX(38), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0504, ZAP_ATTRIBUTE_INDEX(39), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: TV Channel (client) */ \
{ \
- 0x0505, ZAP_ATTRIBUTE_INDEX(39), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0505, ZAP_ATTRIBUTE_INDEX(40), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Target Navigator (client) */ \
{ \
- 0x0506, ZAP_ATTRIBUTE_INDEX(40), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0506, ZAP_ATTRIBUTE_INDEX(41), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Media Playback (client) */ \
{ \
- 0x0507, ZAP_ATTRIBUTE_INDEX(41), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0507, ZAP_ATTRIBUTE_INDEX(42), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Media Input (client) */ \
{ \
- 0x0508, ZAP_ATTRIBUTE_INDEX(42), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0508, ZAP_ATTRIBUTE_INDEX(43), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Low Power (client) */ \
{ \
- 0x0509, ZAP_ATTRIBUTE_INDEX(43), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0509, ZAP_ATTRIBUTE_INDEX(44), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Keypad Input (client) */ \
{ \
- 0x050A, ZAP_ATTRIBUTE_INDEX(44), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x050A, ZAP_ATTRIBUTE_INDEX(45), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Content Launcher (client) */ \
{ \
- 0x050B, ZAP_ATTRIBUTE_INDEX(45), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x050B, ZAP_ATTRIBUTE_INDEX(46), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Audio Output (client) */ \
{ \
- 0x050C, ZAP_ATTRIBUTE_INDEX(46), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x050C, ZAP_ATTRIBUTE_INDEX(47), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Application Launcher (client) */ \
{ \
- 0x050D, ZAP_ATTRIBUTE_INDEX(47), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x050D, ZAP_ATTRIBUTE_INDEX(48), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Application Basic (client) */ \
{ \
- 0x050E, ZAP_ATTRIBUTE_INDEX(48), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x050E, ZAP_ATTRIBUTE_INDEX(49), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Account Login (client) */ \
{ \
- 0x050F, ZAP_ATTRIBUTE_INDEX(49), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x050F, ZAP_ATTRIBUTE_INDEX(50), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Test Cluster (client) */ \
{ \
- 0x0B04, ZAP_ATTRIBUTE_INDEX(50), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0x0B04, ZAP_ATTRIBUTE_INDEX(51), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Electrical Measurement (client) */ \
{ \
- 0xF000, ZAP_ATTRIBUTE_INDEX(51), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0xF000, ZAP_ATTRIBUTE_INDEX(52), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Binding (client) */ \
{ \
- 0xF004, ZAP_ATTRIBUTE_INDEX(52), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
+ 0xF004, ZAP_ATTRIBUTE_INDEX(53), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL \
}, /* Endpoint: 1, Cluster: Group Key Management (client) */ \
}
@@ -401,7 +407,7 @@
// This is an array of EmberAfEndpointType structures.
#define GENERATED_ENDPOINT_TYPES \
{ \
- { ZAP_CLUSTER_INDEX(0), 53, 108 }, \
+ { ZAP_CLUSTER_INDEX(0), 54, 110 }, \
}
// Largest attribute size is needed for various buffers
@@ -411,7 +417,7 @@
#define ATTRIBUTE_SINGLETONS_SIZE (4)
// Total size of attribute storage
-#define ATTRIBUTE_MAX_SIZE (108)
+#define ATTRIBUTE_MAX_SIZE (110)
// Number of fixed endpoints
#define FIXED_ENDPOINT_COUNT (1)
diff --git a/zzz_generated/controller-clusters/zap-generated/gen_config.h b/zzz_generated/controller-clusters/zap-generated/gen_config.h
index ea3bc06a59f9e4..2af81f499bc8d0 100644
--- a/zzz_generated/controller-clusters/zap-generated/gen_config.h
+++ b/zzz_generated/controller-clusters/zap-generated/gen_config.h
@@ -38,6 +38,7 @@
#define EMBER_AF_BASIC_CLUSTER_CLIENT_ENDPOINT_COUNT (1)
#define EMBER_AF_BINARY_INPUT_BASIC_CLUSTER_CLIENT_ENDPOINT_COUNT (1)
#define EMBER_AF_BINDING_CLUSTER_CLIENT_ENDPOINT_COUNT (1)
+#define EMBER_AF_BOOLEAN_STATE_CLUSTER_CLIENT_ENDPOINT_COUNT (1)
#define EMBER_AF_BRIDGED_DEVICE_BASIC_CLUSTER_CLIENT_ENDPOINT_COUNT (1)
#define EMBER_AF_COLOR_CONTROL_CLUSTER_CLIENT_ENDPOINT_COUNT (1)
#define EMBER_AF_CONTENT_LAUNCH_CLUSTER_CLIENT_ENDPOINT_COUNT (1)
@@ -121,6 +122,10 @@
#define ZCL_USING_BINDING_CLUSTER_CLIENT
#define EMBER_AF_PLUGIN_BINDING_CLIENT
+// Use this macro to check if the client side of the Boolean State cluster is included
+#define ZCL_USING_BOOLEAN_STATE_CLUSTER_CLIENT
+#define EMBER_AF_PLUGIN_BOOLEAN_STATE_CLIENT
+
// Use this macro to check if the client side of the Bridged Device Basic cluster is included
#define ZCL_USING_BRIDGED_DEVICE_BASIC_CLUSTER_CLIENT
#define EMBER_AF_PLUGIN_BRIDGED_DEVICE_BASIC_CLIENT
diff --git a/zzz_generated/controller-clusters/zap-generated/tests/CHIPClustersTest.cpp b/zzz_generated/controller-clusters/zap-generated/tests/CHIPClustersTest.cpp
index b11f800dd03748..671c66381ff755 100644
--- a/zzz_generated/controller-clusters/zap-generated/tests/CHIPClustersTest.cpp
+++ b/zzz_generated/controller-clusters/zap-generated/tests/CHIPClustersTest.cpp
@@ -717,6 +717,41 @@ CHIP_ERROR BindingClusterTest::WriteAttributeClusterRevision(Callback::Cancelabl
return mDevice->SendWriteAttributeRequest(std::move(handle), onSuccessCallback, onFailureCallback);
}
+CHIP_ERROR BooleanStateClusterTest::WriteAttributeStateValue(Callback::Cancelable * onSuccessCallback,
+ Callback::Cancelable * onFailureCallback, bool stateValue)
+{
+ app::WriteClientHandle handle;
+ chip::app::AttributePathParams attributePath;
+ attributePath.mNodeId = mDevice->GetDeviceId();
+ attributePath.mEndpointId = mEndpoint;
+ attributePath.mClusterId = mClusterId;
+ attributePath.mFieldId = BooleanState::Attributes::StateValue::Id;
+ attributePath.mFlags.Set(chip::app::AttributePathParams::Flags::kFieldIdValid);
+
+ ReturnErrorOnFailure(app::InteractionModelEngine::GetInstance()->NewWriteClient(handle));
+ ReturnErrorOnFailure(handle.EncodeAttributeWritePayload(attributePath, stateValue));
+
+ return mDevice->SendWriteAttributeRequest(std::move(handle), onSuccessCallback, onFailureCallback);
+}
+
+CHIP_ERROR BooleanStateClusterTest::WriteAttributeClusterRevision(Callback::Cancelable * onSuccessCallback,
+ Callback::Cancelable * onFailureCallback,
+ uint16_t clusterRevision)
+{
+ app::WriteClientHandle handle;
+ chip::app::AttributePathParams attributePath;
+ attributePath.mNodeId = mDevice->GetDeviceId();
+ attributePath.mEndpointId = mEndpoint;
+ attributePath.mClusterId = mClusterId;
+ attributePath.mFieldId = Globals::Attributes::ClusterRevision::Id;
+ attributePath.mFlags.Set(chip::app::AttributePathParams::Flags::kFieldIdValid);
+
+ ReturnErrorOnFailure(app::InteractionModelEngine::GetInstance()->NewWriteClient(handle));
+ ReturnErrorOnFailure(handle.EncodeAttributeWritePayload(attributePath, clusterRevision));
+
+ return mDevice->SendWriteAttributeRequest(std::move(handle), onSuccessCallback, onFailureCallback);
+}
+
CHIP_ERROR BridgedDeviceBasicClusterTest::WriteAttributeVendorName(Callback::Cancelable * onSuccessCallback,
Callback::Cancelable * onFailureCallback,
chip::CharSpan vendorName)
diff --git a/zzz_generated/controller-clusters/zap-generated/tests/CHIPClustersTest.h b/zzz_generated/controller-clusters/zap-generated/tests/CHIPClustersTest.h
index 9eb7b0ba0356ba..ddb2bee98300d4 100644
--- a/zzz_generated/controller-clusters/zap-generated/tests/CHIPClustersTest.h
+++ b/zzz_generated/controller-clusters/zap-generated/tests/CHIPClustersTest.h
@@ -174,6 +174,18 @@ class DLL_EXPORT BindingClusterTest : public BindingCluster
uint16_t value);
};
+class DLL_EXPORT BooleanStateClusterTest : public BooleanStateCluster
+{
+public:
+ BooleanStateClusterTest() : BooleanStateCluster() {}
+ ~BooleanStateClusterTest() {}
+
+ CHIP_ERROR WriteAttributeStateValue(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
+ bool value);
+ CHIP_ERROR WriteAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
+ uint16_t value);
+};
+
class DLL_EXPORT BridgedDeviceBasicClusterTest : public BridgedDeviceBasicCluster
{
public: