1
+ <?xml version =" 1.0" ?>
2
+ <!--
3
+ Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.
4
+ The information within this document is the property of the Connectivity
5
+ Standards Alliance and its use and disclosure are restricted, except as
6
+ expressly set forth herein.
7
+
8
+ Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,
9
+ nontransferable, worldwide, limited and revocable license (without the right to
10
+ sublicense), under Connectivity Standards Alliance's applicable copyright
11
+ rights, to view, download, save, reproduce and use the document solely for your
12
+ own internal purposes and in accordance with the terms of the license set forth
13
+ herein. This license does not authorize you to, and you expressly warrant that
14
+ you shall not: (a) permit others (outside your organization) to use this
15
+ document; (b) post or publish this document; (c) modify, adapt, translate, or
16
+ otherwise change this document in any manner or create any derivative work
17
+ based on this document; (d) remove or modify any notice or label on this
18
+ document, including this Copyright Notice, License and Disclaimer. The
19
+ Connectivity Standards Alliance does not grant you any license hereunder other
20
+ than as expressly stated herein.
21
+
22
+ Elements of this document may be subject to third party intellectual property
23
+ rights, including without limitation, patent, copyright or trademark rights,
24
+ and any such third party may or may not be a member of the Connectivity
25
+ Standards Alliance. Connectivity Standards Alliance members grant other
26
+ Connectivity Standards Alliance members certain intellectual property rights as
27
+ set forth in the Connectivity Standards Alliance IPR Policy. Connectivity
28
+ Standards Alliance members do not grant you any rights under this license. The
29
+ Connectivity Standards Alliance is not responsible for, and shall not be held
30
+ responsible in any manner for, identifying or failing to identify any or all
31
+ such third party intellectual property rights. Please visit www.csa-iot.org for
32
+ more information on how to become a member of the Connectivity Standards
33
+ Alliance.
34
+
35
+ This document and the information contained herein are provided on an “AS IS”
36
+ basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS
37
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE
38
+ INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING
39
+ WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT
40
+ OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
41
+ FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE
42
+ CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF
43
+ BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER
44
+ DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL
45
+ DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT
46
+ OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
47
+ LOSS OR DAMAGE.
48
+
49
+ All company, brand and product names in this document may be trademarks that
50
+ are the sole property of their respective owners.
51
+
52
+ This notice and disclaimer must be included on all copies of this document.
53
+
54
+ Connectivity Standards Alliance
55
+ 508 Second Street, Suite 206
56
+ Davis, CA 95616, USA
57
+
58
+ :xrefstyle: short
59
+ -->
60
+ <cluster xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance" xsi : schemaLocation =" types types.xsd cluster cluster.xsd" id =" 0x009A" name =" Energy Calendar Cluster" revision =" 3" >
61
+ <revisionHistory >
62
+ <revision revision =" 1" summary =" mandatory global ClusterRevision attribute added; Added from SE1.4; CCB 2068" />
63
+ <revision revision =" 2" summary =" CCB 3042" />
64
+ <revision revision =" 3" summary =" Initial Matter Release" />
65
+ </revisionHistory >
66
+ <clusterIds >
67
+ <clusterId id =" 0x009A" name =" Energy Calendar" />
68
+ </clusterIds >
69
+ <classification hierarchy =" base" role =" application" picsCode =" ECAL" scope =" Endpoint" />
70
+ <features >
71
+ <feature bit =" 0" code =" PTIER" name =" PricingTier" summary =" Supports information about pricing tiers" >
72
+ <optionalConform choice =" a" more =" true" />
73
+ </feature >
74
+ <feature bit =" 1" code =" FCRED" name =" FriendlyCredit" summary =" Supports information about when friendly credit periods begin and end" >
75
+ <optionalConform choice =" a" more =" true" />
76
+ </feature >
77
+ <feature bit =" 2" code =" AUXLD" name =" AuxiliaryLoad" summary =" Supports information about when auxiliary loads should be enabled or disabled" >
78
+ <optionalConform choice =" a" more =" true" />
79
+ </feature >
80
+ <feature bit =" 3" code =" PEAKP" name =" PeakPeriod" summary =" Supports information about peak periods" >
81
+ <optionalConform />
82
+ </feature >
83
+ </features >
84
+ <dataTypes >
85
+ <enum name =" PeakPeriodSeverityEnum" >
86
+ <item value =" 0" name =" Unused" summary =" Unused" >
87
+ <mandatoryConform />
88
+ </item >
89
+ <item value =" 1" name =" Low" summary =" Low" >
90
+ <mandatoryConform />
91
+ </item >
92
+ <item value =" 2" name =" Medium" summary =" Medium" >
93
+ <mandatoryConform />
94
+ </item >
95
+ <item value =" 3" name =" High" summary =" High" >
96
+ <mandatoryConform />
97
+ </item >
98
+ </enum >
99
+ <bitmap name =" AuxiliaryLoadBitmap" >
100
+ <bitfield name =" AuxiliarySwitch1" bit =" 0" summary =" Auxiliary Switch 1" >
101
+ <mandatoryConform />
102
+ </bitfield >
103
+ <bitfield name =" AuxiliarySwitch2" bit =" 1" summary =" Auxiliary Switch 2" >
104
+ <mandatoryConform />
105
+ </bitfield >
106
+ <bitfield name =" AuxiliarySwitch3" bit =" 2" summary =" Auxiliary Switch 3" >
107
+ <mandatoryConform />
108
+ </bitfield >
109
+ <bitfield name =" AuxiliarySwitch4" bit =" 3" summary =" Auxiliary Switch 4" >
110
+ <mandatoryConform />
111
+ </bitfield >
112
+ <bitfield name =" AuxiliarySwitch5" bit =" 4" summary =" Auxiliary Switch 5" >
113
+ <mandatoryConform />
114
+ </bitfield >
115
+ <bitfield name =" AuxiliarySwitch6" bit =" 5" summary =" Auxiliary Switch 6" >
116
+ <mandatoryConform />
117
+ </bitfield >
118
+ <bitfield name =" AuxiliarySwitch7" bit =" 6" summary =" Auxiliary Switch 7" >
119
+ <mandatoryConform />
120
+ </bitfield >
121
+ <bitfield name =" AuxiliarySwitch8" bit =" 7" summary =" Auxiliary Switch 8" >
122
+ <mandatoryConform />
123
+ </bitfield >
124
+ </bitmap >
125
+ <bitmap name =" TransitionDayOfWeekBitmap" >
126
+ <bitfield name =" Sunday" bit =" 0" summary =" Sunday" >
127
+ <mandatoryConform />
128
+ </bitfield >
129
+ <bitfield name =" Monday" bit =" 1" summary =" Monday" >
130
+ <mandatoryConform />
131
+ </bitfield >
132
+ <bitfield name =" Tuesday" bit =" 2" summary =" Tuesday" >
133
+ <mandatoryConform />
134
+ </bitfield >
135
+ <bitfield name =" Wednesday" bit =" 3" summary =" Wednesday" >
136
+ <mandatoryConform />
137
+ </bitfield >
138
+ <bitfield name =" Thursday" bit =" 4" summary =" Thursday" >
139
+ <mandatoryConform />
140
+ </bitfield >
141
+ <bitfield name =" Friday" bit =" 5" summary =" Friday" >
142
+ <mandatoryConform />
143
+ </bitfield >
144
+ <bitfield name =" Saturday" bit =" 6" summary =" Saturday" >
145
+ <mandatoryConform />
146
+ </bitfield >
147
+ </bitmap >
148
+ <struct name =" CalendarPeriodStruct" >
149
+ <field id =" 0" name =" StartDate" type =" epoch-s" >
150
+ <quality nullable =" true" />
151
+ <mandatoryConform />
152
+ <constraint type =" min" value =" StartDate Attribute" />
153
+ </field >
154
+ <field id =" 1" name =" Days" type =" list" >
155
+ <entry type =" DayStruct" />
156
+ <mandatoryConform />
157
+ <constraint type =" countBetween" from =" 1" to =" 7" />
158
+ </field >
159
+ </struct >
160
+ <struct name =" DayStruct" >
161
+ <field id =" 0" name =" Date" type =" date" >
162
+ <optionalConform choice =" a" />
163
+ </field >
164
+ <field id =" 1" name =" DaysOfWeek" type =" TransitionDayOfWeekBitmap" >
165
+ <optionalConform choice =" a" />
166
+ <constraint type =" desc" />
167
+ </field >
168
+ <field id =" 2" name =" Transitions" type =" list" >
169
+ <entry type =" TransitionStruct" />
170
+ <mandatoryConform />
171
+ <constraint type =" countBetween" from =" 1" to =" 48" />
172
+ </field >
173
+ <field id =" 3" name =" CalendarID" type =" uint32" >
174
+ <optionalConform />
175
+ </field >
176
+ </struct >
177
+ <struct name =" PeakPeriodStruct" >
178
+ <field id =" 0" name =" Severity" type =" PeakPeriodSeverityEnum" >
179
+ <mandatoryConform />
180
+ </field >
181
+ <field id =" 1" name =" PeakPeriod" type =" uint16" default =" 0" >
182
+ <mandatoryConform />
183
+ </field >
184
+ <field id =" 2" name =" StartTime" type =" epoch-s" >
185
+ <quality nullable =" true" />
186
+ <mandatoryConform />
187
+ </field >
188
+ <field id =" 3" name =" EndTime" type =" epoch-s" >
189
+ <quality nullable =" true" />
190
+ <mandatoryConform />
191
+ </field >
192
+ </struct >
193
+ <struct name =" TransitionStruct" >
194
+ <field id =" 0" name =" TransitionTime" type =" uint16" >
195
+ <mandatoryConform />
196
+ <constraint type =" max" value =" 1499" />
197
+ </field >
198
+ <field id =" 1" name =" PriceTier" type =" uint32" >
199
+ <optionalConform choice =" a" more =" true" >
200
+ <feature name =" PTIER" />
201
+ </optionalConform >
202
+ </field >
203
+ <field id =" 2" name =" FriendlyCredit" type =" bool" >
204
+ <optionalConform choice =" a" more =" true" >
205
+ <feature name =" FCRED" />
206
+ </optionalConform >
207
+ </field >
208
+ <field id =" 3" name =" AuxiliaryLoad" type =" AuxiliaryLoadBitmap" >
209
+ <optionalConform choice =" a" more =" true" >
210
+ <feature name =" AUXLD" />
211
+ </optionalConform >
212
+ </field >
213
+ </struct >
214
+ </dataTypes >
215
+ <attributes >
216
+ <attribute id =" 0x0000" name =" CalendarID" type =" uint32" default =" null" >
217
+ <access read =" true" readPrivilege =" view" />
218
+ <quality changeOmitted =" false" nullable =" true" scene =" false" persistence =" volatile" reportable =" false" sourceAttribution =" false" quieterReporting =" false" />
219
+ <mandatoryConform />
220
+ </attribute >
221
+ <attribute id =" 0x0001" name =" Name" type =" string" default =" null" >
222
+ <access read =" true" readPrivilege =" view" />
223
+ <quality changeOmitted =" false" nullable =" true" scene =" false" persistence =" volatile" reportable =" false" sourceAttribution =" false" quieterReporting =" false" />
224
+ <mandatoryConform />
225
+ <constraint type =" maxLength" value =" 12" />
226
+ </attribute >
227
+ <attribute id =" 0x0002" name =" ProviderID" type =" uint32" default =" null" >
228
+ <access read =" true" readPrivilege =" view" />
229
+ <quality changeOmitted =" false" nullable =" true" scene =" false" persistence =" volatile" reportable =" false" sourceAttribution =" false" quieterReporting =" false" />
230
+ <mandatoryConform />
231
+ </attribute >
232
+ <attribute id =" 0x0003" name =" EventID" type =" uint32" default =" null" >
233
+ <access read =" true" readPrivilege =" view" />
234
+ <quality changeOmitted =" false" nullable =" true" scene =" false" persistence =" volatile" reportable =" false" sourceAttribution =" false" quieterReporting =" false" />
235
+ <mandatoryConform />
236
+ </attribute >
237
+ <attribute id =" 0x0004" name =" StartDate" type =" epoch-s" default =" null" >
238
+ <access read =" true" readPrivilege =" view" />
239
+ <quality changeOmitted =" false" nullable =" true" scene =" false" persistence =" volatile" reportable =" false" sourceAttribution =" false" quieterReporting =" false" />
240
+ <mandatoryConform />
241
+ <constraint type =" desc" />
242
+ </attribute >
243
+ <attribute id =" 0x0005" name =" CalendarPeriods" type =" list" default =" empty" >
244
+ <entry type =" CalendarPeriodStruct" />
245
+ <access read =" true" readPrivilege =" view" />
246
+ <quality changeOmitted =" false" nullable =" true" scene =" false" persistence =" volatile" reportable =" false" sourceAttribution =" false" quieterReporting =" false" />
247
+ <mandatoryConform />
248
+ <constraint type =" countBetween" from =" 1" to =" 4" />
249
+ </attribute >
250
+ <attribute id =" 0x0006" name =" SpecialDays" type =" list" default =" empty" >
251
+ <entry type =" DayStruct" />
252
+ <access read =" true" readPrivilege =" view" />
253
+ <quality changeOmitted =" false" nullable =" true" scene =" false" persistence =" volatile" reportable =" false" sourceAttribution =" false" quieterReporting =" false" />
254
+ <mandatoryConform />
255
+ <constraint type =" maxCount" value =" 50" />
256
+ </attribute >
257
+ <attribute id =" 0x0007" name =" CurrentDay" type =" DayStruct" default =" null" >
258
+ <access read =" true" readPrivilege =" view" />
259
+ <quality changeOmitted =" false" nullable =" true" scene =" false" persistence =" volatile" reportable =" false" sourceAttribution =" false" quieterReporting =" false" />
260
+ <mandatoryConform />
261
+ </attribute >
262
+ <attribute id =" 0x0008" name =" NextDay" type =" DayStruct" default =" null" >
263
+ <access read =" true" readPrivilege =" view" />
264
+ <quality changeOmitted =" false" nullable =" true" scene =" false" persistence =" volatile" reportable =" false" sourceAttribution =" false" quieterReporting =" false" />
265
+ <mandatoryConform />
266
+ </attribute >
267
+ <attribute id =" 0x0009" name =" CurrentTransition" type =" TransitionStruct" default =" null" >
268
+ <access read =" true" readPrivilege =" view" />
269
+ <quality changeOmitted =" false" nullable =" true" scene =" false" persistence =" volatile" reportable =" false" sourceAttribution =" false" quieterReporting =" false" />
270
+ <mandatoryConform />
271
+ </attribute >
272
+ <attribute id =" 0x000A" name =" CurrentPeakPeriod" type =" PeakPeriodStruct" default =" null" >
273
+ <access read =" true" readPrivilege =" view" />
274
+ <quality changeOmitted =" false" nullable =" true" scene =" false" persistence =" volatile" reportable =" false" sourceAttribution =" false" quieterReporting =" false" />
275
+ <mandatoryConform >
276
+ <feature name =" PEAKP" />
277
+ </mandatoryConform >
278
+ </attribute >
279
+ <attribute id =" 0x000B" name =" NextPeakPeriod" type =" PeakPeriodStruct" default =" null" >
280
+ <access read =" true" readPrivilege =" view" />
281
+ <quality changeOmitted =" false" nullable =" true" scene =" false" persistence =" volatile" reportable =" false" sourceAttribution =" false" quieterReporting =" false" />
282
+ <mandatoryConform >
283
+ <feature name =" PEAKP" />
284
+ </mandatoryConform >
285
+ </attribute >
286
+ </attributes >
287
+ </cluster >
0 commit comments