diff --git a/data_model/clusters/Scenes.xml b/data_model/clusters/Scenes.xml
index f82a470ca28eb5..daa9e5da564a41 100644
--- a/data_model/clusters/Scenes.xml
+++ b/data_model/clusters/Scenes.xml
@@ -1,61 +1,61 @@
-
-
+
@@ -528,4 +528,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/ColorDimmerSwitch.xml b/data_model/device_types/ColorDimmerSwitch.xml
index dcd2ac18b1a912..4de98619c1f9fb 100644
--- a/data_model/device_types/ColorDimmerSwitch.xml
+++ b/data_model/device_types/ColorDimmerSwitch.xml
@@ -1,59 +1,59 @@
-
@@ -73,7 +73,7 @@ Davis, CA 95616, USA
-
+
@@ -89,4 +89,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/ColorTemperatureLight.xml b/data_model/device_types/ColorTemperatureLight.xml
index 889f63db0de1f5..2e6db00535d3e3 100644
--- a/data_model/device_types/ColorTemperatureLight.xml
+++ b/data_model/device_types/ColorTemperatureLight.xml
@@ -1,59 +1,59 @@
-
@@ -76,7 +76,7 @@ Davis, CA 95616, USA
-
+
@@ -155,4 +155,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/ControlBridge.xml b/data_model/device_types/ControlBridge.xml
index 6ed528c0122d96..6c73377045b533 100644
--- a/data_model/device_types/ControlBridge.xml
+++ b/data_model/device_types/ControlBridge.xml
@@ -1,59 +1,59 @@
-
@@ -74,7 +74,7 @@ required."/>
-
+
@@ -96,4 +96,4 @@ required."/>
-
\ No newline at end of file
+
diff --git a/data_model/device_types/DimmableLight.xml b/data_model/device_types/DimmableLight.xml
index 39f193f53e7553..777cf64847884b 100644
--- a/data_model/device_types/DimmableLight.xml
+++ b/data_model/device_types/DimmableLight.xml
@@ -1,59 +1,59 @@
-
@@ -76,7 +76,7 @@ Davis, CA 95616, USA
-
+
@@ -142,4 +142,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/DimmablePlug-InUnit.xml b/data_model/device_types/DimmablePlug-InUnit.xml
index 012f752c7cc699..9a304fe9d18460 100644
--- a/data_model/device_types/DimmablePlug-InUnit.xml
+++ b/data_model/device_types/DimmablePlug-InUnit.xml
@@ -1,59 +1,59 @@
-
@@ -76,7 +76,7 @@ Davis, CA 95616, USA
-
+
@@ -142,4 +142,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/DimmerSwitch.xml b/data_model/device_types/DimmerSwitch.xml
index a3bae868a2498b..9922d6fb96dbcf 100644
--- a/data_model/device_types/DimmerSwitch.xml
+++ b/data_model/device_types/DimmerSwitch.xml
@@ -1,59 +1,59 @@
-
@@ -73,7 +73,7 @@ Davis, CA 95616, USA
-
+
@@ -86,4 +86,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/DoorLock.xml b/data_model/device_types/DoorLock.xml
index b322f991c3b6e4..c5eaf911f8f537 100644
--- a/data_model/device_types/DoorLock.xml
+++ b/data_model/device_types/DoorLock.xml
@@ -1,59 +1,59 @@
-
@@ -72,7 +72,7 @@ Davis, CA 95616, USA
-
+
@@ -187,4 +187,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/DoorLockController.xml b/data_model/device_types/DoorLockController.xml
index 413509de632c6e..6e515bc206e04a 100644
--- a/data_model/device_types/DoorLockController.xml
+++ b/data_model/device_types/DoorLockController.xml
@@ -1,59 +1,59 @@
-
@@ -78,7 +78,7 @@ Davis, CA 95616, USA
-
+
@@ -96,4 +96,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/ExtendedColorLight.xml b/data_model/device_types/ExtendedColorLight.xml
index d0ad7936d3629d..839a9c1db7a75b 100644
--- a/data_model/device_types/ExtendedColorLight.xml
+++ b/data_model/device_types/ExtendedColorLight.xml
@@ -1,59 +1,59 @@
-
@@ -76,7 +76,7 @@ Davis, CA 95616, USA
-
+
@@ -167,4 +167,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/HeatingCoolingUnit.xml b/data_model/device_types/HeatingCoolingUnit.xml
index 244ff14b0a15fa..3bcf0b8e2db0d1 100644
--- a/data_model/device_types/HeatingCoolingUnit.xml
+++ b/data_model/device_types/HeatingCoolingUnit.xml
@@ -1,59 +1,59 @@
-
@@ -70,7 +70,7 @@ Davis, CA 95616, USA
-
+
@@ -92,4 +92,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/OnOffLight.xml b/data_model/device_types/OnOffLight.xml
index 1ce39e8545c84a..6b12217ff10d6f 100644
--- a/data_model/device_types/OnOffLight.xml
+++ b/data_model/device_types/OnOffLight.xml
@@ -1,59 +1,59 @@
-
@@ -76,7 +76,7 @@ Davis, CA 95616, USA
-
+
@@ -142,4 +142,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/OnOffLightSwitch.xml b/data_model/device_types/OnOffLightSwitch.xml
index c2c324c8ee5d2a..df64178ade52ad 100644
--- a/data_model/device_types/OnOffLightSwitch.xml
+++ b/data_model/device_types/OnOffLightSwitch.xml
@@ -1,59 +1,59 @@
-
@@ -73,7 +73,7 @@ Davis, CA 95616, USA
-
+
@@ -83,4 +83,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/OnOffPlug-inUnit.xml b/data_model/device_types/OnOffPlug-inUnit.xml
index 11bd17151d5e49..83f1c9d0ec15ec 100644
--- a/data_model/device_types/OnOffPlug-inUnit.xml
+++ b/data_model/device_types/OnOffPlug-inUnit.xml
@@ -1,59 +1,59 @@
-
@@ -76,7 +76,7 @@ Davis, CA 95616, USA
-
+
@@ -142,4 +142,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/OnOffSensor.xml b/data_model/device_types/OnOffSensor.xml
index d2c6553fc1140c..d28f76f6130964 100644
--- a/data_model/device_types/OnOffSensor.xml
+++ b/data_model/device_types/OnOffSensor.xml
@@ -1,59 +1,59 @@
-
@@ -74,7 +74,7 @@ required."/>
-
+
@@ -90,4 +90,4 @@ required."/>
-
\ No newline at end of file
+
diff --git a/data_model/device_types/Pump.xml b/data_model/device_types/Pump.xml
index 6f1b1f39aae53c..298bb43cbb02c6 100644
--- a/data_model/device_types/Pump.xml
+++ b/data_model/device_types/Pump.xml
@@ -1,59 +1,59 @@
-
@@ -70,7 +70,7 @@ Davis, CA 95616, USA
-
+
@@ -107,4 +107,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/PumpController.xml b/data_model/device_types/PumpController.xml
index 1eb302399379fe..223915f4525b40 100644
--- a/data_model/device_types/PumpController.xml
+++ b/data_model/device_types/PumpController.xml
@@ -1,59 +1,59 @@
-
@@ -72,7 +72,7 @@ Davis, CA 95616, USA
-
+
@@ -100,4 +100,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/RoomAirConditioner.xml b/data_model/device_types/RoomAirConditioner.xml
index 86240698da6789..8e6a833406637c 100644
--- a/data_model/device_types/RoomAirConditioner.xml
+++ b/data_model/device_types/RoomAirConditioner.xml
@@ -1,59 +1,59 @@
-
@@ -68,7 +68,7 @@ Davis, CA 95616, USA
-
+
@@ -95,4 +95,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/Thermostat.xml b/data_model/device_types/Thermostat.xml
index 117bf36aa8b025..dac8172278b4ad 100644
--- a/data_model/device_types/Thermostat.xml
+++ b/data_model/device_types/Thermostat.xml
@@ -1,59 +1,59 @@
-
@@ -72,7 +72,7 @@ Davis, CA 95616, USA
-
+
@@ -154,4 +154,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/WindowCovering.xml b/data_model/device_types/WindowCovering.xml
index aecac7e3b24052..1f9e4a3a8ec319 100644
--- a/data_model/device_types/WindowCovering.xml
+++ b/data_model/device_types/WindowCovering.xml
@@ -1,59 +1,59 @@
-
@@ -75,7 +75,7 @@ Davis, CA 95616, USA
-
+
@@ -121,4 +121,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/data_model/device_types/WindowCoveringController.xml b/data_model/device_types/WindowCoveringController.xml
index f61f46f5132b4b..8e31eed548e90e 100644
--- a/data_model/device_types/WindowCoveringController.xml
+++ b/data_model/device_types/WindowCoveringController.xml
@@ -1,59 +1,59 @@
-
@@ -78,7 +78,7 @@ Davis, CA 95616, USA
-
+
@@ -98,4 +98,4 @@ Davis, CA 95616, USA
-
\ No newline at end of file
+
diff --git a/docs/clusters.md b/docs/clusters.md
index 1d0453033db586..70f657fd8779ad 100644
--- a/docs/clusters.md
+++ b/docs/clusters.md
@@ -14,7 +14,6 @@ Generally regenerate using one of:
| ---------- | ---------- | ------------------------------------------------------- |
| 3 | 0x03 | Identify |
| 4 | 0x04 | Groups |
-| 5 | 0x05 | Scenes |
| 6 | 0x06 | OnOff |
| 7 | 0x07 | OnOffSwitchConfiguration |
| 8 | 0x08 | LevelControl |
@@ -73,6 +72,7 @@ Generally regenerate using one of:
| 95 | 0x5F | MicrowaveOvenControl |
| 96 | 0x60 | OperationalState |
| 97 | 0x61 | RvcOperationalState |
+| 98 | 0x62 | ScenesManagement |
| 113 | 0x71 | HepaFilterMonitoring |
| 114 | 0x72 | ActivatedCarbonFilterMonitoring |
| 128 | 0x80 | BooleanStateConfiguration |
diff --git a/docs/guides/python_chip_controller_building.md b/docs/guides/python_chip_controller_building.md
index 7edbede54057ae..c940f2c92575e7 100644
--- a/docs/guides/python_chip_controller_building.md
+++ b/docs/guides/python_chip_controller_building.md
@@ -539,7 +539,7 @@ OnOff
OperationalCredentials
PumpConfigurationAndControl
RelativeHumidityMeasurement
-Scenes
+ScenesManagement
SoftwareDiagnostics
Switch
Channel
diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
index bf17de9820366e..99eb91c4e43fba 100644
--- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
+++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
@@ -128,199 +128,6 @@ cluster Groups = 4 {
fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
}
-/** Attributes and commands for scene configuration and manipulation. */
-provisional cluster Scenes = 5 {
- revision 5;
-
- bitmap CopyModeBitmap : bitmap8 {
- kCopyAllScenes = 0x1;
- }
-
- bitmap Feature : bitmap32 {
- kSceneNames = 0x1;
- kExplicit = 0x2;
- kTableSize = 0x4;
- kFabricScenes = 0x8;
- }
-
- bitmap NameSupportBitmap : bitmap8 {
- kSceneNames = 0x80;
- }
-
- struct AttributeValuePair {
- attrib_id attributeID = 0;
- int32u attributeValue = 1;
- }
-
- struct ExtensionFieldSet {
- cluster_id clusterID = 0;
- AttributeValuePair attributeValueList[] = 1;
- }
-
- fabric_scoped struct SceneInfoStruct {
- int8u sceneCount = 0;
- fabric_sensitive int8u currentScene = 1;
- fabric_sensitive group_id currentGroup = 2;
- fabric_sensitive boolean sceneValid = 3;
- int8u remainingCapacity = 4;
- fabric_idx fabricIndex = 254;
- }
-
- readonly attribute optional int8u sceneCount = 0;
- readonly attribute optional int8u currentScene = 1;
- readonly attribute optional group_id currentGroup = 2;
- readonly attribute optional boolean sceneValid = 3;
- readonly attribute NameSupportBitmap nameSupport = 4;
- readonly attribute optional nullable node_id lastConfiguredBy = 5;
- readonly attribute int16u sceneTableSize = 6;
- readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
- readonly attribute command_id generatedCommandList[] = 65528;
- readonly attribute command_id acceptedCommandList[] = 65529;
- readonly attribute event_id eventList[] = 65530;
- readonly attribute attrib_id attributeList[] = 65531;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct AddSceneResponse = 0 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct ViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct ViewSceneResponse = 1 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct RemoveSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct RemoveSceneResponse = 2 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RemoveAllScenesRequest {
- group_id groupID = 0;
- }
-
- response struct RemoveAllScenesResponse = 3 {
- status status = 0;
- group_id groupID = 1;
- }
-
- request struct StoreSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct StoreSceneResponse = 4 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RecallSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- optional nullable int16u transitionTime = 2;
- }
-
- request struct GetSceneMembershipRequest {
- group_id groupID = 0;
- }
-
- response struct GetSceneMembershipResponse = 6 {
- status status = 0;
- nullable int8u capacity = 1;
- group_id groupID = 2;
- optional int8u sceneList[] = 3;
- }
-
- request struct EnhancedAddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct EnhancedAddSceneResponse = 64 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct EnhancedViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct EnhancedViewSceneResponse = 65 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct CopySceneRequest {
- CopyModeBitmap mode = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- group_id groupIdentifierTo = 3;
- int8u sceneIdentifierTo = 4;
- }
-
- response struct CopySceneResponse = 66 {
- status status = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- }
-
- /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
- fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
- /** Retrieves the requested scene entry from its Scene table. */
- fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
- /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
- /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
- /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
- fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
- /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
- fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
- /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
- fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
- /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
- fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
- /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
- fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
- /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
-}
-
/** Attributes and commands for switching devices between 'On' and 'Off' states. */
cluster OnOff = 6 {
revision 6;
@@ -3615,6 +3422,199 @@ cluster RvcOperationalState = 97 {
command Resume(): OperationalCommandResponse = 3;
}
+/** Attributes and commands for scene configuration and manipulation. */
+provisional cluster ScenesManagement = 98 {
+ revision 5;
+
+ bitmap CopyModeBitmap : bitmap8 {
+ kCopyAllScenes = 0x1;
+ }
+
+ bitmap Feature : bitmap32 {
+ kSceneNames = 0x1;
+ kExplicit = 0x2;
+ kTableSize = 0x4;
+ kFabricScenes = 0x8;
+ }
+
+ bitmap NameSupportBitmap : bitmap8 {
+ kSceneNames = 0x80;
+ }
+
+ struct AttributeValuePair {
+ attrib_id attributeID = 0;
+ int32u attributeValue = 1;
+ }
+
+ struct ExtensionFieldSet {
+ cluster_id clusterID = 0;
+ AttributeValuePair attributeValueList[] = 1;
+ }
+
+ fabric_scoped struct SceneInfoStruct {
+ int8u sceneCount = 0;
+ fabric_sensitive int8u currentScene = 1;
+ fabric_sensitive group_id currentGroup = 2;
+ fabric_sensitive boolean sceneValid = 3;
+ int8u remainingCapacity = 4;
+ fabric_idx fabricIndex = 254;
+ }
+
+ readonly attribute optional int8u sceneCount = 0;
+ readonly attribute optional int8u currentScene = 1;
+ readonly attribute optional group_id currentGroup = 2;
+ readonly attribute optional boolean sceneValid = 3;
+ readonly attribute NameSupportBitmap nameSupport = 4;
+ readonly attribute optional nullable node_id lastConfiguredBy = 5;
+ readonly attribute int16u sceneTableSize = 6;
+ readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
+ readonly attribute command_id generatedCommandList[] = 65528;
+ readonly attribute command_id acceptedCommandList[] = 65529;
+ readonly attribute event_id eventList[] = 65530;
+ readonly attribute attrib_id attributeList[] = 65531;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct AddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct AddSceneResponse = 0 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct ViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct ViewSceneResponse = 1 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct RemoveSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct RemoveSceneResponse = 2 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RemoveAllScenesRequest {
+ group_id groupID = 0;
+ }
+
+ response struct RemoveAllScenesResponse = 3 {
+ status status = 0;
+ group_id groupID = 1;
+ }
+
+ request struct StoreSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct StoreSceneResponse = 4 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RecallSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ optional nullable int16u transitionTime = 2;
+ }
+
+ request struct GetSceneMembershipRequest {
+ group_id groupID = 0;
+ }
+
+ response struct GetSceneMembershipResponse = 6 {
+ status status = 0;
+ nullable int8u capacity = 1;
+ group_id groupID = 2;
+ optional int8u sceneList[] = 3;
+ }
+
+ request struct EnhancedAddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct EnhancedAddSceneResponse = 64 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct EnhancedViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct EnhancedViewSceneResponse = 65 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct CopySceneRequest {
+ CopyModeBitmap mode = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ group_id groupIdentifierTo = 3;
+ int8u sceneIdentifierTo = 4;
+ }
+
+ response struct CopySceneResponse = 66 {
+ status status = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ }
+
+ /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
+ fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
+ /** Retrieves the requested scene entry from its Scene table. */
+ fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
+ /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
+ /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
+ /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
+ fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
+ /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
+ fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
+ /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
+ fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
+ /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
+ fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
+ /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
+ fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
+ /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
+ fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
+}
+
/** Attributes and commands for monitoring HEPA filters in a device */
cluster HepaFilterMonitoring = 113 {
revision 1; // NOTE: Default/not specifically set
@@ -7213,39 +7213,6 @@ endpoint 1 {
handle command AddGroupIfIdentifying;
}
- server cluster Scenes {
- ram attribute nameSupport default = 0x80;
- ram attribute lastConfiguredBy;
- ram attribute sceneTableSize default = 16;
- callback attribute fabricSceneInfo;
- callback attribute generatedCommandList;
- callback attribute acceptedCommandList;
- callback attribute eventList;
- callback attribute attributeList;
- ram attribute featureMap default = 15;
- ram attribute clusterRevision default = 5;
-
- handle command AddScene;
- handle command AddSceneResponse;
- handle command ViewScene;
- handle command ViewSceneResponse;
- handle command RemoveScene;
- handle command RemoveSceneResponse;
- handle command RemoveAllScenes;
- handle command RemoveAllScenesResponse;
- handle command StoreScene;
- handle command StoreSceneResponse;
- handle command RecallScene;
- handle command GetSceneMembership;
- handle command GetSceneMembershipResponse;
- handle command EnhancedAddScene;
- handle command EnhancedAddSceneResponse;
- handle command EnhancedViewScene;
- handle command EnhancedViewSceneResponse;
- handle command CopyScene;
- handle command CopySceneResponse;
- }
-
server cluster OnOff {
persist attribute onOff default = 0x00;
ram attribute globalSceneControl default = 0x01;
@@ -7639,6 +7606,39 @@ endpoint 1 {
handle command OperationalCommandResponse;
}
+ server cluster ScenesManagement {
+ ram attribute nameSupport default = 0x80;
+ ram attribute lastConfiguredBy;
+ ram attribute sceneTableSize default = 16;
+ callback attribute fabricSceneInfo;
+ callback attribute generatedCommandList;
+ callback attribute acceptedCommandList;
+ callback attribute eventList;
+ callback attribute attributeList;
+ ram attribute featureMap default = 15;
+ ram attribute clusterRevision default = 5;
+
+ handle command AddScene;
+ handle command AddSceneResponse;
+ handle command ViewScene;
+ handle command ViewSceneResponse;
+ handle command RemoveScene;
+ handle command RemoveSceneResponse;
+ handle command RemoveAllScenes;
+ handle command RemoveAllScenesResponse;
+ handle command StoreScene;
+ handle command StoreSceneResponse;
+ handle command RecallScene;
+ handle command GetSceneMembership;
+ handle command GetSceneMembershipResponse;
+ handle command EnhancedAddScene;
+ handle command EnhancedAddSceneResponse;
+ handle command EnhancedViewScene;
+ handle command EnhancedViewSceneResponse;
+ handle command CopyScene;
+ handle command CopySceneResponse;
+ }
+
server cluster HepaFilterMonitoring {
callback attribute condition;
callback attribute degradationDirection;
@@ -8455,39 +8455,6 @@ endpoint 2 {
handle command AddGroupIfIdentifying;
}
- server cluster Scenes {
- ram attribute nameSupport default = 0x80;
- ram attribute lastConfiguredBy;
- ram attribute sceneTableSize default = 16;
- callback attribute fabricSceneInfo;
- callback attribute generatedCommandList;
- callback attribute acceptedCommandList;
- callback attribute eventList;
- callback attribute attributeList;
- ram attribute featureMap default = 15;
- ram attribute clusterRevision default = 5;
-
- handle command AddScene;
- handle command AddSceneResponse;
- handle command ViewScene;
- handle command ViewSceneResponse;
- handle command RemoveScene;
- handle command RemoveSceneResponse;
- handle command RemoveAllScenes;
- handle command RemoveAllScenesResponse;
- handle command StoreScene;
- handle command StoreSceneResponse;
- handle command RecallScene;
- handle command GetSceneMembership;
- handle command GetSceneMembershipResponse;
- handle command EnhancedAddScene;
- handle command EnhancedAddSceneResponse;
- handle command EnhancedViewScene;
- handle command EnhancedViewSceneResponse;
- handle command CopyScene;
- handle command CopySceneResponse;
- }
-
server cluster OnOff {
ram attribute onOff default = 0x00;
ram attribute globalSceneControl default = 1;
@@ -8539,6 +8506,39 @@ endpoint 2 {
ram attribute clusterRevision default = 2;
}
+ server cluster ScenesManagement {
+ ram attribute nameSupport default = 0x80;
+ ram attribute lastConfiguredBy;
+ ram attribute sceneTableSize default = 16;
+ callback attribute fabricSceneInfo;
+ callback attribute generatedCommandList;
+ callback attribute acceptedCommandList;
+ callback attribute eventList;
+ callback attribute attributeList;
+ ram attribute featureMap default = 15;
+ ram attribute clusterRevision default = 5;
+
+ handle command AddScene;
+ handle command AddSceneResponse;
+ handle command ViewScene;
+ handle command ViewSceneResponse;
+ handle command RemoveScene;
+ handle command RemoveSceneResponse;
+ handle command RemoveAllScenes;
+ handle command RemoveAllScenesResponse;
+ handle command StoreScene;
+ handle command StoreSceneResponse;
+ handle command RecallScene;
+ handle command GetSceneMembership;
+ handle command GetSceneMembershipResponse;
+ handle command EnhancedAddScene;
+ handle command EnhancedAddSceneResponse;
+ handle command EnhancedViewScene;
+ handle command EnhancedViewSceneResponse;
+ handle command CopyScene;
+ handle command CopySceneResponse;
+ }
+
server cluster OccupancySensing {
ram attribute occupancy;
ram attribute occupancySensorType;
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 589fccf290f084..5948b880a8d5c1 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
@@ -6464,8 +6464,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "server",
@@ -22086,8 +22086,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "server",
diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
index d97c29e2da342b..831048dc7d014f 100644
--- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
+++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
@@ -128,199 +128,6 @@ cluster Groups = 4 {
fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
}
-/** Attributes and commands for scene configuration and manipulation. */
-provisional cluster Scenes = 5 {
- revision 5;
-
- bitmap CopyModeBitmap : bitmap8 {
- kCopyAllScenes = 0x1;
- }
-
- bitmap Feature : bitmap32 {
- kSceneNames = 0x1;
- kExplicit = 0x2;
- kTableSize = 0x4;
- kFabricScenes = 0x8;
- }
-
- bitmap NameSupportBitmap : bitmap8 {
- kSceneNames = 0x80;
- }
-
- struct AttributeValuePair {
- attrib_id attributeID = 0;
- int32u attributeValue = 1;
- }
-
- struct ExtensionFieldSet {
- cluster_id clusterID = 0;
- AttributeValuePair attributeValueList[] = 1;
- }
-
- fabric_scoped struct SceneInfoStruct {
- int8u sceneCount = 0;
- fabric_sensitive int8u currentScene = 1;
- fabric_sensitive group_id currentGroup = 2;
- fabric_sensitive boolean sceneValid = 3;
- int8u remainingCapacity = 4;
- fabric_idx fabricIndex = 254;
- }
-
- readonly attribute optional int8u sceneCount = 0;
- readonly attribute optional int8u currentScene = 1;
- readonly attribute optional group_id currentGroup = 2;
- readonly attribute optional boolean sceneValid = 3;
- readonly attribute NameSupportBitmap nameSupport = 4;
- readonly attribute optional nullable node_id lastConfiguredBy = 5;
- readonly attribute int16u sceneTableSize = 6;
- readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
- readonly attribute command_id generatedCommandList[] = 65528;
- readonly attribute command_id acceptedCommandList[] = 65529;
- readonly attribute event_id eventList[] = 65530;
- readonly attribute attrib_id attributeList[] = 65531;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct AddSceneResponse = 0 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct ViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct ViewSceneResponse = 1 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct RemoveSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct RemoveSceneResponse = 2 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RemoveAllScenesRequest {
- group_id groupID = 0;
- }
-
- response struct RemoveAllScenesResponse = 3 {
- status status = 0;
- group_id groupID = 1;
- }
-
- request struct StoreSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct StoreSceneResponse = 4 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RecallSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- optional nullable int16u transitionTime = 2;
- }
-
- request struct GetSceneMembershipRequest {
- group_id groupID = 0;
- }
-
- response struct GetSceneMembershipResponse = 6 {
- status status = 0;
- nullable int8u capacity = 1;
- group_id groupID = 2;
- optional int8u sceneList[] = 3;
- }
-
- request struct EnhancedAddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct EnhancedAddSceneResponse = 64 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct EnhancedViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct EnhancedViewSceneResponse = 65 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct CopySceneRequest {
- CopyModeBitmap mode = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- group_id groupIdentifierTo = 3;
- int8u sceneIdentifierTo = 4;
- }
-
- response struct CopySceneResponse = 66 {
- status status = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- }
-
- /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
- fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
- /** Retrieves the requested scene entry from its Scene table. */
- fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
- /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
- /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
- /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
- fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
- /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
- fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
- /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
- fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
- /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
- fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
- /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
- fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
- /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
-}
-
/** Attributes and commands for switching devices between 'On' and 'Off' states. */
cluster OnOff = 6 {
revision 6;
@@ -2589,6 +2396,199 @@ cluster TemperatureControl = 86 {
command SetTemperature(SetTemperatureRequest): DefaultSuccess = 0;
}
+/** Attributes and commands for scene configuration and manipulation. */
+provisional cluster ScenesManagement = 98 {
+ revision 5;
+
+ bitmap CopyModeBitmap : bitmap8 {
+ kCopyAllScenes = 0x1;
+ }
+
+ bitmap Feature : bitmap32 {
+ kSceneNames = 0x1;
+ kExplicit = 0x2;
+ kTableSize = 0x4;
+ kFabricScenes = 0x8;
+ }
+
+ bitmap NameSupportBitmap : bitmap8 {
+ kSceneNames = 0x80;
+ }
+
+ struct AttributeValuePair {
+ attrib_id attributeID = 0;
+ int32u attributeValue = 1;
+ }
+
+ struct ExtensionFieldSet {
+ cluster_id clusterID = 0;
+ AttributeValuePair attributeValueList[] = 1;
+ }
+
+ fabric_scoped struct SceneInfoStruct {
+ int8u sceneCount = 0;
+ fabric_sensitive int8u currentScene = 1;
+ fabric_sensitive group_id currentGroup = 2;
+ fabric_sensitive boolean sceneValid = 3;
+ int8u remainingCapacity = 4;
+ fabric_idx fabricIndex = 254;
+ }
+
+ readonly attribute optional int8u sceneCount = 0;
+ readonly attribute optional int8u currentScene = 1;
+ readonly attribute optional group_id currentGroup = 2;
+ readonly attribute optional boolean sceneValid = 3;
+ readonly attribute NameSupportBitmap nameSupport = 4;
+ readonly attribute optional nullable node_id lastConfiguredBy = 5;
+ readonly attribute int16u sceneTableSize = 6;
+ readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
+ readonly attribute command_id generatedCommandList[] = 65528;
+ readonly attribute command_id acceptedCommandList[] = 65529;
+ readonly attribute event_id eventList[] = 65530;
+ readonly attribute attrib_id attributeList[] = 65531;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct AddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct AddSceneResponse = 0 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct ViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct ViewSceneResponse = 1 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct RemoveSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct RemoveSceneResponse = 2 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RemoveAllScenesRequest {
+ group_id groupID = 0;
+ }
+
+ response struct RemoveAllScenesResponse = 3 {
+ status status = 0;
+ group_id groupID = 1;
+ }
+
+ request struct StoreSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct StoreSceneResponse = 4 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RecallSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ optional nullable int16u transitionTime = 2;
+ }
+
+ request struct GetSceneMembershipRequest {
+ group_id groupID = 0;
+ }
+
+ response struct GetSceneMembershipResponse = 6 {
+ status status = 0;
+ nullable int8u capacity = 1;
+ group_id groupID = 2;
+ optional int8u sceneList[] = 3;
+ }
+
+ request struct EnhancedAddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct EnhancedAddSceneResponse = 64 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct EnhancedViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct EnhancedViewSceneResponse = 65 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct CopySceneRequest {
+ CopyModeBitmap mode = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ group_id groupIdentifierTo = 3;
+ int8u sceneIdentifierTo = 4;
+ }
+
+ response struct CopySceneResponse = 66 {
+ status status = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ }
+
+ /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
+ fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
+ /** Retrieves the requested scene entry from its Scene table. */
+ fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
+ /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
+ /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
+ /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
+ fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
+ /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
+ fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
+ /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
+ fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
+ /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
+ fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
+ /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
+ fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
+ /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
+ fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
+}
+
/** An interface to a generic way to secure a door */
cluster DoorLock = 257 {
revision 7;
@@ -6278,33 +6278,6 @@ endpoint 1 {
handle command AddGroupIfIdentifying;
}
- server cluster Scenes {
- ram attribute nameSupport default = 0x80;
- ram attribute lastConfiguredBy;
- ram attribute sceneTableSize default = 16;
- callback attribute fabricSceneInfo;
- callback attribute generatedCommandList;
- callback attribute acceptedCommandList;
- callback attribute eventList;
- callback attribute attributeList;
- ram attribute featureMap default = 15;
- ram attribute clusterRevision default = 5;
-
- handle command AddScene;
- handle command AddSceneResponse;
- handle command ViewScene;
- handle command ViewSceneResponse;
- handle command RemoveScene;
- handle command RemoveSceneResponse;
- handle command RemoveAllScenes;
- handle command RemoveAllScenesResponse;
- handle command StoreScene;
- handle command StoreSceneResponse;
- handle command RecallScene;
- handle command GetSceneMembership;
- handle command GetSceneMembershipResponse;
- }
-
server cluster OnOff {
persist attribute onOff default = 0x00;
ram attribute globalSceneControl default = 0x01;
@@ -6435,6 +6408,33 @@ endpoint 1 {
handle command SetTemperature;
}
+ server cluster ScenesManagement {
+ ram attribute nameSupport default = 0x80;
+ ram attribute lastConfiguredBy;
+ ram attribute sceneTableSize default = 16;
+ callback attribute fabricSceneInfo;
+ callback attribute generatedCommandList;
+ callback attribute acceptedCommandList;
+ callback attribute eventList;
+ callback attribute attributeList;
+ ram attribute featureMap default = 15;
+ ram attribute clusterRevision default = 5;
+
+ handle command AddScene;
+ handle command AddSceneResponse;
+ handle command ViewScene;
+ handle command ViewSceneResponse;
+ handle command RemoveScene;
+ handle command RemoveSceneResponse;
+ handle command RemoveAllScenes;
+ handle command RemoveAllScenesResponse;
+ handle command StoreScene;
+ handle command StoreSceneResponse;
+ handle command RecallScene;
+ handle command GetSceneMembership;
+ handle command GetSceneMembershipResponse;
+ }
+
server cluster DoorLock {
emits event DoorLockAlarm;
emits event LockOperation;
@@ -6838,32 +6838,6 @@ endpoint 2 {
handle command AddGroupIfIdentifying;
}
- server cluster Scenes {
- ram attribute nameSupport default = 0x80;
- ram attribute sceneTableSize default = 16;
- callback attribute fabricSceneInfo;
- callback attribute generatedCommandList;
- callback attribute acceptedCommandList;
- callback attribute eventList;
- callback attribute attributeList;
- ram attribute featureMap default = 15;
- ram attribute clusterRevision default = 5;
-
- handle command AddScene;
- handle command AddSceneResponse;
- handle command ViewScene;
- handle command ViewSceneResponse;
- handle command RemoveScene;
- handle command RemoveSceneResponse;
- handle command RemoveAllScenes;
- handle command RemoveAllScenesResponse;
- handle command StoreScene;
- handle command StoreSceneResponse;
- handle command RecallScene;
- handle command GetSceneMembership;
- handle command GetSceneMembershipResponse;
- }
-
server cluster OnOff {
ram attribute onOff default = 0x00;
ram attribute globalSceneControl default = 1;
@@ -6911,6 +6885,32 @@ endpoint 2 {
ram attribute clusterRevision default = 2;
}
+ server cluster ScenesManagement {
+ ram attribute nameSupport default = 0x80;
+ ram attribute sceneTableSize default = 16;
+ callback attribute fabricSceneInfo;
+ callback attribute generatedCommandList;
+ callback attribute acceptedCommandList;
+ callback attribute eventList;
+ callback attribute attributeList;
+ ram attribute featureMap default = 15;
+ ram attribute clusterRevision default = 5;
+
+ handle command AddScene;
+ handle command AddSceneResponse;
+ handle command ViewScene;
+ handle command ViewSceneResponse;
+ handle command RemoveScene;
+ handle command RemoveSceneResponse;
+ handle command RemoveAllScenes;
+ handle command RemoveAllScenesResponse;
+ handle command StoreScene;
+ handle command StoreSceneResponse;
+ handle command RecallScene;
+ handle command GetSceneMembership;
+ handle command GetSceneMembershipResponse;
+ }
+
server cluster OccupancySensing {
ram attribute occupancy;
ram attribute occupancySensorType;
diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap
index 2ca83ff224c938..395e0c9f302e71 100644
--- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap
+++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap
@@ -4551,8 +4551,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "server",
@@ -10787,8 +10787,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "server",
diff --git a/examples/chef/devices/template.zap b/examples/chef/devices/template.zap
index c53936a568b663..7987c79179e375 100644
--- a/examples/chef/devices/template.zap
+++ b/examples/chef/devices/template.zap
@@ -2276,8 +2276,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "server",
diff --git a/examples/light-switch-app/light-switch-common/light-switch-app.matter b/examples/light-switch-app/light-switch-common/light-switch-app.matter
index 19c9f5231f5e22..6aed1fec4b48ad 100644
--- a/examples/light-switch-app/light-switch-common/light-switch-app.matter
+++ b/examples/light-switch-app/light-switch-common/light-switch-app.matter
@@ -178,199 +178,6 @@ cluster Groups = 4 {
fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
}
-/** Attributes and commands for scene configuration and manipulation. */
-provisional cluster Scenes = 5 {
- revision 5;
-
- bitmap CopyModeBitmap : bitmap8 {
- kCopyAllScenes = 0x1;
- }
-
- bitmap Feature : bitmap32 {
- kSceneNames = 0x1;
- kExplicit = 0x2;
- kTableSize = 0x4;
- kFabricScenes = 0x8;
- }
-
- bitmap NameSupportBitmap : bitmap8 {
- kSceneNames = 0x80;
- }
-
- struct AttributeValuePair {
- attrib_id attributeID = 0;
- int32u attributeValue = 1;
- }
-
- struct ExtensionFieldSet {
- cluster_id clusterID = 0;
- AttributeValuePair attributeValueList[] = 1;
- }
-
- fabric_scoped struct SceneInfoStruct {
- int8u sceneCount = 0;
- fabric_sensitive int8u currentScene = 1;
- fabric_sensitive group_id currentGroup = 2;
- fabric_sensitive boolean sceneValid = 3;
- int8u remainingCapacity = 4;
- fabric_idx fabricIndex = 254;
- }
-
- readonly attribute optional int8u sceneCount = 0;
- readonly attribute optional int8u currentScene = 1;
- readonly attribute optional group_id currentGroup = 2;
- readonly attribute optional boolean sceneValid = 3;
- readonly attribute NameSupportBitmap nameSupport = 4;
- readonly attribute optional nullable node_id lastConfiguredBy = 5;
- readonly attribute int16u sceneTableSize = 6;
- readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
- readonly attribute command_id generatedCommandList[] = 65528;
- readonly attribute command_id acceptedCommandList[] = 65529;
- readonly attribute event_id eventList[] = 65530;
- readonly attribute attrib_id attributeList[] = 65531;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct AddSceneResponse = 0 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct ViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct ViewSceneResponse = 1 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct RemoveSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct RemoveSceneResponse = 2 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RemoveAllScenesRequest {
- group_id groupID = 0;
- }
-
- response struct RemoveAllScenesResponse = 3 {
- status status = 0;
- group_id groupID = 1;
- }
-
- request struct StoreSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct StoreSceneResponse = 4 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RecallSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- optional nullable int16u transitionTime = 2;
- }
-
- request struct GetSceneMembershipRequest {
- group_id groupID = 0;
- }
-
- response struct GetSceneMembershipResponse = 6 {
- status status = 0;
- nullable int8u capacity = 1;
- group_id groupID = 2;
- optional int8u sceneList[] = 3;
- }
-
- request struct EnhancedAddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct EnhancedAddSceneResponse = 64 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct EnhancedViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct EnhancedViewSceneResponse = 65 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct CopySceneRequest {
- CopyModeBitmap mode = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- group_id groupIdentifierTo = 3;
- int8u sceneIdentifierTo = 4;
- }
-
- response struct CopySceneResponse = 66 {
- status status = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- }
-
- /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
- fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
- /** Retrieves the requested scene entry from its Scene table. */
- fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
- /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
- /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
- /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
- fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
- /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
- fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
- /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
- fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
- /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
- fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
- /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
- fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
- /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
-}
-
/** Attributes and commands for switching devices between 'On' and 'Off' states. */
cluster OnOff = 6 {
revision 6;
@@ -2199,6 +2006,199 @@ cluster IcdManagement = 70 {
command access(invoke: manage) StayActiveRequest(): StayActiveResponse = 3;
}
+/** Attributes and commands for scene configuration and manipulation. */
+provisional cluster ScenesManagement = 98 {
+ revision 5;
+
+ bitmap CopyModeBitmap : bitmap8 {
+ kCopyAllScenes = 0x1;
+ }
+
+ bitmap Feature : bitmap32 {
+ kSceneNames = 0x1;
+ kExplicit = 0x2;
+ kTableSize = 0x4;
+ kFabricScenes = 0x8;
+ }
+
+ bitmap NameSupportBitmap : bitmap8 {
+ kSceneNames = 0x80;
+ }
+
+ struct AttributeValuePair {
+ attrib_id attributeID = 0;
+ int32u attributeValue = 1;
+ }
+
+ struct ExtensionFieldSet {
+ cluster_id clusterID = 0;
+ AttributeValuePair attributeValueList[] = 1;
+ }
+
+ fabric_scoped struct SceneInfoStruct {
+ int8u sceneCount = 0;
+ fabric_sensitive int8u currentScene = 1;
+ fabric_sensitive group_id currentGroup = 2;
+ fabric_sensitive boolean sceneValid = 3;
+ int8u remainingCapacity = 4;
+ fabric_idx fabricIndex = 254;
+ }
+
+ readonly attribute optional int8u sceneCount = 0;
+ readonly attribute optional int8u currentScene = 1;
+ readonly attribute optional group_id currentGroup = 2;
+ readonly attribute optional boolean sceneValid = 3;
+ readonly attribute NameSupportBitmap nameSupport = 4;
+ readonly attribute optional nullable node_id lastConfiguredBy = 5;
+ readonly attribute int16u sceneTableSize = 6;
+ readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
+ readonly attribute command_id generatedCommandList[] = 65528;
+ readonly attribute command_id acceptedCommandList[] = 65529;
+ readonly attribute event_id eventList[] = 65530;
+ readonly attribute attrib_id attributeList[] = 65531;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct AddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct AddSceneResponse = 0 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct ViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct ViewSceneResponse = 1 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct RemoveSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct RemoveSceneResponse = 2 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RemoveAllScenesRequest {
+ group_id groupID = 0;
+ }
+
+ response struct RemoveAllScenesResponse = 3 {
+ status status = 0;
+ group_id groupID = 1;
+ }
+
+ request struct StoreSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct StoreSceneResponse = 4 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RecallSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ optional nullable int16u transitionTime = 2;
+ }
+
+ request struct GetSceneMembershipRequest {
+ group_id groupID = 0;
+ }
+
+ response struct GetSceneMembershipResponse = 6 {
+ status status = 0;
+ nullable int8u capacity = 1;
+ group_id groupID = 2;
+ optional int8u sceneList[] = 3;
+ }
+
+ request struct EnhancedAddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct EnhancedAddSceneResponse = 64 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct EnhancedViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct EnhancedViewSceneResponse = 65 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct CopySceneRequest {
+ CopyModeBitmap mode = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ group_id groupIdentifierTo = 3;
+ int8u sceneIdentifierTo = 4;
+ }
+
+ response struct CopySceneResponse = 66 {
+ status status = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ }
+
+ /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
+ fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
+ /** Retrieves the requested scene entry from its Scene table. */
+ fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
+ /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
+ /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
+ /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
+ fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
+ /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
+ fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
+ /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
+ fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
+ /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
+ fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
+ /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
+ fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
+ /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
+ fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
+}
+
/** Attributes and commands for controlling the color properties of a color-capable light. */
cluster ColorControl = 768 {
revision 6;
@@ -2904,8 +2904,8 @@ endpoint 1 {
device type ma_onofflightswitch = 259, version 1;
binding cluster Identify;
- binding cluster Scenes;
binding cluster OnOff;
+ binding cluster ScenesManagement;
binding cluster ColorControl;
server cluster Identify {
diff --git a/examples/light-switch-app/light-switch-common/light-switch-app.zap b/examples/light-switch-app/light-switch-common/light-switch-app.zap
index 354ba583cf0b41..e652272b3b3664 100644
--- a/examples/light-switch-app/light-switch-common/light-switch-app.zap
+++ b/examples/light-switch-app/light-switch-common/light-switch-app.zap
@@ -4881,8 +4881,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "client",
diff --git a/examples/lighting-app/lighting-common/lighting-app.matter b/examples/lighting-app/lighting-common/lighting-app.matter
index 1dbdd0a6b54450..6d92c5e339275f 100644
--- a/examples/lighting-app/lighting-common/lighting-app.matter
+++ b/examples/lighting-app/lighting-common/lighting-app.matter
@@ -128,199 +128,6 @@ cluster Groups = 4 {
fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
}
-/** Attributes and commands for scene configuration and manipulation. */
-provisional cluster Scenes = 5 {
- revision 5;
-
- bitmap CopyModeBitmap : bitmap8 {
- kCopyAllScenes = 0x1;
- }
-
- bitmap Feature : bitmap32 {
- kSceneNames = 0x1;
- kExplicit = 0x2;
- kTableSize = 0x4;
- kFabricScenes = 0x8;
- }
-
- bitmap NameSupportBitmap : bitmap8 {
- kSceneNames = 0x80;
- }
-
- struct AttributeValuePair {
- attrib_id attributeID = 0;
- int32u attributeValue = 1;
- }
-
- struct ExtensionFieldSet {
- cluster_id clusterID = 0;
- AttributeValuePair attributeValueList[] = 1;
- }
-
- fabric_scoped struct SceneInfoStruct {
- int8u sceneCount = 0;
- fabric_sensitive int8u currentScene = 1;
- fabric_sensitive group_id currentGroup = 2;
- fabric_sensitive boolean sceneValid = 3;
- int8u remainingCapacity = 4;
- fabric_idx fabricIndex = 254;
- }
-
- readonly attribute optional int8u sceneCount = 0;
- readonly attribute optional int8u currentScene = 1;
- readonly attribute optional group_id currentGroup = 2;
- readonly attribute optional boolean sceneValid = 3;
- readonly attribute NameSupportBitmap nameSupport = 4;
- readonly attribute optional nullable node_id lastConfiguredBy = 5;
- readonly attribute int16u sceneTableSize = 6;
- readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
- readonly attribute command_id generatedCommandList[] = 65528;
- readonly attribute command_id acceptedCommandList[] = 65529;
- readonly attribute event_id eventList[] = 65530;
- readonly attribute attrib_id attributeList[] = 65531;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct AddSceneResponse = 0 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct ViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct ViewSceneResponse = 1 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct RemoveSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct RemoveSceneResponse = 2 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RemoveAllScenesRequest {
- group_id groupID = 0;
- }
-
- response struct RemoveAllScenesResponse = 3 {
- status status = 0;
- group_id groupID = 1;
- }
-
- request struct StoreSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct StoreSceneResponse = 4 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RecallSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- optional nullable int16u transitionTime = 2;
- }
-
- request struct GetSceneMembershipRequest {
- group_id groupID = 0;
- }
-
- response struct GetSceneMembershipResponse = 6 {
- status status = 0;
- nullable int8u capacity = 1;
- group_id groupID = 2;
- optional int8u sceneList[] = 3;
- }
-
- request struct EnhancedAddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct EnhancedAddSceneResponse = 64 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct EnhancedViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct EnhancedViewSceneResponse = 65 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct CopySceneRequest {
- CopyModeBitmap mode = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- group_id groupIdentifierTo = 3;
- int8u sceneIdentifierTo = 4;
- }
-
- response struct CopySceneResponse = 66 {
- status status = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- }
-
- /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
- fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
- /** Retrieves the requested scene entry from its Scene table. */
- fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
- /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
- /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
- /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
- fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
- /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
- fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
- /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
- fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
- /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
- fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
- /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
- fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
- /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
-}
-
/** Attributes and commands for switching devices between 'On' and 'Off' states. */
cluster OnOff = 6 {
revision 6;
@@ -2017,6 +1824,199 @@ cluster UserLabel = 65 {
readonly attribute int16u clusterRevision = 65533;
}
+/** Attributes and commands for scene configuration and manipulation. */
+provisional cluster ScenesManagement = 98 {
+ revision 5;
+
+ bitmap CopyModeBitmap : bitmap8 {
+ kCopyAllScenes = 0x1;
+ }
+
+ bitmap Feature : bitmap32 {
+ kSceneNames = 0x1;
+ kExplicit = 0x2;
+ kTableSize = 0x4;
+ kFabricScenes = 0x8;
+ }
+
+ bitmap NameSupportBitmap : bitmap8 {
+ kSceneNames = 0x80;
+ }
+
+ struct AttributeValuePair {
+ attrib_id attributeID = 0;
+ int32u attributeValue = 1;
+ }
+
+ struct ExtensionFieldSet {
+ cluster_id clusterID = 0;
+ AttributeValuePair attributeValueList[] = 1;
+ }
+
+ fabric_scoped struct SceneInfoStruct {
+ int8u sceneCount = 0;
+ fabric_sensitive int8u currentScene = 1;
+ fabric_sensitive group_id currentGroup = 2;
+ fabric_sensitive boolean sceneValid = 3;
+ int8u remainingCapacity = 4;
+ fabric_idx fabricIndex = 254;
+ }
+
+ readonly attribute optional int8u sceneCount = 0;
+ readonly attribute optional int8u currentScene = 1;
+ readonly attribute optional group_id currentGroup = 2;
+ readonly attribute optional boolean sceneValid = 3;
+ readonly attribute NameSupportBitmap nameSupport = 4;
+ readonly attribute optional nullable node_id lastConfiguredBy = 5;
+ readonly attribute int16u sceneTableSize = 6;
+ readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
+ readonly attribute command_id generatedCommandList[] = 65528;
+ readonly attribute command_id acceptedCommandList[] = 65529;
+ readonly attribute event_id eventList[] = 65530;
+ readonly attribute attrib_id attributeList[] = 65531;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct AddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct AddSceneResponse = 0 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct ViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct ViewSceneResponse = 1 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct RemoveSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct RemoveSceneResponse = 2 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RemoveAllScenesRequest {
+ group_id groupID = 0;
+ }
+
+ response struct RemoveAllScenesResponse = 3 {
+ status status = 0;
+ group_id groupID = 1;
+ }
+
+ request struct StoreSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct StoreSceneResponse = 4 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RecallSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ optional nullable int16u transitionTime = 2;
+ }
+
+ request struct GetSceneMembershipRequest {
+ group_id groupID = 0;
+ }
+
+ response struct GetSceneMembershipResponse = 6 {
+ status status = 0;
+ nullable int8u capacity = 1;
+ group_id groupID = 2;
+ optional int8u sceneList[] = 3;
+ }
+
+ request struct EnhancedAddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct EnhancedAddSceneResponse = 64 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct EnhancedViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct EnhancedViewSceneResponse = 65 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct CopySceneRequest {
+ CopyModeBitmap mode = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ group_id groupIdentifierTo = 3;
+ int8u sceneIdentifierTo = 4;
+ }
+
+ response struct CopySceneResponse = 66 {
+ status status = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ }
+
+ /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
+ fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
+ /** Retrieves the requested scene entry from its Scene table. */
+ fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
+ /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
+ /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
+ /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
+ fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
+ /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
+ fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
+ /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
+ fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
+ /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
+ fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
+ /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
+ fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
+ /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
+ fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
+}
+
/** Attributes and commands for controlling the color properties of a color-capable light. */
cluster ColorControl = 768 {
revision 6;
@@ -2755,35 +2755,6 @@ endpoint 1 {
handle command AddGroupIfIdentifying;
}
- server cluster Scenes {
- ram attribute nameSupport default = 0x80;
- ram attribute lastConfiguredBy;
- ram attribute sceneTableSize default = 16;
- callback attribute fabricSceneInfo;
- callback attribute generatedCommandList;
- callback attribute acceptedCommandList;
- callback attribute attributeList;
- ram attribute featureMap default = 15;
- ram attribute clusterRevision default = 5;
-
- handle command AddScene;
- handle command AddSceneResponse;
- handle command ViewScene;
- handle command ViewSceneResponse;
- handle command RemoveScene;
- handle command RemoveSceneResponse;
- handle command RemoveAllScenes;
- handle command RemoveAllScenesResponse;
- handle command StoreScene;
- handle command StoreSceneResponse;
- handle command RecallScene;
- handle command GetSceneMembership;
- handle command GetSceneMembershipResponse;
- handle command EnhancedAddScene;
- handle command EnhancedViewScene;
- handle command CopyScene;
- }
-
server cluster OnOff {
persist attribute onOff default = 0x00;
ram attribute globalSceneControl default = 0x01;
@@ -2838,6 +2809,35 @@ endpoint 1 {
callback attribute clusterRevision;
}
+ server cluster ScenesManagement {
+ ram attribute nameSupport default = 0x80;
+ ram attribute lastConfiguredBy;
+ ram attribute sceneTableSize default = 16;
+ callback attribute fabricSceneInfo;
+ callback attribute generatedCommandList;
+ callback attribute acceptedCommandList;
+ callback attribute attributeList;
+ ram attribute featureMap default = 15;
+ ram attribute clusterRevision default = 5;
+
+ handle command AddScene;
+ handle command AddSceneResponse;
+ handle command ViewScene;
+ handle command ViewSceneResponse;
+ handle command RemoveScene;
+ handle command RemoveSceneResponse;
+ handle command RemoveAllScenes;
+ handle command RemoveAllScenesResponse;
+ handle command StoreScene;
+ handle command StoreSceneResponse;
+ handle command RecallScene;
+ handle command GetSceneMembership;
+ handle command GetSceneMembershipResponse;
+ handle command EnhancedAddScene;
+ handle command EnhancedViewScene;
+ handle command CopyScene;
+ }
+
server cluster ColorControl {
persist attribute currentHue default = 0x00;
persist attribute currentSaturation default = 0x00;
diff --git a/examples/lighting-app/lighting-common/lighting-app.zap b/examples/lighting-app/lighting-common/lighting-app.zap
index 854b16014cd6bf..2c4aaf0c4013ba 100644
--- a/examples/lighting-app/lighting-common/lighting-app.zap
+++ b/examples/lighting-app/lighting-common/lighting-app.zap
@@ -4426,8 +4426,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "server",
diff --git a/examples/lighting-app/silabs/data_model/lighting-thread-app.matter b/examples/lighting-app/silabs/data_model/lighting-thread-app.matter
index 882aed6c1ddc3a..fb3253218f4a1a 100644
--- a/examples/lighting-app/silabs/data_model/lighting-thread-app.matter
+++ b/examples/lighting-app/silabs/data_model/lighting-thread-app.matter
@@ -128,199 +128,6 @@ cluster Groups = 4 {
fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
}
-/** Attributes and commands for scene configuration and manipulation. */
-provisional cluster Scenes = 5 {
- revision 5;
-
- bitmap CopyModeBitmap : bitmap8 {
- kCopyAllScenes = 0x1;
- }
-
- bitmap Feature : bitmap32 {
- kSceneNames = 0x1;
- kExplicit = 0x2;
- kTableSize = 0x4;
- kFabricScenes = 0x8;
- }
-
- bitmap NameSupportBitmap : bitmap8 {
- kSceneNames = 0x80;
- }
-
- struct AttributeValuePair {
- attrib_id attributeID = 0;
- int32u attributeValue = 1;
- }
-
- struct ExtensionFieldSet {
- cluster_id clusterID = 0;
- AttributeValuePair attributeValueList[] = 1;
- }
-
- fabric_scoped struct SceneInfoStruct {
- int8u sceneCount = 0;
- fabric_sensitive int8u currentScene = 1;
- fabric_sensitive group_id currentGroup = 2;
- fabric_sensitive boolean sceneValid = 3;
- int8u remainingCapacity = 4;
- fabric_idx fabricIndex = 254;
- }
-
- readonly attribute optional int8u sceneCount = 0;
- readonly attribute optional int8u currentScene = 1;
- readonly attribute optional group_id currentGroup = 2;
- readonly attribute optional boolean sceneValid = 3;
- readonly attribute NameSupportBitmap nameSupport = 4;
- readonly attribute optional nullable node_id lastConfiguredBy = 5;
- readonly attribute int16u sceneTableSize = 6;
- readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
- readonly attribute command_id generatedCommandList[] = 65528;
- readonly attribute command_id acceptedCommandList[] = 65529;
- readonly attribute event_id eventList[] = 65530;
- readonly attribute attrib_id attributeList[] = 65531;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct AddSceneResponse = 0 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct ViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct ViewSceneResponse = 1 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct RemoveSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct RemoveSceneResponse = 2 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RemoveAllScenesRequest {
- group_id groupID = 0;
- }
-
- response struct RemoveAllScenesResponse = 3 {
- status status = 0;
- group_id groupID = 1;
- }
-
- request struct StoreSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct StoreSceneResponse = 4 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RecallSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- optional nullable int16u transitionTime = 2;
- }
-
- request struct GetSceneMembershipRequest {
- group_id groupID = 0;
- }
-
- response struct GetSceneMembershipResponse = 6 {
- status status = 0;
- nullable int8u capacity = 1;
- group_id groupID = 2;
- optional int8u sceneList[] = 3;
- }
-
- request struct EnhancedAddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct EnhancedAddSceneResponse = 64 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct EnhancedViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct EnhancedViewSceneResponse = 65 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct CopySceneRequest {
- CopyModeBitmap mode = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- group_id groupIdentifierTo = 3;
- int8u sceneIdentifierTo = 4;
- }
-
- response struct CopySceneResponse = 66 {
- status status = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- }
-
- /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
- fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
- /** Retrieves the requested scene entry from its Scene table. */
- fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
- /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
- /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
- /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
- fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
- /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
- fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
- /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
- fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
- /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
- fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
- /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
- fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
- /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
-}
-
/** Attributes and commands for switching devices between 'On' and 'Off' states. */
cluster OnOff = 6 {
revision 6;
@@ -2102,6 +1909,199 @@ cluster UserLabel = 65 {
readonly attribute int16u clusterRevision = 65533;
}
+/** Attributes and commands for scene configuration and manipulation. */
+provisional cluster ScenesManagement = 98 {
+ revision 5;
+
+ bitmap CopyModeBitmap : bitmap8 {
+ kCopyAllScenes = 0x1;
+ }
+
+ bitmap Feature : bitmap32 {
+ kSceneNames = 0x1;
+ kExplicit = 0x2;
+ kTableSize = 0x4;
+ kFabricScenes = 0x8;
+ }
+
+ bitmap NameSupportBitmap : bitmap8 {
+ kSceneNames = 0x80;
+ }
+
+ struct AttributeValuePair {
+ attrib_id attributeID = 0;
+ int32u attributeValue = 1;
+ }
+
+ struct ExtensionFieldSet {
+ cluster_id clusterID = 0;
+ AttributeValuePair attributeValueList[] = 1;
+ }
+
+ fabric_scoped struct SceneInfoStruct {
+ int8u sceneCount = 0;
+ fabric_sensitive int8u currentScene = 1;
+ fabric_sensitive group_id currentGroup = 2;
+ fabric_sensitive boolean sceneValid = 3;
+ int8u remainingCapacity = 4;
+ fabric_idx fabricIndex = 254;
+ }
+
+ readonly attribute optional int8u sceneCount = 0;
+ readonly attribute optional int8u currentScene = 1;
+ readonly attribute optional group_id currentGroup = 2;
+ readonly attribute optional boolean sceneValid = 3;
+ readonly attribute NameSupportBitmap nameSupport = 4;
+ readonly attribute optional nullable node_id lastConfiguredBy = 5;
+ readonly attribute int16u sceneTableSize = 6;
+ readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
+ readonly attribute command_id generatedCommandList[] = 65528;
+ readonly attribute command_id acceptedCommandList[] = 65529;
+ readonly attribute event_id eventList[] = 65530;
+ readonly attribute attrib_id attributeList[] = 65531;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct AddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct AddSceneResponse = 0 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct ViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct ViewSceneResponse = 1 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct RemoveSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct RemoveSceneResponse = 2 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RemoveAllScenesRequest {
+ group_id groupID = 0;
+ }
+
+ response struct RemoveAllScenesResponse = 3 {
+ status status = 0;
+ group_id groupID = 1;
+ }
+
+ request struct StoreSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct StoreSceneResponse = 4 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RecallSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ optional nullable int16u transitionTime = 2;
+ }
+
+ request struct GetSceneMembershipRequest {
+ group_id groupID = 0;
+ }
+
+ response struct GetSceneMembershipResponse = 6 {
+ status status = 0;
+ nullable int8u capacity = 1;
+ group_id groupID = 2;
+ optional int8u sceneList[] = 3;
+ }
+
+ request struct EnhancedAddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct EnhancedAddSceneResponse = 64 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct EnhancedViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct EnhancedViewSceneResponse = 65 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct CopySceneRequest {
+ CopyModeBitmap mode = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ group_id groupIdentifierTo = 3;
+ int8u sceneIdentifierTo = 4;
+ }
+
+ response struct CopySceneResponse = 66 {
+ status status = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ }
+
+ /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
+ fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
+ /** Retrieves the requested scene entry from its Scene table. */
+ fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
+ /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
+ /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
+ /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
+ fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
+ /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
+ fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
+ /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
+ fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
+ /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
+ fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
+ /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
+ fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
+ /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
+ fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
+}
+
/** Attributes and commands for controlling the color properties of a color-capable light. */
cluster ColorControl = 768 {
revision 6;
@@ -2755,39 +2755,6 @@ endpoint 1 {
handle command AddGroupIfIdentifying;
}
- server cluster Scenes {
- ram attribute nameSupport default = 0x80;
- ram attribute lastConfiguredBy;
- ram attribute sceneTableSize default = 16;
- callback attribute fabricSceneInfo;
- callback attribute generatedCommandList;
- callback attribute acceptedCommandList;
- callback attribute eventList;
- callback attribute attributeList;
- ram attribute featureMap default = 15;
- ram attribute clusterRevision default = 5;
-
- handle command AddScene;
- handle command AddSceneResponse;
- handle command ViewScene;
- handle command ViewSceneResponse;
- handle command RemoveScene;
- handle command RemoveSceneResponse;
- handle command RemoveAllScenes;
- handle command RemoveAllScenesResponse;
- handle command StoreScene;
- handle command StoreSceneResponse;
- handle command RecallScene;
- handle command GetSceneMembership;
- handle command GetSceneMembershipResponse;
- handle command EnhancedAddScene;
- handle command EnhancedAddSceneResponse;
- handle command EnhancedViewScene;
- handle command EnhancedViewSceneResponse;
- handle command CopyScene;
- handle command CopySceneResponse;
- }
-
server cluster OnOff {
persist attribute onOff default = 0x00;
ram attribute globalSceneControl default = 0x01;
@@ -2874,6 +2841,39 @@ endpoint 1 {
ram attribute clusterRevision default = 2;
}
+ server cluster ScenesManagement {
+ ram attribute nameSupport default = 0x80;
+ ram attribute lastConfiguredBy;
+ ram attribute sceneTableSize default = 16;
+ callback attribute fabricSceneInfo;
+ callback attribute generatedCommandList;
+ callback attribute acceptedCommandList;
+ callback attribute eventList;
+ callback attribute attributeList;
+ ram attribute featureMap default = 15;
+ ram attribute clusterRevision default = 5;
+
+ handle command AddScene;
+ handle command AddSceneResponse;
+ handle command ViewScene;
+ handle command ViewSceneResponse;
+ handle command RemoveScene;
+ handle command RemoveSceneResponse;
+ handle command RemoveAllScenes;
+ handle command RemoveAllScenesResponse;
+ handle command StoreScene;
+ handle command StoreSceneResponse;
+ handle command RecallScene;
+ handle command GetSceneMembership;
+ handle command GetSceneMembershipResponse;
+ handle command EnhancedAddScene;
+ handle command EnhancedAddSceneResponse;
+ handle command EnhancedViewScene;
+ handle command EnhancedViewSceneResponse;
+ handle command CopyScene;
+ handle command CopySceneResponse;
+ }
+
server cluster ColorControl {
persist attribute currentHue default = 0x00;
persist attribute currentSaturation default = 0x00;
diff --git a/examples/lighting-app/silabs/data_model/lighting-thread-app.zap b/examples/lighting-app/silabs/data_model/lighting-thread-app.zap
index eb00551c566457..ec0f241672b992 100644
--- a/examples/lighting-app/silabs/data_model/lighting-thread-app.zap
+++ b/examples/lighting-app/silabs/data_model/lighting-thread-app.zap
@@ -3974,8 +3974,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "server",
diff --git a/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter b/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter
index 6914dd4e3e37f2..3a2db86eaf0bb6 100644
--- a/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter
+++ b/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter
@@ -128,199 +128,6 @@ cluster Groups = 4 {
fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
}
-/** Attributes and commands for scene configuration and manipulation. */
-provisional cluster Scenes = 5 {
- revision 5;
-
- bitmap CopyModeBitmap : bitmap8 {
- kCopyAllScenes = 0x1;
- }
-
- bitmap Feature : bitmap32 {
- kSceneNames = 0x1;
- kExplicit = 0x2;
- kTableSize = 0x4;
- kFabricScenes = 0x8;
- }
-
- bitmap NameSupportBitmap : bitmap8 {
- kSceneNames = 0x80;
- }
-
- struct AttributeValuePair {
- attrib_id attributeID = 0;
- int32u attributeValue = 1;
- }
-
- struct ExtensionFieldSet {
- cluster_id clusterID = 0;
- AttributeValuePair attributeValueList[] = 1;
- }
-
- fabric_scoped struct SceneInfoStruct {
- int8u sceneCount = 0;
- fabric_sensitive int8u currentScene = 1;
- fabric_sensitive group_id currentGroup = 2;
- fabric_sensitive boolean sceneValid = 3;
- int8u remainingCapacity = 4;
- fabric_idx fabricIndex = 254;
- }
-
- readonly attribute optional int8u sceneCount = 0;
- readonly attribute optional int8u currentScene = 1;
- readonly attribute optional group_id currentGroup = 2;
- readonly attribute optional boolean sceneValid = 3;
- readonly attribute NameSupportBitmap nameSupport = 4;
- readonly attribute optional nullable node_id lastConfiguredBy = 5;
- readonly attribute int16u sceneTableSize = 6;
- readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
- readonly attribute command_id generatedCommandList[] = 65528;
- readonly attribute command_id acceptedCommandList[] = 65529;
- readonly attribute event_id eventList[] = 65530;
- readonly attribute attrib_id attributeList[] = 65531;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct AddSceneResponse = 0 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct ViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct ViewSceneResponse = 1 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct RemoveSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct RemoveSceneResponse = 2 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RemoveAllScenesRequest {
- group_id groupID = 0;
- }
-
- response struct RemoveAllScenesResponse = 3 {
- status status = 0;
- group_id groupID = 1;
- }
-
- request struct StoreSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct StoreSceneResponse = 4 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RecallSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- optional nullable int16u transitionTime = 2;
- }
-
- request struct GetSceneMembershipRequest {
- group_id groupID = 0;
- }
-
- response struct GetSceneMembershipResponse = 6 {
- status status = 0;
- nullable int8u capacity = 1;
- group_id groupID = 2;
- optional int8u sceneList[] = 3;
- }
-
- request struct EnhancedAddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct EnhancedAddSceneResponse = 64 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct EnhancedViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct EnhancedViewSceneResponse = 65 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct CopySceneRequest {
- CopyModeBitmap mode = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- group_id groupIdentifierTo = 3;
- int8u sceneIdentifierTo = 4;
- }
-
- response struct CopySceneResponse = 66 {
- status status = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- }
-
- /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
- fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
- /** Retrieves the requested scene entry from its Scene table. */
- fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
- /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
- /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
- /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
- fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
- /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
- fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
- /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
- fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
- /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
- fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
- /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
- fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
- /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
-}
-
/** Attributes and commands for switching devices between 'On' and 'Off' states. */
cluster OnOff = 6 {
revision 6;
@@ -2013,6 +1820,199 @@ cluster UserLabel = 65 {
readonly attribute int16u clusterRevision = 65533;
}
+/** Attributes and commands for scene configuration and manipulation. */
+provisional cluster ScenesManagement = 98 {
+ revision 5;
+
+ bitmap CopyModeBitmap : bitmap8 {
+ kCopyAllScenes = 0x1;
+ }
+
+ bitmap Feature : bitmap32 {
+ kSceneNames = 0x1;
+ kExplicit = 0x2;
+ kTableSize = 0x4;
+ kFabricScenes = 0x8;
+ }
+
+ bitmap NameSupportBitmap : bitmap8 {
+ kSceneNames = 0x80;
+ }
+
+ struct AttributeValuePair {
+ attrib_id attributeID = 0;
+ int32u attributeValue = 1;
+ }
+
+ struct ExtensionFieldSet {
+ cluster_id clusterID = 0;
+ AttributeValuePair attributeValueList[] = 1;
+ }
+
+ fabric_scoped struct SceneInfoStruct {
+ int8u sceneCount = 0;
+ fabric_sensitive int8u currentScene = 1;
+ fabric_sensitive group_id currentGroup = 2;
+ fabric_sensitive boolean sceneValid = 3;
+ int8u remainingCapacity = 4;
+ fabric_idx fabricIndex = 254;
+ }
+
+ readonly attribute optional int8u sceneCount = 0;
+ readonly attribute optional int8u currentScene = 1;
+ readonly attribute optional group_id currentGroup = 2;
+ readonly attribute optional boolean sceneValid = 3;
+ readonly attribute NameSupportBitmap nameSupport = 4;
+ readonly attribute optional nullable node_id lastConfiguredBy = 5;
+ readonly attribute int16u sceneTableSize = 6;
+ readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
+ readonly attribute command_id generatedCommandList[] = 65528;
+ readonly attribute command_id acceptedCommandList[] = 65529;
+ readonly attribute event_id eventList[] = 65530;
+ readonly attribute attrib_id attributeList[] = 65531;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct AddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct AddSceneResponse = 0 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct ViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct ViewSceneResponse = 1 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct RemoveSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct RemoveSceneResponse = 2 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RemoveAllScenesRequest {
+ group_id groupID = 0;
+ }
+
+ response struct RemoveAllScenesResponse = 3 {
+ status status = 0;
+ group_id groupID = 1;
+ }
+
+ request struct StoreSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct StoreSceneResponse = 4 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RecallSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ optional nullable int16u transitionTime = 2;
+ }
+
+ request struct GetSceneMembershipRequest {
+ group_id groupID = 0;
+ }
+
+ response struct GetSceneMembershipResponse = 6 {
+ status status = 0;
+ nullable int8u capacity = 1;
+ group_id groupID = 2;
+ optional int8u sceneList[] = 3;
+ }
+
+ request struct EnhancedAddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct EnhancedAddSceneResponse = 64 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct EnhancedViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct EnhancedViewSceneResponse = 65 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct CopySceneRequest {
+ CopyModeBitmap mode = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ group_id groupIdentifierTo = 3;
+ int8u sceneIdentifierTo = 4;
+ }
+
+ response struct CopySceneResponse = 66 {
+ status status = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ }
+
+ /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
+ fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
+ /** Retrieves the requested scene entry from its Scene table. */
+ fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
+ /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
+ /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
+ /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
+ fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
+ /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
+ fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
+ /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
+ fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
+ /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
+ fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
+ /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
+ fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
+ /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
+ fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
+}
+
/** Attributes and commands for controlling the color properties of a color-capable light. */
cluster ColorControl = 768 {
revision 6;
@@ -2614,36 +2614,6 @@ endpoint 1 {
handle command AddGroupIfIdentifying;
}
- server cluster Scenes {
- ram attribute nameSupport default = 0x80;
- ram attribute lastConfiguredBy;
- ram attribute sceneTableSize default = 16;
- callback attribute fabricSceneInfo;
- callback attribute generatedCommandList;
- callback attribute acceptedCommandList;
- callback attribute eventList;
- callback attribute attributeList;
- ram attribute featureMap default = 15;
- ram attribute clusterRevision default = 5;
-
- handle command AddScene;
- handle command AddSceneResponse;
- handle command ViewScene;
- handle command ViewSceneResponse;
- handle command RemoveScene;
- handle command RemoveSceneResponse;
- handle command RemoveAllScenes;
- handle command RemoveAllScenesResponse;
- handle command StoreScene;
- handle command StoreSceneResponse;
- handle command RecallScene;
- handle command GetSceneMembership;
- handle command GetSceneMembershipResponse;
- handle command EnhancedAddScene;
- handle command EnhancedViewScene;
- handle command CopyScene;
- }
-
server cluster OnOff {
persist attribute onOff default = 0x00;
ram attribute globalSceneControl default = 0x01;
@@ -2730,6 +2700,36 @@ endpoint 1 {
ram attribute clusterRevision default = 2;
}
+ server cluster ScenesManagement {
+ ram attribute nameSupport default = 0x80;
+ ram attribute lastConfiguredBy;
+ ram attribute sceneTableSize default = 16;
+ callback attribute fabricSceneInfo;
+ callback attribute generatedCommandList;
+ callback attribute acceptedCommandList;
+ callback attribute eventList;
+ callback attribute attributeList;
+ ram attribute featureMap default = 15;
+ ram attribute clusterRevision default = 5;
+
+ handle command AddScene;
+ handle command AddSceneResponse;
+ handle command ViewScene;
+ handle command ViewSceneResponse;
+ handle command RemoveScene;
+ handle command RemoveSceneResponse;
+ handle command RemoveAllScenes;
+ handle command RemoveAllScenesResponse;
+ handle command StoreScene;
+ handle command StoreSceneResponse;
+ handle command RecallScene;
+ handle command GetSceneMembership;
+ handle command GetSceneMembershipResponse;
+ handle command EnhancedAddScene;
+ handle command EnhancedViewScene;
+ handle command CopyScene;
+ }
+
server cluster ColorControl {
persist attribute currentHue default = 0x00;
persist attribute currentSaturation default = 0x00;
diff --git a/examples/lighting-app/silabs/data_model/lighting-wifi-app.zap b/examples/lighting-app/silabs/data_model/lighting-wifi-app.zap
index c5f5ddec752665..02ff0033007921 100644
--- a/examples/lighting-app/silabs/data_model/lighting-wifi-app.zap
+++ b/examples/lighting-app/silabs/data_model/lighting-wifi-app.zap
@@ -3142,8 +3142,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "server",
diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter
index f3c47883ad1b06..3a1cbd1c932376 100644
--- a/examples/placeholder/linux/apps/app1/config.matter
+++ b/examples/placeholder/linux/apps/app1/config.matter
@@ -178,199 +178,6 @@ cluster Groups = 4 {
fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
}
-/** Attributes and commands for scene configuration and manipulation. */
-provisional cluster Scenes = 5 {
- revision 5;
-
- bitmap CopyModeBitmap : bitmap8 {
- kCopyAllScenes = 0x1;
- }
-
- bitmap Feature : bitmap32 {
- kSceneNames = 0x1;
- kExplicit = 0x2;
- kTableSize = 0x4;
- kFabricScenes = 0x8;
- }
-
- bitmap NameSupportBitmap : bitmap8 {
- kSceneNames = 0x80;
- }
-
- struct AttributeValuePair {
- attrib_id attributeID = 0;
- int32u attributeValue = 1;
- }
-
- struct ExtensionFieldSet {
- cluster_id clusterID = 0;
- AttributeValuePair attributeValueList[] = 1;
- }
-
- fabric_scoped struct SceneInfoStruct {
- int8u sceneCount = 0;
- fabric_sensitive int8u currentScene = 1;
- fabric_sensitive group_id currentGroup = 2;
- fabric_sensitive boolean sceneValid = 3;
- int8u remainingCapacity = 4;
- fabric_idx fabricIndex = 254;
- }
-
- readonly attribute optional int8u sceneCount = 0;
- readonly attribute optional int8u currentScene = 1;
- readonly attribute optional group_id currentGroup = 2;
- readonly attribute optional boolean sceneValid = 3;
- readonly attribute NameSupportBitmap nameSupport = 4;
- readonly attribute optional nullable node_id lastConfiguredBy = 5;
- readonly attribute int16u sceneTableSize = 6;
- readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
- readonly attribute command_id generatedCommandList[] = 65528;
- readonly attribute command_id acceptedCommandList[] = 65529;
- readonly attribute event_id eventList[] = 65530;
- readonly attribute attrib_id attributeList[] = 65531;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct AddSceneResponse = 0 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct ViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct ViewSceneResponse = 1 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct RemoveSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct RemoveSceneResponse = 2 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RemoveAllScenesRequest {
- group_id groupID = 0;
- }
-
- response struct RemoveAllScenesResponse = 3 {
- status status = 0;
- group_id groupID = 1;
- }
-
- request struct StoreSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct StoreSceneResponse = 4 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RecallSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- optional nullable int16u transitionTime = 2;
- }
-
- request struct GetSceneMembershipRequest {
- group_id groupID = 0;
- }
-
- response struct GetSceneMembershipResponse = 6 {
- status status = 0;
- nullable int8u capacity = 1;
- group_id groupID = 2;
- optional int8u sceneList[] = 3;
- }
-
- request struct EnhancedAddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct EnhancedAddSceneResponse = 64 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct EnhancedViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct EnhancedViewSceneResponse = 65 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct CopySceneRequest {
- CopyModeBitmap mode = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- group_id groupIdentifierTo = 3;
- int8u sceneIdentifierTo = 4;
- }
-
- response struct CopySceneResponse = 66 {
- status status = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- }
-
- /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
- fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
- /** Retrieves the requested scene entry from its Scene table. */
- fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
- /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
- /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
- /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
- fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
- /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
- fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
- /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
- fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
- /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
- fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
- /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
- fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
- /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
-}
-
/** Attributes and commands for switching devices between 'On' and 'Off' states. */
cluster OnOff = 6 {
revision 6;
@@ -3183,6 +2990,199 @@ cluster ModeSelect = 80 {
command ChangeToMode(ChangeToModeRequest): DefaultSuccess = 0;
}
+/** Attributes and commands for scene configuration and manipulation. */
+provisional cluster ScenesManagement = 98 {
+ revision 5;
+
+ bitmap CopyModeBitmap : bitmap8 {
+ kCopyAllScenes = 0x1;
+ }
+
+ bitmap Feature : bitmap32 {
+ kSceneNames = 0x1;
+ kExplicit = 0x2;
+ kTableSize = 0x4;
+ kFabricScenes = 0x8;
+ }
+
+ bitmap NameSupportBitmap : bitmap8 {
+ kSceneNames = 0x80;
+ }
+
+ struct AttributeValuePair {
+ attrib_id attributeID = 0;
+ int32u attributeValue = 1;
+ }
+
+ struct ExtensionFieldSet {
+ cluster_id clusterID = 0;
+ AttributeValuePair attributeValueList[] = 1;
+ }
+
+ fabric_scoped struct SceneInfoStruct {
+ int8u sceneCount = 0;
+ fabric_sensitive int8u currentScene = 1;
+ fabric_sensitive group_id currentGroup = 2;
+ fabric_sensitive boolean sceneValid = 3;
+ int8u remainingCapacity = 4;
+ fabric_idx fabricIndex = 254;
+ }
+
+ readonly attribute optional int8u sceneCount = 0;
+ readonly attribute optional int8u currentScene = 1;
+ readonly attribute optional group_id currentGroup = 2;
+ readonly attribute optional boolean sceneValid = 3;
+ readonly attribute NameSupportBitmap nameSupport = 4;
+ readonly attribute optional nullable node_id lastConfiguredBy = 5;
+ readonly attribute int16u sceneTableSize = 6;
+ readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
+ readonly attribute command_id generatedCommandList[] = 65528;
+ readonly attribute command_id acceptedCommandList[] = 65529;
+ readonly attribute event_id eventList[] = 65530;
+ readonly attribute attrib_id attributeList[] = 65531;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct AddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct AddSceneResponse = 0 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct ViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct ViewSceneResponse = 1 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct RemoveSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct RemoveSceneResponse = 2 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RemoveAllScenesRequest {
+ group_id groupID = 0;
+ }
+
+ response struct RemoveAllScenesResponse = 3 {
+ status status = 0;
+ group_id groupID = 1;
+ }
+
+ request struct StoreSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct StoreSceneResponse = 4 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RecallSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ optional nullable int16u transitionTime = 2;
+ }
+
+ request struct GetSceneMembershipRequest {
+ group_id groupID = 0;
+ }
+
+ response struct GetSceneMembershipResponse = 6 {
+ status status = 0;
+ nullable int8u capacity = 1;
+ group_id groupID = 2;
+ optional int8u sceneList[] = 3;
+ }
+
+ request struct EnhancedAddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct EnhancedAddSceneResponse = 64 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct EnhancedViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct EnhancedViewSceneResponse = 65 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct CopySceneRequest {
+ CopyModeBitmap mode = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ group_id groupIdentifierTo = 3;
+ int8u sceneIdentifierTo = 4;
+ }
+
+ response struct CopySceneResponse = 66 {
+ status status = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ }
+
+ /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
+ fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
+ /** Retrieves the requested scene entry from its Scene table. */
+ fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
+ /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
+ /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
+ /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
+ fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
+ /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
+ fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
+ /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
+ fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
+ /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
+ fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
+ /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
+ fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
+ /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
+ fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
+}
+
/** An interface to a generic way to secure a door */
cluster DoorLock = 257 {
revision 7;
@@ -9048,31 +9048,6 @@ endpoint 1 {
handle command AddGroupIfIdentifying;
}
- server cluster Scenes {
- ram attribute nameSupport;
- ram attribute sceneTableSize default = 16;
- callback attribute fabricSceneInfo;
- callback attribute generatedCommandList;
- callback attribute acceptedCommandList;
- callback attribute attributeList;
- ram attribute featureMap default = 15;
- ram attribute clusterRevision default = 5;
-
- handle command AddScene;
- handle command AddSceneResponse;
- handle command ViewScene;
- handle command ViewSceneResponse;
- handle command RemoveScene;
- handle command RemoveSceneResponse;
- handle command RemoveAllScenes;
- handle command RemoveAllScenesResponse;
- handle command StoreScene;
- handle command StoreSceneResponse;
- handle command RecallScene;
- handle command GetSceneMembership;
- handle command GetSceneMembershipResponse;
- }
-
server cluster OnOff {
ram attribute onOff default = 0x00;
ram attribute globalSceneControl default = 0x01;
@@ -9185,6 +9160,31 @@ endpoint 1 {
callback attribute clusterRevision default = 1;
}
+ server cluster ScenesManagement {
+ ram attribute nameSupport;
+ ram attribute sceneTableSize default = 16;
+ callback attribute fabricSceneInfo;
+ callback attribute generatedCommandList;
+ callback attribute acceptedCommandList;
+ callback attribute attributeList;
+ ram attribute featureMap default = 15;
+ ram attribute clusterRevision default = 5;
+
+ handle command AddScene;
+ handle command AddSceneResponse;
+ handle command ViewScene;
+ handle command ViewSceneResponse;
+ handle command RemoveScene;
+ handle command RemoveSceneResponse;
+ handle command RemoveAllScenes;
+ handle command RemoveAllScenesResponse;
+ handle command StoreScene;
+ handle command StoreSceneResponse;
+ handle command RecallScene;
+ handle command GetSceneMembership;
+ handle command GetSceneMembershipResponse;
+ }
+
server cluster ColorControl {
ram attribute currentHue default = 0x00;
ram attribute currentSaturation default = 0x00;
diff --git a/examples/placeholder/linux/apps/app1/config.zap b/examples/placeholder/linux/apps/app1/config.zap
index b7e4e02d1370cd..d43349f6f36e03 100644
--- a/examples/placeholder/linux/apps/app1/config.zap
+++ b/examples/placeholder/linux/apps/app1/config.zap
@@ -11795,8 +11795,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "server",
diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter
index 55d45919983da8..05feee108add0a 100644
--- a/examples/placeholder/linux/apps/app2/config.matter
+++ b/examples/placeholder/linux/apps/app2/config.matter
@@ -178,199 +178,6 @@ cluster Groups = 4 {
fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
}
-/** Attributes and commands for scene configuration and manipulation. */
-provisional cluster Scenes = 5 {
- revision 5;
-
- bitmap CopyModeBitmap : bitmap8 {
- kCopyAllScenes = 0x1;
- }
-
- bitmap Feature : bitmap32 {
- kSceneNames = 0x1;
- kExplicit = 0x2;
- kTableSize = 0x4;
- kFabricScenes = 0x8;
- }
-
- bitmap NameSupportBitmap : bitmap8 {
- kSceneNames = 0x80;
- }
-
- struct AttributeValuePair {
- attrib_id attributeID = 0;
- int32u attributeValue = 1;
- }
-
- struct ExtensionFieldSet {
- cluster_id clusterID = 0;
- AttributeValuePair attributeValueList[] = 1;
- }
-
- fabric_scoped struct SceneInfoStruct {
- int8u sceneCount = 0;
- fabric_sensitive int8u currentScene = 1;
- fabric_sensitive group_id currentGroup = 2;
- fabric_sensitive boolean sceneValid = 3;
- int8u remainingCapacity = 4;
- fabric_idx fabricIndex = 254;
- }
-
- readonly attribute optional int8u sceneCount = 0;
- readonly attribute optional int8u currentScene = 1;
- readonly attribute optional group_id currentGroup = 2;
- readonly attribute optional boolean sceneValid = 3;
- readonly attribute NameSupportBitmap nameSupport = 4;
- readonly attribute optional nullable node_id lastConfiguredBy = 5;
- readonly attribute int16u sceneTableSize = 6;
- readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
- readonly attribute command_id generatedCommandList[] = 65528;
- readonly attribute command_id acceptedCommandList[] = 65529;
- readonly attribute event_id eventList[] = 65530;
- readonly attribute attrib_id attributeList[] = 65531;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct AddSceneResponse = 0 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct ViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct ViewSceneResponse = 1 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct RemoveSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct RemoveSceneResponse = 2 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RemoveAllScenesRequest {
- group_id groupID = 0;
- }
-
- response struct RemoveAllScenesResponse = 3 {
- status status = 0;
- group_id groupID = 1;
- }
-
- request struct StoreSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct StoreSceneResponse = 4 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RecallSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- optional nullable int16u transitionTime = 2;
- }
-
- request struct GetSceneMembershipRequest {
- group_id groupID = 0;
- }
-
- response struct GetSceneMembershipResponse = 6 {
- status status = 0;
- nullable int8u capacity = 1;
- group_id groupID = 2;
- optional int8u sceneList[] = 3;
- }
-
- request struct EnhancedAddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct EnhancedAddSceneResponse = 64 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct EnhancedViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct EnhancedViewSceneResponse = 65 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct CopySceneRequest {
- CopyModeBitmap mode = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- group_id groupIdentifierTo = 3;
- int8u sceneIdentifierTo = 4;
- }
-
- response struct CopySceneResponse = 66 {
- status status = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- }
-
- /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
- fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
- /** Retrieves the requested scene entry from its Scene table. */
- fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
- /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
- /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
- /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
- fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
- /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
- fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
- /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
- fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
- /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
- fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
- /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
- fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
- /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
-}
-
/** Attributes and commands for switching devices between 'On' and 'Off' states. */
cluster OnOff = 6 {
revision 6;
@@ -3140,6 +2947,199 @@ cluster ModeSelect = 80 {
command ChangeToMode(ChangeToModeRequest): DefaultSuccess = 0;
}
+/** Attributes and commands for scene configuration and manipulation. */
+provisional cluster ScenesManagement = 98 {
+ revision 5;
+
+ bitmap CopyModeBitmap : bitmap8 {
+ kCopyAllScenes = 0x1;
+ }
+
+ bitmap Feature : bitmap32 {
+ kSceneNames = 0x1;
+ kExplicit = 0x2;
+ kTableSize = 0x4;
+ kFabricScenes = 0x8;
+ }
+
+ bitmap NameSupportBitmap : bitmap8 {
+ kSceneNames = 0x80;
+ }
+
+ struct AttributeValuePair {
+ attrib_id attributeID = 0;
+ int32u attributeValue = 1;
+ }
+
+ struct ExtensionFieldSet {
+ cluster_id clusterID = 0;
+ AttributeValuePair attributeValueList[] = 1;
+ }
+
+ fabric_scoped struct SceneInfoStruct {
+ int8u sceneCount = 0;
+ fabric_sensitive int8u currentScene = 1;
+ fabric_sensitive group_id currentGroup = 2;
+ fabric_sensitive boolean sceneValid = 3;
+ int8u remainingCapacity = 4;
+ fabric_idx fabricIndex = 254;
+ }
+
+ readonly attribute optional int8u sceneCount = 0;
+ readonly attribute optional int8u currentScene = 1;
+ readonly attribute optional group_id currentGroup = 2;
+ readonly attribute optional boolean sceneValid = 3;
+ readonly attribute NameSupportBitmap nameSupport = 4;
+ readonly attribute optional nullable node_id lastConfiguredBy = 5;
+ readonly attribute int16u sceneTableSize = 6;
+ readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
+ readonly attribute command_id generatedCommandList[] = 65528;
+ readonly attribute command_id acceptedCommandList[] = 65529;
+ readonly attribute event_id eventList[] = 65530;
+ readonly attribute attrib_id attributeList[] = 65531;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct AddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct AddSceneResponse = 0 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct ViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct ViewSceneResponse = 1 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct RemoveSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct RemoveSceneResponse = 2 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RemoveAllScenesRequest {
+ group_id groupID = 0;
+ }
+
+ response struct RemoveAllScenesResponse = 3 {
+ status status = 0;
+ group_id groupID = 1;
+ }
+
+ request struct StoreSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct StoreSceneResponse = 4 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RecallSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ optional nullable int16u transitionTime = 2;
+ }
+
+ request struct GetSceneMembershipRequest {
+ group_id groupID = 0;
+ }
+
+ response struct GetSceneMembershipResponse = 6 {
+ status status = 0;
+ nullable int8u capacity = 1;
+ group_id groupID = 2;
+ optional int8u sceneList[] = 3;
+ }
+
+ request struct EnhancedAddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct EnhancedAddSceneResponse = 64 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct EnhancedViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct EnhancedViewSceneResponse = 65 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct CopySceneRequest {
+ CopyModeBitmap mode = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ group_id groupIdentifierTo = 3;
+ int8u sceneIdentifierTo = 4;
+ }
+
+ response struct CopySceneResponse = 66 {
+ status status = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ }
+
+ /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
+ fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
+ /** Retrieves the requested scene entry from its Scene table. */
+ fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
+ /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
+ /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
+ /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
+ fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
+ /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
+ fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
+ /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
+ fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
+ /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
+ fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
+ /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
+ fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
+ /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
+ fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
+}
+
/** An interface to a generic way to secure a door */
cluster DoorLock = 257 {
revision 7;
@@ -9010,31 +9010,6 @@ endpoint 1 {
handle command AddGroupIfIdentifying;
}
- server cluster Scenes {
- ram attribute nameSupport;
- ram attribute sceneTableSize default = 16;
- callback attribute fabricSceneInfo;
- callback attribute generatedCommandList;
- callback attribute acceptedCommandList;
- callback attribute attributeList;
- ram attribute featureMap default = 15;
- ram attribute clusterRevision default = 5;
-
- handle command AddScene;
- handle command AddSceneResponse;
- handle command ViewScene;
- handle command ViewSceneResponse;
- handle command RemoveScene;
- handle command RemoveSceneResponse;
- handle command RemoveAllScenes;
- handle command RemoveAllScenesResponse;
- handle command StoreScene;
- handle command StoreSceneResponse;
- handle command RecallScene;
- handle command GetSceneMembership;
- handle command GetSceneMembershipResponse;
- }
-
server cluster OnOff {
ram attribute onOff default = 0x00;
ram attribute globalSceneControl default = 0x01;
@@ -9126,6 +9101,31 @@ endpoint 1 {
ram attribute clusterRevision default = 1;
}
+ server cluster ScenesManagement {
+ ram attribute nameSupport;
+ ram attribute sceneTableSize default = 16;
+ callback attribute fabricSceneInfo;
+ callback attribute generatedCommandList;
+ callback attribute acceptedCommandList;
+ callback attribute attributeList;
+ ram attribute featureMap default = 15;
+ ram attribute clusterRevision default = 5;
+
+ handle command AddScene;
+ handle command AddSceneResponse;
+ handle command ViewScene;
+ handle command ViewSceneResponse;
+ handle command RemoveScene;
+ handle command RemoveSceneResponse;
+ handle command RemoveAllScenes;
+ handle command RemoveAllScenesResponse;
+ handle command StoreScene;
+ handle command StoreSceneResponse;
+ handle command RecallScene;
+ handle command GetSceneMembership;
+ handle command GetSceneMembershipResponse;
+ }
+
server cluster ColorControl {
ram attribute currentHue default = 0x00;
ram attribute currentSaturation default = 0x00;
diff --git a/examples/placeholder/linux/apps/app2/config.zap b/examples/placeholder/linux/apps/app2/config.zap
index c821c18390ea66..dbb7121ff8b06f 100644
--- a/examples/placeholder/linux/apps/app2/config.zap
+++ b/examples/placeholder/linux/apps/app2/config.zap
@@ -11877,8 +11877,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "server",
diff --git a/examples/thermostat/nxp/zap/thermostat_matter_thread.matter b/examples/thermostat/nxp/zap/thermostat_matter_thread.matter
index 7ac33292457064..1b0c9ec3bb7ffa 100644
--- a/examples/thermostat/nxp/zap/thermostat_matter_thread.matter
+++ b/examples/thermostat/nxp/zap/thermostat_matter_thread.matter
@@ -178,199 +178,6 @@ cluster Groups = 4 {
fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
}
-/** Attributes and commands for scene configuration and manipulation. */
-provisional cluster Scenes = 5 {
- revision 5;
-
- bitmap CopyModeBitmap : bitmap8 {
- kCopyAllScenes = 0x1;
- }
-
- bitmap Feature : bitmap32 {
- kSceneNames = 0x1;
- kExplicit = 0x2;
- kTableSize = 0x4;
- kFabricScenes = 0x8;
- }
-
- bitmap NameSupportBitmap : bitmap8 {
- kSceneNames = 0x80;
- }
-
- struct AttributeValuePair {
- attrib_id attributeID = 0;
- int32u attributeValue = 1;
- }
-
- struct ExtensionFieldSet {
- cluster_id clusterID = 0;
- AttributeValuePair attributeValueList[] = 1;
- }
-
- fabric_scoped struct SceneInfoStruct {
- int8u sceneCount = 0;
- fabric_sensitive int8u currentScene = 1;
- fabric_sensitive group_id currentGroup = 2;
- fabric_sensitive boolean sceneValid = 3;
- int8u remainingCapacity = 4;
- fabric_idx fabricIndex = 254;
- }
-
- readonly attribute optional int8u sceneCount = 0;
- readonly attribute optional int8u currentScene = 1;
- readonly attribute optional group_id currentGroup = 2;
- readonly attribute optional boolean sceneValid = 3;
- readonly attribute NameSupportBitmap nameSupport = 4;
- readonly attribute optional nullable node_id lastConfiguredBy = 5;
- readonly attribute int16u sceneTableSize = 6;
- readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
- readonly attribute command_id generatedCommandList[] = 65528;
- readonly attribute command_id acceptedCommandList[] = 65529;
- readonly attribute event_id eventList[] = 65530;
- readonly attribute attrib_id attributeList[] = 65531;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct AddSceneResponse = 0 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct ViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct ViewSceneResponse = 1 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct RemoveSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct RemoveSceneResponse = 2 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RemoveAllScenesRequest {
- group_id groupID = 0;
- }
-
- response struct RemoveAllScenesResponse = 3 {
- status status = 0;
- group_id groupID = 1;
- }
-
- request struct StoreSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct StoreSceneResponse = 4 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RecallSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- optional nullable int16u transitionTime = 2;
- }
-
- request struct GetSceneMembershipRequest {
- group_id groupID = 0;
- }
-
- response struct GetSceneMembershipResponse = 6 {
- status status = 0;
- nullable int8u capacity = 1;
- group_id groupID = 2;
- optional int8u sceneList[] = 3;
- }
-
- request struct EnhancedAddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct EnhancedAddSceneResponse = 64 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct EnhancedViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct EnhancedViewSceneResponse = 65 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct CopySceneRequest {
- CopyModeBitmap mode = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- group_id groupIdentifierTo = 3;
- int8u sceneIdentifierTo = 4;
- }
-
- response struct CopySceneResponse = 66 {
- status status = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- }
-
- /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
- fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
- /** Retrieves the requested scene entry from its Scene table. */
- fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
- /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
- /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
- /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
- fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
- /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
- fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
- /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
- fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
- /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
- fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
- /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
- fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
- /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
-}
-
/** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */
cluster Descriptor = 29 {
revision 2;
@@ -1918,6 +1725,199 @@ cluster UserLabel = 65 {
readonly attribute int16u clusterRevision = 65533;
}
+/** Attributes and commands for scene configuration and manipulation. */
+provisional cluster ScenesManagement = 98 {
+ revision 5;
+
+ bitmap CopyModeBitmap : bitmap8 {
+ kCopyAllScenes = 0x1;
+ }
+
+ bitmap Feature : bitmap32 {
+ kSceneNames = 0x1;
+ kExplicit = 0x2;
+ kTableSize = 0x4;
+ kFabricScenes = 0x8;
+ }
+
+ bitmap NameSupportBitmap : bitmap8 {
+ kSceneNames = 0x80;
+ }
+
+ struct AttributeValuePair {
+ attrib_id attributeID = 0;
+ int32u attributeValue = 1;
+ }
+
+ struct ExtensionFieldSet {
+ cluster_id clusterID = 0;
+ AttributeValuePair attributeValueList[] = 1;
+ }
+
+ fabric_scoped struct SceneInfoStruct {
+ int8u sceneCount = 0;
+ fabric_sensitive int8u currentScene = 1;
+ fabric_sensitive group_id currentGroup = 2;
+ fabric_sensitive boolean sceneValid = 3;
+ int8u remainingCapacity = 4;
+ fabric_idx fabricIndex = 254;
+ }
+
+ readonly attribute optional int8u sceneCount = 0;
+ readonly attribute optional int8u currentScene = 1;
+ readonly attribute optional group_id currentGroup = 2;
+ readonly attribute optional boolean sceneValid = 3;
+ readonly attribute NameSupportBitmap nameSupport = 4;
+ readonly attribute optional nullable node_id lastConfiguredBy = 5;
+ readonly attribute int16u sceneTableSize = 6;
+ readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
+ readonly attribute command_id generatedCommandList[] = 65528;
+ readonly attribute command_id acceptedCommandList[] = 65529;
+ readonly attribute event_id eventList[] = 65530;
+ readonly attribute attrib_id attributeList[] = 65531;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct AddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct AddSceneResponse = 0 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct ViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct ViewSceneResponse = 1 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct RemoveSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct RemoveSceneResponse = 2 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RemoveAllScenesRequest {
+ group_id groupID = 0;
+ }
+
+ response struct RemoveAllScenesResponse = 3 {
+ status status = 0;
+ group_id groupID = 1;
+ }
+
+ request struct StoreSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct StoreSceneResponse = 4 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RecallSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ optional nullable int16u transitionTime = 2;
+ }
+
+ request struct GetSceneMembershipRequest {
+ group_id groupID = 0;
+ }
+
+ response struct GetSceneMembershipResponse = 6 {
+ status status = 0;
+ nullable int8u capacity = 1;
+ group_id groupID = 2;
+ optional int8u sceneList[] = 3;
+ }
+
+ request struct EnhancedAddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct EnhancedAddSceneResponse = 64 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct EnhancedViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct EnhancedViewSceneResponse = 65 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct CopySceneRequest {
+ CopyModeBitmap mode = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ group_id groupIdentifierTo = 3;
+ int8u sceneIdentifierTo = 4;
+ }
+
+ response struct CopySceneResponse = 66 {
+ status status = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ }
+
+ /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
+ fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
+ /** Retrieves the requested scene entry from its Scene table. */
+ fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
+ /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
+ /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
+ /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
+ fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
+ /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
+ fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
+ /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
+ fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
+ /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
+ fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
+ /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
+ fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
+ /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
+ fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
+}
+
/** An interface for configuring and controlling the functionality of a thermostat. */
cluster Thermostat = 513 {
revision 6;
@@ -2602,28 +2602,6 @@ endpoint 1 {
handle command AddGroupIfIdentifying;
}
- server cluster Scenes {
- ram attribute nameSupport;
- ram attribute sceneTableSize;
- callback attribute fabricSceneInfo;
- ram attribute featureMap default = 15;
- ram attribute clusterRevision default = 4;
-
- handle command AddScene;
- handle command AddSceneResponse;
- handle command ViewScene;
- handle command ViewSceneResponse;
- handle command RemoveScene;
- handle command RemoveSceneResponse;
- handle command RemoveAllScenes;
- handle command RemoveAllScenesResponse;
- handle command StoreScene;
- handle command StoreSceneResponse;
- handle command RecallScene;
- handle command GetSceneMembership;
- handle command GetSceneMembershipResponse;
- }
-
server cluster Descriptor {
callback attribute deviceTypeList;
callback attribute serverList;
@@ -2673,6 +2651,28 @@ endpoint 1 {
ram attribute clusterRevision default = 1;
}
+ server cluster ScenesManagement {
+ ram attribute nameSupport;
+ ram attribute sceneTableSize;
+ callback attribute fabricSceneInfo;
+ ram attribute featureMap default = 15;
+ ram attribute clusterRevision default = 4;
+
+ handle command AddScene;
+ handle command AddSceneResponse;
+ handle command ViewScene;
+ handle command ViewSceneResponse;
+ handle command RemoveScene;
+ handle command RemoveSceneResponse;
+ handle command RemoveAllScenes;
+ handle command RemoveAllScenesResponse;
+ handle command StoreScene;
+ handle command StoreSceneResponse;
+ handle command RecallScene;
+ handle command GetSceneMembership;
+ handle command GetSceneMembershipResponse;
+ }
+
server cluster Thermostat {
ram attribute localTemperature;
ram attribute absMinHeatSetpointLimit default = 700;
diff --git a/examples/thermostat/nxp/zap/thermostat_matter_thread.zap b/examples/thermostat/nxp/zap/thermostat_matter_thread.zap
index 52062d89c75a08..22977f4ee367e8 100644
--- a/examples/thermostat/nxp/zap/thermostat_matter_thread.zap
+++ b/examples/thermostat/nxp/zap/thermostat_matter_thread.zap
@@ -3770,8 +3770,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "server",
diff --git a/examples/thermostat/nxp/zap/thermostat_matter_wifi.matter b/examples/thermostat/nxp/zap/thermostat_matter_wifi.matter
index a3b80ba9c59146..b89f05061ce2bf 100644
--- a/examples/thermostat/nxp/zap/thermostat_matter_wifi.matter
+++ b/examples/thermostat/nxp/zap/thermostat_matter_wifi.matter
@@ -178,199 +178,6 @@ cluster Groups = 4 {
fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
}
-/** Attributes and commands for scene configuration and manipulation. */
-provisional cluster Scenes = 5 {
- revision 5;
-
- bitmap CopyModeBitmap : bitmap8 {
- kCopyAllScenes = 0x1;
- }
-
- bitmap Feature : bitmap32 {
- kSceneNames = 0x1;
- kExplicit = 0x2;
- kTableSize = 0x4;
- kFabricScenes = 0x8;
- }
-
- bitmap NameSupportBitmap : bitmap8 {
- kSceneNames = 0x80;
- }
-
- struct AttributeValuePair {
- attrib_id attributeID = 0;
- int32u attributeValue = 1;
- }
-
- struct ExtensionFieldSet {
- cluster_id clusterID = 0;
- AttributeValuePair attributeValueList[] = 1;
- }
-
- fabric_scoped struct SceneInfoStruct {
- int8u sceneCount = 0;
- fabric_sensitive int8u currentScene = 1;
- fabric_sensitive group_id currentGroup = 2;
- fabric_sensitive boolean sceneValid = 3;
- int8u remainingCapacity = 4;
- fabric_idx fabricIndex = 254;
- }
-
- readonly attribute optional int8u sceneCount = 0;
- readonly attribute optional int8u currentScene = 1;
- readonly attribute optional group_id currentGroup = 2;
- readonly attribute optional boolean sceneValid = 3;
- readonly attribute NameSupportBitmap nameSupport = 4;
- readonly attribute optional nullable node_id lastConfiguredBy = 5;
- readonly attribute int16u sceneTableSize = 6;
- readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
- readonly attribute command_id generatedCommandList[] = 65528;
- readonly attribute command_id acceptedCommandList[] = 65529;
- readonly attribute event_id eventList[] = 65530;
- readonly attribute attrib_id attributeList[] = 65531;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct AddSceneResponse = 0 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct ViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct ViewSceneResponse = 1 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct RemoveSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct RemoveSceneResponse = 2 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RemoveAllScenesRequest {
- group_id groupID = 0;
- }
-
- response struct RemoveAllScenesResponse = 3 {
- status status = 0;
- group_id groupID = 1;
- }
-
- request struct StoreSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct StoreSceneResponse = 4 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RecallSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- optional nullable int16u transitionTime = 2;
- }
-
- request struct GetSceneMembershipRequest {
- group_id groupID = 0;
- }
-
- response struct GetSceneMembershipResponse = 6 {
- status status = 0;
- nullable int8u capacity = 1;
- group_id groupID = 2;
- optional int8u sceneList[] = 3;
- }
-
- request struct EnhancedAddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct EnhancedAddSceneResponse = 64 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct EnhancedViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct EnhancedViewSceneResponse = 65 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct CopySceneRequest {
- CopyModeBitmap mode = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- group_id groupIdentifierTo = 3;
- int8u sceneIdentifierTo = 4;
- }
-
- response struct CopySceneResponse = 66 {
- status status = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- }
-
- /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
- fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
- /** Retrieves the requested scene entry from its Scene table. */
- fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
- /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
- /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
- /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
- fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
- /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
- fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
- /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
- fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
- /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
- fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
- /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
- fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
- /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
-}
-
/** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */
cluster Descriptor = 29 {
revision 2;
@@ -1829,6 +1636,199 @@ cluster UserLabel = 65 {
readonly attribute int16u clusterRevision = 65533;
}
+/** Attributes and commands for scene configuration and manipulation. */
+provisional cluster ScenesManagement = 98 {
+ revision 5;
+
+ bitmap CopyModeBitmap : bitmap8 {
+ kCopyAllScenes = 0x1;
+ }
+
+ bitmap Feature : bitmap32 {
+ kSceneNames = 0x1;
+ kExplicit = 0x2;
+ kTableSize = 0x4;
+ kFabricScenes = 0x8;
+ }
+
+ bitmap NameSupportBitmap : bitmap8 {
+ kSceneNames = 0x80;
+ }
+
+ struct AttributeValuePair {
+ attrib_id attributeID = 0;
+ int32u attributeValue = 1;
+ }
+
+ struct ExtensionFieldSet {
+ cluster_id clusterID = 0;
+ AttributeValuePair attributeValueList[] = 1;
+ }
+
+ fabric_scoped struct SceneInfoStruct {
+ int8u sceneCount = 0;
+ fabric_sensitive int8u currentScene = 1;
+ fabric_sensitive group_id currentGroup = 2;
+ fabric_sensitive boolean sceneValid = 3;
+ int8u remainingCapacity = 4;
+ fabric_idx fabricIndex = 254;
+ }
+
+ readonly attribute optional int8u sceneCount = 0;
+ readonly attribute optional int8u currentScene = 1;
+ readonly attribute optional group_id currentGroup = 2;
+ readonly attribute optional boolean sceneValid = 3;
+ readonly attribute NameSupportBitmap nameSupport = 4;
+ readonly attribute optional nullable node_id lastConfiguredBy = 5;
+ readonly attribute int16u sceneTableSize = 6;
+ readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
+ readonly attribute command_id generatedCommandList[] = 65528;
+ readonly attribute command_id acceptedCommandList[] = 65529;
+ readonly attribute event_id eventList[] = 65530;
+ readonly attribute attrib_id attributeList[] = 65531;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct AddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct AddSceneResponse = 0 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct ViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct ViewSceneResponse = 1 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct RemoveSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct RemoveSceneResponse = 2 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RemoveAllScenesRequest {
+ group_id groupID = 0;
+ }
+
+ response struct RemoveAllScenesResponse = 3 {
+ status status = 0;
+ group_id groupID = 1;
+ }
+
+ request struct StoreSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct StoreSceneResponse = 4 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RecallSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ optional nullable int16u transitionTime = 2;
+ }
+
+ request struct GetSceneMembershipRequest {
+ group_id groupID = 0;
+ }
+
+ response struct GetSceneMembershipResponse = 6 {
+ status status = 0;
+ nullable int8u capacity = 1;
+ group_id groupID = 2;
+ optional int8u sceneList[] = 3;
+ }
+
+ request struct EnhancedAddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct EnhancedAddSceneResponse = 64 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct EnhancedViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct EnhancedViewSceneResponse = 65 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct CopySceneRequest {
+ CopyModeBitmap mode = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ group_id groupIdentifierTo = 3;
+ int8u sceneIdentifierTo = 4;
+ }
+
+ response struct CopySceneResponse = 66 {
+ status status = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ }
+
+ /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
+ fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
+ /** Retrieves the requested scene entry from its Scene table. */
+ fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
+ /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
+ /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
+ /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
+ fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
+ /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
+ fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
+ /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
+ fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
+ /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
+ fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
+ /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
+ fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
+ /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
+ fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
+}
+
/** An interface for configuring and controlling the functionality of a thermostat. */
cluster Thermostat = 513 {
revision 6;
@@ -2458,28 +2458,6 @@ endpoint 1 {
handle command AddGroupIfIdentifying;
}
- server cluster Scenes {
- ram attribute nameSupport;
- ram attribute sceneTableSize;
- callback attribute fabricSceneInfo;
- ram attribute featureMap default = 15;
- ram attribute clusterRevision default = 4;
-
- handle command AddScene;
- handle command AddSceneResponse;
- handle command ViewScene;
- handle command ViewSceneResponse;
- handle command RemoveScene;
- handle command RemoveSceneResponse;
- handle command RemoveAllScenes;
- handle command RemoveAllScenesResponse;
- handle command StoreScene;
- handle command StoreSceneResponse;
- handle command RecallScene;
- handle command GetSceneMembership;
- handle command GetSceneMembershipResponse;
- }
-
server cluster Descriptor {
callback attribute deviceTypeList;
callback attribute serverList;
@@ -2529,6 +2507,28 @@ endpoint 1 {
ram attribute clusterRevision default = 1;
}
+ server cluster ScenesManagement {
+ ram attribute nameSupport;
+ ram attribute sceneTableSize;
+ callback attribute fabricSceneInfo;
+ ram attribute featureMap default = 15;
+ ram attribute clusterRevision default = 4;
+
+ handle command AddScene;
+ handle command AddSceneResponse;
+ handle command ViewScene;
+ handle command ViewSceneResponse;
+ handle command RemoveScene;
+ handle command RemoveSceneResponse;
+ handle command RemoveAllScenes;
+ handle command RemoveAllScenesResponse;
+ handle command StoreScene;
+ handle command StoreSceneResponse;
+ handle command RecallScene;
+ handle command GetSceneMembership;
+ handle command GetSceneMembershipResponse;
+ }
+
server cluster Thermostat {
ram attribute localTemperature;
ram attribute absMinHeatSetpointLimit default = 700;
diff --git a/examples/thermostat/nxp/zap/thermostat_matter_wifi.zap b/examples/thermostat/nxp/zap/thermostat_matter_wifi.zap
index 035d087d09cab1..6c4c7748134b77 100644
--- a/examples/thermostat/nxp/zap/thermostat_matter_wifi.zap
+++ b/examples/thermostat/nxp/zap/thermostat_matter_wifi.zap
@@ -2912,8 +2912,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "server",
diff --git a/examples/tv-app/android/java/src/com/matter/tv/server/tvapp/Clusters.java b/examples/tv-app/android/java/src/com/matter/tv/server/tvapp/Clusters.java
index 5322af22c97ae5..d699ca68ea6365 100644
--- a/examples/tv-app/android/java/src/com/matter/tv/server/tvapp/Clusters.java
+++ b/examples/tv-app/android/java/src/com/matter/tv/server/tvapp/Clusters.java
@@ -22,7 +22,7 @@ public class Clusters {
public static final long ClusterId_DeviceTemperatureConfiguration = 0x00000002;
public static final long ClusterId_Identify = 0x00000003;
public static final long ClusterId_Groups = 0x00000004;
- public static final long ClusterId_Scenes = 0x00000005;
+ public static final long ClusterId_ScenesManagement = 0x00000062;
public static final long ClusterId_OnOff = 0x00000006;
public static final long ClusterId_OnOffSwitchConfiguration = 0x00000007;
public static final long ClusterId_LevelControl = 0x00000008;
diff --git a/examples/virtual-device-app/android/java/src/com/matter/virtual/device/app/Clusters.java b/examples/virtual-device-app/android/java/src/com/matter/virtual/device/app/Clusters.java
index 47e1dd0f5192a4..a124773e69b81f 100644
--- a/examples/virtual-device-app/android/java/src/com/matter/virtual/device/app/Clusters.java
+++ b/examples/virtual-device-app/android/java/src/com/matter/virtual/device/app/Clusters.java
@@ -22,7 +22,7 @@ public class Clusters {
public static final long ClusterId_DeviceTemperatureConfiguration = 0x00000002;
public static final long ClusterId_Identify = 0x00000003;
public static final long ClusterId_Groups = 0x00000004;
- public static final long ClusterId_Scenes = 0x00000005;
+ public static final long ClusterId_ScenesManagement = 0x00000062;
public static final long ClusterId_OnOff = 0x00000006;
public static final long ClusterId_OnOffSwitchConfiguration = 0x00000007;
public static final long ClusterId_LevelControl = 0x00000008;
diff --git a/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter b/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter
index f2b4890912d2b7..d1379a9277b759 100644
--- a/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter
+++ b/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter
@@ -128,199 +128,6 @@ cluster Groups = 4 {
fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
}
-/** Attributes and commands for scene configuration and manipulation. */
-provisional cluster Scenes = 5 {
- revision 5;
-
- bitmap CopyModeBitmap : bitmap8 {
- kCopyAllScenes = 0x1;
- }
-
- bitmap Feature : bitmap32 {
- kSceneNames = 0x1;
- kExplicit = 0x2;
- kTableSize = 0x4;
- kFabricScenes = 0x8;
- }
-
- bitmap NameSupportBitmap : bitmap8 {
- kSceneNames = 0x80;
- }
-
- struct AttributeValuePair {
- attrib_id attributeID = 0;
- int32u attributeValue = 1;
- }
-
- struct ExtensionFieldSet {
- cluster_id clusterID = 0;
- AttributeValuePair attributeValueList[] = 1;
- }
-
- fabric_scoped struct SceneInfoStruct {
- int8u sceneCount = 0;
- fabric_sensitive int8u currentScene = 1;
- fabric_sensitive group_id currentGroup = 2;
- fabric_sensitive boolean sceneValid = 3;
- int8u remainingCapacity = 4;
- fabric_idx fabricIndex = 254;
- }
-
- readonly attribute optional int8u sceneCount = 0;
- readonly attribute optional int8u currentScene = 1;
- readonly attribute optional group_id currentGroup = 2;
- readonly attribute optional boolean sceneValid = 3;
- readonly attribute NameSupportBitmap nameSupport = 4;
- readonly attribute optional nullable node_id lastConfiguredBy = 5;
- readonly attribute int16u sceneTableSize = 6;
- readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
- readonly attribute command_id generatedCommandList[] = 65528;
- readonly attribute command_id acceptedCommandList[] = 65529;
- readonly attribute event_id eventList[] = 65530;
- readonly attribute attrib_id attributeList[] = 65531;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct AddSceneResponse = 0 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct ViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct ViewSceneResponse = 1 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct RemoveSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct RemoveSceneResponse = 2 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RemoveAllScenesRequest {
- group_id groupID = 0;
- }
-
- response struct RemoveAllScenesResponse = 3 {
- status status = 0;
- group_id groupID = 1;
- }
-
- request struct StoreSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct StoreSceneResponse = 4 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RecallSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- optional nullable int16u transitionTime = 2;
- }
-
- request struct GetSceneMembershipRequest {
- group_id groupID = 0;
- }
-
- response struct GetSceneMembershipResponse = 6 {
- status status = 0;
- nullable int8u capacity = 1;
- group_id groupID = 2;
- optional int8u sceneList[] = 3;
- }
-
- request struct EnhancedAddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct EnhancedAddSceneResponse = 64 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct EnhancedViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct EnhancedViewSceneResponse = 65 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct CopySceneRequest {
- CopyModeBitmap mode = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- group_id groupIdentifierTo = 3;
- int8u sceneIdentifierTo = 4;
- }
-
- response struct CopySceneResponse = 66 {
- status status = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- }
-
- /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
- fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
- /** Retrieves the requested scene entry from its Scene table. */
- fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
- /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
- /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
- /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
- fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
- /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
- fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
- /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
- fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
- /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
- fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
- /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
- fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
- /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
-}
-
/** Attributes and commands for switching devices between 'On' and 'Off' states. */
cluster OnOff = 6 {
revision 6;
@@ -2065,6 +1872,199 @@ cluster UserLabel = 65 {
readonly attribute int16u clusterRevision = 65533;
}
+/** Attributes and commands for scene configuration and manipulation. */
+provisional cluster ScenesManagement = 98 {
+ revision 5;
+
+ bitmap CopyModeBitmap : bitmap8 {
+ kCopyAllScenes = 0x1;
+ }
+
+ bitmap Feature : bitmap32 {
+ kSceneNames = 0x1;
+ kExplicit = 0x2;
+ kTableSize = 0x4;
+ kFabricScenes = 0x8;
+ }
+
+ bitmap NameSupportBitmap : bitmap8 {
+ kSceneNames = 0x80;
+ }
+
+ struct AttributeValuePair {
+ attrib_id attributeID = 0;
+ int32u attributeValue = 1;
+ }
+
+ struct ExtensionFieldSet {
+ cluster_id clusterID = 0;
+ AttributeValuePair attributeValueList[] = 1;
+ }
+
+ fabric_scoped struct SceneInfoStruct {
+ int8u sceneCount = 0;
+ fabric_sensitive int8u currentScene = 1;
+ fabric_sensitive group_id currentGroup = 2;
+ fabric_sensitive boolean sceneValid = 3;
+ int8u remainingCapacity = 4;
+ fabric_idx fabricIndex = 254;
+ }
+
+ readonly attribute optional int8u sceneCount = 0;
+ readonly attribute optional int8u currentScene = 1;
+ readonly attribute optional group_id currentGroup = 2;
+ readonly attribute optional boolean sceneValid = 3;
+ readonly attribute NameSupportBitmap nameSupport = 4;
+ readonly attribute optional nullable node_id lastConfiguredBy = 5;
+ readonly attribute int16u sceneTableSize = 6;
+ readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
+ readonly attribute command_id generatedCommandList[] = 65528;
+ readonly attribute command_id acceptedCommandList[] = 65529;
+ readonly attribute event_id eventList[] = 65530;
+ readonly attribute attrib_id attributeList[] = 65531;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct AddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct AddSceneResponse = 0 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct ViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct ViewSceneResponse = 1 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct RemoveSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct RemoveSceneResponse = 2 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RemoveAllScenesRequest {
+ group_id groupID = 0;
+ }
+
+ response struct RemoveAllScenesResponse = 3 {
+ status status = 0;
+ group_id groupID = 1;
+ }
+
+ request struct StoreSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct StoreSceneResponse = 4 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RecallSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ optional nullable int16u transitionTime = 2;
+ }
+
+ request struct GetSceneMembershipRequest {
+ group_id groupID = 0;
+ }
+
+ response struct GetSceneMembershipResponse = 6 {
+ status status = 0;
+ nullable int8u capacity = 1;
+ group_id groupID = 2;
+ optional int8u sceneList[] = 3;
+ }
+
+ request struct EnhancedAddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct EnhancedAddSceneResponse = 64 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct EnhancedViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct EnhancedViewSceneResponse = 65 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct CopySceneRequest {
+ CopyModeBitmap mode = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ group_id groupIdentifierTo = 3;
+ int8u sceneIdentifierTo = 4;
+ }
+
+ response struct CopySceneResponse = 66 {
+ status status = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ }
+
+ /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
+ fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
+ /** Retrieves the requested scene entry from its Scene table. */
+ fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
+ /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
+ /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
+ /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
+ fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
+ /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
+ fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
+ /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
+ fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
+ /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
+ fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
+ /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
+ fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
+ /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
+ fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
+}
+
/** An interface to a generic way to secure a door */
cluster DoorLock = 257 {
revision 7;
@@ -3411,32 +3411,6 @@ endpoint 1 {
handle command AddGroupIfIdentifying;
}
- server cluster Scenes {
- ram attribute nameSupport;
- ram attribute sceneTableSize default = 16;
- callback attribute fabricSceneInfo;
- callback attribute generatedCommandList;
- callback attribute acceptedCommandList;
- callback attribute eventList;
- callback attribute attributeList;
- ram attribute featureMap default = 15;
- ram attribute clusterRevision default = 5;
-
- handle command AddScene;
- handle command AddSceneResponse;
- handle command ViewScene;
- handle command ViewSceneResponse;
- handle command RemoveScene;
- handle command RemoveSceneResponse;
- handle command RemoveAllScenes;
- handle command RemoveAllScenesResponse;
- handle command StoreScene;
- handle command StoreSceneResponse;
- handle command RecallScene;
- handle command GetSceneMembership;
- handle command GetSceneMembershipResponse;
- }
-
server cluster OnOff {
ram attribute onOff default = 0x00;
ram attribute globalSceneControl default = 1;
@@ -3480,6 +3454,32 @@ endpoint 1 {
ram attribute clusterRevision default = 2;
}
+ server cluster ScenesManagement {
+ ram attribute nameSupport;
+ ram attribute sceneTableSize default = 16;
+ callback attribute fabricSceneInfo;
+ callback attribute generatedCommandList;
+ callback attribute acceptedCommandList;
+ callback attribute eventList;
+ callback attribute attributeList;
+ ram attribute featureMap default = 15;
+ ram attribute clusterRevision default = 5;
+
+ handle command AddScene;
+ handle command AddSceneResponse;
+ handle command ViewScene;
+ handle command ViewSceneResponse;
+ handle command RemoveScene;
+ handle command RemoveSceneResponse;
+ handle command RemoveAllScenes;
+ handle command RemoveAllScenesResponse;
+ handle command StoreScene;
+ handle command StoreSceneResponse;
+ handle command RecallScene;
+ handle command GetSceneMembership;
+ handle command GetSceneMembershipResponse;
+ }
+
server cluster DoorLock {
emits event DoorLockAlarm;
emits event LockOperation;
diff --git a/examples/virtual-device-app/virtual-device-common/virtual-device-app.zap b/examples/virtual-device-app/virtual-device-common/virtual-device-app.zap
index c386e4c4becfe7..05b90acdc3dee7 100644
--- a/examples/virtual-device-app/virtual-device-common/virtual-device-app.zap
+++ b/examples/virtual-device-app/virtual-device-common/virtual-device-app.zap
@@ -4374,8 +4374,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "server",
diff --git a/scripts/py_matter_idl/matter_idl/tests/inputs/large_all_clusters_app.matter b/scripts/py_matter_idl/matter_idl/tests/inputs/large_all_clusters_app.matter
index 6c1204d2f42b13..62dd40060436de 100644
--- a/scripts/py_matter_idl/matter_idl/tests/inputs/large_all_clusters_app.matter
+++ b/scripts/py_matter_idl/matter_idl/tests/inputs/large_all_clusters_app.matter
@@ -102,7 +102,7 @@ server cluster Groups = 4 {
fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
}
-server cluster Scenes = 5 {
+server cluster MatterScenes = 98 {
bitmap ScenesCopyMode : BITMAP8 {
kCopyAllScenes = 0x1;
}
@@ -4221,7 +4221,7 @@ endpoint 1 {
ram attribute clusterRevision default = 4;
}
- server cluster Scenes {
+ server cluster MatterScenes {
ram attribute sceneCount;
ram attribute currentScene;
ram attribute currentGroup;
diff --git a/scripts/py_matter_idl/matter_idl/tests/outputs/large_all_clusters_app/cpp-app/PluginApplicationCallbacks.h b/scripts/py_matter_idl/matter_idl/tests/outputs/large_all_clusters_app/cpp-app/PluginApplicationCallbacks.h
index 713ef6ef5ab70e..67bd61c9519d3c 100644
--- a/scripts/py_matter_idl/matter_idl/tests/outputs/large_all_clusters_app/cpp-app/PluginApplicationCallbacks.h
+++ b/scripts/py_matter_idl/matter_idl/tests/outputs/large_all_clusters_app/cpp-app/PluginApplicationCallbacks.h
@@ -33,6 +33,7 @@ void MatterKeypadInputPluginServerInitCallback();
void MatterLevelControlPluginServerInitCallback();
void MatterLocalizationConfigurationPluginServerInitCallback();
void MatterLowPowerPluginServerInitCallback();
+void MatterMatterScenesPluginServerInitCallback();
void MatterMediaInputPluginServerInitCallback();
void MatterMediaPlaybackPluginServerInitCallback();
void MatterModeSelectPluginServerInitCallback();
@@ -47,7 +48,6 @@ void MatterPowerSourceConfigurationPluginServerInitCallback();
void MatterPressureMeasurementPluginServerInitCallback();
void MatterPumpConfigurationAndControlPluginServerInitCallback();
void MatterRelativeHumidityMeasurementPluginServerInitCallback();
-void MatterScenesPluginServerInitCallback();
void MatterSoftwareDiagnosticsPluginServerInitCallback();
void MatterSwitchPluginServerInitCallback();
void MatterTargetNavigatorPluginServerInitCallback();
@@ -98,6 +98,7 @@ void MatterWindowCoveringPluginServerInitCallback();
MatterLevelControlPluginServerInitCallback(); \
MatterLocalizationConfigurationPluginServerInitCallback(); \
MatterLowPowerPluginServerInitCallback(); \
+ MatterMatterScenesPluginServerInitCallback(); \
MatterMediaInputPluginServerInitCallback(); \
MatterMediaPlaybackPluginServerInitCallback(); \
MatterModeSelectPluginServerInitCallback(); \
@@ -112,7 +113,6 @@ void MatterWindowCoveringPluginServerInitCallback();
MatterPressureMeasurementPluginServerInitCallback(); \
MatterPumpConfigurationAndControlPluginServerInitCallback(); \
MatterRelativeHumidityMeasurementPluginServerInitCallback(); \
- MatterScenesPluginServerInitCallback(); \
MatterSoftwareDiagnosticsPluginServerInitCallback(); \
MatterSwitchPluginServerInitCallback(); \
MatterTargetNavigatorPluginServerInitCallback(); \
diff --git a/scripts/py_matter_idl/matter_idl/tests/outputs/large_all_clusters_app/cpp-app/callback-stub.cpp b/scripts/py_matter_idl/matter_idl/tests/outputs/large_all_clusters_app/cpp-app/callback-stub.cpp
index f5a6cb85d0b253..6b8e07b967cabe 100644
--- a/scripts/py_matter_idl/matter_idl/tests/outputs/large_all_clusters_app/cpp-app/callback-stub.cpp
+++ b/scripts/py_matter_idl/matter_idl/tests/outputs/large_all_clusters_app/cpp-app/callback-stub.cpp
@@ -112,6 +112,9 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
case app::Clusters::LowPower::Id:
emberAfLowPowerClusterInitCallback(endpoint);
break;
+ case app::Clusters::MatterScenes::Id:
+ emberAfMatterScenesClusterInitCallback(endpoint);
+ break;
case app::Clusters::MediaInput::Id:
emberAfMediaInputClusterInitCallback(endpoint);
break;
@@ -154,9 +157,6 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
case app::Clusters::RelativeHumidityMeasurement::Id:
emberAfRelativeHumidityMeasurementClusterInitCallback(endpoint);
break;
- case app::Clusters::Scenes::Id:
- emberAfScenesClusterInitCallback(endpoint);
- break;
case app::Clusters::SoftwareDiagnostics::Id:
emberAfSoftwareDiagnosticsClusterInitCallback(endpoint);
break;
@@ -374,6 +374,11 @@ void __attribute__((weak)) emberAfLowPowerClusterInitCallback(EndpointId endpoin
// To prevent warning
(void) endpoint;
}
+void __attribute__((weak)) emberAfMatterScenesClusterInitCallback(EndpointId endpoint)
+{
+ // To prevent warning
+ (void) endpoint;
+}
void __attribute__((weak)) emberAfMediaInputClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
@@ -444,11 +449,6 @@ void __attribute__((weak)) emberAfRelativeHumidityMeasurementClusterInitCallback
// To prevent warning
(void) endpoint;
}
-void __attribute__((weak)) emberAfScenesClusterInitCallback(EndpointId endpoint)
-{
- // To prevent warning
- (void) endpoint;
-}
void __attribute__((weak)) emberAfSoftwareDiagnosticsClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
diff --git a/scripts/tools/zap/tests/inputs/all-clusters-app.zap b/scripts/tools/zap/tests/inputs/all-clusters-app.zap
index 65cf99d5b0f510..5629d05810c8a6 100644
--- a/scripts/tools/zap/tests/inputs/all-clusters-app.zap
+++ b/scripts/tools/zap/tests/inputs/all-clusters-app.zap
@@ -5973,8 +5973,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "server",
@@ -15220,8 +15220,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "server",
@@ -16799,4 +16799,4 @@
}
],
"log": []
-}
\ No newline at end of file
+}
diff --git a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/access.h b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/access.h
index 837dc58d560ca0..82dab06aeeae0f 100644
--- a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/access.h
+++ b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/access.h
@@ -393,10 +393,6 @@
0x00000004, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \
0x00000004, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \
0x00000004, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \
- 0x00000005, /* Cluster: Scenes, Command: AddScene, Privilege: manage */ \
- 0x00000005, /* Cluster: Scenes, Command: RemoveScene, Privilege: manage */ \
- 0x00000005, /* Cluster: Scenes, Command: RemoveAllScenes, Privilege: manage */ \
- 0x00000005, /* Cluster: Scenes, Command: StoreScene, Privilege: manage */ \
0x00000030, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
0x00000030, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
0x00000030, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
@@ -425,6 +421,10 @@
0x0000003F, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \
0x0000003F, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \
0x0000003F, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \
+ 0x00000062, /* Cluster: Scenes Management, Command: AddScene, Privilege: manage */ \
+ 0x00000062, /* Cluster: Scenes Management, Command: RemoveScene, Privilege: manage */ \
+ 0x00000062, /* Cluster: Scenes Management, Command: RemoveAllScenes, Privilege: manage */ \
+ 0x00000062, /* Cluster: Scenes Management, Command: StoreScene, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Command: SetWeekDaySchedule, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: GetWeekDaySchedule, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: ClearWeekDaySchedule, Privilege: administer */ \
@@ -449,10 +449,6 @@
0x00000003, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \
0x00000004, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \
0x00000005, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \
- 0x00000000, /* Cluster: Scenes, Command: AddScene, Privilege: manage */ \
- 0x00000002, /* Cluster: Scenes, Command: RemoveScene, Privilege: manage */ \
- 0x00000003, /* Cluster: Scenes, Command: RemoveAllScenes, Privilege: manage */ \
- 0x00000004, /* Cluster: Scenes, Command: StoreScene, Privilege: manage */ \
0x00000000, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
0x00000002, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
0x00000004, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
@@ -481,6 +477,10 @@
0x00000001, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \
0x00000003, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \
0x00000004, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \
+ 0x00000000, /* Cluster: Scenes Management, Command: AddScene, Privilege: manage */ \
+ 0x00000002, /* Cluster: Scenes Management, Command: RemoveScene, Privilege: manage */ \
+ 0x00000003, /* Cluster: Scenes Management, Command: RemoveAllScenes, Privilege: manage */ \
+ 0x00000004, /* Cluster: Scenes Management, Command: StoreScene, Privilege: manage */ \
0x0000000B, /* Cluster: Door Lock, Command: SetWeekDaySchedule, Privilege: administer */ \
0x0000000C, /* Cluster: Door Lock, Command: GetWeekDaySchedule, Privilege: administer */ \
0x0000000D, /* Cluster: Door Lock, Command: ClearWeekDaySchedule, Privilege: administer */ \
@@ -505,10 +505,6 @@
kMatterAccessPrivilegeManage, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \
kMatterAccessPrivilegeManage, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \
kMatterAccessPrivilegeManage, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \
- kMatterAccessPrivilegeManage, /* Cluster: Scenes, Command: AddScene, Privilege: manage */ \
- kMatterAccessPrivilegeManage, /* Cluster: Scenes, Command: RemoveScene, Privilege: manage */ \
- kMatterAccessPrivilegeManage, /* Cluster: Scenes, Command: RemoveAllScenes, Privilege: manage */ \
- kMatterAccessPrivilegeManage, /* Cluster: Scenes, Command: StoreScene, Privilege: manage */ \
kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
@@ -537,6 +533,10 @@
kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Scenes Management, Command: AddScene, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Scenes Management, Command: RemoveScene, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Scenes Management, Command: RemoveAllScenes, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Scenes Management, Command: StoreScene, Privilege: manage */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Command: SetWeekDaySchedule, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Command: GetWeekDaySchedule, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Command: ClearWeekDaySchedule, Privilege: administer */ \
diff --git a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/endpoint_config.h b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/endpoint_config.h
index c761ccbbcedbca..94dc18ba0e9bd0 100644
--- a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/endpoint_config.h
+++ b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/endpoint_config.h
@@ -749,17 +749,6 @@
{ ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(4), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
- /* Endpoint: 1, Cluster: Scenes (server) */ \
- { ZAP_EMPTY_DEFAULT(), 0x00000000, 1, ZAP_TYPE(INT8U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* SceneCount */ \
- { ZAP_SIMPLE_DEFAULT(0x00), 0x00000001, 1, ZAP_TYPE(INT8U), 0 }, /* CurrentScene */ \
- { ZAP_SIMPLE_DEFAULT(0x0000), 0x00000002, 2, ZAP_TYPE(GROUP_ID), 0 }, /* CurrentGroup */ \
- { ZAP_SIMPLE_DEFAULT(0x00), 0x00000003, 1, ZAP_TYPE(BOOLEAN), 0 }, /* SceneValid */ \
- { ZAP_EMPTY_DEFAULT(), 0x00000004, 1, ZAP_TYPE(BITMAP8), 0 }, /* NameSupport */ \
- { ZAP_SIMPLE_DEFAULT(16), 0x00000006, 2, ZAP_TYPE(INT16U), 0 }, /* SceneTableSize */ \
- { ZAP_EMPTY_DEFAULT(), 0x00000007, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* FabricSceneInfo */ \
- { ZAP_SIMPLE_DEFAULT(15), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
- { ZAP_SIMPLE_DEFAULT(5), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
- \
/* Endpoint: 1, Cluster: On/Off (server) */ \
{ ZAP_SIMPLE_DEFAULT(0x00), 0x00000000, 1, ZAP_TYPE(BOOLEAN), ZAP_ATTRIBUTE_MASK(TOKENIZE) }, /* OnOff */ \
{ ZAP_SIMPLE_DEFAULT(0x01), 0x00004000, 1, ZAP_TYPE(BOOLEAN), 0 }, /* GlobalSceneControl */ \
@@ -882,6 +871,17 @@
{ ZAP_SIMPLE_DEFAULT(1), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(2), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
+ /* Endpoint: 1, Cluster: Scenes Management (server) */ \
+ { ZAP_EMPTY_DEFAULT(), 0x00000000, 1, ZAP_TYPE(INT8U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* SceneCount */ \
+ { ZAP_SIMPLE_DEFAULT(0x00), 0x00000001, 1, ZAP_TYPE(INT8U), 0 }, /* CurrentScene */ \
+ { ZAP_SIMPLE_DEFAULT(0x0000), 0x00000002, 2, ZAP_TYPE(GROUP_ID), 0 }, /* CurrentGroup */ \
+ { ZAP_SIMPLE_DEFAULT(0x00), 0x00000003, 1, ZAP_TYPE(BOOLEAN), 0 }, /* SceneValid */ \
+ { ZAP_EMPTY_DEFAULT(), 0x00000004, 1, ZAP_TYPE(BITMAP8), 0 }, /* NameSupport */ \
+ { ZAP_SIMPLE_DEFAULT(16), 0x00000006, 2, ZAP_TYPE(INT16U), 0 }, /* SceneTableSize */ \
+ { ZAP_EMPTY_DEFAULT(), 0x00000007, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* FabricSceneInfo */ \
+ { ZAP_SIMPLE_DEFAULT(15), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
+ { ZAP_SIMPLE_DEFAULT(5), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
+ \
/* Endpoint: 1, Cluster: Door Lock (server) */ \
{ ZAP_SIMPLE_DEFAULT(2), 0x00000000, 1, ZAP_TYPE(ENUM8), ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* LockState */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000001, 1, ZAP_TYPE(ENUM8), 0 }, /* LockType */ \
@@ -1416,17 +1416,6 @@
{ ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(4), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
- /* Endpoint: 2, Cluster: Scenes (server) */ \
- { ZAP_EMPTY_DEFAULT(), 0x00000000, 1, ZAP_TYPE(INT8U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* SceneCount */ \
- { ZAP_SIMPLE_DEFAULT(0x00), 0x00000001, 1, ZAP_TYPE(INT8U), 0 }, /* CurrentScene */ \
- { ZAP_SIMPLE_DEFAULT(0x0000), 0x00000002, 2, ZAP_TYPE(GROUP_ID), 0 }, /* CurrentGroup */ \
- { ZAP_SIMPLE_DEFAULT(0x00), 0x00000003, 1, ZAP_TYPE(BOOLEAN), 0 }, /* SceneValid */ \
- { ZAP_EMPTY_DEFAULT(), 0x00000004, 1, ZAP_TYPE(BITMAP8), 0 }, /* NameSupport */ \
- { ZAP_SIMPLE_DEFAULT(16), 0x00000006, 2, ZAP_TYPE(INT16U), 0 }, /* SceneTableSize */ \
- { ZAP_EMPTY_DEFAULT(), 0x00000007, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* FabricSceneInfo */ \
- { ZAP_SIMPLE_DEFAULT(15), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
- { ZAP_SIMPLE_DEFAULT(5), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
- \
/* Endpoint: 2, Cluster: On/Off (server) */ \
{ ZAP_SIMPLE_DEFAULT(0x00), 0x00000000, 1, ZAP_TYPE(BOOLEAN), 0 }, /* OnOff */ \
{ ZAP_SIMPLE_DEFAULT(1), 0x00004000, 1, ZAP_TYPE(BOOLEAN), 0 }, /* GlobalSceneControl */ \
@@ -1456,6 +1445,17 @@
{ ZAP_SIMPLE_DEFAULT(2), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(2), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
+ /* Endpoint: 2, Cluster: Scenes Management (server) */ \
+ { ZAP_EMPTY_DEFAULT(), 0x00000000, 1, ZAP_TYPE(INT8U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* SceneCount */ \
+ { ZAP_SIMPLE_DEFAULT(0x00), 0x00000001, 1, ZAP_TYPE(INT8U), 0 }, /* CurrentScene */ \
+ { ZAP_SIMPLE_DEFAULT(0x0000), 0x00000002, 2, ZAP_TYPE(GROUP_ID), 0 }, /* CurrentGroup */ \
+ { ZAP_SIMPLE_DEFAULT(0x00), 0x00000003, 1, ZAP_TYPE(BOOLEAN), 0 }, /* SceneValid */ \
+ { ZAP_EMPTY_DEFAULT(), 0x00000004, 1, ZAP_TYPE(BITMAP8), 0 }, /* NameSupport */ \
+ { ZAP_SIMPLE_DEFAULT(16), 0x00000006, 2, ZAP_TYPE(INT16U), 0 }, /* SceneTableSize */ \
+ { ZAP_EMPTY_DEFAULT(), 0x00000007, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* FabricSceneInfo */ \
+ { ZAP_SIMPLE_DEFAULT(15), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
+ { ZAP_SIMPLE_DEFAULT(5), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
+ \
/* Endpoint: 2, Cluster: Occupancy Sensing (server) */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000000, 1, ZAP_TYPE(BITMAP8), 0 }, /* Occupancy */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000001, 1, ZAP_TYPE(ENUM8), 0 }, /* OccupancySensorType */ \
@@ -1555,10 +1555,6 @@
(EmberAfGenericClusterFunction) emberAfTimeFormatLocalizationClusterServerInitCallback, \
(EmberAfGenericClusterFunction) MatterTimeFormatLocalizationClusterServerPreAttributeChangedCallback, \
}; \
- const EmberAfGenericClusterFunction chipFuncArrayScenesServer[] = { \
- (EmberAfGenericClusterFunction) emberAfScenesClusterServerInitCallback, \
- (EmberAfGenericClusterFunction) MatterScenesClusterServerShutdownCallback, \
- }; \
const EmberAfGenericClusterFunction chipFuncArrayOnOffServer[] = { \
(EmberAfGenericClusterFunction) emberAfOnOffClusterServerInitCallback, \
(EmberAfGenericClusterFunction) MatterOnOffClusterServerShutdownCallback, \
@@ -1571,6 +1567,10 @@
(EmberAfGenericClusterFunction) emberAfModeSelectClusterServerInitCallback, \
(EmberAfGenericClusterFunction) MatterModeSelectClusterServerPreAttributeChangedCallback, \
}; \
+ const EmberAfGenericClusterFunction chipFuncArrayScenesManagementServer[] = { \
+ (EmberAfGenericClusterFunction) emberAfScenesManagementClusterServerInitCallback, \
+ (EmberAfGenericClusterFunction) MatterScenesManagementClusterServerShutdownCallback, \
+ }; \
const EmberAfGenericClusterFunction chipFuncArrayDoorLockServer[] = { \
(EmberAfGenericClusterFunction) MatterDoorLockClusterServerAttributeChangedCallback, \
(EmberAfGenericClusterFunction) MatterDoorLockClusterServerShutdownCallback, \
@@ -1743,26 +1743,8 @@
0x00000002 /* GetGroupMembershipResponse */, \
0x00000003 /* RemoveGroupResponse */, \
chip::kInvalidCommandId /* end of list */, \
- /* Endpoint: 1, Cluster: Scenes (server) */\
- /* AcceptedCommandList (index=94) */ \
- 0x00000000 /* AddScene */, \
- 0x00000001 /* ViewScene */, \
- 0x00000002 /* RemoveScene */, \
- 0x00000003 /* RemoveAllScenes */, \
- 0x00000004 /* StoreScene */, \
- 0x00000005 /* RecallScene */, \
- 0x00000006 /* GetSceneMembership */, \
- chip::kInvalidCommandId /* end of list */, \
- /* GeneratedCommandList (index=102)*/ \
- 0x00000000 /* AddSceneResponse */, \
- 0x00000001 /* ViewSceneResponse */, \
- 0x00000002 /* RemoveSceneResponse */, \
- 0x00000003 /* RemoveAllScenesResponse */, \
- 0x00000004 /* StoreSceneResponse */, \
- 0x00000006 /* GetSceneMembershipResponse */, \
- chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 1, Cluster: On/Off (server) */\
- /* AcceptedCommandList (index=109) */ \
+ /* AcceptedCommandList (index=94) */ \
0x00000000 /* Off */, \
0x00000001 /* On */, \
0x00000002 /* Toggle */, \
@@ -1771,7 +1753,7 @@
0x00000042 /* OnWithTimedOff */, \
chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 1, Cluster: Level Control (server) */\
- /* AcceptedCommandList (index=116) */ \
+ /* AcceptedCommandList (index=101) */ \
0x00000000 /* MoveToLevel */, \
0x00000001 /* Move */, \
0x00000002 /* Step */, \
@@ -1782,9 +1764,27 @@
0x00000007 /* StopWithOnOff */, \
chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 1, Cluster: Mode Select (server) */\
- /* AcceptedCommandList (index=125) */ \
+ /* AcceptedCommandList (index=110) */ \
0x00000000 /* ChangeToMode */, \
chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 1, Cluster: Scenes Management (server) */\
+ /* AcceptedCommandList (index=112) */ \
+ 0x00000000 /* AddScene */, \
+ 0x00000001 /* ViewScene */, \
+ 0x00000002 /* RemoveScene */, \
+ 0x00000003 /* RemoveAllScenes */, \
+ 0x00000004 /* StoreScene */, \
+ 0x00000005 /* RecallScene */, \
+ 0x00000006 /* GetSceneMembership */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* GeneratedCommandList (index=120)*/ \
+ 0x00000000 /* AddSceneResponse */, \
+ 0x00000001 /* ViewSceneResponse */, \
+ 0x00000002 /* RemoveSceneResponse */, \
+ 0x00000003 /* RemoveAllScenesResponse */, \
+ 0x00000004 /* StoreSceneResponse */, \
+ 0x00000006 /* GetSceneMembershipResponse */, \
+ chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 1, Cluster: Door Lock (server) */\
/* AcceptedCommandList (index=127) */ \
0x00000000 /* LockDoor */, \
@@ -1927,8 +1927,17 @@
0x00000002 /* GetGroupMembershipResponse */, \
0x00000003 /* RemoveGroupResponse */, \
chip::kInvalidCommandId /* end of list */, \
- /* Endpoint: 2, Cluster: Scenes (server) */\
+ /* Endpoint: 2, Cluster: On/Off (server) */\
/* AcceptedCommandList (index=240) */ \
+ 0x00000000 /* Off */, \
+ 0x00000001 /* On */, \
+ 0x00000002 /* Toggle */, \
+ 0x00000040 /* OffWithEffect */, \
+ 0x00000041 /* OnWithRecallGlobalScene */, \
+ 0x00000042 /* OnWithTimedOff */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 2, Cluster: Scenes Management (server) */\
+ /* AcceptedCommandList (index=247) */ \
0x00000000 /* AddScene */, \
0x00000001 /* ViewScene */, \
0x00000002 /* RemoveScene */, \
@@ -1937,7 +1946,7 @@
0x00000005 /* RecallScene */, \
0x00000006 /* GetSceneMembership */, \
chip::kInvalidCommandId /* end of list */, \
- /* GeneratedCommandList (index=248)*/ \
+ /* GeneratedCommandList (index=255)*/ \
0x00000000 /* AddSceneResponse */, \
0x00000001 /* ViewSceneResponse */, \
0x00000002 /* RemoveSceneResponse */, \
@@ -1945,15 +1954,6 @@
0x00000004 /* StoreSceneResponse */, \
0x00000006 /* GetSceneMembershipResponse */, \
chip::kInvalidCommandId /* end of list */, \
- /* Endpoint: 2, Cluster: On/Off (server) */\
- /* AcceptedCommandList (index=255) */ \
- 0x00000000 /* Off */, \
- 0x00000001 /* On */, \
- 0x00000002 /* Toggle */, \
- 0x00000040 /* OffWithEffect */, \
- 0x00000041 /* OnWithRecallGlobalScene */, \
- 0x00000042 /* OnWithTimedOff */, \
- chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 65534, Cluster: Network Commissioning (server) */\
/* AcceptedCommandList (index=262) */ \
0x00000000 /* ScanNetworks */, \
@@ -2353,28 +2353,15 @@
.eventList = nullptr, \
.eventCount = 0, \
},\
- { \
- /* Endpoint: 1, Cluster: Scenes (server) */ \
- .clusterId = 0x00000005, \
- .attributes = ZAP_ATTRIBUTE_INDEX(238), \
- .attributeCount = 9, \
- .clusterSize = 13, \
- .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(SHUTDOWN_FUNCTION), \
- .functions = chipFuncArrayScenesServer, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 94 ), \
- .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 102 ), \
- .eventList = nullptr, \
- .eventCount = 0, \
- },\
{ \
/* Endpoint: 1, Cluster: On/Off (server) */ \
.clusterId = 0x00000006, \
- .attributes = ZAP_ATTRIBUTE_INDEX(247), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(238), \
.attributeCount = 7, \
.clusterSize = 13, \
.mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(SHUTDOWN_FUNCTION), \
.functions = chipFuncArrayOnOffServer, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 109 ), \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 94 ), \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
@@ -2382,7 +2369,7 @@
{ \
/* Endpoint: 1, Cluster: On/off Switch Configuration (server) */ \
.clusterId = 0x00000007, \
- .attributes = ZAP_ATTRIBUTE_INDEX(254), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(245), \
.attributeCount = 4, \
.clusterSize = 8, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
@@ -2395,12 +2382,12 @@
{ \
/* Endpoint: 1, Cluster: Level Control (server) */ \
.clusterId = 0x00000008, \
- .attributes = ZAP_ATTRIBUTE_INDEX(258), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(249), \
.attributeCount = 16, \
.clusterSize = 27, \
.mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(SHUTDOWN_FUNCTION), \
.functions = chipFuncArrayLevelControlServer, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 116 ), \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 101 ), \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
@@ -2408,7 +2395,7 @@
{ \
/* Endpoint: 1, Cluster: Binary Input (Basic) (server) */ \
.clusterId = 0x0000000F, \
- .attributes = ZAP_ATTRIBUTE_INDEX(274), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(265), \
.attributeCount = 5, \
.clusterSize = 9, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
@@ -2421,7 +2408,7 @@
{ \
/* Endpoint: 1, Cluster: Descriptor (server) */ \
.clusterId = 0x0000001D, \
- .attributes = ZAP_ATTRIBUTE_INDEX(279), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(270), \
.attributeCount = 6, \
.clusterSize = 4, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
@@ -2434,7 +2421,7 @@
{ \
/* Endpoint: 1, Cluster: Binding (server) */ \
.clusterId = 0x0000001E, \
- .attributes = ZAP_ATTRIBUTE_INDEX(285), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(276), \
.attributeCount = 3, \
.clusterSize = 6, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
@@ -2447,7 +2434,7 @@
{ \
/* Endpoint: 1, Cluster: Actions (server) */ \
.clusterId = 0x00000025, \
- .attributes = ZAP_ATTRIBUTE_INDEX(288), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(279), \
.attributeCount = 5, \
.clusterSize = 4, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
@@ -2460,7 +2447,7 @@
{ \
/* Endpoint: 1, Cluster: Power Source (server) */ \
.clusterId = 0x0000002F, \
- .attributes = ZAP_ATTRIBUTE_INDEX(293), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(284), \
.attributeCount = 9, \
.clusterSize = 72, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
@@ -2473,7 +2460,7 @@
{ \
/* Endpoint: 1, Cluster: Switch (server) */ \
.clusterId = 0x0000003B, \
- .attributes = ZAP_ATTRIBUTE_INDEX(302), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(293), \
.attributeCount = 5, \
.clusterSize = 9, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
@@ -2486,7 +2473,7 @@
{ \
/* Endpoint: 1, Cluster: Fixed Label (server) */ \
.clusterId = 0x00000040, \
- .attributes = ZAP_ATTRIBUTE_INDEX(307), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(298), \
.attributeCount = 3, \
.clusterSize = 6, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
@@ -2499,7 +2486,7 @@
{ \
/* Endpoint: 1, Cluster: User Label (server) */ \
.clusterId = 0x00000041, \
- .attributes = ZAP_ATTRIBUTE_INDEX(310), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(301), \
.attributeCount = 3, \
.clusterSize = 6, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
@@ -2512,7 +2499,7 @@
{ \
/* Endpoint: 1, Cluster: Boolean State (server) */ \
.clusterId = 0x00000045, \
- .attributes = ZAP_ATTRIBUTE_INDEX(313), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(304), \
.attributeCount = 3, \
.clusterSize = 7, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
@@ -2525,16 +2512,29 @@
{ \
/* Endpoint: 1, Cluster: Mode Select (server) */ \
.clusterId = 0x00000050, \
- .attributes = ZAP_ATTRIBUTE_INDEX(316), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(307), \
.attributeCount = 9, \
.clusterSize = 77, \
.mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \
.functions = chipFuncArrayModeSelectServer, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 125 ), \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 110 ), \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
+ { \
+ /* Endpoint: 1, Cluster: Scenes Management (server) */ \
+ .clusterId = 0x00000062, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(316), \
+ .attributeCount = 9, \
+ .clusterSize = 13, \
+ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(SHUTDOWN_FUNCTION), \
+ .functions = chipFuncArrayScenesManagementServer, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 112 ), \
+ .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 120 ), \
+ .eventList = nullptr, \
+ .eventCount = 0, \
+ },\
{ \
/* Endpoint: 1, Cluster: Door Lock (server) */ \
.clusterId = 0x00000101, \
@@ -2925,28 +2925,15 @@
.eventList = nullptr, \
.eventCount = 0, \
},\
- { \
- /* Endpoint: 2, Cluster: Scenes (server) */ \
- .clusterId = 0x00000005, \
- .attributes = ZAP_ATTRIBUTE_INDEX(687), \
- .attributeCount = 9, \
- .clusterSize = 13, \
- .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(SHUTDOWN_FUNCTION), \
- .functions = chipFuncArrayScenesServer, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 240 ), \
- .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 248 ), \
- .eventList = nullptr, \
- .eventCount = 0, \
- },\
{ \
/* Endpoint: 2, Cluster: On/Off (server) */ \
.clusterId = 0x00000006, \
- .attributes = ZAP_ATTRIBUTE_INDEX(696), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(687), \
.attributeCount = 7, \
.clusterSize = 13, \
.mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(SHUTDOWN_FUNCTION), \
.functions = chipFuncArrayOnOffServer, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 255 ), \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 240 ), \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
@@ -2954,7 +2941,7 @@
{ \
/* Endpoint: 2, Cluster: Descriptor (server) */ \
.clusterId = 0x0000001D, \
- .attributes = ZAP_ATTRIBUTE_INDEX(703), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(694), \
.attributeCount = 6, \
.clusterSize = 4, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
@@ -2967,7 +2954,7 @@
{ \
/* Endpoint: 2, Cluster: Power Source (server) */ \
.clusterId = 0x0000002F, \
- .attributes = ZAP_ATTRIBUTE_INDEX(709), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(700), \
.attributeCount = 9, \
.clusterSize = 72, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
@@ -2977,6 +2964,19 @@
.eventList = nullptr, \
.eventCount = 0, \
},\
+ { \
+ /* Endpoint: 2, Cluster: Scenes Management (server) */ \
+ .clusterId = 0x00000062, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(709), \
+ .attributeCount = 9, \
+ .clusterSize = 13, \
+ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(SHUTDOWN_FUNCTION), \
+ .functions = chipFuncArrayScenesManagementServer, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 247 ), \
+ .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 255 ), \
+ .eventList = nullptr, \
+ .eventCount = 0, \
+ },\
{ \
/* Endpoint: 2, Cluster: Occupancy Sensing (server) */ \
.clusterId = 0x00000406, \
diff --git a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/gen_config.h b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/gen_config.h
index 11f7d888fcbbd8..cf6cdfb7388980 100644
--- a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/gen_config.h
+++ b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/gen_config.h
@@ -23,7 +23,6 @@
/**** Cluster endpoint counts ****/
#define EMBER_AF_IDENTIFY_CLUSTER_SERVER_ENDPOINT_COUNT (3)
#define EMBER_AF_GROUPS_CLUSTER_SERVER_ENDPOINT_COUNT (3)
-#define EMBER_AF_SCENES_CLUSTER_SERVER_ENDPOINT_COUNT (2)
#define EMBER_AF_ON_OFF_CLUSTER_SERVER_ENDPOINT_COUNT (2)
#define EMBER_AF_ON_OFF_SWITCH_CONFIGURATION_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define EMBER_AF_LEVEL_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1)
@@ -55,6 +54,7 @@
#define EMBER_AF_USER_LABEL_CLUSTER_SERVER_ENDPOINT_COUNT (2)
#define EMBER_AF_BOOLEAN_STATE_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define EMBER_AF_MODE_SELECT_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_SCENES_CLUSTER_SERVER_ENDPOINT_COUNT (2)
#define EMBER_AF_DOOR_LOCK_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define EMBER_AF_WINDOW_COVERING_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define EMBER_AF_BARRIER_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1)
@@ -97,22 +97,6 @@
#define EMBER_AF_PLUGIN_GROUPS_SERVER
#define EMBER_AF_PLUGIN_GROUPS
-// Use this macro to check if the server side of the Scenes cluster is included
-#define ZCL_USING_SCENES_CLUSTER_SERVER
-#define EMBER_AF_PLUGIN_SCENES_SERVER
-#define EMBER_AF_PLUGIN_SCENES
-// User options for server plugin Scenes
-// Cluster spec 1.4.8.7
-#define MATTER_SCENES_TABLE_SIZE 16
-// Scenes FeatureMap Attribute Toggle Scenes Name feature
-// App cluster specs 1.4.4
-#define MATTER_CLUSTER_SCENE_NAME_SUPPORT_MASK 0x0001
-#define MATTER_CLUSTER_SCENE_NAME_SUPPORT (0x000F & MATTER_CLUSTER_SCENE_NAME_SUPPORT_MASK)
-// Scenes FeatureMap Table Size feature used for the MATTER_SCENES_TABLE_SIZE define
-// App cluster specs 1.4.4.2
-#define MATTER_CLUSTER_TABLE_SIZE_SUPPORT_MASK 0x0001
-#define MATTER_CLUSTER_TABLE_SIZE_SUPPORT (0x000F & MATTER_CLUSTER_TABLE_SIZE_SUPPORT_MASK)
-
// Use this macro to check if the server side of the On/Off cluster is included
#define ZCL_USING_ON_OFF_CLUSTER_SERVER
#define EMBER_AF_PLUGIN_ON_OFF_SERVER
@@ -271,6 +255,22 @@
#define EMBER_AF_PLUGIN_MODE_SELECT_SERVER
#define EMBER_AF_PLUGIN_MODE_SELECT
+// Use this macro to check if the server side of the Scenes Management cluster is included
+#define ZCL_USING_SCENES_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_SCENES_MANAGEMENT_SERVER
+#define EMBER_AF_PLUGIN_SCENES_MANAGEMENT
+// User options for server plugin Scenes Management
+// Cluster spec 1.4.8.7
+#define SCENES_MANAGEMENT_TABLE_SIZE 16
+// Scenes FeatureMap Attribute Toggle Scenes Name feature
+// App cluster specs 1.4.4
+#define MATTER_CLUSTER_SCENE_NAME_SUPPORT_MASK 0x0001
+#define MATTER_CLUSTER_SCENE_NAME_SUPPORT (0x000F & MATTER_CLUSTER_SCENE_NAME_SUPPORT_MASK)
+// Scenes FeatureMap Table Size feature used for the SCENES_MANAGEMENT_TABLE_SIZE define
+// App cluster specs 1.4.4.2
+#define MATTER_CLUSTER_TABLE_SIZE_SUPPORT_MASK 0x0001
+#define MATTER_CLUSTER_TABLE_SIZE_SUPPORT (0x000F & MATTER_CLUSTER_TABLE_SIZE_SUPPORT_MASK)
+
// Use this macro to check if the server side of the Door Lock cluster is included
#define ZCL_USING_DOOR_LOCK_CLUSTER_SERVER
#define EMBER_AF_PLUGIN_DOOR_LOCK_SERVER
diff --git a/src/app/clusters/color-control-server/color-control-server.cpp b/src/app/clusters/color-control-server/color-control-server.cpp
index 3dbba76be8491a..cb0d7e5be78605 100644
--- a/src/app/clusters/color-control-server/color-control-server.cpp
+++ b/src/app/clusters/color-control-server/color-control-server.cpp
@@ -25,7 +25,7 @@
#include
#include
-#ifdef EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
#include
#endif
@@ -59,7 +59,7 @@ constexpr uint8_t kExecuteIfOff = 1;
} // namespace app
} // namespace chip
-#if defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+#if defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
class DefaultColorControlSceneHandler : public scenes::DefaultSceneHandlerImpl
{
public:
@@ -99,7 +99,7 @@ class DefaultColorControlSceneHandler : public scenes::DefaultSceneHandlerImpl
/// @return CHIP_NO_ERROR if successfully serialized the data, CHIP_ERROR_INVALID_ARGUMENT otherwise
CHIP_ERROR SerializeSave(EndpointId endpoint, ClusterId cluster, MutableByteSpan & serializedBytes) override
{
- using AttributeValuePair = Scenes::Structs::AttributeValuePair::Type;
+ using AttributeValuePair = ScenesManagement::Structs::AttributeValuePair::Type;
AttributeValuePair pairs[kColorControlScenableAttributesCount];
@@ -194,7 +194,7 @@ class DefaultColorControlSceneHandler : public scenes::DefaultSceneHandlerImpl
CHIP_ERROR ApplyScene(EndpointId endpoint, ClusterId cluster, const ByteSpan & serializedBytes,
scenes::TransitionTimeMs timeMs) override
{
- app::DataModel::DecodableList attributeValueList;
+ app::DataModel::DecodableList attributeValueList;
ReturnErrorOnFailure(DecodeAttributeValueList(serializedBytes, attributeValueList));
@@ -371,7 +371,7 @@ class DefaultColorControlSceneHandler : public scenes::DefaultSceneHandlerImpl
}
}
- void AddAttributeValuePair(Scenes::Structs::AttributeValuePair::Type * pairs, AttributeId id, uint32_t value,
+ void AddAttributeValuePair(ScenesManagement::Structs::AttributeValuePair::Type * pairs, AttributeId id, uint32_t value,
size_t & attributeCount)
{
pairs[attributeCount].attributeID = id;
@@ -380,7 +380,7 @@ class DefaultColorControlSceneHandler : public scenes::DefaultSceneHandlerImpl
}
};
static DefaultColorControlSceneHandler sColorControlSceneHandler;
-#endif // defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+#endif // defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
/**********************************************************
* Matter timer scheduling glue logic
@@ -434,11 +434,11 @@ ColorControlServer & ColorControlServer::Instance()
chip::scenes::SceneHandler * ColorControlServer::GetSceneHandler()
{
-#if defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+#if defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
return &sColorControlSceneHandler;
#else
return nullptr;
-#endif // defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+#endif // defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
}
bool ColorControlServer::HasFeature(chip::EndpointId endpoint, Feature feature)
@@ -1607,9 +1607,9 @@ bool ColorControlServer::moveToHueAndSaturationCommand(app::CommandHandler * com
return true;
}
Status status = moveToHueAndSaturation(hue, saturation, transitionTime, isEnhanced, commandPath.mEndpointId);
-#ifdef EMBER_AF_PLUGIN_SCENES
- Scenes::ScenesServer::Instance().MakeSceneInvalidForAllFabrics(commandPath.mEndpointId);
-#endif // EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
+ ScenesManagement::ScenesServer::Instance().MakeSceneInvalidForAllFabrics(commandPath.mEndpointId);
+#endif // EMBER_AF_PLUGIN_SCENES_MANAGEMENT
commandObj->AddStatus(commandPath, status);
return true;
}
@@ -1812,9 +1812,9 @@ bool ColorControlServer::moveToSaturationCommand(app::CommandHandler * commandOb
return true;
}
Status status = moveToSaturation(commandData.saturation, commandData.transitionTime, commandPath.mEndpointId);
-#ifdef EMBER_AF_PLUGIN_SCENES
- Scenes::ScenesServer::Instance().MakeSceneInvalidForAllFabrics(commandPath.mEndpointId);
-#endif // EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
+ ScenesManagement::ScenesServer::Instance().MakeSceneInvalidForAllFabrics(commandPath.mEndpointId);
+#endif // EMBER_AF_PLUGIN_SCENES_MANAGEMENT
commandObj->AddStatus(commandPath, status);
return true;
}
@@ -1996,9 +1996,9 @@ bool ColorControlServer::colorLoopCommand(app::CommandHandler * commandObj, cons
}
exit:
-#ifdef EMBER_AF_PLUGIN_SCENES
- Scenes::ScenesServer::Instance().MakeSceneInvalidForAllFabrics(endpoint);
-#endif // EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
+ ScenesManagement::ScenesServer::Instance().MakeSceneInvalidForAllFabrics(endpoint);
+#endif // EMBER_AF_PLUGIN_SCENES_MANAGEMENT
commandObj->AddStatus(commandPath, status);
return true;
}
@@ -2205,9 +2205,9 @@ bool ColorControlServer::moveToColorCommand(app::CommandHandler * commandObj, co
}
Status status = moveToColor(commandData.colorX, commandData.colorY, commandData.transitionTime, commandPath.mEndpointId);
-#ifdef EMBER_AF_PLUGIN_SCENES
- Scenes::ScenesServer::Instance().MakeSceneInvalidForAllFabrics(commandPath.mEndpointId);
-#endif // EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
+ ScenesManagement::ScenesServer::Instance().MakeSceneInvalidForAllFabrics(commandPath.mEndpointId);
+#endif // EMBER_AF_PLUGIN_SCENES_MANAGEMENT
commandObj->AddStatus(commandPath, status);
return true;
}
@@ -2732,9 +2732,9 @@ bool ColorControlServer::moveToColorTempCommand(app::CommandHandler * commandObj
}
Status status = moveToColorTemp(commandPath.mEndpointId, commandData.colorTemperatureMireds, commandData.transitionTime);
-#ifdef EMBER_AF_PLUGIN_SCENES
- Scenes::ScenesServer::Instance().MakeSceneInvalidForAllFabrics(commandPath.mEndpointId);
-#endif // EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
+ ScenesManagement::ScenesServer::Instance().MakeSceneInvalidForAllFabrics(commandPath.mEndpointId);
+#endif // EMBER_AF_PLUGIN_SCENES_MANAGEMENT
commandObj->AddStatus(commandPath, status);
return true;
}
@@ -3084,11 +3084,11 @@ void emberAfColorControlClusterServerInitCallback(EndpointId endpoint)
#ifdef EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_TEMP
ColorControlServer::Instance().startUpColorTempCommand(endpoint);
#endif // EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_TEMP
-#if defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+#if defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
// Registers Scene handlers for the color control cluster on the server
- app::Clusters::Scenes::ScenesServer::Instance().RegisterSceneHandler(endpoint,
- ColorControlServer::Instance().GetSceneHandler());
-#endif // defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+ app::Clusters::ScenesManagement::ScenesServer::Instance().RegisterSceneHandler(
+ endpoint, ColorControlServer::Instance().GetSceneHandler());
+#endif // defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
}
void MatterColorControlClusterServerShutdownCallback(EndpointId endpoint)
diff --git a/src/app/clusters/groups-server/groups-server.cpp b/src/app/clusters/groups-server/groups-server.cpp
index 10aa34351230b7..4ab5fa24ee577e 100644
--- a/src/app/clusters/groups-server/groups-server.cpp
+++ b/src/app/clusters/groups-server/groups-server.cpp
@@ -29,9 +29,9 @@
#include
#include
-#ifdef EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
#include
-#endif // EMBER_AF_PLUGIN_SCENES
+#endif // EMBER_AF_PLUGIN_SCENES_MANAGEMENT
using namespace chip;
using namespace app::Clusters;
@@ -287,9 +287,9 @@ bool emberAfGroupsClusterRemoveGroupCallback(app::CommandHandler * commandObj, c
auto fabricIndex = commandObj->GetAccessingFabricIndex();
Groups::Commands::RemoveGroupResponse::Type response;
-#ifdef EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
// If a group is removed the scenes associated with that group SHOULD be removed.
- Scenes::ScenesServer::Instance().GroupWillBeRemoved(fabricIndex, commandPath.mEndpointId, commandData.groupID);
+ ScenesManagement::ScenesServer::Instance().GroupWillBeRemoved(fabricIndex, commandPath.mEndpointId, commandData.groupID);
#endif
response.groupID = commandData.groupID;
response.status = GroupRemove(fabricIndex, commandPath.mEndpointId, commandData.groupID);
@@ -307,7 +307,7 @@ bool emberAfGroupsClusterRemoveAllGroupsCallback(app::CommandHandler * commandOb
VerifyOrExit(nullptr != provider, status = Status::Failure);
-#ifdef EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
{
GroupDataProvider::EndpointIterator * iter = provider->IterateEndpoints(fabricIndex);
GroupDataProvider::GroupEndpoint mapping;
@@ -317,11 +317,12 @@ bool emberAfGroupsClusterRemoveAllGroupsCallback(app::CommandHandler * commandOb
{
if (commandPath.mEndpointId == mapping.endpoint_id)
{
- Scenes::ScenesServer::Instance().GroupWillBeRemoved(fabricIndex, mapping.endpoint_id, mapping.group_id);
+ ScenesManagement::ScenesServer::Instance().GroupWillBeRemoved(fabricIndex, mapping.endpoint_id, mapping.group_id);
}
}
iter->Release();
- Scenes::ScenesServer::Instance().GroupWillBeRemoved(fabricIndex, commandPath.mEndpointId, ZCL_SCENES_GLOBAL_SCENE_GROUP_ID);
+ ScenesManagement::ScenesServer::Instance().GroupWillBeRemoved(fabricIndex, commandPath.mEndpointId,
+ ZCL_SCENES_GLOBAL_SCENE_GROUP_ID);
}
#endif
diff --git a/src/app/clusters/level-control/level-control.cpp b/src/app/clusters/level-control/level-control.cpp
index ad394d1fc248b3..ba22be03055886 100644
--- a/src/app/clusters/level-control/level-control.cpp
+++ b/src/app/clusters/level-control/level-control.cpp
@@ -34,9 +34,9 @@
#include
#include
-#ifdef EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
#include
-#endif // EMBER_AF_PLUGIN_SCENES
+#endif // EMBER_AF_PLUGIN_SCENES_MANAGEMENT
#ifdef EMBER_AF_PLUGIN_ON_OFF
#include
@@ -120,7 +120,7 @@ static void writeRemainingTime(EndpointId endpoint, uint16_t remainingTimeMs);
static bool shouldExecuteIfOff(EndpointId endpoint, CommandId commandId, chip::Optional> optionsMask,
chip::Optional> optionsOverride);
-#if defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+#if defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
class DefaultLevelControlSceneHandler : public scenes::DefaultSceneHandlerImpl
{
public:
@@ -158,7 +158,7 @@ class DefaultLevelControlSceneHandler : public scenes::DefaultSceneHandlerImpl
/// @return CHIP_NO_ERROR if successfully serialized the data, CHIP_ERROR_INVALID_ARGUMENT otherwise
CHIP_ERROR SerializeSave(EndpointId endpoint, ClusterId cluster, MutableByteSpan & serializedBytes) override
{
- using AttributeValuePair = Scenes::Structs::AttributeValuePair::Type;
+ using AttributeValuePair = ScenesManagement::Structs::AttributeValuePair::Type;
app::DataModel::Nullable level;
VerifyOrReturnError(EMBER_ZCL_STATUS_SUCCESS == Attributes::CurrentLevel::Get(endpoint, level), CHIP_ERROR_READ_FAILED);
@@ -202,7 +202,7 @@ class DefaultLevelControlSceneHandler : public scenes::DefaultSceneHandlerImpl
CHIP_ERROR ApplyScene(EndpointId endpoint, ClusterId cluster, const ByteSpan & serializedBytes,
scenes::TransitionTimeMs timeMs) override
{
- app::DataModel::DecodableList attributeValueList;
+ app::DataModel::DecodableList attributeValueList;
ReturnErrorOnFailure(DecodeAttributeValueList(serializedBytes, attributeValueList));
@@ -254,7 +254,7 @@ class DefaultLevelControlSceneHandler : public scenes::DefaultSceneHandlerImpl
};
static DefaultLevelControlSceneHandler sLevelControlSceneHandler;
-#endif // defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+#endif // defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
#if !defined(IGNORE_LEVEL_CONTROL_CLUSTER_OPTIONS) && defined(EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_TEMP)
static void reallyUpdateCoupledColorTemp(EndpointId endpoint);
@@ -608,11 +608,11 @@ Status MoveToLevel(EndpointId endpointId, const Commands::MoveToLevel::Decodable
chip::scenes::SceneHandler * GetSceneHandler()
{
-#if defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+#if defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
return &sLevelControlSceneHandler;
#else
return nullptr;
-#endif // defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+#endif // defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
}
} // namespace LevelControlServer
@@ -904,13 +904,13 @@ static Status moveToLevelHandler(EndpointId endpoint, CommandId commandId, uint8
state->callbackSchedule.runTime = System::Clock::Milliseconds32(0);
-#ifdef EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
// The level has changed, the scene is no longer valid.
- if (emberAfContainsServer(endpoint, Scenes::Id))
+ if (emberAfContainsServer(endpoint, ScenesManagement::Id))
{
- Scenes::ScenesServer::Instance().MakeSceneInvalidForAllFabrics(endpoint);
+ ScenesManagement::ScenesServer::Instance().MakeSceneInvalidForAllFabrics(endpoint);
}
-#endif // EMBER_AF_PLUGIN_SCENES
+#endif // EMBER_AF_PLUGIN_SCENES_MANAGEMENT
// The setup was successful, so mark the new state as active and return.
scheduleTimerCallbackMs(endpoint, computeCallbackWaitTimeMs(state->callbackSchedule, state->eventDurationMs));
@@ -1444,10 +1444,10 @@ void emberAfLevelControlClusterServerInitCallback(EndpointId endpoint)
}
}
-#if defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+#if defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
// Registers Scene handlers for the level control cluster on the server
- app::Clusters::Scenes::ScenesServer::Instance().RegisterSceneHandler(endpoint, LevelControlServer::GetSceneHandler());
-#endif // defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+ app::Clusters::ScenesManagement::ScenesServer::Instance().RegisterSceneHandler(endpoint, LevelControlServer::GetSceneHandler());
+#endif // defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
emberAfPluginLevelControlClusterServerPostInitCallback(endpoint);
}
diff --git a/src/app/clusters/on-off-server/on-off-server.cpp b/src/app/clusters/on-off-server/on-off-server.cpp
index 0350c61c5b07d2..eb867fb4ef893c 100644
--- a/src/app/clusters/on-off-server/on-off-server.cpp
+++ b/src/app/clusters/on-off-server/on-off-server.cpp
@@ -25,9 +25,9 @@
#include
#include
-#ifdef EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
#include
-#endif // EMBER_AF_PLUGIN_SCENES
+#endif // EMBER_AF_PLUGIN_SCENES_MANAGEMENT
#ifdef EMBER_AF_PLUGIN_LEVEL_CONTROL
#include
@@ -103,7 +103,7 @@ static bool LevelControlWithOnOffFeaturePresent(EndpointId endpoint)
static constexpr size_t kOnOffMaxEnpointCount =
EMBER_AF_ON_OFF_CLUSTER_SERVER_ENDPOINT_COUNT + CHIP_DEVICE_CONFIG_DYNAMIC_ENDPOINT_COUNT;
-#if defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+#if defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
static void sceneOnOffCallback(EndpointId endpoint);
using OnOffEndPointPair = scenes::DefaultSceneHandlerImpl::EndpointStatePair;
using OnOffTransitionTimeInterface =
@@ -147,7 +147,7 @@ class DefaultOnOffSceneHandler : public scenes::DefaultSceneHandlerImpl
/// @return CHIP_NO_ERROR if successfully serialized the data, CHIP_ERROR_INVALID_ARGUMENT otherwise
CHIP_ERROR SerializeSave(EndpointId endpoint, ClusterId cluster, MutableByteSpan & serializedBytes) override
{
- using AttributeValuePair = Scenes::Structs::AttributeValuePair::Type;
+ using AttributeValuePair = ScenesManagement::Structs::AttributeValuePair::Type;
bool currentValue;
// read current on/off value
@@ -177,7 +177,7 @@ class DefaultOnOffSceneHandler : public scenes::DefaultSceneHandlerImpl
CHIP_ERROR ApplyScene(EndpointId endpoint, ClusterId cluster, const ByteSpan & serializedBytes,
scenes::TransitionTimeMs timeMs) override
{
- app::DataModel::DecodableList attributeValueList;
+ app::DataModel::DecodableList attributeValueList;
VerifyOrReturnError(cluster == OnOff::Id, CHIP_ERROR_INVALID_ARGUMENT);
@@ -210,7 +210,7 @@ class DefaultOnOffSceneHandler : public scenes::DefaultSceneHandlerImpl
// versa.
#ifdef EMBER_AF_PLUGIN_LEVEL_CONTROL
if (!(LevelControlWithOnOffFeaturePresent(endpoint) &&
- Scenes::ScenesServer::Instance().IsHandlerRegistered(endpoint, LevelControlServer::GetSceneHandler())))
+ ScenesManagement::ScenesServer::Instance().IsHandlerRegistered(endpoint, LevelControlServer::GetSceneHandler())))
#endif
{
OnOffServer::Instance().scheduleTimerCallbackMs(mTransitionTimeInterface.sceneEventControl(endpoint), timeMs);
@@ -232,7 +232,7 @@ static void sceneOnOffCallback(EndpointId endpoint)
OnOffServer::Instance().setOnOffValue(endpoint, command, false);
ReturnOnFailure(sOnOffSceneHandler.mSceneEndpointStatePairs.RemovePair(endpoint));
}
-#endif // defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+#endif // defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
/**********************************************************
* Attributes Definition
@@ -300,11 +300,11 @@ OnOffServer & OnOffServer::Instance()
chip::scenes::SceneHandler * OnOffServer::GetSceneHandler()
{
-#if defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+#if defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
return &sOnOffSceneHandler;
#else
return nullptr;
-#endif // defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+#endif // defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
}
bool OnOffServer::HasFeature(chip::EndpointId endpoint, Feature feature)
@@ -455,13 +455,13 @@ EmberAfStatus OnOffServer::setOnOffValue(chip::EndpointId endpoint, chip::Comman
}
}
-#ifdef EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
// the scene has been changed (the value of on/off has changed) so
// the current scene as described in the attribute table is invalid,
// so mark it as invalid (just writes the valid/invalid attribute)
- Scenes::ScenesServer::Instance().MakeSceneInvalidForAllFabrics(endpoint);
-#endif // EMBER_AF_PLUGIN_SCENES
+ ScenesManagement::ScenesServer::Instance().MakeSceneInvalidForAllFabrics(endpoint);
+#endif // EMBER_AF_PLUGIN_SCENES_MANAGEMENT
// The returned status is based solely on the On/Off cluster. Errors in the
// Level Control and/or Scenes cluster are ignored.
@@ -499,10 +499,11 @@ void OnOffServer::initOnOffServer(chip::EndpointId endpoint)
status = setOnOffValue(endpoint, onOffValueForStartUp, true);
}
-#if defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+#if defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
// Registers Scene handlers for the On/Off cluster on the server
- app::Clusters::Scenes::ScenesServer::Instance().RegisterSceneHandler(endpoint, OnOffServer::Instance().GetSceneHandler());
-#endif // defined(EMBER_AF_PLUGIN_SCENES) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
+ app::Clusters::ScenesManagement::ScenesServer::Instance().RegisterSceneHandler(endpoint,
+ OnOffServer::Instance().GetSceneHandler());
+#endif // defined(EMBER_AF_PLUGIN_SCENES_MANAGEMENT) && CHIP_CONFIG_SCENES_USE_DEFAULT_HANDLERS
#ifdef EMBER_AF_PLUGIN_MODE_SELECT
// If OnMode is not a null value, then change the current mode to it.
@@ -599,9 +600,9 @@ bool OnOffServer::offWithEffectCommand(app::CommandHandler * commandObj, const a
if (SupportsLightingApplications(endpoint))
{
-#ifdef EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
FabricIndex fabric = commandObj->GetAccessingFabricIndex();
-#endif // EMBER_AF_PLUGIN_SCENES
+#endif // EMBER_AF_PLUGIN_SCENES_MANAGEMENT
bool globalSceneControl = false;
OnOff::Attributes::GlobalSceneControl::Get(endpoint, &globalSceneControl);
@@ -610,14 +611,15 @@ bool OnOffServer::offWithEffectCommand(app::CommandHandler * commandObj, const a
if (globalSceneControl)
{
-#ifdef EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
GroupId groupId = ZCL_SCENES_GLOBAL_SCENE_GROUP_ID;
if (commandObj->GetExchangeContext()->IsGroupExchangeContext())
{
groupId = commandObj->GetExchangeContext()->GetSessionHandle()->AsIncomingGroupSession()->GetGroupId();
}
- Scenes::ScenesServer::Instance().StoreCurrentScene(fabric, endpoint, groupId, ZCL_SCENES_GLOBAL_SCENE_SCENE_ID);
-#endif // EMBER_AF_PLUGIN_SCENES
+ ScenesManagement::ScenesServer::Instance().StoreCurrentScene(fabric, endpoint, groupId,
+ ZCL_SCENES_GLOBAL_SCENE_SCENE_ID);
+#endif // EMBER_AF_PLUGIN_SCENES_MANAGEMENT
OnOff::Attributes::GlobalSceneControl::Set(endpoint, false);
}
@@ -656,9 +658,9 @@ bool OnOffServer::OnWithRecallGlobalSceneCommand(app::CommandHandler * commandOb
return true;
}
-#ifdef EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
FabricIndex fabric = commandObj->GetAccessingFabricIndex();
-#endif // EMBER_AF_PLUGIN_SCENES
+#endif // EMBER_AF_PLUGIN_SCENES_MANAGEMENT
bool globalSceneControl = false;
OnOff::Attributes::GlobalSceneControl::Get(endpoint, &globalSceneControl);
@@ -669,15 +671,15 @@ bool OnOffServer::OnWithRecallGlobalSceneCommand(app::CommandHandler * commandOb
return true;
}
-#ifdef EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
GroupId groupId = ZCL_SCENES_GLOBAL_SCENE_GROUP_ID;
if (commandObj->GetExchangeContext()->IsGroupExchangeContext())
{
groupId = commandObj->GetExchangeContext()->GetSessionHandle()->AsIncomingGroupSession()->GetGroupId();
}
- Scenes::ScenesServer::Instance().RecallScene(fabric, endpoint, groupId, ZCL_SCENES_GLOBAL_SCENE_SCENE_ID);
-#endif // EMBER_AF_PLUGIN_SCENES
+ ScenesManagement::ScenesServer::Instance().RecallScene(fabric, endpoint, groupId, ZCL_SCENES_GLOBAL_SCENE_SCENE_ID);
+#endif // EMBER_AF_PLUGIN_SCENES_MANAGEMENT
OnOff::Attributes::GlobalSceneControl::Set(endpoint, true);
setOnOffValue(endpoint, Commands::On::Id, false);
diff --git a/src/app/clusters/scenes-server/SceneHandlerImpl.h b/src/app/clusters/scenes-server/SceneHandlerImpl.h
index 19eef3975ebbc3..91935d2816f0e4 100644
--- a/src/app/clusters/scenes-server/SceneHandlerImpl.h
+++ b/src/app/clusters/scenes-server/SceneHandlerImpl.h
@@ -35,10 +35,10 @@ class DefaultSceneHandlerImpl : public scenes::SceneHandler
template
using DecodableList = app::DataModel::DecodableList;
- using AttributeValuePairType = app::Clusters::Scenes::Structs::AttributeValuePair::Type;
- using AttributeValuePairDecodableType = app::Clusters::Scenes::Structs::AttributeValuePair::DecodableType;
- using ExtensionFieldSetDecodableType = app::Clusters::Scenes::Structs::ExtensionFieldSet::DecodableType;
- using ExtensionFieldSetType = app::Clusters::Scenes::Structs::ExtensionFieldSet::Type;
+ using AttributeValuePairType = app::Clusters::ScenesManagement::Structs::AttributeValuePair::Type;
+ using AttributeValuePairDecodableType = app::Clusters::ScenesManagement::Structs::AttributeValuePair::DecodableType;
+ using ExtensionFieldSetDecodableType = app::Clusters::ScenesManagement::Structs::ExtensionFieldSet::DecodableType;
+ using ExtensionFieldSetType = app::Clusters::ScenesManagement::Structs::ExtensionFieldSet::Type;
public:
/// @brief Struct meant to map the state of a cluster to a specific endpoint. Meant to be used to apply scenes using a timer for
diff --git a/src/app/clusters/scenes-server/SceneTable.h b/src/app/clusters/scenes-server/SceneTable.h
index 5ee97bf1da3fe3..85fa807b576161 100644
--- a/src/app/clusters/scenes-server/SceneTable.h
+++ b/src/app/clusters/scenes-server/SceneTable.h
@@ -85,9 +85,10 @@ class SceneHandler : public IntrusiveListNodeBase<>
/// @return CHIP_NO_ERROR if successful, CHIP_ERROR value otherwise
/// @note Only gets called after the scene-cluster has previously verified that the endpoint,cluster pair is supported by
/// the handler. It is therefore the implementation's reponsibility to also implement the SupportsCluster method.
- virtual CHIP_ERROR SerializeAdd(EndpointId endpoint,
- const app::Clusters::Scenes::Structs::ExtensionFieldSet::DecodableType & extensionFieldSet,
- MutableByteSpan & serialisedBytes) = 0;
+ virtual CHIP_ERROR
+ SerializeAdd(EndpointId endpoint,
+ const app::Clusters::ScenesManagement::Structs::ExtensionFieldSet::DecodableType & extensionFieldSet,
+ MutableByteSpan & serialisedBytes) = 0;
/// @brief Called when handling StoreScene, and only if the handler supports the given endpoint and cluster.
///
@@ -112,7 +113,7 @@ class SceneHandler : public IntrusiveListNodeBase<>
/// @note Only gets called for handlers for which SupportsCluster() is true for the given endpoint and cluster.
virtual CHIP_ERROR Deserialize(EndpointId endpoint, ClusterId cluster, const ByteSpan & serializedBytes,
- app::Clusters::Scenes::Structs::ExtensionFieldSet::Type & extensionFieldSet) = 0;
+ app::Clusters::ScenesManagement::Structs::ExtensionFieldSet::Type & extensionFieldSet) = 0;
/// @brief Restore a stored scene for the given cluster instance, over timeMs milliseconds (e.g. when handling RecallScene)
///
diff --git a/src/app/clusters/scenes-server/SceneTableImpl.cpp b/src/app/clusters/scenes-server/SceneTableImpl.cpp
index a0cc24a8e4516e..81cd05cd18c4f8 100644
--- a/src/app/clusters/scenes-server/SceneTableImpl.cpp
+++ b/src/app/clusters/scenes-server/SceneTableImpl.cpp
@@ -802,7 +802,7 @@ CHIP_ERROR DefaultSceneTableImpl::RemoveFabric(FabricIndex fabric_index)
{
VerifyOrReturnError(IsInitialized(), CHIP_ERROR_INTERNAL);
- for (auto endpoint : app::EnabledEndpointsWithServerCluster(chip::app::Clusters::Scenes::Id))
+ for (auto endpoint : app::EnabledEndpointsWithServerCluster(chip::app::Clusters::ScenesManagement::Id))
{
FabricSceneData fabric(endpoint, fabric_index);
SceneIndex idx = 0;
diff --git a/src/app/clusters/scenes-server/SceneTableImpl.h b/src/app/clusters/scenes-server/SceneTableImpl.h
index 01801fd2dd1310..62317732eca0b9 100644
--- a/src/app/clusters/scenes-server/SceneTableImpl.h
+++ b/src/app/clusters/scenes-server/SceneTableImpl.h
@@ -29,8 +29,8 @@
namespace chip {
namespace scenes {
-#ifdef MATTER_SCENES_TABLE_SIZE
-static constexpr uint16_t kMaxScenesPerEndpoint = MATTER_SCENES_TABLE_SIZE;
+#ifdef SCENES_MANAGEMENT_TABLE_SIZE
+static constexpr uint16_t kMaxScenesPerEndpoint = SCENES_MANAGEMENT_TABLE_SIZE;
#else
static constexpr uint16_t kMaxScenesPerEndpoint = CHIP_CONFIG_MAX_SCENES_TABLE_SIZE;
#endif
diff --git a/src/app/clusters/scenes-server/scenes-server.cpp b/src/app/clusters/scenes-server/scenes-server.cpp
index cac001cdc2c49d..29dbab3b119cf9 100644
--- a/src/app/clusters/scenes-server/scenes-server.cpp
+++ b/src/app/clusters/scenes-server/scenes-server.cpp
@@ -40,12 +40,12 @@ using ExtensionFieldSet = chip::scenes::ExtensionFieldSet;
using GroupDataProvider = chip::Credentials::GroupDataProvider;
using SceneTable = chip::scenes::SceneTable;
using AuthMode = chip::Access::AuthMode;
-using ScenesServer = chip::app::Clusters::Scenes::ScenesServer;
+using ScenesServer = chip::app::Clusters::ScenesManagement::ScenesServer;
namespace chip {
namespace app {
namespace Clusters {
-namespace Scenes {
+namespace ScenesManagement {
namespace {
@@ -259,7 +259,8 @@ CHIP_ERROR ScenesServer::FabricSceneInfo::FindFabricSceneInfoIndex(EndpointId en
{
VerifyOrReturnError(kInvalidEndpointId != endpoint, CHIP_ERROR_INVALID_ARGUMENT);
- uint16_t index = emberAfGetClusterServerEndpointIndex(endpoint, Scenes::Id, EMBER_AF_SCENES_CLUSTER_SERVER_ENDPOINT_COUNT);
+ uint16_t index =
+ emberAfGetClusterServerEndpointIndex(endpoint, ScenesManagement::Id, EMBER_AF_SCENES_CLUSTER_SERVER_ENDPOINT_COUNT);
if (index < ArraySize(mSceneInfoStructs))
{
@@ -1055,7 +1056,7 @@ void ScenesServer::HandleCopyScene(HandlerContext & ctx, const Commands::CopySce
sceneTable->GetRemainingCapacity(ctx.mCommandHandler.GetAccessingFabricIndex(), capacity)));
// Checks if we copy a single scene or all of them
- if (req.mode.GetField(app::Clusters::Scenes::CopyModeBitmap::kCopyAllScenes))
+ if (req.mode.GetField(app::Clusters::ScenesManagement::CopyModeBitmap::kCopyAllScenes))
{
// Scene Table interface data
SceneId scenesInGroup[scenes::kMaxScenesPerFabric];
@@ -1121,16 +1122,16 @@ void ScenesServer::HandleCopyScene(HandlerContext & ctx, const Commands::CopySce
ctx.mCommandHandler.AddResponse(ctx.mRequestPath, response);
}
-} // namespace Scenes
+} // namespace ScenesManagement
} // namespace Clusters
} // namespace app
} // namespace chip
using namespace chip;
using namespace chip::app::Clusters;
-using namespace chip::app::Clusters::Scenes;
+using namespace chip::app::Clusters::ScenesManagement;
-void emberAfScenesClusterServerInitCallback(EndpointId endpoint)
+void emberAfScenesManagementClusterServerInitCallback(EndpointId endpoint)
{
uint32_t featureMap = 0;
EmberAfStatus status = Attributes::FeatureMap::Get(endpoint, &featureMap);
@@ -1173,7 +1174,7 @@ void emberAfScenesClusterServerInitCallback(EndpointId endpoint)
}
}
-void MatterScenesClusterServerShutdownCallback(EndpointId endpoint)
+void MatterScenesManagementClusterServerShutdownCallback(EndpointId endpoint)
{
uint16_t endpointTableSize = 0;
ReturnOnFailure(Attributes::SceneTableSize::Get(endpoint, &endpointTableSize));
@@ -1183,7 +1184,7 @@ void MatterScenesClusterServerShutdownCallback(EndpointId endpoint)
sceneTable->RemoveEndpoint();
}
-void MatterScenesPluginServerInitCallback()
+void MatterScenesManagementPluginServerInitCallback()
{
CHIP_ERROR err = ScenesServer::Instance().Init();
if (err != CHIP_NO_ERROR)
diff --git a/src/app/clusters/scenes-server/scenes-server.h b/src/app/clusters/scenes-server/scenes-server.h
index 49bd1537de8734..7ddd10ca45c0ed 100644
--- a/src/app/clusters/scenes-server/scenes-server.h
+++ b/src/app/clusters/scenes-server/scenes-server.h
@@ -29,7 +29,7 @@
namespace chip {
namespace app {
namespace Clusters {
-namespace Scenes {
+namespace ScenesManagement {
class ScenesServer : public CommandHandlerInterface, public AttributeAccessInterface
{
@@ -128,7 +128,7 @@ class ScenesServer : public CommandHandlerInterface, public AttributeAccessInter
static ScenesServer mInstance;
};
-} // namespace Scenes
+} // namespace ScenesManagement
} // namespace Clusters
} // namespace app
} // namespace chip
diff --git a/src/app/clusters/window-covering-server/window-covering-server.cpp b/src/app/clusters/window-covering-server/window-covering-server.cpp
index a78a3d138bbd39..b55f59074de843 100644
--- a/src/app/clusters/window-covering-server/window-covering-server.cpp
+++ b/src/app/clusters/window-covering-server/window-covering-server.cpp
@@ -30,9 +30,9 @@
#include
#include
-#ifdef EMBER_AF_PLUGIN_SCENES
+#ifdef EMBER_AF_PLUGIN_SCENES_MANAGEMENT
#include
-#endif // EMBER_AF_PLUGIN_SCENES
+#endif // EMBER_AF_PLUGIN_SCENES_MANAGEMENT
using namespace chip;
using namespace chip::app::Clusters;
diff --git a/src/app/common/templates/config-data.yaml b/src/app/common/templates/config-data.yaml
index c0b473cbb5317c..2605704fa89e0a 100644
--- a/src/app/common/templates/config-data.yaml
+++ b/src/app/common/templates/config-data.yaml
@@ -18,7 +18,7 @@ CommandHandlerInterfaceOnlyClusters:
# CommandHandlerInterface and hence do not need generated command dispatch.
# This uses asUpperCamelCase versions of the cluster name.
- Network Commissioning
- - Scenes
+ - Scenes Management
- RVC Run Mode
- RVC Clean Mode
- Dishwasher Mode
@@ -49,7 +49,7 @@ ClustersWithInitFunctions:
- Thermostat
- Mode Select
- Sample MEI
- - Scenes
+ - Scenes Management
ClustersWithAttributeChangedFunctions:
- Bridged Device Basic
@@ -66,7 +66,7 @@ ClustersWithShutdownFunctions:
- Level Control
- Color Control
- Sample MEI
- - Scenes
+ - Scenes Management
ClustersWithPreAttributeChangeFunctions:
- Door Lock
diff --git a/src/app/tests/TestSceneTable.cpp b/src/app/tests/TestSceneTable.cpp
index 3346c54dabdc6e..1ce2583c28ab27 100644
--- a/src/app/tests/TestSceneTable.cpp
+++ b/src/app/tests/TestSceneTable.cpp
@@ -136,13 +136,13 @@ SceneTableEntry scene14(sceneId11, sceneData14);
SceneTableEntry scene15(sceneId12, sceneData15);
// Clusters EFS data
-static app::Clusters::Scenes::Structs::ExtensionFieldSet::Type OOextensionFieldSet;
-static app::Clusters::Scenes::Structs::ExtensionFieldSet::Type LCextensionFieldSet;
-static app::Clusters::Scenes::Structs::ExtensionFieldSet::Type CCextensionFieldSet;
+static app::Clusters::ScenesManagement::Structs::ExtensionFieldSet::Type OOextensionFieldSet;
+static app::Clusters::ScenesManagement::Structs::ExtensionFieldSet::Type LCextensionFieldSet;
+static app::Clusters::ScenesManagement::Structs::ExtensionFieldSet::Type CCextensionFieldSet;
-static app::Clusters::Scenes::Structs::AttributeValuePair::Type OOPairs[1];
-static app::Clusters::Scenes::Structs::AttributeValuePair::Type LCPairs[2];
-static app::Clusters::Scenes::Structs::AttributeValuePair::Type CCPairs[8];
+static app::Clusters::ScenesManagement::Structs::AttributeValuePair::Type OOPairs[1];
+static app::Clusters::ScenesManagement::Structs::AttributeValuePair::Type LCPairs[2];
+static app::Clusters::ScenesManagement::Structs::AttributeValuePair::Type CCPairs[8];
static uint8_t OO_buffer[scenes::kMaxFieldBytesPerCluster] = { 0 };
static uint8_t LC_buffer[scenes::kMaxFieldBytesPerCluster] = { 0 };
@@ -496,8 +496,8 @@ void TestHandlerFunctions(nlTestSuite * aSuite, void * aContext)
NL_TEST_ASSERT(aSuite, nullptr != sceneTable);
VerifyOrReturn(nullptr != sceneTable);
- app::Clusters::Scenes::Structs::ExtensionFieldSet::Type extensionFieldSetOut;
- app::Clusters::Scenes::Structs::ExtensionFieldSet::DecodableType extensionFieldSetIn;
+ app::Clusters::ScenesManagement::Structs::ExtensionFieldSet::Type extensionFieldSetOut;
+ app::Clusters::ScenesManagement::Structs::ExtensionFieldSet::DecodableType extensionFieldSetIn;
TLV::TLVReader reader;
TLV::TLVWriter writer;
@@ -644,9 +644,9 @@ void TestHandlerFunctions(nlTestSuite * aSuite, void * aContext)
memset(buffer, 0, buff_span.size());
// To test failure on serialize and deserialize when too many pairs are in the field sets
- app::Clusters::Scenes::Structs::ExtensionFieldSet::Type extensionFieldFailTestOut;
- app::Clusters::Scenes::Structs::ExtensionFieldSet::DecodableType extensionFieldFailTestIn;
- app::Clusters::Scenes::Structs::AttributeValuePair::Type TooManyPairs[16];
+ app::Clusters::ScenesManagement::Structs::ExtensionFieldSet::Type extensionFieldFailTestOut;
+ app::Clusters::ScenesManagement::Structs::ExtensionFieldSet::DecodableType extensionFieldFailTestIn;
+ app::Clusters::ScenesManagement::Structs::AttributeValuePair::Type TooManyPairs[16];
uint8_t payloadOk = 0;
for (uint8_t i = 0; i < 16; i++)
diff --git a/src/app/tests/suites/TestScenesFabricRemoval.yaml b/src/app/tests/suites/TestScenesFabricRemoval.yaml
index 3acb0ebf3ae9df..5ba6ce755912df 100644
--- a/src/app/tests/suites/TestScenesFabricRemoval.yaml
+++ b/src/app/tests/suites/TestScenesFabricRemoval.yaml
@@ -19,7 +19,7 @@ name: Scenes Fabric Removal
config:
nodeId: 0x12344321
- cluster: "Scenes"
+ cluster: "Scenes Management"
endpoint: 1
payload:
type: char_string
diff --git a/src/app/tests/suites/TestScenesFabricSceneInfo.yaml b/src/app/tests/suites/TestScenesFabricSceneInfo.yaml
index 8c211e43d94f40..7a26e1e4bf2eb6 100644
--- a/src/app/tests/suites/TestScenesFabricSceneInfo.yaml
+++ b/src/app/tests/suites/TestScenesFabricSceneInfo.yaml
@@ -26,7 +26,7 @@ PICS:
config:
nodeId: 0x12344321
- cluster: "Scenes"
+ cluster: "Scenes Management"
endpoint: 1
payload:
type: char_string
diff --git a/src/app/tests/suites/TestScenesMultiFabric.yaml b/src/app/tests/suites/TestScenesMultiFabric.yaml
index 803b01cdd09e6b..b809165339b516 100644
--- a/src/app/tests/suites/TestScenesMultiFabric.yaml
+++ b/src/app/tests/suites/TestScenesMultiFabric.yaml
@@ -26,7 +26,7 @@ PICS:
config:
nodeId: 0x12344321
- cluster: "Scenes"
+ cluster: "Scenes Management"
endpoint: 1
payload:
type: char_string
diff --git a/src/app/tests/suites/certification/Test_TC_S_1_1.yaml b/src/app/tests/suites/certification/Test_TC_S_1_1.yaml
index c120603fe89559..c8ee4894c7c3c9 100644
--- a/src/app/tests/suites/certification/Test_TC_S_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_S_1_1.yaml
@@ -19,7 +19,7 @@ PICS:
config:
nodeId: 0x12344321
- cluster: "Scenes"
+ cluster: "Scenes Management"
endpoint: 1
tests:
diff --git a/src/app/tests/suites/certification/Test_TC_S_2_1.yaml b/src/app/tests/suites/certification/Test_TC_S_2_1.yaml
index b4cf135366a8b4..7b5606c0d8b050 100644
--- a/src/app/tests/suites/certification/Test_TC_S_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_S_2_1.yaml
@@ -22,7 +22,7 @@ PICS:
config:
nodeId: 0x12344321
- cluster: "Scenes"
+ cluster: "Scenes Management"
endpoint: 1
tests:
diff --git a/src/app/tests/suites/certification/Test_TC_S_2_2.yaml b/src/app/tests/suites/certification/Test_TC_S_2_2.yaml
index c02547a22fef76..3be1aa9caacb5f 100644
--- a/src/app/tests/suites/certification/Test_TC_S_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_S_2_2.yaml
@@ -20,7 +20,7 @@ PICS:
config:
nodeId: 0x12344321
- cluster: "Scenes"
+ cluster: "Scenes Management"
endpoint: 1
G1:
type: group_id
diff --git a/src/app/tests/suites/certification/Test_TC_S_2_3.yaml b/src/app/tests/suites/certification/Test_TC_S_2_3.yaml
index 95c6348f7ea02d..e0bfab2f8d1ff5 100644
--- a/src/app/tests/suites/certification/Test_TC_S_2_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_S_2_3.yaml
@@ -20,7 +20,7 @@ PICS:
config:
nodeId: 0x12344321
- cluster: "Scenes"
+ cluster: "Scenes Management"
endpoint: 1
G1:
type: group_id
diff --git a/src/app/tests/suites/certification/Test_TC_S_2_4.yaml b/src/app/tests/suites/certification/Test_TC_S_2_4.yaml
index 1024fd2b9aaaaa..90a6cfe045192d 100644
--- a/src/app/tests/suites/certification/Test_TC_S_2_4.yaml
+++ b/src/app/tests/suites/certification/Test_TC_S_2_4.yaml
@@ -22,7 +22,7 @@ PICS:
config:
nodeId: 0x12344321
- cluster: "Scenes"
+ cluster: "Scenes Management"
endpoint: 1
G1:
type: group_id
diff --git a/src/app/tests/suites/ciTests.json b/src/app/tests/suites/ciTests.json
index 46c565b9d4833c..732c09fe0dc482 100644
--- a/src/app/tests/suites/ciTests.json
+++ b/src/app/tests/suites/ciTests.json
@@ -331,7 +331,7 @@
"Test_TC_G_1_1",
"Test_TC_G_2_1"
],
- "Scenes": [
+ "ScenesManagement": [
"TestScenesFabricRemoval",
"TestScenesFabricSceneInfo",
"TestScenesMultiFabric",
@@ -436,7 +436,7 @@
"Subscriptions",
"DoorLock",
"Groups",
- "Scenes",
+ "ScenesManagement",
"ResourceMonitoring"
]
}
diff --git a/src/app/tests/suites/manualTests.json b/src/app/tests/suites/manualTests.json
index 7ea2b10c4a0f50..ec67875d1a3161 100644
--- a/src/app/tests/suites/manualTests.json
+++ b/src/app/tests/suites/manualTests.json
@@ -282,7 +282,7 @@
"TimeSynchronization": [],
"UnitLocalization": [],
"Binding": ["Test_TC_BIND_2_1", "Test_TC_BIND_2_2", "Test_TC_BIND_2_3"],
- "Scenes": ["Test_TC_S_2_5", "Test_TC_S_2_6"],
+ "ScenesManagement": ["Test_TC_S_2_5", "Test_TC_S_2_6"],
"PumpConfigurationControl": [],
"AccessControl": [],
"UserLabel": [],
@@ -352,7 +352,7 @@
"TimeSynchronization",
"UnitLocalization",
"Binding",
- "Scenes",
+ "ScenesManagement",
"PumpConfigurationControl",
"AccessControl",
"UserLabel",
diff --git a/src/app/util/mock/include/zap-generated/gen_config.h b/src/app/util/mock/include/zap-generated/gen_config.h
index 60d57388626fa6..8488bc9c8700ca 100644
--- a/src/app/util/mock/include/zap-generated/gen_config.h
+++ b/src/app/util/mock/include/zap-generated/gen_config.h
@@ -18,4 +18,4 @@
#pragma once
#define EMBER_BINDING_TABLE_SIZE 20
-#define MATTER_SCENES_TABLE_SIZE 24
+#define SCENES_MANAGEMENT_TABLE_SIZE 24
diff --git a/src/app/zap-templates/templates/app/gen_config.zapt b/src/app/zap-templates/templates/app/gen_config.zapt
index 4accc4a61be151..65a7705b459036 100644
--- a/src/app/zap-templates/templates/app/gen_config.zapt
+++ b/src/app/zap-templates/templates/app/gen_config.zapt
@@ -38,7 +38,7 @@
#define EMBER_AF_PLUGIN_LEVEL_CONTROL_MINIMUM_LEVEL 0
#define EMBER_AF_PLUGIN_LEVEL_CONTROL_RATE 0
{{/if}}
-{{else if (is_str_equal name "Scenes")}}
+{{else if (is_str_equal name "Scenes Management")}}
{{#if (is_server side)}}
// User options for {{side}} plugin {{name}}
{{/if}}
@@ -49,14 +49,14 @@
// App cluster specs 1.4.4
#define MATTER_CLUSTER_SCENE_NAME_SUPPORT_MASK 0x0001
#define MATTER_CLUSTER_SCENE_NAME_SUPPORT ({{asHex defaultValue 4}} & MATTER_CLUSTER_SCENE_NAME_SUPPORT_MASK)
-// Scenes FeatureMap Table Size feature used for the MATTER_SCENES_TABLE_SIZE define
+// Scenes FeatureMap Table Size feature used for the SCENES_MANAGEMENT_TABLE_SIZE define
// App cluster specs 1.4.4.2
#define MATTER_CLUSTER_TABLE_SIZE_SUPPORT_MASK 0x0001
#define MATTER_CLUSTER_TABLE_SIZE_SUPPORT ({{asHex defaultValue 4}} & MATTER_CLUSTER_TABLE_SIZE_SUPPORT_MASK)
{{/if}}
{{#if (is_str_equal name "SceneTableSize")}}
// Cluster spec 1.4.8.7
-#define MATTER_SCENES_TABLE_SIZE {{defaultValue}}
+#define SCENES_MANAGEMENT_TABLE_SIZE {{defaultValue}}
{{/if}}
{{/if}}
{{/all_user_cluster_generated_attributes}}
diff --git a/src/app/zap-templates/zcl/data-model/chip/matter-devices.xml b/src/app/zap-templates/zcl/data-model/chip/matter-devices.xml
index 85805353abb9ca..7fd03bd0bf41aa 100644
--- a/src/app/zap-templates/zcl/data-model/chip/matter-devices.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/matter-devices.xml
@@ -217,7 +217,7 @@ limitations under the License.
RemoveAllGroups
AddGroupIfIdentifying
-
+
SCENE_NAME_SUPPORT
AddScene
AddSceneResponse
@@ -305,7 +305,7 @@ limitations under the License.
RemoveAllGroups
AddGroupIfIdentifying
-
+
SCENE_NAME_SUPPORT
AddScene
AddSceneResponse
@@ -390,7 +390,7 @@ limitations under the License.
RemoveAllGroups
AddGroupIfIdentifying
-
+
SCENE_NAME_SUPPORT
AddScene
AddSceneResponse
@@ -491,7 +491,7 @@ limitations under the License.
RemoveAllGroups
AddGroupIfIdentifying
-
+
SCENE_NAME_SUPPORT
AddScene
AddSceneResponse
@@ -594,7 +594,7 @@ limitations under the License.
RemoveAllGroups
AddGroupIfIdentifying
-
+
SCENE_NAME_SUPPORT
AddScene
AddSceneResponse
@@ -675,7 +675,7 @@ limitations under the License.
RemoveAllGroups
AddGroupIfIdentifying
-
+
SCENE_NAME_SUPPORT
AddScene
AddSceneResponse
@@ -760,7 +760,7 @@ limitations under the License.
RemoveAllGroups
AddGroupIfIdentifying
-
+
SCENE_COUNT
CURRENT_SCENE
CURRENT_GROUP
@@ -839,7 +839,7 @@ limitations under the License.
RemoveAllGroups
AddGroupIfIdentifying
-
+
SCENE_COUNT
CURRENT_SCENE
CURRENT_GROUP
@@ -900,7 +900,7 @@ limitations under the License.
RemoveAllGroups
AddGroupIfIdentifying
-
+
SCENE_COUNT
CURRENT_SCENE
CURRENT_GROUP
@@ -962,7 +962,7 @@ limitations under the License.
RemoveAllGroups
AddGroupIfIdentifying
-
+
SCENE_NAME_SUPPORT
AddScene
AddSceneResponse
@@ -1010,7 +1010,7 @@ limitations under the License.
-
+
@@ -1057,7 +1057,7 @@ limitations under the License.
RemoveAllGroups
AddGroupIfIdentifying
-
+
SCENE_COUNT
CURRENT_SCENE
CURRENT_GROUP
@@ -1332,7 +1332,7 @@ limitations under the License.
BINDING
-
+
@@ -1408,7 +1408,7 @@ limitations under the License.
CLIENT_LIST
PARTS_LIST
-
+
SCENE_COUNT
CURRENT_SCENE
CURRENT_GROUP
@@ -1469,7 +1469,7 @@ limitations under the License.
BINDING
-
+
@@ -1512,7 +1512,7 @@ limitations under the License.
RemoveAllGroups
AddGroupIfIdentifying
-
+
SCENE_COUNT
CURRENT_SCENE
CURRENT_GROUP
@@ -1563,7 +1563,7 @@ limitations under the License.
BINDING
-
+
SCENE_COUNT
CURRENT_SCENE
CURRENT_GROUP
@@ -1869,7 +1869,7 @@ limitations under the License.
-
+
@@ -2309,7 +2309,7 @@ limitations under the License.
On
Toggle
-
+
SCENE_COUNT
CURRENT_SCENE
CURRENT_GROUP
diff --git a/src/app/zap-templates/zcl/data-model/chip/scene.xml b/src/app/zap-templates/zcl/data-model/chip/scene.xml
index b1273514dd9f04..a733de7de78711 100644
--- a/src/app/zap-templates/zcl/data-model/chip/scene.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/scene.xml
@@ -16,17 +16,17 @@ limitations under the License.
-->
-
+
-
+
-
+
@@ -35,23 +35,23 @@ limitations under the License.
-
+
-
+
- Scenes
+ Scenes Management
General
Attributes and commands for scene configuration and manipulation.
- 0x0005
+ 0x0062
SCENES_CLUSTER
true
true
@@ -244,7 +244,7 @@ limitations under the License.
-
+
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index d99ab989625a54..28f9582073a57f 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -128,199 +128,6 @@ cluster Groups = 4 {
fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
}
-/** Attributes and commands for scene configuration and manipulation. */
-provisional cluster Scenes = 5 {
- revision 5;
-
- bitmap CopyModeBitmap : bitmap8 {
- kCopyAllScenes = 0x1;
- }
-
- bitmap Feature : bitmap32 {
- kSceneNames = 0x1;
- kExplicit = 0x2;
- kTableSize = 0x4;
- kFabricScenes = 0x8;
- }
-
- bitmap NameSupportBitmap : bitmap8 {
- kSceneNames = 0x80;
- }
-
- struct AttributeValuePair {
- attrib_id attributeID = 0;
- int32u attributeValue = 1;
- }
-
- struct ExtensionFieldSet {
- cluster_id clusterID = 0;
- AttributeValuePair attributeValueList[] = 1;
- }
-
- fabric_scoped struct SceneInfoStruct {
- int8u sceneCount = 0;
- fabric_sensitive int8u currentScene = 1;
- fabric_sensitive group_id currentGroup = 2;
- fabric_sensitive boolean sceneValid = 3;
- int8u remainingCapacity = 4;
- fabric_idx fabricIndex = 254;
- }
-
- readonly attribute optional int8u sceneCount = 0;
- readonly attribute optional int8u currentScene = 1;
- readonly attribute optional group_id currentGroup = 2;
- readonly attribute optional boolean sceneValid = 3;
- readonly attribute NameSupportBitmap nameSupport = 4;
- readonly attribute optional nullable node_id lastConfiguredBy = 5;
- readonly attribute int16u sceneTableSize = 6;
- readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
- readonly attribute command_id generatedCommandList[] = 65528;
- readonly attribute command_id acceptedCommandList[] = 65529;
- readonly attribute event_id eventList[] = 65530;
- readonly attribute attrib_id attributeList[] = 65531;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct AddSceneResponse = 0 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct ViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct ViewSceneResponse = 1 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct RemoveSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct RemoveSceneResponse = 2 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RemoveAllScenesRequest {
- group_id groupID = 0;
- }
-
- response struct RemoveAllScenesResponse = 3 {
- status status = 0;
- group_id groupID = 1;
- }
-
- request struct StoreSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct StoreSceneResponse = 4 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct RecallSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- optional nullable int16u transitionTime = 2;
- }
-
- request struct GetSceneMembershipRequest {
- group_id groupID = 0;
- }
-
- response struct GetSceneMembershipResponse = 6 {
- status status = 0;
- nullable int8u capacity = 1;
- group_id groupID = 2;
- optional int8u sceneList[] = 3;
- }
-
- request struct EnhancedAddSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- int16u transitionTime = 2;
- char_string sceneName = 3;
- ExtensionFieldSet extensionFieldSets[] = 4;
- }
-
- response struct EnhancedAddSceneResponse = 64 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- }
-
- request struct EnhancedViewSceneRequest {
- group_id groupID = 0;
- int8u sceneID = 1;
- }
-
- response struct EnhancedViewSceneResponse = 65 {
- status status = 0;
- group_id groupID = 1;
- int8u sceneID = 2;
- optional int16u transitionTime = 3;
- optional char_string sceneName = 4;
- optional ExtensionFieldSet extensionFieldSets[] = 5;
- }
-
- request struct CopySceneRequest {
- CopyModeBitmap mode = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- group_id groupIdentifierTo = 3;
- int8u sceneIdentifierTo = 4;
- }
-
- response struct CopySceneResponse = 66 {
- status status = 0;
- group_id groupIdentifierFrom = 1;
- int8u sceneIdentifierFrom = 2;
- }
-
- /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
- fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
- /** Retrieves the requested scene entry from its Scene table. */
- fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
- /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
- /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
- fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
- /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
- fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
- /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
- fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
- /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
- fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
- /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
- fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
- /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
- fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
- /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
-}
-
/** Attributes and commands for switching devices between 'On' and 'Off' states. */
cluster OnOff = 6 {
revision 6;
@@ -3904,6 +3711,199 @@ cluster RvcOperationalState = 97 {
command Resume(): OperationalCommandResponse = 3;
}
+/** Attributes and commands for scene configuration and manipulation. */
+provisional cluster ScenesManagement = 98 {
+ revision 5;
+
+ bitmap CopyModeBitmap : bitmap8 {
+ kCopyAllScenes = 0x1;
+ }
+
+ bitmap Feature : bitmap32 {
+ kSceneNames = 0x1;
+ kExplicit = 0x2;
+ kTableSize = 0x4;
+ kFabricScenes = 0x8;
+ }
+
+ bitmap NameSupportBitmap : bitmap8 {
+ kSceneNames = 0x80;
+ }
+
+ struct AttributeValuePair {
+ attrib_id attributeID = 0;
+ int32u attributeValue = 1;
+ }
+
+ struct ExtensionFieldSet {
+ cluster_id clusterID = 0;
+ AttributeValuePair attributeValueList[] = 1;
+ }
+
+ fabric_scoped struct SceneInfoStruct {
+ int8u sceneCount = 0;
+ fabric_sensitive int8u currentScene = 1;
+ fabric_sensitive group_id currentGroup = 2;
+ fabric_sensitive boolean sceneValid = 3;
+ int8u remainingCapacity = 4;
+ fabric_idx fabricIndex = 254;
+ }
+
+ readonly attribute optional int8u sceneCount = 0;
+ readonly attribute optional int8u currentScene = 1;
+ readonly attribute optional group_id currentGroup = 2;
+ readonly attribute optional boolean sceneValid = 3;
+ readonly attribute NameSupportBitmap nameSupport = 4;
+ readonly attribute optional nullable node_id lastConfiguredBy = 5;
+ readonly attribute int16u sceneTableSize = 6;
+ readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
+ readonly attribute command_id generatedCommandList[] = 65528;
+ readonly attribute command_id acceptedCommandList[] = 65529;
+ readonly attribute event_id eventList[] = 65530;
+ readonly attribute attrib_id attributeList[] = 65531;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct AddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct AddSceneResponse = 0 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct ViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct ViewSceneResponse = 1 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct RemoveSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct RemoveSceneResponse = 2 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RemoveAllScenesRequest {
+ group_id groupID = 0;
+ }
+
+ response struct RemoveAllScenesResponse = 3 {
+ status status = 0;
+ group_id groupID = 1;
+ }
+
+ request struct StoreSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct StoreSceneResponse = 4 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct RecallSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ optional nullable int16u transitionTime = 2;
+ }
+
+ request struct GetSceneMembershipRequest {
+ group_id groupID = 0;
+ }
+
+ response struct GetSceneMembershipResponse = 6 {
+ status status = 0;
+ nullable int8u capacity = 1;
+ group_id groupID = 2;
+ optional int8u sceneList[] = 3;
+ }
+
+ request struct EnhancedAddSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ int16u transitionTime = 2;
+ char_string sceneName = 3;
+ ExtensionFieldSet extensionFieldSets[] = 4;
+ }
+
+ response struct EnhancedAddSceneResponse = 64 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ }
+
+ request struct EnhancedViewSceneRequest {
+ group_id groupID = 0;
+ int8u sceneID = 1;
+ }
+
+ response struct EnhancedViewSceneResponse = 65 {
+ status status = 0;
+ group_id groupID = 1;
+ int8u sceneID = 2;
+ optional int16u transitionTime = 3;
+ optional char_string sceneName = 4;
+ optional ExtensionFieldSet extensionFieldSets[] = 5;
+ }
+
+ request struct CopySceneRequest {
+ CopyModeBitmap mode = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ group_id groupIdentifierTo = 3;
+ int8u sceneIdentifierTo = 4;
+ }
+
+ response struct CopySceneResponse = 66 {
+ status status = 0;
+ group_id groupIdentifierFrom = 1;
+ int8u sceneIdentifierFrom = 2;
+ }
+
+ /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
+ fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
+ /** Retrieves the requested scene entry from its Scene table. */
+ fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
+ /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
+ /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
+ fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
+ /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
+ fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
+ /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
+ fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
+ /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
+ fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
+ /** Allows a scene to be added using a finer scene transition time than the AddScene command. */
+ fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
+ /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
+ fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
+ /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
+ fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
+}
+
/** Attributes and commands for monitoring HEPA filters in a device */
cluster HepaFilterMonitoring = 113 {
revision 1; // NOTE: Default/not specifically set
diff --git a/src/controller/data_model/controller-clusters.zap b/src/controller/data_model/controller-clusters.zap
index 53ce1b49183816..1b3b7263e52b36 100644
--- a/src/controller/data_model/controller-clusters.zap
+++ b/src/controller/data_model/controller-clusters.zap
@@ -213,8 +213,8 @@
]
},
{
- "name": "Scenes",
- "code": 5,
+ "name": "Scenes Management",
+ "code": 98,
"mfgCode": null,
"define": "SCENES_CLUSTER",
"side": "client",
diff --git a/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java b/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java
index 110ea806adc10e..ff25d92b121c8c 100644
--- a/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java
+++ b/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java
@@ -1002,17 +1002,14 @@ public void onSuccess(byte[] tlv) {
}
}
- public static class ScenesCluster extends BaseChipCluster {
- public static final long CLUSTER_ID = 5L;
+ public static class OnOffCluster extends BaseChipCluster {
+ public static final long CLUSTER_ID = 6L;
- private static final long SCENE_COUNT_ATTRIBUTE_ID = 0L;
- private static final long CURRENT_SCENE_ATTRIBUTE_ID = 1L;
- private static final long CURRENT_GROUP_ATTRIBUTE_ID = 2L;
- private static final long SCENE_VALID_ATTRIBUTE_ID = 3L;
- private static final long NAME_SUPPORT_ATTRIBUTE_ID = 4L;
- private static final long LAST_CONFIGURED_BY_ATTRIBUTE_ID = 5L;
- private static final long SCENE_TABLE_SIZE_ATTRIBUTE_ID = 6L;
- private static final long FABRIC_SCENE_INFO_ATTRIBUTE_ID = 7L;
+ private static final long ON_OFF_ATTRIBUTE_ID = 0L;
+ private static final long GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID = 16384L;
+ private static final long ON_TIME_ATTRIBUTE_ID = 16385L;
+ private static final long OFF_WAIT_TIME_ATTRIBUTE_ID = 16386L;
+ private static final long START_UP_ON_OFF_ATTRIBUTE_ID = 16387L;
private static final long GENERATED_COMMAND_LIST_ATTRIBUTE_ID = 65528L;
private static final long ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID = 65529L;
private static final long EVENT_LIST_ATTRIBUTE_ID = 65530L;
@@ -1020,7 +1017,7 @@ public static class ScenesCluster extends BaseChipCluster {
private static final long FEATURE_MAP_ATTRIBUTE_ID = 65532L;
private static final long CLUSTER_REVISION_ATTRIBUTE_ID = 65533L;
- public ScenesCluster(long devicePtr, int endpointId) {
+ public OnOffCluster(long devicePtr, int endpointId) {
super(devicePtr, endpointId, CLUSTER_ID);
}
@@ -1030,287 +1027,113 @@ public long initWithDevice(long devicePtr, int endpointId) {
return 0L;
}
- public void addScene(AddSceneResponseCallback callback, Integer groupID, Integer sceneID, Integer transitionTime, String sceneName, ArrayList extensionFieldSets) {
- addScene(callback, groupID, sceneID, transitionTime, sceneName, extensionFieldSets, 0);
+ public void off(DefaultClusterCallback callback) {
+ off(callback, 0);
}
- public void addScene(AddSceneResponseCallback callback, Integer groupID, Integer sceneID, Integer transitionTime, String sceneName, ArrayList extensionFieldSets, int timedInvokeTimeoutMs) {
+ public void off(DefaultClusterCallback callback, int timedInvokeTimeoutMs) {
final long commandId = 0L;
ArrayList elements = new ArrayList<>();
- final long groupIDFieldID = 0L;
- BaseTLVType groupIDtlvValue = new UIntType(groupID);
- elements.add(new StructElement(groupIDFieldID, groupIDtlvValue));
-
- final long sceneIDFieldID = 1L;
- BaseTLVType sceneIDtlvValue = new UIntType(sceneID);
- elements.add(new StructElement(sceneIDFieldID, sceneIDtlvValue));
-
- final long transitionTimeFieldID = 2L;
- BaseTLVType transitionTimetlvValue = new UIntType(transitionTime);
- elements.add(new StructElement(transitionTimeFieldID, transitionTimetlvValue));
-
- final long sceneNameFieldID = 3L;
- BaseTLVType sceneNametlvValue = new StringType(sceneName);
- elements.add(new StructElement(sceneNameFieldID, sceneNametlvValue));
-
- final long extensionFieldSetsFieldID = 4L;
- BaseTLVType extensionFieldSetstlvValue = ArrayType.generateArrayType(extensionFieldSets, (elementextensionFieldSets) -> elementextensionFieldSets.encodeTlv());
- elements.add(new StructElement(extensionFieldSetsFieldID, extensionFieldSetstlvValue));
-
StructType value = new StructType(elements);
invoke(new InvokeCallbackImpl(callback) {
@Override
public void onResponse(StructType invokeStructValue) {
- final long statusFieldID = 0L;
- Integer status = null;
- final long groupIDFieldID = 1L;
- Integer groupID = null;
- final long sceneIDFieldID = 2L;
- Integer sceneID = null;
- for (StructElement element: invokeStructValue.value()) {
- if (element.contextTagNum() == statusFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- status = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == groupIDFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- groupID = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == sceneIDFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- sceneID = castingValue.value(Integer.class);
- }
- }
- }
- callback.onSuccess(status, groupID, sceneID);
+ callback.onSuccess();
}}, commandId, value, timedInvokeTimeoutMs);
}
- public void viewScene(ViewSceneResponseCallback callback, Integer groupID, Integer sceneID) {
- viewScene(callback, groupID, sceneID, 0);
+ public void on(DefaultClusterCallback callback) {
+ on(callback, 0);
}
- public void viewScene(ViewSceneResponseCallback callback, Integer groupID, Integer sceneID, int timedInvokeTimeoutMs) {
+ public void on(DefaultClusterCallback callback, int timedInvokeTimeoutMs) {
final long commandId = 1L;
ArrayList elements = new ArrayList<>();
- final long groupIDFieldID = 0L;
- BaseTLVType groupIDtlvValue = new UIntType(groupID);
- elements.add(new StructElement(groupIDFieldID, groupIDtlvValue));
-
- final long sceneIDFieldID = 1L;
- BaseTLVType sceneIDtlvValue = new UIntType(sceneID);
- elements.add(new StructElement(sceneIDFieldID, sceneIDtlvValue));
-
StructType value = new StructType(elements);
invoke(new InvokeCallbackImpl(callback) {
@Override
public void onResponse(StructType invokeStructValue) {
- final long statusFieldID = 0L;
- Integer status = null;
- final long groupIDFieldID = 1L;
- Integer groupID = null;
- final long sceneIDFieldID = 2L;
- Integer sceneID = null;
- final long transitionTimeFieldID = 3L;
- Optional transitionTime = Optional.empty();
- final long sceneNameFieldID = 4L;
- Optional sceneName = Optional.empty();
- final long extensionFieldSetsFieldID = 5L;
- Optional> extensionFieldSets = Optional.empty();
- for (StructElement element: invokeStructValue.value()) {
- if (element.contextTagNum() == statusFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- status = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == groupIDFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- groupID = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == sceneIDFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- sceneID = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == transitionTimeFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- transitionTime = Optional.of(castingValue.value(Integer.class));
- }
- } else if (element.contextTagNum() == sceneNameFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.String) {
- StringType castingValue = element.value(StringType.class);
- sceneName = Optional.of(castingValue.value(String.class));
- }
- } else if (element.contextTagNum() == extensionFieldSetsFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.Array) {
- ArrayType castingValue = element.value(ArrayType.class);
- extensionFieldSets = Optional.of(castingValue.map((elementcastingValue) -> ChipStructs.ScenesClusterExtensionFieldSet.decodeTlv(elementcastingValue)));
- }
- }
- }
- callback.onSuccess(status, groupID, sceneID, transitionTime, sceneName, extensionFieldSets);
+ callback.onSuccess();
}}, commandId, value, timedInvokeTimeoutMs);
}
- public void removeScene(RemoveSceneResponseCallback callback, Integer groupID, Integer sceneID) {
- removeScene(callback, groupID, sceneID, 0);
+ public void toggle(DefaultClusterCallback callback) {
+ toggle(callback, 0);
}
- public void removeScene(RemoveSceneResponseCallback callback, Integer groupID, Integer sceneID, int timedInvokeTimeoutMs) {
+ public void toggle(DefaultClusterCallback callback, int timedInvokeTimeoutMs) {
final long commandId = 2L;
ArrayList elements = new ArrayList<>();
- final long groupIDFieldID = 0L;
- BaseTLVType groupIDtlvValue = new UIntType(groupID);
- elements.add(new StructElement(groupIDFieldID, groupIDtlvValue));
-
- final long sceneIDFieldID = 1L;
- BaseTLVType sceneIDtlvValue = new UIntType(sceneID);
- elements.add(new StructElement(sceneIDFieldID, sceneIDtlvValue));
-
StructType value = new StructType(elements);
invoke(new InvokeCallbackImpl(callback) {
@Override
public void onResponse(StructType invokeStructValue) {
- final long statusFieldID = 0L;
- Integer status = null;
- final long groupIDFieldID = 1L;
- Integer groupID = null;
- final long sceneIDFieldID = 2L;
- Integer sceneID = null;
- for (StructElement element: invokeStructValue.value()) {
- if (element.contextTagNum() == statusFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- status = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == groupIDFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- groupID = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == sceneIDFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- sceneID = castingValue.value(Integer.class);
- }
- }
- }
- callback.onSuccess(status, groupID, sceneID);
+ callback.onSuccess();
}}, commandId, value, timedInvokeTimeoutMs);
}
- public void removeAllScenes(RemoveAllScenesResponseCallback callback, Integer groupID) {
- removeAllScenes(callback, groupID, 0);
+ public void offWithEffect(DefaultClusterCallback callback, Integer effectIdentifier, Integer effectVariant) {
+ offWithEffect(callback, effectIdentifier, effectVariant, 0);
}
- public void removeAllScenes(RemoveAllScenesResponseCallback callback, Integer groupID, int timedInvokeTimeoutMs) {
- final long commandId = 3L;
+ public void offWithEffect(DefaultClusterCallback callback, Integer effectIdentifier, Integer effectVariant, int timedInvokeTimeoutMs) {
+ final long commandId = 64L;
ArrayList elements = new ArrayList<>();
- final long groupIDFieldID = 0L;
- BaseTLVType groupIDtlvValue = new UIntType(groupID);
- elements.add(new StructElement(groupIDFieldID, groupIDtlvValue));
+ final long effectIdentifierFieldID = 0L;
+ BaseTLVType effectIdentifiertlvValue = new UIntType(effectIdentifier);
+ elements.add(new StructElement(effectIdentifierFieldID, effectIdentifiertlvValue));
+
+ final long effectVariantFieldID = 1L;
+ BaseTLVType effectVarianttlvValue = new UIntType(effectVariant);
+ elements.add(new StructElement(effectVariantFieldID, effectVarianttlvValue));
StructType value = new StructType(elements);
invoke(new InvokeCallbackImpl(callback) {
@Override
public void onResponse(StructType invokeStructValue) {
- final long statusFieldID = 0L;
- Integer status = null;
- final long groupIDFieldID = 1L;
- Integer groupID = null;
- for (StructElement element: invokeStructValue.value()) {
- if (element.contextTagNum() == statusFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- status = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == groupIDFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- groupID = castingValue.value(Integer.class);
- }
- }
- }
- callback.onSuccess(status, groupID);
+ callback.onSuccess();
}}, commandId, value, timedInvokeTimeoutMs);
}
- public void storeScene(StoreSceneResponseCallback callback, Integer groupID, Integer sceneID) {
- storeScene(callback, groupID, sceneID, 0);
+ public void onWithRecallGlobalScene(DefaultClusterCallback callback) {
+ onWithRecallGlobalScene(callback, 0);
}
- public void storeScene(StoreSceneResponseCallback callback, Integer groupID, Integer sceneID, int timedInvokeTimeoutMs) {
- final long commandId = 4L;
+ public void onWithRecallGlobalScene(DefaultClusterCallback callback, int timedInvokeTimeoutMs) {
+ final long commandId = 65L;
ArrayList elements = new ArrayList<>();
- final long groupIDFieldID = 0L;
- BaseTLVType groupIDtlvValue = new UIntType(groupID);
- elements.add(new StructElement(groupIDFieldID, groupIDtlvValue));
-
- final long sceneIDFieldID = 1L;
- BaseTLVType sceneIDtlvValue = new UIntType(sceneID);
- elements.add(new StructElement(sceneIDFieldID, sceneIDtlvValue));
-
StructType value = new StructType(elements);
invoke(new InvokeCallbackImpl(callback) {
@Override
public void onResponse(StructType invokeStructValue) {
- final long statusFieldID = 0L;
- Integer status = null;
- final long groupIDFieldID = 1L;
- Integer groupID = null;
- final long sceneIDFieldID = 2L;
- Integer sceneID = null;
- for (StructElement element: invokeStructValue.value()) {
- if (element.contextTagNum() == statusFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- status = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == groupIDFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- groupID = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == sceneIDFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- sceneID = castingValue.value(Integer.class);
- }
- }
- }
- callback.onSuccess(status, groupID, sceneID);
+ callback.onSuccess();
}}, commandId, value, timedInvokeTimeoutMs);
}
- public void recallScene(DefaultClusterCallback callback, Integer groupID, Integer sceneID, @Nullable Optional transitionTime) {
- recallScene(callback, groupID, sceneID, transitionTime, 0);
+ public void onWithTimedOff(DefaultClusterCallback callback, Integer onOffControl, Integer onTime, Integer offWaitTime) {
+ onWithTimedOff(callback, onOffControl, onTime, offWaitTime, 0);
}
- public void recallScene(DefaultClusterCallback callback, Integer groupID, Integer sceneID, @Nullable Optional transitionTime, int timedInvokeTimeoutMs) {
- final long commandId = 5L;
+ public void onWithTimedOff(DefaultClusterCallback callback, Integer onOffControl, Integer onTime, Integer offWaitTime, int timedInvokeTimeoutMs) {
+ final long commandId = 66L;
ArrayList elements = new ArrayList<>();
- final long groupIDFieldID = 0L;
- BaseTLVType groupIDtlvValue = new UIntType(groupID);
- elements.add(new StructElement(groupIDFieldID, groupIDtlvValue));
-
- final long sceneIDFieldID = 1L;
- BaseTLVType sceneIDtlvValue = new UIntType(sceneID);
- elements.add(new StructElement(sceneIDFieldID, sceneIDtlvValue));
+ final long onOffControlFieldID = 0L;
+ BaseTLVType onOffControltlvValue = new UIntType(onOffControl);
+ elements.add(new StructElement(onOffControlFieldID, onOffControltlvValue));
- final long transitionTimeFieldID = 2L;
- BaseTLVType transitionTimetlvValue = transitionTime != null ? transitionTime.map((nonOptionaltransitionTime) -> new UIntType(nonOptionaltransitionTime)).orElse(new EmptyType()) : new NullType();
- elements.add(new StructElement(transitionTimeFieldID, transitionTimetlvValue));
+ final long onTimeFieldID = 1L;
+ BaseTLVType onTimetlvValue = new UIntType(onTime);
+ elements.add(new StructElement(onTimeFieldID, onTimetlvValue));
+
+ final long offWaitTimeFieldID = 2L;
+ BaseTLVType offWaitTimetlvValue = new UIntType(offWaitTime);
+ elements.add(new StructElement(offWaitTimeFieldID, offWaitTimetlvValue));
StructType value = new StructType(elements);
invoke(new InvokeCallbackImpl(callback) {
@@ -1320,459 +1143,306 @@ public void onResponse(StructType invokeStructValue) {
}}, commandId, value, timedInvokeTimeoutMs);
}
- public void getSceneMembership(GetSceneMembershipResponseCallback callback, Integer groupID) {
- getSceneMembership(callback, groupID, 0);
+ public interface StartUpOnOffAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(@Nullable Integer value);
}
- public void getSceneMembership(GetSceneMembershipResponseCallback callback, Integer groupID, int timedInvokeTimeoutMs) {
- final long commandId = 6L;
-
- ArrayList elements = new ArrayList<>();
- final long groupIDFieldID = 0L;
- BaseTLVType groupIDtlvValue = new UIntType(groupID);
- elements.add(new StructElement(groupIDFieldID, groupIDtlvValue));
-
- StructType value = new StructType(elements);
- invoke(new InvokeCallbackImpl(callback) {
- @Override
- public void onResponse(StructType invokeStructValue) {
- final long statusFieldID = 0L;
- Integer status = null;
- final long capacityFieldID = 1L;
- @Nullable Integer capacity = null;
- final long groupIDFieldID = 2L;
- Integer groupID = null;
- final long sceneListFieldID = 3L;
- Optional> sceneList = Optional.empty();
- for (StructElement element: invokeStructValue.value()) {
- if (element.contextTagNum() == statusFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- status = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == capacityFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- capacity = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == groupIDFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- groupID = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == sceneListFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.Array) {
- ArrayType castingValue = element.value(ArrayType.class);
- sceneList = Optional.of(castingValue.map((elementcastingValue) -> elementcastingValue.value(Integer.class)));
- }
- }
- }
- callback.onSuccess(status, capacity, groupID, sceneList);
- }}, commandId, value, timedInvokeTimeoutMs);
+ public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
}
- public void enhancedAddScene(EnhancedAddSceneResponseCallback callback, Integer groupID, Integer sceneID, Integer transitionTime, String sceneName, ArrayList extensionFieldSets) {
- enhancedAddScene(callback, groupID, sceneID, transitionTime, sceneName, extensionFieldSets, 0);
+ public interface AcceptedCommandListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
}
- public void enhancedAddScene(EnhancedAddSceneResponseCallback callback, Integer groupID, Integer sceneID, Integer transitionTime, String sceneName, ArrayList extensionFieldSets, int timedInvokeTimeoutMs) {
- final long commandId = 64L;
-
- ArrayList elements = new ArrayList<>();
- final long groupIDFieldID = 0L;
- BaseTLVType groupIDtlvValue = new UIntType(groupID);
- elements.add(new StructElement(groupIDFieldID, groupIDtlvValue));
+ public interface EventListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
- final long sceneIDFieldID = 1L;
- BaseTLVType sceneIDtlvValue = new UIntType(sceneID);
- elements.add(new StructElement(sceneIDFieldID, sceneIDtlvValue));
+ public interface AttributeListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
- final long transitionTimeFieldID = 2L;
- BaseTLVType transitionTimetlvValue = new UIntType(transitionTime);
- elements.add(new StructElement(transitionTimeFieldID, transitionTimetlvValue));
+ public void readOnOffAttribute(
+ BooleanAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_OFF_ATTRIBUTE_ID);
- final long sceneNameFieldID = 3L;
- BaseTLVType sceneNametlvValue = new StringType(sceneName);
- elements.add(new StructElement(sceneNameFieldID, sceneNametlvValue));
+ readAttribute(new ReportCallbackImpl(callback, path) {
+ @Override
+ public void onSuccess(byte[] tlv) {
+ Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ callback.onSuccess(value);
+ }
+ }, ON_OFF_ATTRIBUTE_ID, true);
+ }
- final long extensionFieldSetsFieldID = 4L;
- BaseTLVType extensionFieldSetstlvValue = ArrayType.generateArrayType(extensionFieldSets, (elementextensionFieldSets) -> elementextensionFieldSets.encodeTlv());
- elements.add(new StructElement(extensionFieldSetsFieldID, extensionFieldSetstlvValue));
+ public void subscribeOnOffAttribute(
+ BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_OFF_ATTRIBUTE_ID);
- StructType value = new StructType(elements);
- invoke(new InvokeCallbackImpl(callback) {
+ subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
- public void onResponse(StructType invokeStructValue) {
- final long statusFieldID = 0L;
- Integer status = null;
- final long groupIDFieldID = 1L;
- Integer groupID = null;
- final long sceneIDFieldID = 2L;
- Integer sceneID = null;
- for (StructElement element: invokeStructValue.value()) {
- if (element.contextTagNum() == statusFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- status = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == groupIDFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- groupID = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == sceneIDFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- sceneID = castingValue.value(Integer.class);
- }
- }
+ public void onSuccess(byte[] tlv) {
+ Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- callback.onSuccess(status, groupID, sceneID);
- }}, commandId, value, timedInvokeTimeoutMs);
+ }, ON_OFF_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void enhancedViewScene(EnhancedViewSceneResponseCallback callback, Integer groupID, Integer sceneID) {
- enhancedViewScene(callback, groupID, sceneID, 0);
+ public void readGlobalSceneControlAttribute(
+ BooleanAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID);
+
+ readAttribute(new ReportCallbackImpl(callback, path) {
+ @Override
+ public void onSuccess(byte[] tlv) {
+ Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ callback.onSuccess(value);
+ }
+ }, GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID, true);
}
- public void enhancedViewScene(EnhancedViewSceneResponseCallback callback, Integer groupID, Integer sceneID, int timedInvokeTimeoutMs) {
- final long commandId = 65L;
+ public void subscribeGlobalSceneControlAttribute(
+ BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID);
- ArrayList elements = new ArrayList<>();
- final long groupIDFieldID = 0L;
- BaseTLVType groupIDtlvValue = new UIntType(groupID);
- elements.add(new StructElement(groupIDFieldID, groupIDtlvValue));
+ subscribeAttribute(new ReportCallbackImpl(callback, path) {
+ @Override
+ public void onSuccess(byte[] tlv) {
+ Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ }
+ }, GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID, minInterval, maxInterval);
+ }
- final long sceneIDFieldID = 1L;
- BaseTLVType sceneIDtlvValue = new UIntType(sceneID);
- elements.add(new StructElement(sceneIDFieldID, sceneIDtlvValue));
+ public void readOnTimeAttribute(
+ IntegerAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_TIME_ATTRIBUTE_ID);
- StructType value = new StructType(elements);
- invoke(new InvokeCallbackImpl(callback) {
+ readAttribute(new ReportCallbackImpl(callback, path) {
@Override
- public void onResponse(StructType invokeStructValue) {
- final long statusFieldID = 0L;
- Integer status = null;
- final long groupIDFieldID = 1L;
- Integer groupID = null;
- final long sceneIDFieldID = 2L;
- Integer sceneID = null;
- final long transitionTimeFieldID = 3L;
- Optional transitionTime = Optional.empty();
- final long sceneNameFieldID = 4L;
- Optional sceneName = Optional.empty();
- final long extensionFieldSetsFieldID = 5L;
- Optional> extensionFieldSets = Optional.empty();
- for (StructElement element: invokeStructValue.value()) {
- if (element.contextTagNum() == statusFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- status = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == groupIDFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- groupID = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == sceneIDFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- sceneID = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == transitionTimeFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- transitionTime = Optional.of(castingValue.value(Integer.class));
- }
- } else if (element.contextTagNum() == sceneNameFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.String) {
- StringType castingValue = element.value(StringType.class);
- sceneName = Optional.of(castingValue.value(String.class));
- }
- } else if (element.contextTagNum() == extensionFieldSetsFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.Array) {
- ArrayType castingValue = element.value(ArrayType.class);
- extensionFieldSets = Optional.of(castingValue.map((elementcastingValue) -> ChipStructs.ScenesClusterExtensionFieldSet.decodeTlv(elementcastingValue)));
- }
- }
+ public void onSuccess(byte[] tlv) {
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ callback.onSuccess(value);
}
- callback.onSuccess(status, groupID, sceneID, transitionTime, sceneName, extensionFieldSets);
- }}, commandId, value, timedInvokeTimeoutMs);
+ }, ON_TIME_ATTRIBUTE_ID, true);
}
- public void copyScene(CopySceneResponseCallback callback, Integer mode, Integer groupIdentifierFrom, Integer sceneIdentifierFrom, Integer groupIdentifierTo, Integer sceneIdentifierTo) {
- copyScene(callback, mode, groupIdentifierFrom, sceneIdentifierFrom, groupIdentifierTo, sceneIdentifierTo, 0);
+ public void writeOnTimeAttribute(DefaultClusterCallback callback, Integer value) {
+ writeOnTimeAttribute(callback, value, 0);
}
- public void copyScene(CopySceneResponseCallback callback, Integer mode, Integer groupIdentifierFrom, Integer sceneIdentifierFrom, Integer groupIdentifierTo, Integer sceneIdentifierTo, int timedInvokeTimeoutMs) {
- final long commandId = 66L;
+ public void writeOnTimeAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = new UIntType(value);
+ writeAttribute(new WriteAttributesCallbackImpl(callback), ON_TIME_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }
- ArrayList elements = new ArrayList<>();
- final long modeFieldID = 0L;
- BaseTLVType modetlvValue = new UIntType(mode);
- elements.add(new StructElement(modeFieldID, modetlvValue));
+ public void subscribeOnTimeAttribute(
+ IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_TIME_ATTRIBUTE_ID);
- final long groupIdentifierFromFieldID = 1L;
- BaseTLVType groupIdentifierFromtlvValue = new UIntType(groupIdentifierFrom);
- elements.add(new StructElement(groupIdentifierFromFieldID, groupIdentifierFromtlvValue));
+ subscribeAttribute(new ReportCallbackImpl(callback, path) {
+ @Override
+ public void onSuccess(byte[] tlv) {
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ }
+ }, ON_TIME_ATTRIBUTE_ID, minInterval, maxInterval);
+ }
- final long sceneIdentifierFromFieldID = 2L;
- BaseTLVType sceneIdentifierFromtlvValue = new UIntType(sceneIdentifierFrom);
- elements.add(new StructElement(sceneIdentifierFromFieldID, sceneIdentifierFromtlvValue));
-
- final long groupIdentifierToFieldID = 3L;
- BaseTLVType groupIdentifierTotlvValue = new UIntType(groupIdentifierTo);
- elements.add(new StructElement(groupIdentifierToFieldID, groupIdentifierTotlvValue));
-
- final long sceneIdentifierToFieldID = 4L;
- BaseTLVType sceneIdentifierTotlvValue = new UIntType(sceneIdentifierTo);
- elements.add(new StructElement(sceneIdentifierToFieldID, sceneIdentifierTotlvValue));
+ public void readOffWaitTimeAttribute(
+ IntegerAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OFF_WAIT_TIME_ATTRIBUTE_ID);
- StructType value = new StructType(elements);
- invoke(new InvokeCallbackImpl(callback) {
+ readAttribute(new ReportCallbackImpl(callback, path) {
@Override
- public void onResponse(StructType invokeStructValue) {
- final long statusFieldID = 0L;
- Integer status = null;
- final long groupIdentifierFromFieldID = 1L;
- Integer groupIdentifierFrom = null;
- final long sceneIdentifierFromFieldID = 2L;
- Integer sceneIdentifierFrom = null;
- for (StructElement element: invokeStructValue.value()) {
- if (element.contextTagNum() == statusFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- status = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == groupIdentifierFromFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- groupIdentifierFrom = castingValue.value(Integer.class);
- }
- } else if (element.contextTagNum() == sceneIdentifierFromFieldID) {
- if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
- UIntType castingValue = element.value(UIntType.class);
- sceneIdentifierFrom = castingValue.value(Integer.class);
- }
- }
+ public void onSuccess(byte[] tlv) {
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ callback.onSuccess(value);
}
- callback.onSuccess(status, groupIdentifierFrom, sceneIdentifierFrom);
- }}, commandId, value, timedInvokeTimeoutMs);
- }
-
- public interface AddSceneResponseCallback extends BaseClusterCallback {
- void onSuccess(Integer status, Integer groupID, Integer sceneID);
- }
-
- public interface ViewSceneResponseCallback extends BaseClusterCallback {
- void onSuccess(Integer status, Integer groupID, Integer sceneID, Optional transitionTime, Optional sceneName, Optional> extensionFieldSets);
- }
-
- public interface RemoveSceneResponseCallback extends BaseClusterCallback {
- void onSuccess(Integer status, Integer groupID, Integer sceneID);
- }
-
- public interface RemoveAllScenesResponseCallback extends BaseClusterCallback {
- void onSuccess(Integer status, Integer groupID);
- }
-
- public interface StoreSceneResponseCallback extends BaseClusterCallback {
- void onSuccess(Integer status, Integer groupID, Integer sceneID);
- }
-
- public interface GetSceneMembershipResponseCallback extends BaseClusterCallback {
- void onSuccess(Integer status, @Nullable Integer capacity, Integer groupID, Optional> sceneList);
- }
-
- public interface EnhancedAddSceneResponseCallback extends BaseClusterCallback {
- void onSuccess(Integer status, Integer groupID, Integer sceneID);
- }
-
- public interface EnhancedViewSceneResponseCallback extends BaseClusterCallback {
- void onSuccess(Integer status, Integer groupID, Integer sceneID, Optional transitionTime, Optional sceneName, Optional> extensionFieldSets);
- }
-
- public interface CopySceneResponseCallback extends BaseClusterCallback {
- void onSuccess(Integer status, Integer groupIdentifierFrom, Integer sceneIdentifierFrom);
- }
-
- public interface LastConfiguredByAttributeCallback extends BaseAttributeCallback {
- void onSuccess(@Nullable Long value);
- }
-
- public interface FabricSceneInfoAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
+ }, OFF_WAIT_TIME_ATTRIBUTE_ID, true);
}
- public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
+ public void writeOffWaitTimeAttribute(DefaultClusterCallback callback, Integer value) {
+ writeOffWaitTimeAttribute(callback, value, 0);
}
- public interface AcceptedCommandListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
+ public void writeOffWaitTimeAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = new UIntType(value);
+ writeAttribute(new WriteAttributesCallbackImpl(callback), OFF_WAIT_TIME_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
}
- public interface EventListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
- }
+ public void subscribeOffWaitTimeAttribute(
+ IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OFF_WAIT_TIME_ATTRIBUTE_ID);
- public interface AttributeListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
+ subscribeAttribute(new ReportCallbackImpl(callback, path) {
+ @Override
+ public void onSuccess(byte[] tlv) {
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ }
+ }, OFF_WAIT_TIME_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readSceneCountAttribute(
- IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SCENE_COUNT_ATTRIBUTE_ID);
+ public void readStartUpOnOffAttribute(
+ StartUpOnOffAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, START_UP_ON_OFF_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, SCENE_COUNT_ATTRIBUTE_ID, true);
+ }, START_UP_ON_OFF_ATTRIBUTE_ID, true);
}
- public void subscribeSceneCountAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SCENE_COUNT_ATTRIBUTE_ID);
+ public void writeStartUpOnOffAttribute(DefaultClusterCallback callback, Integer value) {
+ writeStartUpOnOffAttribute(callback, value, 0);
+ }
+
+ public void writeStartUpOnOffAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = value != null ? new UIntType(value) : new NullType();
+ writeAttribute(new WriteAttributesCallbackImpl(callback), START_UP_ON_OFF_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }
+
+ public void subscribeStartUpOnOffAttribute(
+ StartUpOnOffAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, START_UP_ON_OFF_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, SCENE_COUNT_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, START_UP_ON_OFF_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readCurrentSceneAttribute(
- IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_SCENE_ATTRIBUTE_ID);
+ public void readGeneratedCommandListAttribute(
+ GeneratedCommandListAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, CURRENT_SCENE_ATTRIBUTE_ID, true);
+ }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, true);
}
- public void subscribeCurrentSceneAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_SCENE_ATTRIBUTE_ID);
+ public void subscribeGeneratedCommandListAttribute(
+ GeneratedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, CURRENT_SCENE_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readCurrentGroupAttribute(
- IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_GROUP_ATTRIBUTE_ID);
+ public void readAcceptedCommandListAttribute(
+ AcceptedCommandListAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, CURRENT_GROUP_ATTRIBUTE_ID, true);
+ }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, true);
}
- public void subscribeCurrentGroupAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_GROUP_ATTRIBUTE_ID);
+ public void subscribeAcceptedCommandListAttribute(
+ AcceptedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, CURRENT_GROUP_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readSceneValidAttribute(
- BooleanAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SCENE_VALID_ATTRIBUTE_ID);
+ public void readEventListAttribute(
+ EventListAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, SCENE_VALID_ATTRIBUTE_ID, true);
+ }, EVENT_LIST_ATTRIBUTE_ID, true);
}
- public void subscribeSceneValidAttribute(
- BooleanAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SCENE_VALID_ATTRIBUTE_ID);
+ public void subscribeEventListAttribute(
+ EventListAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, SCENE_VALID_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, EVENT_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readNameSupportAttribute(
- IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, NAME_SUPPORT_ATTRIBUTE_ID);
+ public void readAttributeListAttribute(
+ AttributeListAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, NAME_SUPPORT_ATTRIBUTE_ID, true);
+ }, ATTRIBUTE_LIST_ATTRIBUTE_ID, true);
}
- public void subscribeNameSupportAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, NAME_SUPPORT_ATTRIBUTE_ID);
+ public void subscribeAttributeListAttribute(
+ AttributeListAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, NAME_SUPPORT_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, ATTRIBUTE_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readLastConfiguredByAttribute(
- LastConfiguredByAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, LAST_CONFIGURED_BY_ATTRIBUTE_ID);
+ public void readFeatureMapAttribute(
+ LongAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- @Nullable Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, LAST_CONFIGURED_BY_ATTRIBUTE_ID, true);
+ }, FEATURE_MAP_ATTRIBUTE_ID, true);
}
- public void subscribeLastConfiguredByAttribute(
- LastConfiguredByAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, LAST_CONFIGURED_BY_ATTRIBUTE_ID);
+ public void subscribeFeatureMapAttribute(
+ LongAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- @Nullable Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, LAST_CONFIGURED_BY_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, FEATURE_MAP_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readSceneTableSizeAttribute(
+ public void readClusterRevisionAttribute(
IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SCENE_TABLE_SIZE_ATTRIBUTE_ID);
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
@@ -1780,49 +1450,117 @@ public void onSuccess(byte[] tlv) {
Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, SCENE_TABLE_SIZE_ATTRIBUTE_ID, true);
+ }, CLUSTER_REVISION_ATTRIBUTE_ID, true);
}
- public void subscribeSceneTableSizeAttribute(
+ public void subscribeClusterRevisionAttribute(
IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SCENE_TABLE_SIZE_ATTRIBUTE_ID);
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, SCENE_TABLE_SIZE_ATTRIBUTE_ID, minInterval, maxInterval);
- }
-
- public void readFabricSceneInfoAttribute(
- FabricSceneInfoAttributeCallback callback) {
- readFabricSceneInfoAttributeWithFabricFilter(callback, true);
+ }, CLUSTER_REVISION_ATTRIBUTE_ID, minInterval, maxInterval);
}
+ }
- public void readFabricSceneInfoAttributeWithFabricFilter(
- FabricSceneInfoAttributeCallback callback, boolean isFabricFiltered) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FABRIC_SCENE_INFO_ATTRIBUTE_ID);
+ public static class OnOffSwitchConfigurationCluster extends BaseChipCluster {
+ public static final long CLUSTER_ID = 7L;
+
+ private static final long SWITCH_TYPE_ATTRIBUTE_ID = 0L;
+ private static final long SWITCH_ACTIONS_ATTRIBUTE_ID = 16L;
+ private static final long GENERATED_COMMAND_LIST_ATTRIBUTE_ID = 65528L;
+ private static final long ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID = 65529L;
+ private static final long EVENT_LIST_ATTRIBUTE_ID = 65530L;
+ private static final long ATTRIBUTE_LIST_ATTRIBUTE_ID = 65531L;
+ private static final long FEATURE_MAP_ATTRIBUTE_ID = 65532L;
+ private static final long CLUSTER_REVISION_ATTRIBUTE_ID = 65533L;
+
+ public OnOffSwitchConfigurationCluster(long devicePtr, int endpointId) {
+ super(devicePtr, endpointId, CLUSTER_ID);
+ }
+
+ @Override
+ @Deprecated
+ public long initWithDevice(long devicePtr, int endpointId) {
+ return 0L;
+ }
+
+ public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
+
+ public interface AcceptedCommandListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
+
+ public interface EventListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
+
+ public interface AttributeListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
+
+ public void readSwitchTypeAttribute(
+ IntegerAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SWITCH_TYPE_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, FABRIC_SCENE_INFO_ATTRIBUTE_ID, isFabricFiltered);
+ }, SWITCH_TYPE_ATTRIBUTE_ID, true);
}
- public void subscribeFabricSceneInfoAttribute(
- FabricSceneInfoAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FABRIC_SCENE_INFO_ATTRIBUTE_ID);
+ public void subscribeSwitchTypeAttribute(
+ IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SWITCH_TYPE_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, FABRIC_SCENE_INFO_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, SWITCH_TYPE_ATTRIBUTE_ID, minInterval, maxInterval);
+ }
+
+ public void readSwitchActionsAttribute(
+ IntegerAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SWITCH_ACTIONS_ATTRIBUTE_ID);
+
+ readAttribute(new ReportCallbackImpl(callback, path) {
+ @Override
+ public void onSuccess(byte[] tlv) {
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ callback.onSuccess(value);
+ }
+ }, SWITCH_ACTIONS_ATTRIBUTE_ID, true);
+ }
+
+ public void writeSwitchActionsAttribute(DefaultClusterCallback callback, Integer value) {
+ writeSwitchActionsAttribute(callback, value, 0);
+ }
+
+ public void writeSwitchActionsAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = new UIntType(value);
+ writeAttribute(new WriteAttributesCallbackImpl(callback), SWITCH_ACTIONS_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }
+
+ public void subscribeSwitchActionsAttribute(
+ IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SWITCH_ACTIONS_ATTRIBUTE_ID);
+
+ subscribeAttribute(new ReportCallbackImpl(callback, path) {
+ @Override
+ public void onSuccess(byte[] tlv) {
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ }
+ }, SWITCH_ACTIONS_ATTRIBUTE_ID, minInterval, maxInterval);
}
public void readGeneratedCommandListAttribute(
@@ -1976,14 +1714,23 @@ public void onSuccess(byte[] tlv) {
}
}
- public static class OnOffCluster extends BaseChipCluster {
- public static final long CLUSTER_ID = 6L;
+ public static class LevelControlCluster extends BaseChipCluster {
+ public static final long CLUSTER_ID = 8L;
- private static final long ON_OFF_ATTRIBUTE_ID = 0L;
- private static final long GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID = 16384L;
- private static final long ON_TIME_ATTRIBUTE_ID = 16385L;
- private static final long OFF_WAIT_TIME_ATTRIBUTE_ID = 16386L;
- private static final long START_UP_ON_OFF_ATTRIBUTE_ID = 16387L;
+ private static final long CURRENT_LEVEL_ATTRIBUTE_ID = 0L;
+ private static final long REMAINING_TIME_ATTRIBUTE_ID = 1L;
+ private static final long MIN_LEVEL_ATTRIBUTE_ID = 2L;
+ private static final long MAX_LEVEL_ATTRIBUTE_ID = 3L;
+ private static final long CURRENT_FREQUENCY_ATTRIBUTE_ID = 4L;
+ private static final long MIN_FREQUENCY_ATTRIBUTE_ID = 5L;
+ private static final long MAX_FREQUENCY_ATTRIBUTE_ID = 6L;
+ private static final long OPTIONS_ATTRIBUTE_ID = 15L;
+ private static final long ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID = 16L;
+ private static final long ON_LEVEL_ATTRIBUTE_ID = 17L;
+ private static final long ON_TRANSITION_TIME_ATTRIBUTE_ID = 18L;
+ private static final long OFF_TRANSITION_TIME_ATTRIBUTE_ID = 19L;
+ private static final long DEFAULT_MOVE_RATE_ATTRIBUTE_ID = 20L;
+ private static final long START_UP_CURRENT_LEVEL_ATTRIBUTE_ID = 16384L;
private static final long GENERATED_COMMAND_LIST_ATTRIBUTE_ID = 65528L;
private static final long ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID = 65529L;
private static final long EVENT_LIST_ATTRIBUTE_ID = 65530L;
@@ -1991,7 +1738,7 @@ public static class OnOffCluster extends BaseChipCluster {
private static final long FEATURE_MAP_ATTRIBUTE_ID = 65532L;
private static final long CLUSTER_REVISION_ATTRIBUTE_ID = 65533L;
- public OnOffCluster(long devicePtr, int endpointId) {
+ public LevelControlCluster(long devicePtr, int endpointId) {
super(devicePtr, endpointId, CLUSTER_ID);
}
@@ -2001,14 +1748,30 @@ public long initWithDevice(long devicePtr, int endpointId) {
return 0L;
}
- public void off(DefaultClusterCallback callback) {
- off(callback, 0);
+ public void moveToLevel(DefaultClusterCallback callback, Integer level, @Nullable Integer transitionTime, Integer optionsMask, Integer optionsOverride) {
+ moveToLevel(callback, level, transitionTime, optionsMask, optionsOverride, 0);
}
- public void off(DefaultClusterCallback callback, int timedInvokeTimeoutMs) {
+ public void moveToLevel(DefaultClusterCallback callback, Integer level, @Nullable Integer transitionTime, Integer optionsMask, Integer optionsOverride, int timedInvokeTimeoutMs) {
final long commandId = 0L;
ArrayList elements = new ArrayList<>();
+ final long levelFieldID = 0L;
+ BaseTLVType leveltlvValue = new UIntType(level);
+ elements.add(new StructElement(levelFieldID, leveltlvValue));
+
+ final long transitionTimeFieldID = 1L;
+ BaseTLVType transitionTimetlvValue = transitionTime != null ? new UIntType(transitionTime) : new NullType();
+ elements.add(new StructElement(transitionTimeFieldID, transitionTimetlvValue));
+
+ final long optionsMaskFieldID = 2L;
+ BaseTLVType optionsMasktlvValue = new UIntType(optionsMask);
+ elements.add(new StructElement(optionsMaskFieldID, optionsMasktlvValue));
+
+ final long optionsOverrideFieldID = 3L;
+ BaseTLVType optionsOverridetlvValue = new UIntType(optionsOverride);
+ elements.add(new StructElement(optionsOverrideFieldID, optionsOverridetlvValue));
+
StructType value = new StructType(elements);
invoke(new InvokeCallbackImpl(callback) {
@Override
@@ -2017,14 +1780,30 @@ public void onResponse(StructType invokeStructValue) {
}}, commandId, value, timedInvokeTimeoutMs);
}
- public void on(DefaultClusterCallback callback) {
- on(callback, 0);
+ public void move(DefaultClusterCallback callback, Integer moveMode, @Nullable Integer rate, Integer optionsMask, Integer optionsOverride) {
+ move(callback, moveMode, rate, optionsMask, optionsOverride, 0);
}
- public void on(DefaultClusterCallback callback, int timedInvokeTimeoutMs) {
+ public void move(DefaultClusterCallback callback, Integer moveMode, @Nullable Integer rate, Integer optionsMask, Integer optionsOverride, int timedInvokeTimeoutMs) {
final long commandId = 1L;
ArrayList elements = new ArrayList<>();
+ final long moveModeFieldID = 0L;
+ BaseTLVType moveModetlvValue = new UIntType(moveMode);
+ elements.add(new StructElement(moveModeFieldID, moveModetlvValue));
+
+ final long rateFieldID = 1L;
+ BaseTLVType ratetlvValue = rate != null ? new UIntType(rate) : new NullType();
+ elements.add(new StructElement(rateFieldID, ratetlvValue));
+
+ final long optionsMaskFieldID = 2L;
+ BaseTLVType optionsMasktlvValue = new UIntType(optionsMask);
+ elements.add(new StructElement(optionsMaskFieldID, optionsMasktlvValue));
+
+ final long optionsOverrideFieldID = 3L;
+ BaseTLVType optionsOverridetlvValue = new UIntType(optionsOverride);
+ elements.add(new StructElement(optionsOverrideFieldID, optionsOverridetlvValue));
+
StructType value = new StructType(elements);
invoke(new InvokeCallbackImpl(callback) {
@Override
@@ -2033,37 +1812,33 @@ public void onResponse(StructType invokeStructValue) {
}}, commandId, value, timedInvokeTimeoutMs);
}
- public void toggle(DefaultClusterCallback callback) {
- toggle(callback, 0);
+ public void step(DefaultClusterCallback callback, Integer stepMode, Integer stepSize, @Nullable Integer transitionTime, Integer optionsMask, Integer optionsOverride) {
+ step(callback, stepMode, stepSize, transitionTime, optionsMask, optionsOverride, 0);
}
- public void toggle(DefaultClusterCallback callback, int timedInvokeTimeoutMs) {
+ public void step(DefaultClusterCallback callback, Integer stepMode, Integer stepSize, @Nullable Integer transitionTime, Integer optionsMask, Integer optionsOverride, int timedInvokeTimeoutMs) {
final long commandId = 2L;
ArrayList elements = new ArrayList<>();
- StructType value = new StructType(elements);
- invoke(new InvokeCallbackImpl(callback) {
- @Override
- public void onResponse(StructType invokeStructValue) {
- callback.onSuccess();
- }}, commandId, value, timedInvokeTimeoutMs);
- }
+ final long stepModeFieldID = 0L;
+ BaseTLVType stepModetlvValue = new UIntType(stepMode);
+ elements.add(new StructElement(stepModeFieldID, stepModetlvValue));
- public void offWithEffect(DefaultClusterCallback callback, Integer effectIdentifier, Integer effectVariant) {
- offWithEffect(callback, effectIdentifier, effectVariant, 0);
- }
+ final long stepSizeFieldID = 1L;
+ BaseTLVType stepSizetlvValue = new UIntType(stepSize);
+ elements.add(new StructElement(stepSizeFieldID, stepSizetlvValue));
- public void offWithEffect(DefaultClusterCallback callback, Integer effectIdentifier, Integer effectVariant, int timedInvokeTimeoutMs) {
- final long commandId = 64L;
+ final long transitionTimeFieldID = 2L;
+ BaseTLVType transitionTimetlvValue = transitionTime != null ? new UIntType(transitionTime) : new NullType();
+ elements.add(new StructElement(transitionTimeFieldID, transitionTimetlvValue));
- ArrayList elements = new ArrayList<>();
- final long effectIdentifierFieldID = 0L;
- BaseTLVType effectIdentifiertlvValue = new UIntType(effectIdentifier);
- elements.add(new StructElement(effectIdentifierFieldID, effectIdentifiertlvValue));
+ final long optionsMaskFieldID = 3L;
+ BaseTLVType optionsMasktlvValue = new UIntType(optionsMask);
+ elements.add(new StructElement(optionsMaskFieldID, optionsMasktlvValue));
- final long effectVariantFieldID = 1L;
- BaseTLVType effectVarianttlvValue = new UIntType(effectVariant);
- elements.add(new StructElement(effectVariantFieldID, effectVarianttlvValue));
+ final long optionsOverrideFieldID = 4L;
+ BaseTLVType optionsOverridetlvValue = new UIntType(optionsOverride);
+ elements.add(new StructElement(optionsOverrideFieldID, optionsOverridetlvValue));
StructType value = new StructType(elements);
invoke(new InvokeCallbackImpl(callback) {
@@ -2073,14 +1848,22 @@ public void onResponse(StructType invokeStructValue) {
}}, commandId, value, timedInvokeTimeoutMs);
}
- public void onWithRecallGlobalScene(DefaultClusterCallback callback) {
- onWithRecallGlobalScene(callback, 0);
+ public void stop(DefaultClusterCallback callback, Integer optionsMask, Integer optionsOverride) {
+ stop(callback, optionsMask, optionsOverride, 0);
}
- public void onWithRecallGlobalScene(DefaultClusterCallback callback, int timedInvokeTimeoutMs) {
- final long commandId = 65L;
+ public void stop(DefaultClusterCallback callback, Integer optionsMask, Integer optionsOverride, int timedInvokeTimeoutMs) {
+ final long commandId = 3L;
ArrayList elements = new ArrayList<>();
+ final long optionsMaskFieldID = 0L;
+ BaseTLVType optionsMasktlvValue = new UIntType(optionsMask);
+ elements.add(new StructElement(optionsMaskFieldID, optionsMasktlvValue));
+
+ final long optionsOverrideFieldID = 1L;
+ BaseTLVType optionsOverridetlvValue = new UIntType(optionsOverride);
+ elements.add(new StructElement(optionsOverrideFieldID, optionsOverridetlvValue));
+
StructType value = new StructType(elements);
invoke(new InvokeCallbackImpl(callback) {
@Override
@@ -2089,25 +1872,29 @@ public void onResponse(StructType invokeStructValue) {
}}, commandId, value, timedInvokeTimeoutMs);
}
- public void onWithTimedOff(DefaultClusterCallback callback, Integer onOffControl, Integer onTime, Integer offWaitTime) {
- onWithTimedOff(callback, onOffControl, onTime, offWaitTime, 0);
+ public void moveToLevelWithOnOff(DefaultClusterCallback callback, Integer level, @Nullable Integer transitionTime, Integer optionsMask, Integer optionsOverride) {
+ moveToLevelWithOnOff(callback, level, transitionTime, optionsMask, optionsOverride, 0);
}
- public void onWithTimedOff(DefaultClusterCallback callback, Integer onOffControl, Integer onTime, Integer offWaitTime, int timedInvokeTimeoutMs) {
- final long commandId = 66L;
+ public void moveToLevelWithOnOff(DefaultClusterCallback callback, Integer level, @Nullable Integer transitionTime, Integer optionsMask, Integer optionsOverride, int timedInvokeTimeoutMs) {
+ final long commandId = 4L;
ArrayList elements = new ArrayList<>();
- final long onOffControlFieldID = 0L;
- BaseTLVType onOffControltlvValue = new UIntType(onOffControl);
- elements.add(new StructElement(onOffControlFieldID, onOffControltlvValue));
+ final long levelFieldID = 0L;
+ BaseTLVType leveltlvValue = new UIntType(level);
+ elements.add(new StructElement(levelFieldID, leveltlvValue));
- final long onTimeFieldID = 1L;
- BaseTLVType onTimetlvValue = new UIntType(onTime);
- elements.add(new StructElement(onTimeFieldID, onTimetlvValue));
+ final long transitionTimeFieldID = 1L;
+ BaseTLVType transitionTimetlvValue = transitionTime != null ? new UIntType(transitionTime) : new NullType();
+ elements.add(new StructElement(transitionTimeFieldID, transitionTimetlvValue));
- final long offWaitTimeFieldID = 2L;
- BaseTLVType offWaitTimetlvValue = new UIntType(offWaitTime);
- elements.add(new StructElement(offWaitTimeFieldID, offWaitTimetlvValue));
+ final long optionsMaskFieldID = 2L;
+ BaseTLVType optionsMasktlvValue = new UIntType(optionsMask);
+ elements.add(new StructElement(optionsMaskFieldID, optionsMasktlvValue));
+
+ final long optionsOverrideFieldID = 3L;
+ BaseTLVType optionsOverridetlvValue = new UIntType(optionsOverride);
+ elements.add(new StructElement(optionsOverrideFieldID, optionsOverridetlvValue));
StructType value = new StructType(elements);
invoke(new InvokeCallbackImpl(callback) {
@@ -2117,16 +1904,148 @@ public void onResponse(StructType invokeStructValue) {
}}, commandId, value, timedInvokeTimeoutMs);
}
- public interface StartUpOnOffAttributeCallback extends BaseAttributeCallback {
- void onSuccess(@Nullable Integer value);
+ public void moveWithOnOff(DefaultClusterCallback callback, Integer moveMode, @Nullable Integer rate, Integer optionsMask, Integer optionsOverride) {
+ moveWithOnOff(callback, moveMode, rate, optionsMask, optionsOverride, 0);
}
- public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
- }
+ public void moveWithOnOff(DefaultClusterCallback callback, Integer moveMode, @Nullable Integer rate, Integer optionsMask, Integer optionsOverride, int timedInvokeTimeoutMs) {
+ final long commandId = 5L;
- public interface AcceptedCommandListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
+ ArrayList elements = new ArrayList<>();
+ final long moveModeFieldID = 0L;
+ BaseTLVType moveModetlvValue = new UIntType(moveMode);
+ elements.add(new StructElement(moveModeFieldID, moveModetlvValue));
+
+ final long rateFieldID = 1L;
+ BaseTLVType ratetlvValue = rate != null ? new UIntType(rate) : new NullType();
+ elements.add(new StructElement(rateFieldID, ratetlvValue));
+
+ final long optionsMaskFieldID = 2L;
+ BaseTLVType optionsMasktlvValue = new UIntType(optionsMask);
+ elements.add(new StructElement(optionsMaskFieldID, optionsMasktlvValue));
+
+ final long optionsOverrideFieldID = 3L;
+ BaseTLVType optionsOverridetlvValue = new UIntType(optionsOverride);
+ elements.add(new StructElement(optionsOverrideFieldID, optionsOverridetlvValue));
+
+ StructType value = new StructType(elements);
+ invoke(new InvokeCallbackImpl(callback) {
+ @Override
+ public void onResponse(StructType invokeStructValue) {
+ callback.onSuccess();
+ }}, commandId, value, timedInvokeTimeoutMs);
+ }
+
+ public void stepWithOnOff(DefaultClusterCallback callback, Integer stepMode, Integer stepSize, @Nullable Integer transitionTime, Integer optionsMask, Integer optionsOverride) {
+ stepWithOnOff(callback, stepMode, stepSize, transitionTime, optionsMask, optionsOverride, 0);
+ }
+
+ public void stepWithOnOff(DefaultClusterCallback callback, Integer stepMode, Integer stepSize, @Nullable Integer transitionTime, Integer optionsMask, Integer optionsOverride, int timedInvokeTimeoutMs) {
+ final long commandId = 6L;
+
+ ArrayList elements = new ArrayList<>();
+ final long stepModeFieldID = 0L;
+ BaseTLVType stepModetlvValue = new UIntType(stepMode);
+ elements.add(new StructElement(stepModeFieldID, stepModetlvValue));
+
+ final long stepSizeFieldID = 1L;
+ BaseTLVType stepSizetlvValue = new UIntType(stepSize);
+ elements.add(new StructElement(stepSizeFieldID, stepSizetlvValue));
+
+ final long transitionTimeFieldID = 2L;
+ BaseTLVType transitionTimetlvValue = transitionTime != null ? new UIntType(transitionTime) : new NullType();
+ elements.add(new StructElement(transitionTimeFieldID, transitionTimetlvValue));
+
+ final long optionsMaskFieldID = 3L;
+ BaseTLVType optionsMasktlvValue = new UIntType(optionsMask);
+ elements.add(new StructElement(optionsMaskFieldID, optionsMasktlvValue));
+
+ final long optionsOverrideFieldID = 4L;
+ BaseTLVType optionsOverridetlvValue = new UIntType(optionsOverride);
+ elements.add(new StructElement(optionsOverrideFieldID, optionsOverridetlvValue));
+
+ StructType value = new StructType(elements);
+ invoke(new InvokeCallbackImpl(callback) {
+ @Override
+ public void onResponse(StructType invokeStructValue) {
+ callback.onSuccess();
+ }}, commandId, value, timedInvokeTimeoutMs);
+ }
+
+ public void stopWithOnOff(DefaultClusterCallback callback, Integer optionsMask, Integer optionsOverride) {
+ stopWithOnOff(callback, optionsMask, optionsOverride, 0);
+ }
+
+ public void stopWithOnOff(DefaultClusterCallback callback, Integer optionsMask, Integer optionsOverride, int timedInvokeTimeoutMs) {
+ final long commandId = 7L;
+
+ ArrayList elements = new ArrayList<>();
+ final long optionsMaskFieldID = 0L;
+ BaseTLVType optionsMasktlvValue = new UIntType(optionsMask);
+ elements.add(new StructElement(optionsMaskFieldID, optionsMasktlvValue));
+
+ final long optionsOverrideFieldID = 1L;
+ BaseTLVType optionsOverridetlvValue = new UIntType(optionsOverride);
+ elements.add(new StructElement(optionsOverrideFieldID, optionsOverridetlvValue));
+
+ StructType value = new StructType(elements);
+ invoke(new InvokeCallbackImpl(callback) {
+ @Override
+ public void onResponse(StructType invokeStructValue) {
+ callback.onSuccess();
+ }}, commandId, value, timedInvokeTimeoutMs);
+ }
+
+ public void moveToClosestFrequency(DefaultClusterCallback callback, Integer frequency) {
+ moveToClosestFrequency(callback, frequency, 0);
+ }
+
+ public void moveToClosestFrequency(DefaultClusterCallback callback, Integer frequency, int timedInvokeTimeoutMs) {
+ final long commandId = 8L;
+
+ ArrayList elements = new ArrayList<>();
+ final long frequencyFieldID = 0L;
+ BaseTLVType frequencytlvValue = new UIntType(frequency);
+ elements.add(new StructElement(frequencyFieldID, frequencytlvValue));
+
+ StructType value = new StructType(elements);
+ invoke(new InvokeCallbackImpl(callback) {
+ @Override
+ public void onResponse(StructType invokeStructValue) {
+ callback.onSuccess();
+ }}, commandId, value, timedInvokeTimeoutMs);
+ }
+
+ public interface CurrentLevelAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(@Nullable Integer value);
+ }
+
+ public interface OnLevelAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(@Nullable Integer value);
+ }
+
+ public interface OnTransitionTimeAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(@Nullable Integer value);
+ }
+
+ public interface OffTransitionTimeAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(@Nullable Integer value);
+ }
+
+ public interface DefaultMoveRateAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(@Nullable Integer value);
+ }
+
+ public interface StartUpCurrentLevelAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(@Nullable Integer value);
+ }
+
+ public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
+
+ public interface AcceptedCommandListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
}
public interface EventListAttributeCallback extends BaseAttributeCallback {
@@ -2137,59 +2056,59 @@ public interface AttributeListAttributeCallback extends BaseAttributeCallback {
void onSuccess(List value);
}
- public void readOnOffAttribute(
- BooleanAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_OFF_ATTRIBUTE_ID);
+ public void readCurrentLevelAttribute(
+ CurrentLevelAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_LEVEL_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, ON_OFF_ATTRIBUTE_ID, true);
+ }, CURRENT_LEVEL_ATTRIBUTE_ID, true);
}
- public void subscribeOnOffAttribute(
- BooleanAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_OFF_ATTRIBUTE_ID);
+ public void subscribeCurrentLevelAttribute(
+ CurrentLevelAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_LEVEL_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, ON_OFF_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, CURRENT_LEVEL_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readGlobalSceneControlAttribute(
- BooleanAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID);
+ public void readRemainingTimeAttribute(
+ IntegerAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, REMAINING_TIME_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID, true);
+ }, REMAINING_TIME_ATTRIBUTE_ID, true);
}
- public void subscribeGlobalSceneControlAttribute(
- BooleanAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID);
+ public void subscribeRemainingTimeAttribute(
+ IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, REMAINING_TIME_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, REMAINING_TIME_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readOnTimeAttribute(
+ public void readMinLevelAttribute(
IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_TIME_ATTRIBUTE_ID);
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIN_LEVEL_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
@@ -2197,33 +2116,24 @@ public void onSuccess(byte[] tlv) {
Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, ON_TIME_ATTRIBUTE_ID, true);
- }
-
- public void writeOnTimeAttribute(DefaultClusterCallback callback, Integer value) {
- writeOnTimeAttribute(callback, value, 0);
- }
-
- public void writeOnTimeAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = new UIntType(value);
- writeAttribute(new WriteAttributesCallbackImpl(callback), ON_TIME_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }, MIN_LEVEL_ATTRIBUTE_ID, true);
}
- public void subscribeOnTimeAttribute(
+ public void subscribeMinLevelAttribute(
IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_TIME_ATTRIBUTE_ID);
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIN_LEVEL_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, ON_TIME_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, MIN_LEVEL_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readOffWaitTimeAttribute(
+ public void readMaxLevelAttribute(
IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OFF_WAIT_TIME_ATTRIBUTE_ID);
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_LEVEL_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
@@ -2231,327 +2141,349 @@ public void onSuccess(byte[] tlv) {
Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, OFF_WAIT_TIME_ATTRIBUTE_ID, true);
- }
-
- public void writeOffWaitTimeAttribute(DefaultClusterCallback callback, Integer value) {
- writeOffWaitTimeAttribute(callback, value, 0);
- }
-
- public void writeOffWaitTimeAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = new UIntType(value);
- writeAttribute(new WriteAttributesCallbackImpl(callback), OFF_WAIT_TIME_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }, MAX_LEVEL_ATTRIBUTE_ID, true);
}
- public void subscribeOffWaitTimeAttribute(
+ public void subscribeMaxLevelAttribute(
IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OFF_WAIT_TIME_ATTRIBUTE_ID);
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_LEVEL_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, OFF_WAIT_TIME_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, MAX_LEVEL_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readStartUpOnOffAttribute(
- StartUpOnOffAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, START_UP_ON_OFF_ATTRIBUTE_ID);
+ public void readCurrentFrequencyAttribute(
+ IntegerAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_FREQUENCY_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, START_UP_ON_OFF_ATTRIBUTE_ID, true);
- }
-
- public void writeStartUpOnOffAttribute(DefaultClusterCallback callback, Integer value) {
- writeStartUpOnOffAttribute(callback, value, 0);
- }
-
- public void writeStartUpOnOffAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = value != null ? new UIntType(value) : new NullType();
- writeAttribute(new WriteAttributesCallbackImpl(callback), START_UP_ON_OFF_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }, CURRENT_FREQUENCY_ATTRIBUTE_ID, true);
}
- public void subscribeStartUpOnOffAttribute(
- StartUpOnOffAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, START_UP_ON_OFF_ATTRIBUTE_ID);
+ public void subscribeCurrentFrequencyAttribute(
+ IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_FREQUENCY_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, START_UP_ON_OFF_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, CURRENT_FREQUENCY_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readGeneratedCommandListAttribute(
- GeneratedCommandListAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+ public void readMinFrequencyAttribute(
+ IntegerAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIN_FREQUENCY_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, true);
+ }, MIN_FREQUENCY_ATTRIBUTE_ID, true);
}
- public void subscribeGeneratedCommandListAttribute(
- GeneratedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+ public void subscribeMinFrequencyAttribute(
+ IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIN_FREQUENCY_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, MIN_FREQUENCY_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readAcceptedCommandListAttribute(
- AcceptedCommandListAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
+ public void readMaxFrequencyAttribute(
+ IntegerAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_FREQUENCY_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, true);
+ }, MAX_FREQUENCY_ATTRIBUTE_ID, true);
}
- public void subscribeAcceptedCommandListAttribute(
- AcceptedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
+ public void subscribeMaxFrequencyAttribute(
+ IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_FREQUENCY_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, MAX_FREQUENCY_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readEventListAttribute(
- EventListAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
+ public void readOptionsAttribute(
+ IntegerAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OPTIONS_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, EVENT_LIST_ATTRIBUTE_ID, true);
+ }, OPTIONS_ATTRIBUTE_ID, true);
}
- public void subscribeEventListAttribute(
- EventListAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
+ public void writeOptionsAttribute(DefaultClusterCallback callback, Integer value) {
+ writeOptionsAttribute(callback, value, 0);
+ }
+
+ public void writeOptionsAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = new UIntType(value);
+ writeAttribute(new WriteAttributesCallbackImpl(callback), OPTIONS_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }
+
+ public void subscribeOptionsAttribute(
+ IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OPTIONS_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, EVENT_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, OPTIONS_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readAttributeListAttribute(
- AttributeListAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
+ public void readOnOffTransitionTimeAttribute(
+ IntegerAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, ATTRIBUTE_LIST_ATTRIBUTE_ID, true);
+ }, ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID, true);
}
- public void subscribeAttributeListAttribute(
- AttributeListAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
+ public void writeOnOffTransitionTimeAttribute(DefaultClusterCallback callback, Integer value) {
+ writeOnOffTransitionTimeAttribute(callback, value, 0);
+ }
+
+ public void writeOnOffTransitionTimeAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = new UIntType(value);
+ writeAttribute(new WriteAttributesCallbackImpl(callback), ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }
+
+ public void subscribeOnOffTransitionTimeAttribute(
+ IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, ATTRIBUTE_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readFeatureMapAttribute(
- LongAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
+ public void readOnLevelAttribute(
+ OnLevelAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_LEVEL_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, FEATURE_MAP_ATTRIBUTE_ID, true);
+ }, ON_LEVEL_ATTRIBUTE_ID, true);
}
- public void subscribeFeatureMapAttribute(
- LongAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
+ public void writeOnLevelAttribute(DefaultClusterCallback callback, Integer value) {
+ writeOnLevelAttribute(callback, value, 0);
+ }
- subscribeAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- }
- }, FEATURE_MAP_ATTRIBUTE_ID, minInterval, maxInterval);
+ public void writeOnLevelAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = value != null ? new UIntType(value) : new NullType();
+ writeAttribute(new WriteAttributesCallbackImpl(callback), ON_LEVEL_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
}
- public void readClusterRevisionAttribute(
- IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
+ public void subscribeOnLevelAttribute(
+ OnLevelAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_LEVEL_ATTRIBUTE_ID);
- readAttribute(new ReportCallbackImpl(callback, path) {
+ subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- callback.onSuccess(value);
+ @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, CLUSTER_REVISION_ATTRIBUTE_ID, true);
+ }, ON_LEVEL_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void subscribeClusterRevisionAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
+ public void readOnTransitionTimeAttribute(
+ OnTransitionTimeAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_TRANSITION_TIME_ATTRIBUTE_ID);
- subscribeAttribute(new ReportCallbackImpl(callback, path) {
+ readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ callback.onSuccess(value);
}
- }, CLUSTER_REVISION_ATTRIBUTE_ID, minInterval, maxInterval);
- }
- }
-
- public static class OnOffSwitchConfigurationCluster extends BaseChipCluster {
- public static final long CLUSTER_ID = 7L;
-
- private static final long SWITCH_TYPE_ATTRIBUTE_ID = 0L;
- private static final long SWITCH_ACTIONS_ATTRIBUTE_ID = 16L;
- private static final long GENERATED_COMMAND_LIST_ATTRIBUTE_ID = 65528L;
- private static final long ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID = 65529L;
- private static final long EVENT_LIST_ATTRIBUTE_ID = 65530L;
- private static final long ATTRIBUTE_LIST_ATTRIBUTE_ID = 65531L;
- private static final long FEATURE_MAP_ATTRIBUTE_ID = 65532L;
- private static final long CLUSTER_REVISION_ATTRIBUTE_ID = 65533L;
-
- public OnOffSwitchConfigurationCluster(long devicePtr, int endpointId) {
- super(devicePtr, endpointId, CLUSTER_ID);
- }
-
- @Override
- @Deprecated
- public long initWithDevice(long devicePtr, int endpointId) {
- return 0L;
+ }, ON_TRANSITION_TIME_ATTRIBUTE_ID, true);
}
- public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
+ public void writeOnTransitionTimeAttribute(DefaultClusterCallback callback, Integer value) {
+ writeOnTransitionTimeAttribute(callback, value, 0);
}
- public interface AcceptedCommandListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
+ public void writeOnTransitionTimeAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = value != null ? new UIntType(value) : new NullType();
+ writeAttribute(new WriteAttributesCallbackImpl(callback), ON_TRANSITION_TIME_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
}
- public interface EventListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
- }
+ public void subscribeOnTransitionTimeAttribute(
+ OnTransitionTimeAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_TRANSITION_TIME_ATTRIBUTE_ID);
- public interface AttributeListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
+ subscribeAttribute(new ReportCallbackImpl(callback, path) {
+ @Override
+ public void onSuccess(byte[] tlv) {
+ @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ }
+ }, ON_TRANSITION_TIME_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readSwitchTypeAttribute(
- IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SWITCH_TYPE_ATTRIBUTE_ID);
+ public void readOffTransitionTimeAttribute(
+ OffTransitionTimeAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OFF_TRANSITION_TIME_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, SWITCH_TYPE_ATTRIBUTE_ID, true);
+ }, OFF_TRANSITION_TIME_ATTRIBUTE_ID, true);
}
- public void subscribeSwitchTypeAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SWITCH_TYPE_ATTRIBUTE_ID);
+ public void writeOffTransitionTimeAttribute(DefaultClusterCallback callback, Integer value) {
+ writeOffTransitionTimeAttribute(callback, value, 0);
+ }
+
+ public void writeOffTransitionTimeAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = value != null ? new UIntType(value) : new NullType();
+ writeAttribute(new WriteAttributesCallbackImpl(callback), OFF_TRANSITION_TIME_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }
+
+ public void subscribeOffTransitionTimeAttribute(
+ OffTransitionTimeAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OFF_TRANSITION_TIME_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, SWITCH_TYPE_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, OFF_TRANSITION_TIME_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readSwitchActionsAttribute(
- IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SWITCH_ACTIONS_ATTRIBUTE_ID);
+ public void readDefaultMoveRateAttribute(
+ DefaultMoveRateAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, DEFAULT_MOVE_RATE_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, SWITCH_ACTIONS_ATTRIBUTE_ID, true);
+ }, DEFAULT_MOVE_RATE_ATTRIBUTE_ID, true);
}
- public void writeSwitchActionsAttribute(DefaultClusterCallback callback, Integer value) {
- writeSwitchActionsAttribute(callback, value, 0);
+ public void writeDefaultMoveRateAttribute(DefaultClusterCallback callback, Integer value) {
+ writeDefaultMoveRateAttribute(callback, value, 0);
}
- public void writeSwitchActionsAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = new UIntType(value);
- writeAttribute(new WriteAttributesCallbackImpl(callback), SWITCH_ACTIONS_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ public void writeDefaultMoveRateAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = value != null ? new UIntType(value) : new NullType();
+ writeAttribute(new WriteAttributesCallbackImpl(callback), DEFAULT_MOVE_RATE_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
}
- public void subscribeSwitchActionsAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SWITCH_ACTIONS_ATTRIBUTE_ID);
+ public void subscribeDefaultMoveRateAttribute(
+ DefaultMoveRateAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, DEFAULT_MOVE_RATE_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, SWITCH_ACTIONS_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, DEFAULT_MOVE_RATE_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readGeneratedCommandListAttribute(
- GeneratedCommandListAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+ public void readStartUpCurrentLevelAttribute(
+ StartUpCurrentLevelAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, START_UP_CURRENT_LEVEL_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, true);
+ }, START_UP_CURRENT_LEVEL_ATTRIBUTE_ID, true);
}
- public void subscribeGeneratedCommandListAttribute(
- GeneratedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+ public void writeStartUpCurrentLevelAttribute(DefaultClusterCallback callback, Integer value) {
+ writeStartUpCurrentLevelAttribute(callback, value, 0);
+ }
+
+ public void writeStartUpCurrentLevelAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = value != null ? new UIntType(value) : new NullType();
+ writeAttribute(new WriteAttributesCallbackImpl(callback), START_UP_CURRENT_LEVEL_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }
+
+ public void subscribeStartUpCurrentLevelAttribute(
+ StartUpCurrentLevelAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, START_UP_CURRENT_LEVEL_ATTRIBUTE_ID);
+
+ subscribeAttribute(new ReportCallbackImpl(callback, path) {
+ @Override
+ public void onSuccess(byte[] tlv) {
+ @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ }
+ }, START_UP_CURRENT_LEVEL_ATTRIBUTE_ID, minInterval, maxInterval);
+ }
+
+ public void readGeneratedCommandListAttribute(
+ GeneratedCommandListAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+
+ readAttribute(new ReportCallbackImpl(callback, path) {
+ @Override
+ public void onSuccess(byte[] tlv) {
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ callback.onSuccess(value);
+ }
+ }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, true);
+ }
+
+ public void subscribeGeneratedCommandListAttribute(
+ GeneratedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@@ -2688,23 +2620,18 @@ public void onSuccess(byte[] tlv) {
}
}
- public static class LevelControlCluster extends BaseChipCluster {
- public static final long CLUSTER_ID = 8L;
+ public static class BinaryInputBasicCluster extends BaseChipCluster {
+ public static final long CLUSTER_ID = 15L;
- private static final long CURRENT_LEVEL_ATTRIBUTE_ID = 0L;
- private static final long REMAINING_TIME_ATTRIBUTE_ID = 1L;
- private static final long MIN_LEVEL_ATTRIBUTE_ID = 2L;
- private static final long MAX_LEVEL_ATTRIBUTE_ID = 3L;
- private static final long CURRENT_FREQUENCY_ATTRIBUTE_ID = 4L;
- private static final long MIN_FREQUENCY_ATTRIBUTE_ID = 5L;
- private static final long MAX_FREQUENCY_ATTRIBUTE_ID = 6L;
- private static final long OPTIONS_ATTRIBUTE_ID = 15L;
- private static final long ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID = 16L;
- private static final long ON_LEVEL_ATTRIBUTE_ID = 17L;
- private static final long ON_TRANSITION_TIME_ATTRIBUTE_ID = 18L;
- private static final long OFF_TRANSITION_TIME_ATTRIBUTE_ID = 19L;
- private static final long DEFAULT_MOVE_RATE_ATTRIBUTE_ID = 20L;
- private static final long START_UP_CURRENT_LEVEL_ATTRIBUTE_ID = 16384L;
+ private static final long ACTIVE_TEXT_ATTRIBUTE_ID = 4L;
+ private static final long DESCRIPTION_ATTRIBUTE_ID = 28L;
+ private static final long INACTIVE_TEXT_ATTRIBUTE_ID = 46L;
+ private static final long OUT_OF_SERVICE_ATTRIBUTE_ID = 81L;
+ private static final long POLARITY_ATTRIBUTE_ID = 84L;
+ private static final long PRESENT_VALUE_ATTRIBUTE_ID = 85L;
+ private static final long RELIABILITY_ATTRIBUTE_ID = 103L;
+ private static final long STATUS_FLAGS_ATTRIBUTE_ID = 111L;
+ private static final long APPLICATION_TYPE_ATTRIBUTE_ID = 256L;
private static final long GENERATED_COMMAND_LIST_ATTRIBUTE_ID = 65528L;
private static final long ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID = 65529L;
private static final long EVENT_LIST_ATTRIBUTE_ID = 65530L;
@@ -2712,7 +2639,7 @@ public static class LevelControlCluster extends BaseChipCluster {
private static final long FEATURE_MAP_ATTRIBUTE_ID = 65532L;
private static final long CLUSTER_REVISION_ATTRIBUTE_ID = 65533L;
- public LevelControlCluster(long devicePtr, int endpointId) {
+ public BinaryInputBasicCluster(long devicePtr, int endpointId) {
super(devicePtr, endpointId, CLUSTER_ID);
}
@@ -2722,342 +2649,220 @@ public long initWithDevice(long devicePtr, int endpointId) {
return 0L;
}
- public void moveToLevel(DefaultClusterCallback callback, Integer level, @Nullable Integer transitionTime, Integer optionsMask, Integer optionsOverride) {
- moveToLevel(callback, level, transitionTime, optionsMask, optionsOverride, 0);
+ public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
}
- public void moveToLevel(DefaultClusterCallback callback, Integer level, @Nullable Integer transitionTime, Integer optionsMask, Integer optionsOverride, int timedInvokeTimeoutMs) {
- final long commandId = 0L;
-
- ArrayList elements = new ArrayList<>();
- final long levelFieldID = 0L;
- BaseTLVType leveltlvValue = new UIntType(level);
- elements.add(new StructElement(levelFieldID, leveltlvValue));
+ public interface AcceptedCommandListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
- final long transitionTimeFieldID = 1L;
- BaseTLVType transitionTimetlvValue = transitionTime != null ? new UIntType(transitionTime) : new NullType();
- elements.add(new StructElement(transitionTimeFieldID, transitionTimetlvValue));
+ public interface EventListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
- final long optionsMaskFieldID = 2L;
- BaseTLVType optionsMasktlvValue = new UIntType(optionsMask);
- elements.add(new StructElement(optionsMaskFieldID, optionsMasktlvValue));
+ public interface AttributeListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
- final long optionsOverrideFieldID = 3L;
- BaseTLVType optionsOverridetlvValue = new UIntType(optionsOverride);
- elements.add(new StructElement(optionsOverrideFieldID, optionsOverridetlvValue));
+ public void readActiveTextAttribute(
+ CharStringAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACTIVE_TEXT_ATTRIBUTE_ID);
- StructType value = new StructType(elements);
- invoke(new InvokeCallbackImpl(callback) {
+ readAttribute(new ReportCallbackImpl(callback, path) {
@Override
- public void onResponse(StructType invokeStructValue) {
- callback.onSuccess();
- }}, commandId, value, timedInvokeTimeoutMs);
+ public void onSuccess(byte[] tlv) {
+ String value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ callback.onSuccess(value);
+ }
+ }, ACTIVE_TEXT_ATTRIBUTE_ID, true);
}
- public void move(DefaultClusterCallback callback, Integer moveMode, @Nullable Integer rate, Integer optionsMask, Integer optionsOverride) {
- move(callback, moveMode, rate, optionsMask, optionsOverride, 0);
+ public void writeActiveTextAttribute(DefaultClusterCallback callback, String value) {
+ writeActiveTextAttribute(callback, value, 0);
}
- public void move(DefaultClusterCallback callback, Integer moveMode, @Nullable Integer rate, Integer optionsMask, Integer optionsOverride, int timedInvokeTimeoutMs) {
- final long commandId = 1L;
-
- ArrayList elements = new ArrayList<>();
- final long moveModeFieldID = 0L;
- BaseTLVType moveModetlvValue = new UIntType(moveMode);
- elements.add(new StructElement(moveModeFieldID, moveModetlvValue));
+ public void writeActiveTextAttribute(DefaultClusterCallback callback, String value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = new StringType(value);
+ writeAttribute(new WriteAttributesCallbackImpl(callback), ACTIVE_TEXT_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }
- final long rateFieldID = 1L;
- BaseTLVType ratetlvValue = rate != null ? new UIntType(rate) : new NullType();
- elements.add(new StructElement(rateFieldID, ratetlvValue));
+ public void subscribeActiveTextAttribute(
+ CharStringAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACTIVE_TEXT_ATTRIBUTE_ID);
- final long optionsMaskFieldID = 2L;
- BaseTLVType optionsMasktlvValue = new UIntType(optionsMask);
- elements.add(new StructElement(optionsMaskFieldID, optionsMasktlvValue));
+ subscribeAttribute(new ReportCallbackImpl(callback, path) {
+ @Override
+ public void onSuccess(byte[] tlv) {
+ String value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ }
+ }, ACTIVE_TEXT_ATTRIBUTE_ID, minInterval, maxInterval);
+ }
- final long optionsOverrideFieldID = 3L;
- BaseTLVType optionsOverridetlvValue = new UIntType(optionsOverride);
- elements.add(new StructElement(optionsOverrideFieldID, optionsOverridetlvValue));
+ public void readDescriptionAttribute(
+ CharStringAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, DESCRIPTION_ATTRIBUTE_ID);
- StructType value = new StructType(elements);
- invoke(new InvokeCallbackImpl(callback) {
+ readAttribute(new ReportCallbackImpl(callback, path) {
@Override
- public void onResponse(StructType invokeStructValue) {
- callback.onSuccess();
- }}, commandId, value, timedInvokeTimeoutMs);
+ public void onSuccess(byte[] tlv) {
+ String value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ callback.onSuccess(value);
+ }
+ }, DESCRIPTION_ATTRIBUTE_ID, true);
}
- public void step(DefaultClusterCallback callback, Integer stepMode, Integer stepSize, @Nullable Integer transitionTime, Integer optionsMask, Integer optionsOverride) {
- step(callback, stepMode, stepSize, transitionTime, optionsMask, optionsOverride, 0);
+ public void writeDescriptionAttribute(DefaultClusterCallback callback, String value) {
+ writeDescriptionAttribute(callback, value, 0);
}
- public void step(DefaultClusterCallback callback, Integer stepMode, Integer stepSize, @Nullable Integer transitionTime, Integer optionsMask, Integer optionsOverride, int timedInvokeTimeoutMs) {
- final long commandId = 2L;
-
- ArrayList elements = new ArrayList<>();
- final long stepModeFieldID = 0L;
- BaseTLVType stepModetlvValue = new UIntType(stepMode);
- elements.add(new StructElement(stepModeFieldID, stepModetlvValue));
-
- final long stepSizeFieldID = 1L;
- BaseTLVType stepSizetlvValue = new UIntType(stepSize);
- elements.add(new StructElement(stepSizeFieldID, stepSizetlvValue));
+ public void writeDescriptionAttribute(DefaultClusterCallback callback, String value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = new StringType(value);
+ writeAttribute(new WriteAttributesCallbackImpl(callback), DESCRIPTION_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }
- final long transitionTimeFieldID = 2L;
- BaseTLVType transitionTimetlvValue = transitionTime != null ? new UIntType(transitionTime) : new NullType();
- elements.add(new StructElement(transitionTimeFieldID, transitionTimetlvValue));
+ public void subscribeDescriptionAttribute(
+ CharStringAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, DESCRIPTION_ATTRIBUTE_ID);
- final long optionsMaskFieldID = 3L;
- BaseTLVType optionsMasktlvValue = new UIntType(optionsMask);
- elements.add(new StructElement(optionsMaskFieldID, optionsMasktlvValue));
+ subscribeAttribute(new ReportCallbackImpl(callback, path) {
+ @Override
+ public void onSuccess(byte[] tlv) {
+ String value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ }
+ }, DESCRIPTION_ATTRIBUTE_ID, minInterval, maxInterval);
+ }
- final long optionsOverrideFieldID = 4L;
- BaseTLVType optionsOverridetlvValue = new UIntType(optionsOverride);
- elements.add(new StructElement(optionsOverrideFieldID, optionsOverridetlvValue));
+ public void readInactiveTextAttribute(
+ CharStringAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, INACTIVE_TEXT_ATTRIBUTE_ID);
- StructType value = new StructType(elements);
- invoke(new InvokeCallbackImpl(callback) {
+ readAttribute(new ReportCallbackImpl(callback, path) {
@Override
- public void onResponse(StructType invokeStructValue) {
- callback.onSuccess();
- }}, commandId, value, timedInvokeTimeoutMs);
+ public void onSuccess(byte[] tlv) {
+ String value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ callback.onSuccess(value);
+ }
+ }, INACTIVE_TEXT_ATTRIBUTE_ID, true);
}
- public void stop(DefaultClusterCallback callback, Integer optionsMask, Integer optionsOverride) {
- stop(callback, optionsMask, optionsOverride, 0);
+ public void writeInactiveTextAttribute(DefaultClusterCallback callback, String value) {
+ writeInactiveTextAttribute(callback, value, 0);
}
- public void stop(DefaultClusterCallback callback, Integer optionsMask, Integer optionsOverride, int timedInvokeTimeoutMs) {
- final long commandId = 3L;
+ public void writeInactiveTextAttribute(DefaultClusterCallback callback, String value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = new StringType(value);
+ writeAttribute(new WriteAttributesCallbackImpl(callback), INACTIVE_TEXT_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }
- ArrayList elements = new ArrayList<>();
- final long optionsMaskFieldID = 0L;
- BaseTLVType optionsMasktlvValue = new UIntType(optionsMask);
- elements.add(new StructElement(optionsMaskFieldID, optionsMasktlvValue));
+ public void subscribeInactiveTextAttribute(
+ CharStringAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, INACTIVE_TEXT_ATTRIBUTE_ID);
- final long optionsOverrideFieldID = 1L;
- BaseTLVType optionsOverridetlvValue = new UIntType(optionsOverride);
- elements.add(new StructElement(optionsOverrideFieldID, optionsOverridetlvValue));
+ subscribeAttribute(new ReportCallbackImpl(callback, path) {
+ @Override
+ public void onSuccess(byte[] tlv) {
+ String value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ }
+ }, INACTIVE_TEXT_ATTRIBUTE_ID, minInterval, maxInterval);
+ }
- StructType value = new StructType(elements);
- invoke(new InvokeCallbackImpl(callback) {
+ public void readOutOfServiceAttribute(
+ BooleanAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OUT_OF_SERVICE_ATTRIBUTE_ID);
+
+ readAttribute(new ReportCallbackImpl(callback, path) {
@Override
- public void onResponse(StructType invokeStructValue) {
- callback.onSuccess();
- }}, commandId, value, timedInvokeTimeoutMs);
+ public void onSuccess(byte[] tlv) {
+ Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ callback.onSuccess(value);
+ }
+ }, OUT_OF_SERVICE_ATTRIBUTE_ID, true);
}
- public void moveToLevelWithOnOff(DefaultClusterCallback callback, Integer level, @Nullable Integer transitionTime, Integer optionsMask, Integer optionsOverride) {
- moveToLevelWithOnOff(callback, level, transitionTime, optionsMask, optionsOverride, 0);
+ public void writeOutOfServiceAttribute(DefaultClusterCallback callback, Boolean value) {
+ writeOutOfServiceAttribute(callback, value, 0);
}
- public void moveToLevelWithOnOff(DefaultClusterCallback callback, Integer level, @Nullable Integer transitionTime, Integer optionsMask, Integer optionsOverride, int timedInvokeTimeoutMs) {
- final long commandId = 4L;
-
- ArrayList elements = new ArrayList<>();
- final long levelFieldID = 0L;
- BaseTLVType leveltlvValue = new UIntType(level);
- elements.add(new StructElement(levelFieldID, leveltlvValue));
-
- final long transitionTimeFieldID = 1L;
- BaseTLVType transitionTimetlvValue = transitionTime != null ? new UIntType(transitionTime) : new NullType();
- elements.add(new StructElement(transitionTimeFieldID, transitionTimetlvValue));
-
- final long optionsMaskFieldID = 2L;
- BaseTLVType optionsMasktlvValue = new UIntType(optionsMask);
- elements.add(new StructElement(optionsMaskFieldID, optionsMasktlvValue));
-
- final long optionsOverrideFieldID = 3L;
- BaseTLVType optionsOverridetlvValue = new UIntType(optionsOverride);
- elements.add(new StructElement(optionsOverrideFieldID, optionsOverridetlvValue));
-
- StructType value = new StructType(elements);
- invoke(new InvokeCallbackImpl(callback) {
- @Override
- public void onResponse(StructType invokeStructValue) {
- callback.onSuccess();
- }}, commandId, value, timedInvokeTimeoutMs);
- }
-
- public void moveWithOnOff(DefaultClusterCallback callback, Integer moveMode, @Nullable Integer rate, Integer optionsMask, Integer optionsOverride) {
- moveWithOnOff(callback, moveMode, rate, optionsMask, optionsOverride, 0);
- }
-
- public void moveWithOnOff(DefaultClusterCallback callback, Integer moveMode, @Nullable Integer rate, Integer optionsMask, Integer optionsOverride, int timedInvokeTimeoutMs) {
- final long commandId = 5L;
-
- ArrayList elements = new ArrayList<>();
- final long moveModeFieldID = 0L;
- BaseTLVType moveModetlvValue = new UIntType(moveMode);
- elements.add(new StructElement(moveModeFieldID, moveModetlvValue));
-
- final long rateFieldID = 1L;
- BaseTLVType ratetlvValue = rate != null ? new UIntType(rate) : new NullType();
- elements.add(new StructElement(rateFieldID, ratetlvValue));
-
- final long optionsMaskFieldID = 2L;
- BaseTLVType optionsMasktlvValue = new UIntType(optionsMask);
- elements.add(new StructElement(optionsMaskFieldID, optionsMasktlvValue));
-
- final long optionsOverrideFieldID = 3L;
- BaseTLVType optionsOverridetlvValue = new UIntType(optionsOverride);
- elements.add(new StructElement(optionsOverrideFieldID, optionsOverridetlvValue));
-
- StructType value = new StructType(elements);
- invoke(new InvokeCallbackImpl(callback) {
- @Override
- public void onResponse(StructType invokeStructValue) {
- callback.onSuccess();
- }}, commandId, value, timedInvokeTimeoutMs);
- }
-
- public void stepWithOnOff(DefaultClusterCallback callback, Integer stepMode, Integer stepSize, @Nullable Integer transitionTime, Integer optionsMask, Integer optionsOverride) {
- stepWithOnOff(callback, stepMode, stepSize, transitionTime, optionsMask, optionsOverride, 0);
+ public void writeOutOfServiceAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = new BooleanType(value);
+ writeAttribute(new WriteAttributesCallbackImpl(callback), OUT_OF_SERVICE_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
}
- public void stepWithOnOff(DefaultClusterCallback callback, Integer stepMode, Integer stepSize, @Nullable Integer transitionTime, Integer optionsMask, Integer optionsOverride, int timedInvokeTimeoutMs) {
- final long commandId = 6L;
-
- ArrayList elements = new ArrayList<>();
- final long stepModeFieldID = 0L;
- BaseTLVType stepModetlvValue = new UIntType(stepMode);
- elements.add(new StructElement(stepModeFieldID, stepModetlvValue));
-
- final long stepSizeFieldID = 1L;
- BaseTLVType stepSizetlvValue = new UIntType(stepSize);
- elements.add(new StructElement(stepSizeFieldID, stepSizetlvValue));
-
- final long transitionTimeFieldID = 2L;
- BaseTLVType transitionTimetlvValue = transitionTime != null ? new UIntType(transitionTime) : new NullType();
- elements.add(new StructElement(transitionTimeFieldID, transitionTimetlvValue));
-
- final long optionsMaskFieldID = 3L;
- BaseTLVType optionsMasktlvValue = new UIntType(optionsMask);
- elements.add(new StructElement(optionsMaskFieldID, optionsMasktlvValue));
-
- final long optionsOverrideFieldID = 4L;
- BaseTLVType optionsOverridetlvValue = new UIntType(optionsOverride);
- elements.add(new StructElement(optionsOverrideFieldID, optionsOverridetlvValue));
+ public void subscribeOutOfServiceAttribute(
+ BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OUT_OF_SERVICE_ATTRIBUTE_ID);
- StructType value = new StructType(elements);
- invoke(new InvokeCallbackImpl(callback) {
+ subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
- public void onResponse(StructType invokeStructValue) {
- callback.onSuccess();
- }}, commandId, value, timedInvokeTimeoutMs);
- }
-
- public void stopWithOnOff(DefaultClusterCallback callback, Integer optionsMask, Integer optionsOverride) {
- stopWithOnOff(callback, optionsMask, optionsOverride, 0);
+ public void onSuccess(byte[] tlv) {
+ Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ }
+ }, OUT_OF_SERVICE_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void stopWithOnOff(DefaultClusterCallback callback, Integer optionsMask, Integer optionsOverride, int timedInvokeTimeoutMs) {
- final long commandId = 7L;
-
- ArrayList elements = new ArrayList<>();
- final long optionsMaskFieldID = 0L;
- BaseTLVType optionsMasktlvValue = new UIntType(optionsMask);
- elements.add(new StructElement(optionsMaskFieldID, optionsMasktlvValue));
-
- final long optionsOverrideFieldID = 1L;
- BaseTLVType optionsOverridetlvValue = new UIntType(optionsOverride);
- elements.add(new StructElement(optionsOverrideFieldID, optionsOverridetlvValue));
+ public void readPolarityAttribute(
+ IntegerAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, POLARITY_ATTRIBUTE_ID);
- StructType value = new StructType(elements);
- invoke(new InvokeCallbackImpl(callback) {
+ readAttribute(new ReportCallbackImpl(callback, path) {
@Override
- public void onResponse(StructType invokeStructValue) {
- callback.onSuccess();
- }}, commandId, value, timedInvokeTimeoutMs);
- }
-
- public void moveToClosestFrequency(DefaultClusterCallback callback, Integer frequency) {
- moveToClosestFrequency(callback, frequency, 0);
+ public void onSuccess(byte[] tlv) {
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ callback.onSuccess(value);
+ }
+ }, POLARITY_ATTRIBUTE_ID, true);
}
- public void moveToClosestFrequency(DefaultClusterCallback callback, Integer frequency, int timedInvokeTimeoutMs) {
- final long commandId = 8L;
-
- ArrayList elements = new ArrayList<>();
- final long frequencyFieldID = 0L;
- BaseTLVType frequencytlvValue = new UIntType(frequency);
- elements.add(new StructElement(frequencyFieldID, frequencytlvValue));
+ public void subscribePolarityAttribute(
+ IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, POLARITY_ATTRIBUTE_ID);
- StructType value = new StructType(elements);
- invoke(new InvokeCallbackImpl(callback) {
+ subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
- public void onResponse(StructType invokeStructValue) {
- callback.onSuccess();
- }}, commandId, value, timedInvokeTimeoutMs);
- }
-
- public interface CurrentLevelAttributeCallback extends BaseAttributeCallback {
- void onSuccess(@Nullable Integer value);
- }
-
- public interface OnLevelAttributeCallback extends BaseAttributeCallback {
- void onSuccess(@Nullable Integer value);
- }
-
- public interface OnTransitionTimeAttributeCallback extends BaseAttributeCallback {
- void onSuccess(@Nullable Integer value);
- }
-
- public interface OffTransitionTimeAttributeCallback extends BaseAttributeCallback {
- void onSuccess(@Nullable Integer value);
- }
-
- public interface DefaultMoveRateAttributeCallback extends BaseAttributeCallback {
- void onSuccess(@Nullable Integer value);
- }
-
- public interface StartUpCurrentLevelAttributeCallback extends BaseAttributeCallback {
- void onSuccess(@Nullable Integer value);
- }
-
- public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
- }
-
- public interface AcceptedCommandListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
- }
-
- public interface EventListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
- }
-
- public interface AttributeListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
+ public void onSuccess(byte[] tlv) {
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ }
+ }, POLARITY_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readCurrentLevelAttribute(
- CurrentLevelAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_LEVEL_ATTRIBUTE_ID);
+ public void readPresentValueAttribute(
+ BooleanAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, PRESENT_VALUE_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, CURRENT_LEVEL_ATTRIBUTE_ID, true);
+ }, PRESENT_VALUE_ATTRIBUTE_ID, true);
}
- public void subscribeCurrentLevelAttribute(
- CurrentLevelAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_LEVEL_ATTRIBUTE_ID);
+ public void writePresentValueAttribute(DefaultClusterCallback callback, Boolean value) {
+ writePresentValueAttribute(callback, value, 0);
+ }
+
+ public void writePresentValueAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = new BooleanType(value);
+ writeAttribute(new WriteAttributesCallbackImpl(callback), PRESENT_VALUE_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }
+
+ public void subscribePresentValueAttribute(
+ BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, PRESENT_VALUE_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, CURRENT_LEVEL_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, PRESENT_VALUE_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readRemainingTimeAttribute(
+ public void readReliabilityAttribute(
IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, REMAINING_TIME_ATTRIBUTE_ID);
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, RELIABILITY_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
@@ -3065,24 +2870,33 @@ public void onSuccess(byte[] tlv) {
Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, REMAINING_TIME_ATTRIBUTE_ID, true);
+ }, RELIABILITY_ATTRIBUTE_ID, true);
}
- public void subscribeRemainingTimeAttribute(
+ public void writeReliabilityAttribute(DefaultClusterCallback callback, Integer value) {
+ writeReliabilityAttribute(callback, value, 0);
+ }
+
+ public void writeReliabilityAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = new UIntType(value);
+ writeAttribute(new WriteAttributesCallbackImpl(callback), RELIABILITY_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }
+
+ public void subscribeReliabilityAttribute(
IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, REMAINING_TIME_ATTRIBUTE_ID);
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, RELIABILITY_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, REMAINING_TIME_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, RELIABILITY_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readMinLevelAttribute(
+ public void readStatusFlagsAttribute(
IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIN_LEVEL_ATTRIBUTE_ID);
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, STATUS_FLAGS_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
@@ -3090,395 +2904,269 @@ public void onSuccess(byte[] tlv) {
Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, MIN_LEVEL_ATTRIBUTE_ID, true);
+ }, STATUS_FLAGS_ATTRIBUTE_ID, true);
}
- public void subscribeMinLevelAttribute(
+ public void subscribeStatusFlagsAttribute(
IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIN_LEVEL_ATTRIBUTE_ID);
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, STATUS_FLAGS_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, MIN_LEVEL_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, STATUS_FLAGS_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readMaxLevelAttribute(
- IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_LEVEL_ATTRIBUTE_ID);
+ public void readApplicationTypeAttribute(
+ LongAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, APPLICATION_TYPE_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, MAX_LEVEL_ATTRIBUTE_ID, true);
+ }, APPLICATION_TYPE_ATTRIBUTE_ID, true);
}
- public void subscribeMaxLevelAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_LEVEL_ATTRIBUTE_ID);
+ public void subscribeApplicationTypeAttribute(
+ LongAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, APPLICATION_TYPE_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, MAX_LEVEL_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, APPLICATION_TYPE_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readCurrentFrequencyAttribute(
- IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_FREQUENCY_ATTRIBUTE_ID);
+ public void readGeneratedCommandListAttribute(
+ GeneratedCommandListAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, CURRENT_FREQUENCY_ATTRIBUTE_ID, true);
+ }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, true);
}
- public void subscribeCurrentFrequencyAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_FREQUENCY_ATTRIBUTE_ID);
+ public void subscribeGeneratedCommandListAttribute(
+ GeneratedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, CURRENT_FREQUENCY_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readMinFrequencyAttribute(
- IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIN_FREQUENCY_ATTRIBUTE_ID);
+ public void readAcceptedCommandListAttribute(
+ AcceptedCommandListAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, MIN_FREQUENCY_ATTRIBUTE_ID, true);
+ }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, true);
}
- public void subscribeMinFrequencyAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIN_FREQUENCY_ATTRIBUTE_ID);
+ public void subscribeAcceptedCommandListAttribute(
+ AcceptedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, MIN_FREQUENCY_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readMaxFrequencyAttribute(
- IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_FREQUENCY_ATTRIBUTE_ID);
+ public void readEventListAttribute(
+ EventListAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, MAX_FREQUENCY_ATTRIBUTE_ID, true);
+ }, EVENT_LIST_ATTRIBUTE_ID, true);
}
- public void subscribeMaxFrequencyAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_FREQUENCY_ATTRIBUTE_ID);
+ public void subscribeEventListAttribute(
+ EventListAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, MAX_FREQUENCY_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, EVENT_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readOptionsAttribute(
- IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OPTIONS_ATTRIBUTE_ID);
+ public void readAttributeListAttribute(
+ AttributeListAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, OPTIONS_ATTRIBUTE_ID, true);
- }
-
- public void writeOptionsAttribute(DefaultClusterCallback callback, Integer value) {
- writeOptionsAttribute(callback, value, 0);
- }
-
- public void writeOptionsAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = new UIntType(value);
- writeAttribute(new WriteAttributesCallbackImpl(callback), OPTIONS_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }, ATTRIBUTE_LIST_ATTRIBUTE_ID, true);
}
- public void subscribeOptionsAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OPTIONS_ATTRIBUTE_ID);
+ public void subscribeAttributeListAttribute(
+ AttributeListAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, OPTIONS_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, ATTRIBUTE_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readOnOffTransitionTimeAttribute(
- IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID);
+ public void readFeatureMapAttribute(
+ LongAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID, true);
- }
-
- public void writeOnOffTransitionTimeAttribute(DefaultClusterCallback callback, Integer value) {
- writeOnOffTransitionTimeAttribute(callback, value, 0);
- }
-
- public void writeOnOffTransitionTimeAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = new UIntType(value);
- writeAttribute(new WriteAttributesCallbackImpl(callback), ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }, FEATURE_MAP_ATTRIBUTE_ID, true);
}
- public void subscribeOnOffTransitionTimeAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID);
+ public void subscribeFeatureMapAttribute(
+ LongAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, FEATURE_MAP_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readOnLevelAttribute(
- OnLevelAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_LEVEL_ATTRIBUTE_ID);
+ public void readClusterRevisionAttribute(
+ IntegerAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, ON_LEVEL_ATTRIBUTE_ID, true);
- }
-
- public void writeOnLevelAttribute(DefaultClusterCallback callback, Integer value) {
- writeOnLevelAttribute(callback, value, 0);
- }
-
- public void writeOnLevelAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = value != null ? new UIntType(value) : new NullType();
- writeAttribute(new WriteAttributesCallbackImpl(callback), ON_LEVEL_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }, CLUSTER_REVISION_ATTRIBUTE_ID, true);
}
- public void subscribeOnLevelAttribute(
- OnLevelAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_LEVEL_ATTRIBUTE_ID);
+ public void subscribeClusterRevisionAttribute(
+ IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, ON_LEVEL_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, CLUSTER_REVISION_ATTRIBUTE_ID, minInterval, maxInterval);
}
+ }
- public void readOnTransitionTimeAttribute(
- OnTransitionTimeAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_TRANSITION_TIME_ATTRIBUTE_ID);
+ public static class PulseWidthModulationCluster extends BaseChipCluster {
+ public static final long CLUSTER_ID = 28L;
- readAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- callback.onSuccess(value);
- }
- }, ON_TRANSITION_TIME_ATTRIBUTE_ID, true);
+ private static final long GENERATED_COMMAND_LIST_ATTRIBUTE_ID = 65528L;
+ private static final long ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID = 65529L;
+ private static final long EVENT_LIST_ATTRIBUTE_ID = 65530L;
+ private static final long ATTRIBUTE_LIST_ATTRIBUTE_ID = 65531L;
+ private static final long FEATURE_MAP_ATTRIBUTE_ID = 65532L;
+ private static final long CLUSTER_REVISION_ATTRIBUTE_ID = 65533L;
+
+ public PulseWidthModulationCluster(long devicePtr, int endpointId) {
+ super(devicePtr, endpointId, CLUSTER_ID);
}
- public void writeOnTransitionTimeAttribute(DefaultClusterCallback callback, Integer value) {
- writeOnTransitionTimeAttribute(callback, value, 0);
+ @Override
+ @Deprecated
+ public long initWithDevice(long devicePtr, int endpointId) {
+ return 0L;
}
- public void writeOnTransitionTimeAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = value != null ? new UIntType(value) : new NullType();
- writeAttribute(new WriteAttributesCallbackImpl(callback), ON_TRANSITION_TIME_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
}
- public void subscribeOnTransitionTimeAttribute(
- OnTransitionTimeAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ON_TRANSITION_TIME_ATTRIBUTE_ID);
+ public interface AcceptedCommandListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
- subscribeAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- }
- }, ON_TRANSITION_TIME_ATTRIBUTE_ID, minInterval, maxInterval);
+ public interface EventListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
}
- public void readOffTransitionTimeAttribute(
- OffTransitionTimeAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OFF_TRANSITION_TIME_ATTRIBUTE_ID);
+ public interface AttributeListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
+
+ public void readGeneratedCommandListAttribute(
+ GeneratedCommandListAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, OFF_TRANSITION_TIME_ATTRIBUTE_ID, true);
- }
-
- public void writeOffTransitionTimeAttribute(DefaultClusterCallback callback, Integer value) {
- writeOffTransitionTimeAttribute(callback, value, 0);
- }
-
- public void writeOffTransitionTimeAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = value != null ? new UIntType(value) : new NullType();
- writeAttribute(new WriteAttributesCallbackImpl(callback), OFF_TRANSITION_TIME_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, true);
}
- public void subscribeOffTransitionTimeAttribute(
- OffTransitionTimeAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OFF_TRANSITION_TIME_ATTRIBUTE_ID);
+ public void subscribeGeneratedCommandListAttribute(
+ GeneratedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, OFF_TRANSITION_TIME_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readDefaultMoveRateAttribute(
- DefaultMoveRateAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, DEFAULT_MOVE_RATE_ATTRIBUTE_ID);
+ public void readAcceptedCommandListAttribute(
+ AcceptedCommandListAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, DEFAULT_MOVE_RATE_ATTRIBUTE_ID, true);
- }
-
- public void writeDefaultMoveRateAttribute(DefaultClusterCallback callback, Integer value) {
- writeDefaultMoveRateAttribute(callback, value, 0);
- }
-
- public void writeDefaultMoveRateAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = value != null ? new UIntType(value) : new NullType();
- writeAttribute(new WriteAttributesCallbackImpl(callback), DEFAULT_MOVE_RATE_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
- }
-
- public void subscribeDefaultMoveRateAttribute(
- DefaultMoveRateAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, DEFAULT_MOVE_RATE_ATTRIBUTE_ID);
-
- subscribeAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- }
- }, DEFAULT_MOVE_RATE_ATTRIBUTE_ID, minInterval, maxInterval);
- }
-
- public void readStartUpCurrentLevelAttribute(
- StartUpCurrentLevelAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, START_UP_CURRENT_LEVEL_ATTRIBUTE_ID);
-
- readAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- callback.onSuccess(value);
- }
- }, START_UP_CURRENT_LEVEL_ATTRIBUTE_ID, true);
- }
-
- public void writeStartUpCurrentLevelAttribute(DefaultClusterCallback callback, Integer value) {
- writeStartUpCurrentLevelAttribute(callback, value, 0);
- }
-
- public void writeStartUpCurrentLevelAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = value != null ? new UIntType(value) : new NullType();
- writeAttribute(new WriteAttributesCallbackImpl(callback), START_UP_CURRENT_LEVEL_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
- }
-
- public void subscribeStartUpCurrentLevelAttribute(
- StartUpCurrentLevelAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, START_UP_CURRENT_LEVEL_ATTRIBUTE_ID);
-
- subscribeAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- @Nullable Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- }
- }, START_UP_CURRENT_LEVEL_ATTRIBUTE_ID, minInterval, maxInterval);
- }
-
- public void readGeneratedCommandListAttribute(
- GeneratedCommandListAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
-
- readAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- callback.onSuccess(value);
- }
- }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, true);
- }
-
- public void subscribeGeneratedCommandListAttribute(
- GeneratedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
-
- subscribeAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- }
- }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
- }
-
- public void readAcceptedCommandListAttribute(
- AcceptedCommandListAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
-
- readAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- callback.onSuccess(value);
- }
- }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, true);
+ }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, true);
}
public void subscribeAcceptedCommandListAttribute(
@@ -3594,18 +3282,14 @@ public void onSuccess(byte[] tlv) {
}
}
- public static class BinaryInputBasicCluster extends BaseChipCluster {
- public static final long CLUSTER_ID = 15L;
+ public static class DescriptorCluster extends BaseChipCluster {
+ public static final long CLUSTER_ID = 29L;
- private static final long ACTIVE_TEXT_ATTRIBUTE_ID = 4L;
- private static final long DESCRIPTION_ATTRIBUTE_ID = 28L;
- private static final long INACTIVE_TEXT_ATTRIBUTE_ID = 46L;
- private static final long OUT_OF_SERVICE_ATTRIBUTE_ID = 81L;
- private static final long POLARITY_ATTRIBUTE_ID = 84L;
- private static final long PRESENT_VALUE_ATTRIBUTE_ID = 85L;
- private static final long RELIABILITY_ATTRIBUTE_ID = 103L;
- private static final long STATUS_FLAGS_ATTRIBUTE_ID = 111L;
- private static final long APPLICATION_TYPE_ATTRIBUTE_ID = 256L;
+ private static final long DEVICE_TYPE_LIST_ATTRIBUTE_ID = 0L;
+ private static final long SERVER_LIST_ATTRIBUTE_ID = 1L;
+ private static final long CLIENT_LIST_ATTRIBUTE_ID = 2L;
+ private static final long PARTS_LIST_ATTRIBUTE_ID = 3L;
+ private static final long TAG_LIST_ATTRIBUTE_ID = 4L;
private static final long GENERATED_COMMAND_LIST_ATTRIBUTE_ID = 65528L;
private static final long ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID = 65529L;
private static final long EVENT_LIST_ATTRIBUTE_ID = 65530L;
@@ -3613,7 +3297,7 @@ public static class BinaryInputBasicCluster extends BaseChipCluster {
private static final long FEATURE_MAP_ATTRIBUTE_ID = 65532L;
private static final long CLUSTER_REVISION_ATTRIBUTE_ID = 65533L;
- public BinaryInputBasicCluster(long devicePtr, int endpointId) {
+ public DescriptorCluster(long devicePtr, int endpointId) {
super(devicePtr, endpointId, CLUSTER_ID);
}
@@ -3623,6 +3307,26 @@ public long initWithDevice(long devicePtr, int endpointId) {
return 0L;
}
+ public interface DeviceTypeListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
+
+ public interface ServerListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
+
+ public interface ClientListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
+
+ public interface PartsListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
+
+ public interface TagListAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
+
public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
void onSuccess(List value);
}
@@ -3639,283 +3343,129 @@ public interface AttributeListAttributeCallback extends BaseAttributeCallback {
void onSuccess(List value);
}
- public void readActiveTextAttribute(
- CharStringAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACTIVE_TEXT_ATTRIBUTE_ID);
+ public void readDeviceTypeListAttribute(
+ DeviceTypeListAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, DEVICE_TYPE_LIST_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- String value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, ACTIVE_TEXT_ATTRIBUTE_ID, true);
- }
-
- public void writeActiveTextAttribute(DefaultClusterCallback callback, String value) {
- writeActiveTextAttribute(callback, value, 0);
- }
-
- public void writeActiveTextAttribute(DefaultClusterCallback callback, String value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = new StringType(value);
- writeAttribute(new WriteAttributesCallbackImpl(callback), ACTIVE_TEXT_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }, DEVICE_TYPE_LIST_ATTRIBUTE_ID, true);
}
- public void subscribeActiveTextAttribute(
- CharStringAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACTIVE_TEXT_ATTRIBUTE_ID);
+ public void subscribeDeviceTypeListAttribute(
+ DeviceTypeListAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, DEVICE_TYPE_LIST_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- String value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, ACTIVE_TEXT_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, DEVICE_TYPE_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readDescriptionAttribute(
- CharStringAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, DESCRIPTION_ATTRIBUTE_ID);
+ public void readServerListAttribute(
+ ServerListAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SERVER_LIST_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- String value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, DESCRIPTION_ATTRIBUTE_ID, true);
- }
-
- public void writeDescriptionAttribute(DefaultClusterCallback callback, String value) {
- writeDescriptionAttribute(callback, value, 0);
- }
-
- public void writeDescriptionAttribute(DefaultClusterCallback callback, String value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = new StringType(value);
- writeAttribute(new WriteAttributesCallbackImpl(callback), DESCRIPTION_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }, SERVER_LIST_ATTRIBUTE_ID, true);
}
- public void subscribeDescriptionAttribute(
- CharStringAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, DESCRIPTION_ATTRIBUTE_ID);
+ public void subscribeServerListAttribute(
+ ServerListAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SERVER_LIST_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- String value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, DESCRIPTION_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, SERVER_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readInactiveTextAttribute(
- CharStringAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, INACTIVE_TEXT_ATTRIBUTE_ID);
+ public void readClientListAttribute(
+ ClientListAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLIENT_LIST_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- String value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, INACTIVE_TEXT_ATTRIBUTE_ID, true);
- }
-
- public void writeInactiveTextAttribute(DefaultClusterCallback callback, String value) {
- writeInactiveTextAttribute(callback, value, 0);
- }
-
- public void writeInactiveTextAttribute(DefaultClusterCallback callback, String value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = new StringType(value);
- writeAttribute(new WriteAttributesCallbackImpl(callback), INACTIVE_TEXT_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }, CLIENT_LIST_ATTRIBUTE_ID, true);
}
- public void subscribeInactiveTextAttribute(
- CharStringAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, INACTIVE_TEXT_ATTRIBUTE_ID);
+ public void subscribeClientListAttribute(
+ ClientListAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLIENT_LIST_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- String value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, INACTIVE_TEXT_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, CLIENT_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readOutOfServiceAttribute(
- BooleanAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OUT_OF_SERVICE_ATTRIBUTE_ID);
+ public void readPartsListAttribute(
+ PartsListAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, PARTS_LIST_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, OUT_OF_SERVICE_ATTRIBUTE_ID, true);
- }
-
- public void writeOutOfServiceAttribute(DefaultClusterCallback callback, Boolean value) {
- writeOutOfServiceAttribute(callback, value, 0);
- }
-
- public void writeOutOfServiceAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = new BooleanType(value);
- writeAttribute(new WriteAttributesCallbackImpl(callback), OUT_OF_SERVICE_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }, PARTS_LIST_ATTRIBUTE_ID, true);
}
- public void subscribeOutOfServiceAttribute(
- BooleanAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OUT_OF_SERVICE_ATTRIBUTE_ID);
+ public void subscribePartsListAttribute(
+ PartsListAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, PARTS_LIST_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, OUT_OF_SERVICE_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, PARTS_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readPolarityAttribute(
- IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, POLARITY_ATTRIBUTE_ID);
+ public void readTagListAttribute(
+ TagListAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, TAG_LIST_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, POLARITY_ATTRIBUTE_ID, true);
- }
-
- public void subscribePolarityAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, POLARITY_ATTRIBUTE_ID);
-
- subscribeAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- }
- }, POLARITY_ATTRIBUTE_ID, minInterval, maxInterval);
- }
-
- public void readPresentValueAttribute(
- BooleanAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, PRESENT_VALUE_ATTRIBUTE_ID);
-
- readAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- callback.onSuccess(value);
- }
- }, PRESENT_VALUE_ATTRIBUTE_ID, true);
- }
-
- public void writePresentValueAttribute(DefaultClusterCallback callback, Boolean value) {
- writePresentValueAttribute(callback, value, 0);
- }
-
- public void writePresentValueAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = new BooleanType(value);
- writeAttribute(new WriteAttributesCallbackImpl(callback), PRESENT_VALUE_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
- }
-
- public void subscribePresentValueAttribute(
- BooleanAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, PRESENT_VALUE_ATTRIBUTE_ID);
-
- subscribeAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- }
- }, PRESENT_VALUE_ATTRIBUTE_ID, minInterval, maxInterval);
- }
-
- public void readReliabilityAttribute(
- IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, RELIABILITY_ATTRIBUTE_ID);
-
- readAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- callback.onSuccess(value);
- }
- }, RELIABILITY_ATTRIBUTE_ID, true);
- }
-
- public void writeReliabilityAttribute(DefaultClusterCallback callback, Integer value) {
- writeReliabilityAttribute(callback, value, 0);
- }
-
- public void writeReliabilityAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = new UIntType(value);
- writeAttribute(new WriteAttributesCallbackImpl(callback), RELIABILITY_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
- }
-
- public void subscribeReliabilityAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, RELIABILITY_ATTRIBUTE_ID);
-
- subscribeAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- }
- }, RELIABILITY_ATTRIBUTE_ID, minInterval, maxInterval);
- }
-
- public void readStatusFlagsAttribute(
- IntegerAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, STATUS_FLAGS_ATTRIBUTE_ID);
-
- readAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- callback.onSuccess(value);
- }
- }, STATUS_FLAGS_ATTRIBUTE_ID, true);
- }
-
- public void subscribeStatusFlagsAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, STATUS_FLAGS_ATTRIBUTE_ID);
-
- subscribeAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- }
- }, STATUS_FLAGS_ATTRIBUTE_ID, minInterval, maxInterval);
- }
-
- public void readApplicationTypeAttribute(
- LongAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, APPLICATION_TYPE_ATTRIBUTE_ID);
-
- readAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- callback.onSuccess(value);
- }
- }, APPLICATION_TYPE_ATTRIBUTE_ID, true);
+ }, TAG_LIST_ATTRIBUTE_ID, true);
}
- public void subscribeApplicationTypeAttribute(
- LongAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, APPLICATION_TYPE_ATTRIBUTE_ID);
+ public void subscribeTagListAttribute(
+ TagListAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, TAG_LIST_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, APPLICATION_TYPE_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, TAG_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
}
public void readGeneratedCommandListAttribute(
@@ -4069,9 +3619,10 @@ public void onSuccess(byte[] tlv) {
}
}
- public static class PulseWidthModulationCluster extends BaseChipCluster {
- public static final long CLUSTER_ID = 28L;
+ public static class BindingCluster extends BaseChipCluster {
+ public static final long CLUSTER_ID = 30L;
+ private static final long BINDING_ATTRIBUTE_ID = 0L;
private static final long GENERATED_COMMAND_LIST_ATTRIBUTE_ID = 65528L;
private static final long ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID = 65529L;
private static final long EVENT_LIST_ATTRIBUTE_ID = 65530L;
@@ -4079,7 +3630,7 @@ public static class PulseWidthModulationCluster extends BaseChipCluster {
private static final long FEATURE_MAP_ATTRIBUTE_ID = 65532L;
private static final long CLUSTER_REVISION_ATTRIBUTE_ID = 65533L;
- public PulseWidthModulationCluster(long devicePtr, int endpointId) {
+ public BindingCluster(long devicePtr, int endpointId) {
super(devicePtr, endpointId, CLUSTER_ID);
}
@@ -4089,6 +3640,10 @@ public long initWithDevice(long devicePtr, int endpointId) {
return 0L;
}
+ public interface BindingAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
+ }
+
public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
void onSuccess(List value);
}
@@ -4105,6 +3660,45 @@ public interface AttributeListAttributeCallback extends BaseAttributeCallback {
void onSuccess(List value);
}
+ public void readBindingAttribute(
+ BindingAttributeCallback callback) {
+ readBindingAttributeWithFabricFilter(callback, true);
+ }
+
+ public void readBindingAttributeWithFabricFilter(
+ BindingAttributeCallback callback, boolean isFabricFiltered) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, BINDING_ATTRIBUTE_ID);
+
+ readAttribute(new ReportCallbackImpl(callback, path) {
+ @Override
+ public void onSuccess(byte[] tlv) {
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ callback.onSuccess(value);
+ }
+ }, BINDING_ATTRIBUTE_ID, isFabricFiltered);
+ }
+
+ public void writeBindingAttribute(DefaultClusterCallback callback, ArrayList value) {
+ writeBindingAttribute(callback, value, 0);
+ }
+
+ public void writeBindingAttribute(DefaultClusterCallback callback, ArrayList value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = ArrayType.generateArrayType(value, (elementvalue) -> elementvalue.encodeTlv());
+ writeAttribute(new WriteAttributesCallbackImpl(callback), BINDING_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }
+
+ public void subscribeBindingAttribute(
+ BindingAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, BINDING_ATTRIBUTE_ID);
+
+ subscribeAttribute(new ReportCallbackImpl(callback, path) {
+ @Override
+ public void onSuccess(byte[] tlv) {
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ }
+ }, BINDING_ATTRIBUTE_ID, minInterval, maxInterval);
+ }
+
public void readGeneratedCommandListAttribute(
GeneratedCommandListAttributeCallback callback) {
ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
@@ -4256,14 +3850,14 @@ public void onSuccess(byte[] tlv) {
}
}
- public static class DescriptorCluster extends BaseChipCluster {
- public static final long CLUSTER_ID = 29L;
+ public static class AccessControlCluster extends BaseChipCluster {
+ public static final long CLUSTER_ID = 31L;
- private static final long DEVICE_TYPE_LIST_ATTRIBUTE_ID = 0L;
- private static final long SERVER_LIST_ATTRIBUTE_ID = 1L;
- private static final long CLIENT_LIST_ATTRIBUTE_ID = 2L;
- private static final long PARTS_LIST_ATTRIBUTE_ID = 3L;
- private static final long TAG_LIST_ATTRIBUTE_ID = 4L;
+ private static final long ACL_ATTRIBUTE_ID = 0L;
+ private static final long EXTENSION_ATTRIBUTE_ID = 1L;
+ private static final long SUBJECTS_PER_ACCESS_CONTROL_ENTRY_ATTRIBUTE_ID = 2L;
+ private static final long TARGETS_PER_ACCESS_CONTROL_ENTRY_ATTRIBUTE_ID = 3L;
+ private static final long ACCESS_CONTROL_ENTRIES_PER_FABRIC_ATTRIBUTE_ID = 4L;
private static final long GENERATED_COMMAND_LIST_ATTRIBUTE_ID = 65528L;
private static final long ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID = 65529L;
private static final long EVENT_LIST_ATTRIBUTE_ID = 65530L;
@@ -4271,7 +3865,7 @@ public static class DescriptorCluster extends BaseChipCluster {
private static final long FEATURE_MAP_ATTRIBUTE_ID = 65532L;
private static final long CLUSTER_REVISION_ATTRIBUTE_ID = 65533L;
- public DescriptorCluster(long devicePtr, int endpointId) {
+ public AccessControlCluster(long devicePtr, int endpointId) {
super(devicePtr, endpointId, CLUSTER_ID);
}
@@ -4281,24 +3875,12 @@ public long initWithDevice(long devicePtr, int endpointId) {
return 0L;
}
- public interface DeviceTypeListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
- }
-
- public interface ServerListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
- }
-
- public interface ClientListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
- }
-
- public interface PartsListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
+ public interface AclAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
}
- public interface TagListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
+ public interface ExtensionAttributeCallback extends BaseAttributeCallback {
+ void onSuccess(List value);
}
public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
@@ -4317,129 +3899,157 @@ public interface AttributeListAttributeCallback extends BaseAttributeCallback {
void onSuccess(List value);
}
- public void readDeviceTypeListAttribute(
- DeviceTypeListAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, DEVICE_TYPE_LIST_ATTRIBUTE_ID);
+ public void readAclAttribute(
+ AclAttributeCallback callback) {
+ readAclAttributeWithFabricFilter(callback, true);
+ }
+
+ public void readAclAttributeWithFabricFilter(
+ AclAttributeCallback callback, boolean isFabricFiltered) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACL_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, DEVICE_TYPE_LIST_ATTRIBUTE_ID, true);
+ }, ACL_ATTRIBUTE_ID, isFabricFiltered);
}
- public void subscribeDeviceTypeListAttribute(
- DeviceTypeListAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, DEVICE_TYPE_LIST_ATTRIBUTE_ID);
+ public void writeAclAttribute(DefaultClusterCallback callback, ArrayList value) {
+ writeAclAttribute(callback, value, 0);
+ }
+
+ public void writeAclAttribute(DefaultClusterCallback callback, ArrayList value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = ArrayType.generateArrayType(value, (elementvalue) -> elementvalue.encodeTlv());
+ writeAttribute(new WriteAttributesCallbackImpl(callback), ACL_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }
+
+ public void subscribeAclAttribute(
+ AclAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACL_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, DEVICE_TYPE_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, ACL_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readServerListAttribute(
- ServerListAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SERVER_LIST_ATTRIBUTE_ID);
-
- readAttribute(new ReportCallbackImpl(callback, path) {
- @Override
+ public void readExtensionAttribute(
+ ExtensionAttributeCallback callback) {
+ readExtensionAttributeWithFabricFilter(callback, true);
+ }
+
+ public void readExtensionAttributeWithFabricFilter(
+ ExtensionAttributeCallback callback, boolean isFabricFiltered) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EXTENSION_ATTRIBUTE_ID);
+
+ readAttribute(new ReportCallbackImpl(callback, path) {
+ @Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, SERVER_LIST_ATTRIBUTE_ID, true);
+ }, EXTENSION_ATTRIBUTE_ID, isFabricFiltered);
}
- public void subscribeServerListAttribute(
- ServerListAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SERVER_LIST_ATTRIBUTE_ID);
+ public void writeExtensionAttribute(DefaultClusterCallback callback, ArrayList value) {
+ writeExtensionAttribute(callback, value, 0);
+ }
+
+ public void writeExtensionAttribute(DefaultClusterCallback callback, ArrayList value, int timedWriteTimeoutMs) {
+ BaseTLVType tlvValue = ArrayType.generateArrayType(value, (elementvalue) -> elementvalue.encodeTlv());
+ writeAttribute(new WriteAttributesCallbackImpl(callback), EXTENSION_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+ }
+
+ public void subscribeExtensionAttribute(
+ ExtensionAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EXTENSION_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, SERVER_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, EXTENSION_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readClientListAttribute(
- ClientListAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLIENT_LIST_ATTRIBUTE_ID);
+ public void readSubjectsPerAccessControlEntryAttribute(
+ IntegerAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SUBJECTS_PER_ACCESS_CONTROL_ENTRY_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, CLIENT_LIST_ATTRIBUTE_ID, true);
+ }, SUBJECTS_PER_ACCESS_CONTROL_ENTRY_ATTRIBUTE_ID, true);
}
- public void subscribeClientListAttribute(
- ClientListAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLIENT_LIST_ATTRIBUTE_ID);
+ public void subscribeSubjectsPerAccessControlEntryAttribute(
+ IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SUBJECTS_PER_ACCESS_CONTROL_ENTRY_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, CLIENT_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, SUBJECTS_PER_ACCESS_CONTROL_ENTRY_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readPartsListAttribute(
- PartsListAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, PARTS_LIST_ATTRIBUTE_ID);
+ public void readTargetsPerAccessControlEntryAttribute(
+ IntegerAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, TARGETS_PER_ACCESS_CONTROL_ENTRY_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, PARTS_LIST_ATTRIBUTE_ID, true);
+ }, TARGETS_PER_ACCESS_CONTROL_ENTRY_ATTRIBUTE_ID, true);
}
- public void subscribePartsListAttribute(
- PartsListAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, PARTS_LIST_ATTRIBUTE_ID);
+ public void subscribeTargetsPerAccessControlEntryAttribute(
+ IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, TARGETS_PER_ACCESS_CONTROL_ENTRY_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, PARTS_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, TARGETS_PER_ACCESS_CONTROL_ENTRY_ATTRIBUTE_ID, minInterval, maxInterval);
}
- public void readTagListAttribute(
- TagListAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, TAG_LIST_ATTRIBUTE_ID);
+ public void readAccessControlEntriesPerFabricAttribute(
+ IntegerAttributeCallback callback) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCESS_CONTROL_ENTRIES_PER_FABRIC_ATTRIBUTE_ID);
readAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
callback.onSuccess(value);
}
- }, TAG_LIST_ATTRIBUTE_ID, true);
+ }, ACCESS_CONTROL_ENTRIES_PER_FABRIC_ATTRIBUTE_ID, true);
}
- public void subscribeTagListAttribute(
- TagListAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, TAG_LIST_ATTRIBUTE_ID);
+ public void subscribeAccessControlEntriesPerFabricAttribute(
+ IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+ ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCESS_CONTROL_ENTRIES_PER_FABRIC_ATTRIBUTE_ID);
subscribeAttribute(new ReportCallbackImpl(callback, path) {
@Override
public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+ Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
}
- }, TAG_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+ }, ACCESS_CONTROL_ENTRIES_PER_FABRIC_ATTRIBUTE_ID, minInterval, maxInterval);
}
public void readGeneratedCommandListAttribute(
@@ -4593,10 +4203,12 @@ public void onSuccess(byte[] tlv) {
}
}
- public static class BindingCluster extends BaseChipCluster {
- public static final long CLUSTER_ID = 30L;
+ public static class ActionsCluster extends BaseChipCluster {
+ public static final long CLUSTER_ID = 37L;
- private static final long BINDING_ATTRIBUTE_ID = 0L;
+ private static final long ACTION_LIST_ATTRIBUTE_ID = 0L;
+ private static final long ENDPOINT_LISTS_ATTRIBUTE_ID = 1L;
+ private static final long SETUP_U_R_L_ATTRIBUTE_ID = 2L;
private static final long GENERATED_COMMAND_LIST_ATTRIBUTE_ID = 65528L;
private static final long ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID = 65529L;
private static final long EVENT_LIST_ATTRIBUTE_ID = 65530L;
@@ -4604,7 +4216,7 @@ public static class BindingCluster extends BaseChipCluster {
private static final long FEATURE_MAP_ATTRIBUTE_ID = 65532L;
private static final long CLUSTER_REVISION_ATTRIBUTE_ID = 65533L;
- public BindingCluster(long devicePtr, int endpointId) {
+ public ActionsCluster(long devicePtr, int endpointId) {
super(devicePtr, endpointId, CLUSTER_ID);
}
@@ -4614,416 +4226,411 @@ public long initWithDevice(long devicePtr, int endpointId) {
return 0L;
}
- public interface BindingAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
+ public void instantAction(DefaultClusterCallback callback, Integer actionID, Optional invokeID) {
+ instantAction(callback, actionID, invokeID, 0);
}
- public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
- }
+ public void instantAction(DefaultClusterCallback callback, Integer actionID, Optional invokeID, int timedInvokeTimeoutMs) {
+ final long commandId = 0L;
- public interface AcceptedCommandListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
- }
+ ArrayList elements = new ArrayList<>();
+ final long actionIDFieldID = 0L;
+ BaseTLVType actionIDtlvValue = new UIntType(actionID);
+ elements.add(new StructElement(actionIDFieldID, actionIDtlvValue));
- public interface EventListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
- }
+ final long invokeIDFieldID = 1L;
+ BaseTLVType invokeIDtlvValue = invokeID.map((nonOptionalinvokeID) -> new UIntType(nonOptionalinvokeID)).orElse(new EmptyType());
+ elements.add(new StructElement(invokeIDFieldID, invokeIDtlvValue));
- public interface AttributeListAttributeCallback extends BaseAttributeCallback {
- void onSuccess(List value);
+ StructType value = new StructType(elements);
+ invoke(new InvokeCallbackImpl(callback) {
+ @Override
+ public void onResponse(StructType invokeStructValue) {
+ callback.onSuccess();
+ }}, commandId, value, timedInvokeTimeoutMs);
}
- public void readBindingAttribute(
- BindingAttributeCallback callback) {
- readBindingAttributeWithFabricFilter(callback, true);
+ public void instantActionWithTransition(DefaultClusterCallback callback, Integer actionID, Optional invokeID, Integer transitionTime) {
+ instantActionWithTransition(callback, actionID, invokeID, transitionTime, 0);
}
- public void readBindingAttributeWithFabricFilter(
- BindingAttributeCallback callback, boolean isFabricFiltered) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, BINDING_ATTRIBUTE_ID);
+ public void instantActionWithTransition(DefaultClusterCallback callback, Integer actionID, Optional invokeID, Integer transitionTime, int timedInvokeTimeoutMs) {
+ final long commandId = 1L;
- readAttribute(new ReportCallbackImpl(callback, path) {
+ ArrayList elements = new ArrayList<>();
+ final long actionIDFieldID = 0L;
+ BaseTLVType actionIDtlvValue = new UIntType(actionID);
+ elements.add(new StructElement(actionIDFieldID, actionIDtlvValue));
+
+ final long invokeIDFieldID = 1L;
+ BaseTLVType invokeIDtlvValue = invokeID.map((nonOptionalinvokeID) -> new UIntType(nonOptionalinvokeID)).orElse(new EmptyType());
+ elements.add(new StructElement(invokeIDFieldID, invokeIDtlvValue));
+
+ final long transitionTimeFieldID = 2L;
+ BaseTLVType transitionTimetlvValue = new UIntType(transitionTime);
+ elements.add(new StructElement(transitionTimeFieldID, transitionTimetlvValue));
+
+ StructType value = new StructType(elements);
+ invoke(new InvokeCallbackImpl(callback) {
@Override
- public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- callback.onSuccess(value);
- }
- }, BINDING_ATTRIBUTE_ID, isFabricFiltered);
+ public void onResponse(StructType invokeStructValue) {
+ callback.onSuccess();
+ }}, commandId, value, timedInvokeTimeoutMs);
}
- public void writeBindingAttribute(DefaultClusterCallback callback, ArrayList value) {
- writeBindingAttribute(callback, value, 0);
+ public void startAction(DefaultClusterCallback callback, Integer actionID, Optional invokeID) {
+ startAction(callback, actionID, invokeID, 0);
}
- public void writeBindingAttribute(DefaultClusterCallback callback, ArrayList value, int timedWriteTimeoutMs) {
- BaseTLVType tlvValue = ArrayType.generateArrayType(value, (elementvalue) -> elementvalue.encodeTlv());
- writeAttribute(new WriteAttributesCallbackImpl(callback), BINDING_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
- }
+ public void startAction(DefaultClusterCallback callback, Integer actionID, Optional invokeID, int timedInvokeTimeoutMs) {
+ final long commandId = 2L;
- public void subscribeBindingAttribute(
- BindingAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, BINDING_ATTRIBUTE_ID);
+ ArrayList elements = new ArrayList<>();
+ final long actionIDFieldID = 0L;
+ BaseTLVType actionIDtlvValue = new UIntType(actionID);
+ elements.add(new StructElement(actionIDFieldID, actionIDtlvValue));
- subscribeAttribute(new ReportCallbackImpl(callback, path) {
+ final long invokeIDFieldID = 1L;
+ BaseTLVType invokeIDtlvValue = invokeID.map((nonOptionalinvokeID) -> new UIntType(nonOptionalinvokeID)).orElse(new EmptyType());
+ elements.add(new StructElement(invokeIDFieldID, invokeIDtlvValue));
+
+ StructType value = new StructType(elements);
+ invoke(new InvokeCallbackImpl(callback) {
@Override
- public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- }
- }, BINDING_ATTRIBUTE_ID, minInterval, maxInterval);
+ public void onResponse(StructType invokeStructValue) {
+ callback.onSuccess();
+ }}, commandId, value, timedInvokeTimeoutMs);
}
- public void readGeneratedCommandListAttribute(
- GeneratedCommandListAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
-
- readAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- callback.onSuccess(value);
- }
- }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, true);
+ public void startActionWithDuration(DefaultClusterCallback callback, Integer actionID, Optional invokeID, Long duration) {
+ startActionWithDuration(callback, actionID, invokeID, duration, 0);
}
- public void subscribeGeneratedCommandListAttribute(
- GeneratedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+ public void startActionWithDuration(DefaultClusterCallback callback, Integer actionID, Optional invokeID, Long duration, int timedInvokeTimeoutMs) {
+ final long commandId = 3L;
- subscribeAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- }
- }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
- }
+ ArrayList elements = new ArrayList<>();
+ final long actionIDFieldID = 0L;
+ BaseTLVType actionIDtlvValue = new UIntType(actionID);
+ elements.add(new StructElement(actionIDFieldID, actionIDtlvValue));
- public void readAcceptedCommandListAttribute(
- AcceptedCommandListAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
+ final long invokeIDFieldID = 1L;
+ BaseTLVType invokeIDtlvValue = invokeID.map((nonOptionalinvokeID) -> new UIntType(nonOptionalinvokeID)).orElse(new EmptyType());
+ elements.add(new StructElement(invokeIDFieldID, invokeIDtlvValue));
- readAttribute(new ReportCallbackImpl(callback, path) {
+ final long durationFieldID = 2L;
+ BaseTLVType durationtlvValue = new UIntType(duration);
+ elements.add(new StructElement(durationFieldID, durationtlvValue));
+
+ StructType value = new StructType(elements);
+ invoke(new InvokeCallbackImpl(callback) {
@Override
- public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- callback.onSuccess(value);
- }
- }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, true);
+ public void onResponse(StructType invokeStructValue) {
+ callback.onSuccess();
+ }}, commandId, value, timedInvokeTimeoutMs);
}
- public void subscribeAcceptedCommandListAttribute(
- AcceptedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
+ public void stopAction(DefaultClusterCallback callback, Integer actionID, Optional invokeID) {
+ stopAction(callback, actionID, invokeID, 0);
+ }
- subscribeAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- }
- }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
- }
+ public void stopAction(DefaultClusterCallback callback, Integer actionID, Optional invokeID, int timedInvokeTimeoutMs) {
+ final long commandId = 4L;
- public void readEventListAttribute(
- EventListAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
+ ArrayList elements = new ArrayList<>();
+ final long actionIDFieldID = 0L;
+ BaseTLVType actionIDtlvValue = new UIntType(actionID);
+ elements.add(new StructElement(actionIDFieldID, actionIDtlvValue));
- readAttribute(new ReportCallbackImpl(callback, path) {
+ final long invokeIDFieldID = 1L;
+ BaseTLVType invokeIDtlvValue = invokeID.map((nonOptionalinvokeID) -> new UIntType(nonOptionalinvokeID)).orElse(new EmptyType());
+ elements.add(new StructElement(invokeIDFieldID, invokeIDtlvValue));
+
+ StructType value = new StructType(elements);
+ invoke(new InvokeCallbackImpl(callback) {
@Override
- public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- callback.onSuccess(value);
- }
- }, EVENT_LIST_ATTRIBUTE_ID, true);
+ public void onResponse(StructType invokeStructValue) {
+ callback.onSuccess();
+ }}, commandId, value, timedInvokeTimeoutMs);
}
- public void subscribeEventListAttribute(
- EventListAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
-
- subscribeAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- }
- }, EVENT_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+ public void pauseAction(DefaultClusterCallback callback, Integer actionID, Optional invokeID) {
+ pauseAction(callback, actionID, invokeID, 0);
}
- public void readAttributeListAttribute(
- AttributeListAttributeCallback callback) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
+ public void pauseAction(DefaultClusterCallback callback, Integer actionID, Optional invokeID, int timedInvokeTimeoutMs) {
+ final long commandId = 5L;
- readAttribute(new ReportCallbackImpl(callback, path) {
- @Override
- public void onSuccess(byte[] tlv) {
- List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
- callback.onSuccess(value);
- }
- }, ATTRIBUTE_LIST_ATTRIBUTE_ID, true);
- }
+ ArrayList elements = new ArrayList<>();
+ final long actionIDFieldID = 0L;
+ BaseTLVType actionIDtlvValue = new UIntType(actionID);
+ elements.add(new StructElement(actionIDFieldID, actionIDtlvValue));
- public void subscribeAttributeListAttribute(
- AttributeListAttributeCallback callback, int minInterval, int maxInterval) {
- ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
+ final long invokeIDFieldID = 1L;
+ BaseTLVType invokeIDtlvValue = invokeID.