-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
Copy pathresource-monitoring-cluster.xml
170 lines (154 loc) · 7.27 KB
/
resource-monitoring-cluster.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<?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 & 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" name="Condition" define="CONDITION" type="percent" optional="true">
<mandatoryConform>
<feature name="CON"/>
</mandatoryConform>
</attribute>
<attribute side="server" code="0x0001" name="DegradationDirection" define="DEGRADATION_DIRECTION" type="DegradationDirectionEnum" min="0" max="1" optional="true">
<mandatoryConform>
<feature name="CON"/>
</mandatoryConform>
</attribute>
<attribute side="server" code="0x0002" name="ChangeIndication" define="CHANGE_INDICATION" type="ChangeIndicationEnum" min="0" max="2" default="0">
<mandatoryConform/>
</attribute>
<attribute side="server" code="0x0003" name="InPlaceIndicator" define="IN_PLACE_INDICATOR" type="boolean" optional="true">
<optionalConform/>
</attribute>
<attribute side="server" code="0x0004" name="LastChangedTime" define="LAST_CHANGED_TIME" type="epoch_s" writable="true" isNullable="true" optional="true">
<optionalConform/>
</attribute>
<attribute side="server" code="0x0005" name="ReplacementProductList" define="REPLACEMENT_PRODUCT_LIST" type="array" entryType="ReplacementProductStruct" length="5" optional="true">
<mandatoryConform>
<feature name="REP"/>
</mandatoryConform>
</attribute>
<!-- Commands -->
<command source="client" code="0x00" name="ResetCondition" optional="true">
<description>Reset the condition of the replaceable to the non degraded state</description>
<optionalConform/>
</command>
</cluster>
<cluster>
<name>Activated Carbon Filter Monitoring</name>
<domain>Measurement & 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" name="Condition" define="CONDITION" type="percent" optional="true">
<mandatoryConform>
<feature name="CON"/>
</mandatoryConform>
</attribute>
<attribute side="server" code="0x0001" name="DegradationDirection" define="DEGRADATION_DIRECTION" type="DegradationDirectionEnum" min="0" max="1" optional="true">
<mandatoryConform>
<feature name="CON"/>
</mandatoryConform>
</attribute>
<attribute side="server" code="0x0002" name="ChangeIndication" define="CHANGE_INDICATION" type="ChangeIndicationEnum" min="0" max="2" default="0">
<mandatoryConform/>
</attribute>
<attribute side="server" code="0x0003" name="InPlaceIndicator" define="IN_PLACE_INDICATOR" type="boolean" optional="true">
<optionalConform/>
</attribute>
<attribute side="server" code="0x0004" name="LastChangedTime" define="LAST_CHANGED_TIME" type="epoch_s" writable="true" isNullable="true" optional="true">
<optionalConform/>
</attribute>
<attribute side="server" code="0x0005" name="ReplacementProductList" define="REPLACEMENT_PRODUCT_LIST" type="array" entryType="ReplacementProductStruct" length="5" optional="true">
<mandatoryConform>
<feature name="REP"/>
</mandatoryConform>
</attribute>
<!-- Commands -->
<command source="client" code="0x00" name="ResetCondition" optional="true">
<description>Reset the condition of the replaceable to the non degraded state</description>
<optionalConform/>
</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>