| <?xml version="1.0"?> |
| <!-- |
| Copyright (c) 2022 Project CHIP Authors |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <configurator> |
| <bitmap name="CopyModeBitmap" type="bitmap8"> |
| <cluster code="0x0062"/> |
| <field name="CopyAllScenes" mask="0x01"/> |
| </bitmap> |
| |
| <struct name="SceneInfoStruct" isFabricScoped="true"> |
| <cluster code="0x0062"/> |
| <item name="SceneCount" type="int8u" optional="false"/> |
| <item name="CurrentScene" type="int8u" optional="false" isFabricSensitive="true"/> |
| <item name="CurrentGroup" type="group_id" optional="false" isFabricSensitive="true"/> |
| <item name="SceneValid" type="boolean" optional="false" isFabricSensitive="true"/> |
| <item name="RemainingCapacity" type="int8u" optional="false"/> |
| </struct> |
| |
| <struct name="AttributeValuePair"> |
| <cluster code="0x0062"/> |
| <item name="AttributeID" type="attrib_id" optional="false"/> |
| <item name="AttributeValue" type="int32u" optional="false"/> |
| </struct> |
| |
| <struct name="ExtensionFieldSet"> |
| <cluster code="0x0062"/> |
| <item name="ClusterID" type="cluster_id"/> |
| <item name="AttributeValueList" type="AttributeValuePair" array="true"/> |
| </struct> |
| |
| <domain name="CHIP"/> |
| <cluster apiMaturity="provisional"> |
| <name>Scenes Management</name> |
| <domain>General</domain> |
| <description>Attributes and commands for scene configuration and manipulation.</description> |
| <code>0x0062</code> |
| <define>SCENES_CLUSTER</define> |
| <client tick="false" init="false">true</client> |
| <server tick="false" init="false">true</server> |
| <globalAttribute side="either" code="0xFFFD" value="1"/> |
| |
| <features> |
| <feature bit="0" code="SN" name="SceneNames" summary="The ability to store a name for a scene."> |
| <optionalConform/> |
| </feature> |
| </features> |
| |
| <attribute side="server" code="0x0000" define="LAST_CONFIGURED_BY" type="node_id" writable="false" isNullable="true" optional="true">LastConfiguredBy</attribute> |
| <attribute side="server" code="0x0001" define="SCENE_TABLE_SIZE" type="int16u" min="16" default="16" writable="false" optional="false">SceneTableSize</attribute> |
| <attribute side="server" code="0x0002" define="FABRIC_SCENE_INFO" type="array" entryType="SceneInfoStruct" writable="false" optional="false">FabricSceneInfo</attribute> |
| <command source="client" code="0x00" name="AddScene" response="AddSceneResponse" isFabricScoped="true" optional="false" cli="chip scenes add"> |
| <description> |
| Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' |
| </description> |
| <arg name="GroupID" type="group_id"/> |
| <arg name="SceneID" type="int8u"/> |
| <arg name="TransitionTime" type="int32u"/> |
| <arg name="SceneName" type="char_string"/> |
| <arg name="ExtensionFieldSets" type="ExtensionFieldSet" array="true"/> |
| <access op="invoke" role="manage"/> |
| </command> |
| |
| <command source="client" code="0x01" name="ViewScene" response="ViewSceneResponse" isFabricScoped="true" optional="false" cli="chip scenes view"> |
| <description> |
| Retrieves the requested scene entry from its Scene table. |
| </description> |
| <arg name="GroupID" type="group_id"/> |
| <arg name="SceneID" type="int8u"/> |
| </command> |
| |
| <command source="client" code="0x02" name="RemoveScene" response="RemoveSceneResponse" isFabricScoped="true" optional="false" cli="chip scenes remove"> |
| <description> |
| Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table |
| </description> |
| <arg name="GroupID" type="group_id"/> |
| <arg name="SceneID" type="int8u"/> |
| <access op="invoke" role="manage"/> |
| </command> |
| |
| <command source="client" code="0x03" name="RemoveAllScenes" response="RemoveAllScenesResponse" isFabricScoped="true" optional="false" cli="chip scenes rmall"> |
| <description> |
| Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table |
| </description> |
| <arg name="GroupID" type="group_id"/> |
| <access op="invoke" role="manage"/> |
| </command> |
| |
| <command source="client" code="0x04" name="StoreScene" response="StoreSceneResponse" isFabricScoped="true" optional="false" cli="chip scenes store"> |
| <description> |
| 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 |
| </description> |
| <arg name="GroupID" type="group_id"/> |
| <arg name="SceneID" type="int8u"/> |
| <access op="invoke" role="manage"/> |
| </command> |
| |
| <command source="client" code="0x05" name="RecallScene" isFabricScoped="true" optional="false" cli="chip scenes recall"> |
| <description> |
| Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table |
| </description> |
| <arg name="GroupID" type="group_id"/> |
| <arg name="SceneID" type="int8u"/> |
| <arg name="TransitionTime" type="int32u" optional="true" isNullable="true"/> |
| </command> |
| |
| <command source="client" code="0x06" name="GetSceneMembership" response="GetSceneMembershipResponse" isFabricScoped="true" optional="false" cli="chip scenes get"> |
| <description> |
| 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 |
| </description> |
| <arg name="GroupID" type="group_id"/> |
| </command> |
| |
| <command source="client" code="0x40" name="CopyScene" response="CopySceneResponse" isFabricScoped="true" optional="true" cli="chip scenes copy"> |
| <description> |
| Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. |
| </description> |
| <arg name="Mode" type="CopyModeBitmap"/> |
| <arg name="GroupIdentifierFrom" type="group_id"/> |
| <arg name="SceneIdentifierFrom" type="int8u"/> |
| <arg name="GroupIdentifierTo" type="group_id"/> |
| <arg name="SceneIdentifierTo" type="int8u"/> |
| </command> |
| |
| <command source="server" code="0x00" name="AddSceneResponse" optional="false" disableDefaultResponse="true"> |
| <description> |
| The command is generated in response to a received unicast AddScene command, |
| </description> |
| <arg name="Status" type="status"/> |
| <arg name="GroupID" type="group_id"/> |
| <arg name="SceneID" type="int8u"/> |
| </command> |
| |
| <command source="server" code="0x01" name="ViewSceneResponse" optional="false" disableDefaultResponse="true"> |
| <description> |
| The command is generated in response to a received unicast ViewScene command |
| </description> |
| <arg name="Status" type="status"/> |
| <arg name="GroupID" type="group_id"/> |
| <arg name="SceneID" type="int8u"/> |
| <arg name="TransitionTime" type="int32u" optional="true"/> |
| <arg name="SceneName" type="char_string" optional="true"/> |
| <arg name="ExtensionFieldSets" type="ExtensionFieldSet" array="true" optional="true"/> |
| </command> |
| |
| <command source="server" code="0x02" name="RemoveSceneResponse" optional="false" disableDefaultResponse="true"> |
| <description> |
| The command is generated in response to a received unicast RemoveScene command |
| </description> |
| <arg name="Status" type="status"/> |
| <arg name="GroupID" type="group_id"/> |
| <arg name="SceneID" type="int8u"/> |
| </command> |
| |
| <command source="server" code="0x03" name="RemoveAllScenesResponse" optional="false" disableDefaultResponse="true"> |
| <description> |
| The command is generated in response to a received unicast RemoveAllScenes command |
| </description> |
| <arg name="Status" type="status"/> |
| <arg name="GroupID" type="group_id"/> |
| </command> |
| |
| <command source="server" code="0x04" name="StoreSceneResponse" optional="false" disableDefaultResponse="true"> |
| <description> |
| The command is generated in response to a received unicast StoreScene command |
| </description> |
| <arg name="Status" type="status"/> |
| <arg name="GroupID" type="group_id"/> |
| <arg name="SceneID" type="int8u"/> |
| </command> |
| |
| <command source="server" code="0x06" name="GetSceneMembershipResponse" optional="false" disableDefaultResponse="true"> |
| <description> |
| The command is generated in response to a received unicast GetSceneMembership command |
| </description> |
| <arg name="Status" type="status"/> |
| <arg name="Capacity" type="int8u" isNullable="true"/> |
| <arg name="GroupID" type="group_id"/> |
| <arg name="SceneList" type="int8u" array="true" optional="true"/> |
| </command> |
| |
| <command source="server" code="0x40" name="CopySceneResponse" optional="true" disableDefaultResponse="true"> |
| <description> |
| The command is generated in response to a received unicast CopyScene command |
| </description> |
| <arg name="Status" type="status"/> |
| <arg name="GroupIdentifierFrom" type="group_id"/> |
| <arg name="SceneIdentifierFrom" type="int8u"/> |
| </command> |
| </cluster> |
| |
| </configurator> |