blob: 66de9ee66cbebd53a64850dc888f012b2861b1e0 [file] [log] [blame]
<?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"/>
<cluster>
<name>HEPA Filter Monitoring</name>
<domain>Measurement &amp; Sensing</domain>
<description>Attributes and commands for monitoring HEPA filters in a device</description>
<code>0x0071</code>
<define>HEPA_FILTER_MONITORING_CLUSTER</define>
<client tick="false" init="false">true</client>
<server tick="false" init="false">true</server>
<features>
<feature bit="0" code="CON" name="Condition" summary="Supports monitoring the condition of the resource in percentage">
<optionalConform/>
</feature>
<feature bit="1" code="WRN" name="Warning" summary="Supports warning indication">
<optionalConform/>
</feature>
<feature bit="2" code="REP" name="Replacement Product List" summary="Supports specifying the list of replacement products">
<optionalConform/>
</feature>
</features>
<!-- Attributes -->
<attribute side="server" code="0x0000" define="CONDITION" type="percent" min="0" max="100" writable="false" isNullable="false" optional="true">Condition</attribute>
<attribute side="server" code="0x0001" define="DEGRADATION_DIRECTION" type="DegradationDirectionEnum" min="0" max="1" writable="false" isNullable="false" optional="true">DegradationDirection</attribute>
<attribute side="server" code="0x0002" define="CHANGE_INDICATION" type="ChangeIndicationEnum" min="0" max="2" writable="false" isNullable="false" default="0" optional="false">ChangeIndication</attribute>
<attribute side="server" code="0x0003" define="IN_PLACE_INDICATOR" type="boolean" writable="false" isNullable="false" optional="true">InPlaceIndicator</attribute>
<attribute side="server" code="0x0004" define="LAST_CHANGED_TIME" type="epoch_s" writable="true" isNullable="true" optional="true">LastChangedTime</attribute>
<attribute side="server" code="0x0005" define="REPLACEMENT_PRODUCT_LIST" type="array" entryType="ReplacementProductStruct" length="5" writable="false" isNullable="false" optional="true">ReplacementProductList</attribute>
<!-- Commands -->
<command source="client" code="0x00" name="ResetCondition" optional="true">
<description>Reset the condition of the replaceable to the non degraded state</description>
</command>
</cluster>
<cluster>
<name>Activated Carbon Filter Monitoring</name>
<domain>Measurement &amp; Sensing</domain>
<description>Attributes and commands for monitoring activated carbon filters in a device</description>
<code>0x0072</code>
<define>ACTIVATED_CARBON_FILTER_MONITORING_CLUSTER</define>
<client tick="false" init="false">true</client>
<server tick="false" init="false">true</server>
<features>
<feature bit="0" code="CON" name="Condition" summary="Supports monitoring the condition of the resource in percentage">
<optionalConform/>
</feature>
<feature bit="1" code="WRN" name="Warning" summary="Supports warning indication">
<optionalConform/>
</feature>
<feature bit="2" code="REP" name="Replacement Product List" summary="Supports specifying the list of replacement products">
<optionalConform/>
</feature>
</features>
<!-- Attributes -->
<attribute side="server" code="0x0000" define="CONDITION" type="percent" min="0" max="100" writable="false" isNullable="false" optional="true">Condition</attribute>
<attribute side="server" code="0x0001" define="DEGRADATION_DIRECTION" type="DegradationDirectionEnum" min="0" max="1" writable="false" isNullable="false" optional="true">DegradationDirection</attribute>
<attribute side="server" code="0x0002" define="CHANGE_INDICATION" type="ChangeIndicationEnum" min="0" max="2" writable="false" isNullable="false" default="0" optional="false">ChangeIndication</attribute>
<attribute side="server" code="0x0003" define="IN_PLACE_INDICATOR" type="boolean" writable="false" isNullable="false" optional="true">InPlaceIndicator</attribute>
<attribute side="server" code="0x0004" define="LAST_CHANGED_TIME" type="epoch_s" writable="true" isNullable="true" optional="true">LastChangedTime</attribute>
<attribute side="server" code="0x0005" define="REPLACEMENT_PRODUCT_LIST" type="array" entryType="ReplacementProductStruct" length="5" writable="false" isNullable="false" optional="true">ReplacementProductList</attribute>
<!-- Commands -->
<command source="client" code="0x00" name="ResetCondition" optional="true">
<description>Reset the condition of the replaceable to the non degraded state</description>
</command>
</cluster>
<!-- Cluster Data Types -->
<enum name="DegradationDirectionEnum" type="enum8">
<cluster code="0x0071" />
<cluster code="0x0072" />
<item value="0" name="Up" />
<item value="1" name="Down" />
</enum>
<enum name="ChangeIndicationEnum" type="enum8">
<cluster code="0x0071" />
<cluster code="0x0072" />
<item value="0" name="OK" />
<item value="1" name="Warning" />
<item value="2" name="Critical" />
</enum>
<enum name="ProductIdentifierTypeEnum" type="enum8">
<cluster code="0x0071" />
<cluster code="0x0072" />
<item value="0" name="UPC" />
<item value="1" name="GTIN-8" />
<item value="2" name="EAN" />
<item value="3" name="GTIN-14" />
<item value="4" name="OEM" />
</enum>
<!-- Unfortunately due to the way these aliased clusters are generated, we need to declare separate
ReplacementProductStructs for each cluster. This is because they refer to the ProductIdentifierTypeEnum
which is scoped to each implementation. Duplicate this struct definition for now until we can
create either a global enum that these can refer to, or create an alternative
solution that can help us better address shared structs for aliased clusters. -->
<struct name="ReplacementProductStruct">
<cluster code="0x0071" />
<item name="ProductIdentifierType" type="ProductIdentifierTypeEnum" optional="false"/>
<item name="ProductIdentifierValue" type="char_string" length="20" optional="false"/>
</struct>
<struct name="ReplacementProductStruct">
<cluster code="0x0072" />
<item name="ProductIdentifierType" type="ProductIdentifierTypeEnum" optional="false"/>
<item name="ProductIdentifierValue" type="char_string" length="20" optional="false"/>
</struct>
</configurator>