blob: c05603a8cf77c48a9a873f6d63856e886b930b16 [file] [log] [blame]
<?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="ScenesCopyMode" type="BITMAP8">
<cluster code="0x0005"/>
<field name="CopyAllScenes" mask="0x01"/>
</bitmap>
<struct name="AttributeValuePair">
<cluster code="0x0005"/>
<item name="AttributeID" type="attrib_id" optional="true"/>
<item name="AttributeValue" type="INT32U" optional="false"/>
</struct>
<struct name="ExtensionFieldSet">
<cluster code="0x0005"/>
<item name="ClusterID" type="cluster_id"/>
<item name="AttributeValueList" type="AttributeValuePair" array="true"/>
</struct>
<domain name="CHIP"/>
<cluster>
<name>Scenes</name>
<domain>General</domain>
<description>Attributes and commands for scene configuration and manipulation.</description>
<code>0x0005</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="4"/>
<attribute side="server" code="0x0000" define="SCENE_COUNT" type="INT8U" min="0x00" max="0xFF" writable="false" default="0x00" optional="false">SceneCount</attribute>
<attribute side="server" code="0x0001" define="CURRENT_SCENE" type="INT8U" min="0x00" max="0xFF" writable="false" default="0x00" optional="false">CurrentScene</attribute>
<attribute side="server" code="0x0002" define="CURRENT_GROUP" type="group_id" min="0x0000" max="0xFFF7" writable="false" default="0x0000" optional="false">CurrentGroup</attribute>
<attribute side="server" code="0x0003" define="SCENE_VALID" type="BOOLEAN" min="0x00" max="0x01" writable="false" default="0x00" optional="false">SceneValid</attribute>
<attribute side="server" code="0x0004" define="SCENE_NAME_SUPPORT" type="BITMAP8" min="0x00" max="0x80" writable="false" default="0x00" optional="false">NameSupport</attribute>
<attribute side="server" code="0x0005" define="LAST_CONFIGURED_BY" type="node_id" writable="false" isNullable="true" optional="true">LastConfiguredBy</attribute>
<attribute side="server" code="0x0006" define="SCENE_TABLE_SIZE" type="INT16U" writable="false" optional="false">SceneTableSize</attribute>
<attribute side="server" code="0x0007" define="REMAINING_CAPACITY" type="INT8U" writable="false" optional="false">RemainingCapacity</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="INT16U"/>
<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="INT16U" 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="EnhancedAddScene" response="EnhancedAddSceneResponse" isFabricScoped="true" optional="true" cli="chip scenes eadd">
<description>
Allows a scene to be added using a finer scene transition time than the AddScene command.
</description>
<arg name="GroupID" type="group_id"/>
<arg name="SceneID" type="INT8U"/>
<arg name="TransitionTime" type="INT16U"/>
<arg name="SceneName" type="CHAR_STRING"/>
<arg name="ExtensionFieldSets" type="ExtensionFieldSet" array="true"/>
</command>
<command source="client" code="0x41" name="EnhancedViewScene" response="EnhancedViewSceneResponse" isFabricScoped="true" optional="true" noDefaultImplementation="true" cli="chip scenes eview">
<description>
Allows a scene to be retrieved using a finer scene transition time than the ViewScene command
</description>
<arg name="GroupID" type="group_id"/>
<arg name="SceneID" type="INT8U"/>
</command>
<command source="client" code="0x42" 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="ScenesCopyMode"/>
<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="INT16U" 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="EnhancedAddSceneResponse" optional="true" disableDefaultResponse="true">
<description>
The command is generated in response to a received unicast EnhancedAddScene command
</description>
<arg name="Status" type="status"/>
<arg name="GroupID" type="group_id"/>
<arg name="SceneID" type="INT8U"/>
</command>
<command source="server" code="0x41" name="EnhancedViewSceneResponse" optional="true" disableDefaultResponse="true">
<description>
The command is generated in response to a received unicast EnhancedViewScene command
</description>
<arg name="Status" type="status"/>
<arg name="GroupID" type="group_Id"/>
<arg name="SceneID" type="INT8U"/>
<arg name="TransitionTime" type="INT16U" optional="true"/>
<arg name="SceneName" type="CHAR_STRING" optional="true"/>
<arg name="ExtensionFieldSets" type="ExtensionFieldSet" array="true" optional="true"/>
</command>
<command source="server" code="0x42" 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>
<bitmap name="Feature" type="BITMAP32">
<cluster code="0x0005" />
<field name="SceneNames" mask="0x01" />
</bitmap>
</configurator>