| <?xml version="1.0"?> |
| <!-- |
| Copyright (c) 2023 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> |
| <domain name="CHIP"/> |
| |
| |
| <bitmap name="ValveFaultBitmap" type="bitmap16"> |
| <cluster code="0x0081"/> |
| <field name="GeneralFault" mask="0x01"/> |
| <field name="Blocked" mask="0x02"/> |
| <field name="Leaking" mask="0x04"/> |
| <field name="NotConnected" mask="0x08"/> |
| <field name="ShortCircuit" mask="0x10"/> |
| <field name="CurrentExceeded" mask="0x20"/> |
| </bitmap> |
| |
| <enum name="ValveStateEnum" type="enum8"> |
| <cluster code="0x0081"/> |
| <item name="Closed" value="0x0"/> |
| <item name="Open" value="0x1"/> |
| <item name="Transitioning" value="0x2"/> |
| </enum> |
| |
| <enum name="StatusCodeEnum" type="enum8"> |
| <cluster code="0x0081"/> |
| <item name="FailureDueToFault" value="0x02"/> |
| </enum> |
| |
| <cluster apiMaturity="provisional"> |
| <domain>HVAC</domain> |
| <name>Valve Configuration and Control</name> |
| <code>0x0081</code> |
| <define>VALVE_CONFIGURATION_AND_CONTROL_CLUSTER</define> |
| <client tick="false" init="false">true</client> |
| <server tick="false" init="false">true</server> |
| <description>This cluster is used to configure a valve.</description> |
| <globalAttribute side="either" code="0xFFFD" value="1"/> |
| |
| <features> |
| <feature bit="0" code="TS" name="TimeSync" summary="UTC time is used for time indications"/> |
| <feature bit="1" code="LVL" name="Level" summary="Device supports setting the specific position of the valve"> |
| <optionalConform/> |
| </feature> |
| </features> |
| |
| <!-- min max definition for attribute size larger than 2 bytes is not allowed by zap codegen https://github.com/project-chip/zap/issues/1187 --> |
| <!-- Therefore, this check needs to be done in code. --> |
| <attribute side="server" code="0x0000" define="OPEN_DURATION" type="elapsed_s" isNullable="true" writable="false" optional="false">OpenDuration</attribute> |
| <!-- min max definition for attribute size larger than 2 bytes is not allowed by zap codegen https://github.com/project-chip/zap/issues/1187 --> |
| <!-- Therefore, this check needs to be done in code. --> |
| <attribute side="server" code="0x0001" define="DEFAULT_OPEN_DURATION" type="elapsed_s" isNullable="true" writable="true" optional="false">DefaultOpenDuration</attribute> |
| <attribute side="server" code="0x0002" define="AUTO_CLOSE_TIME" type="epoch_us" isNullable="true" writable="false" optional="true">AutoCloseTime</attribute> |
| <attribute side="server" code="0x0003" define="REMAINING_DURATION" type="elapsed_s" isNullable="true" writable="false" optional="false">RemainingDuration</attribute> |
| <attribute side="server" code="0x0004" define="CURRENT_STATE" type="ValveStateEnum" isNullable="true" writable="false" optional="false">CurrentState</attribute> |
| <attribute side="server" code="0x0005" define="TARGET_STATE" type="ValveStateEnum" isNullable="true" writable="false" optional="false">TargetState</attribute> |
| <attribute side="server" code="0x0006" define="CURRENT_LEVEL" type="percent" isNullable="true" min="0" max="100" writable="false" optional="true">CurrentLevel</attribute> |
| <attribute side="server" code="0x0007" define="TARGET_LEVEL" type="percent" isNullable="true" min="0" max="100" writable="false" optional="true">TargetLevel</attribute> |
| <attribute side="server" code="0x0008" define="DEFAULT_OPEN_LEVEL" type="percent" isNullable="false" min="1" max="100" writable="true" default="100" optional="true">DefaultOpenLevel</attribute> |
| <attribute side="server" code="0x0009" define="VALVE_FAULT" type="ValveFaultBitmap" isNullable="false" writable="false" optional="true">ValveFault</attribute> |
| <attribute side="server" code="0x000A" define="LEVEL_STEP" type="int8u" min="1" max="50" isNullable="false" writable="false" optional="true">LevelStep</attribute> |
| |
| <command source="client" code="0x00" name="Open" optional="false"> |
| <description>This command is used to set the valve to its open position.</description> |
| <arg name="OpenDuration" type="elapsed_s" optional="true" isNullable="true"/> |
| <arg name="TargetLevel" type="percent" optional="true"/> |
| </command> |
| |
| <command source="client" code="0x01" name="Close" optional="false"> |
| <description>This command is used to set the valve to its closed position.</description> |
| </command> |
| |
| <event side="server" code="0x00" priority="info" name="ValveStateChanged" optional="true"> |
| <description>This event SHALL be generated when the valve state changed.</description> |
| <field id="0" name="ValveState" type="ValveStateEnum"/> |
| <field id="1" name="ValveLevel" type="percent" optional="true"/> |
| </event> |
| |
| <event side="server" code="0x01" priority="info" name="ValveFault" optional="true"> |
| <description>This event SHALL be generated when the valve registers or clears a fault.</description> |
| <field id="0" name="ValveFault" type="ValveFaultBitmap"/> |
| </event> |
| </cluster> |
| </configurator> |