Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 104d34f

Browse files
committedJun 17, 2024·
Add XML and generated files of the Energy Calendar cluster
1 parent 8b905ab commit 104d34f

File tree

27 files changed

+5493
-0
lines changed

27 files changed

+5493
-0
lines changed
 

‎.github/workflows/tests.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ jobs:
202202
src/app/zap-templates/zcl/data-model/chip/sample-mei-cluster.xml \
203203
src/app/zap-templates/zcl/data-model/chip/electrical-energy-measurement-cluster.xml \
204204
src/app/zap-templates/zcl/data-model/chip/electrical-power-measurement-cluster.xml \
205+
src/app/zap-templates/zcl/data-model/chip/energy-calendar-cluster.xml \
205206
"
206207
- name: Build Apps
207208
run: |
+297
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,297 @@
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">
87+
<mandatoryConform/>
88+
</item>
89+
<item value="1" name="Low">
90+
<mandatoryConform/>
91+
</item>
92+
<item value="2" name="Medium">
93+
<mandatoryConform/>
94+
</item>
95+
<item value="3" name="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="Date">
149+
<field id="0" name="Year" type="uint16">
150+
<mandatoryConform/>
151+
</field>
152+
<field id="1" name="Month" type="uint8">
153+
<mandatoryConform/>
154+
<constraint type="between" from="1" to="12"/>
155+
</field>
156+
<field id="2" name="Day" type="uint8">
157+
<mandatoryConform/>
158+
<constraint type="between" from="1" to="31"/>
159+
</field>
160+
<field id="3" name="DayOfWeek" type="uint8">
161+
<mandatoryConform/>
162+
<constraint type="between" from="1" to="7"/>
163+
</field>
164+
</struct>
165+
<struct name="CalendarPeriod">
166+
<field id="0" name="StartDate" type="epoch-s">
167+
<mandatoryConform/>
168+
</field>
169+
<field id="1" name="Days" type="list">
170+
<entry type="DayStruct"/>
171+
<mandatoryConform/>
172+
<constraint type="minCount" value="1"/>
173+
</field>
174+
</struct>
175+
<struct name="DayStruct">
176+
<field id="0" name="Date" type="Date">
177+
<optionalConform choice="a"/>
178+
</field>
179+
<field id="1" name="DaysOfWeek" type="TransitionDayOfWeekBitmap">
180+
<optionalConform choice="a"/>
181+
<constraint type="desc"/>
182+
</field>
183+
<field id="2" name="Transitions" type="list">
184+
<entry type="TransitionStruct"/>
185+
<mandatoryConform/>
186+
<constraint type="minCount" value="1"/>
187+
</field>
188+
<field id="3" name="CalendarID" type="uint32">
189+
<optionalConform choice="a"/>
190+
</field>
191+
</struct>
192+
<struct name="PeakPeriodStruct">
193+
<field id="0" name="Severity" type="PeakPeriodSeverityEnum">
194+
<mandatoryConform/>
195+
</field>
196+
<field id="1" name="PeakPeriod" type="uint16">
197+
<mandatoryConform/>
198+
</field>
199+
<field id="2" name="StartTime" type="epoch-s">
200+
<mandatoryConform/>
201+
</field>
202+
<field id="3" name="EndTime" type="epoch-s">
203+
<mandatoryConform/>
204+
</field>
205+
</struct>
206+
<struct name="TransitionStruct">
207+
<field id="0" name="TransitionTime" type="uint16">
208+
<mandatoryConform/>
209+
<constraint type="between" from="0" to="1439"/>
210+
</field>
211+
<field id="1" name="PriceTier" type="uint32">
212+
<optionalConform choice="a" more="true">
213+
<feature name="PTIER"/>
214+
</optionalConform>
215+
</field>
216+
<field id="2" name="FriendlyCredit" type="bool">
217+
<optionalConform choice="a" more="true">
218+
<feature name="FCRED"/>
219+
</optionalConform>
220+
</field>
221+
<field id="3" name="AuxiliaryLoad" type="AuxiliaryLoadBitmap">
222+
<optionalConform choice="a" more="true">
223+
<feature name="AUXLD"/>
224+
</optionalConform>
225+
</field>
226+
</struct>
227+
</dataTypes>
228+
<attributes>
229+
<attribute id="0x0000" name="CalendarID" type="uint32" default="null">
230+
<access read="true" readPrivilege="view"/>
231+
<quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false"/>
232+
<mandatoryConform/>
233+
</attribute>
234+
<attribute id="0x0001" name="Name" type="string" default="null">
235+
<access read="true" readPrivilege="view"/>
236+
<quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false"/>
237+
<mandatoryConform/>
238+
<constraint type="maxLength" value="12"/>
239+
</attribute>
240+
<attribute id="0x0002" name="ProviderID" type="uint32" default="null">
241+
<access read="true" readPrivilege="view"/>
242+
<quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false"/>
243+
<mandatoryConform/>
244+
</attribute>
245+
<attribute id="0x0003" name="EventID" type="uint32" default="null">
246+
<access read="true" readPrivilege="view"/>
247+
<quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false"/>
248+
<mandatoryConform/>
249+
</attribute>
250+
<attribute id="0x0004" name="StartDate" type="epoch-s" default="null">
251+
<access read="true" readPrivilege="view"/>
252+
<quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false"/>
253+
<mandatoryConform/>
254+
</attribute>
255+
<attribute id="0x0005" name="CalendarPeriods" type="list" default="empty">
256+
<entry type="CalendarPeriod"/>
257+
<access read="true" readPrivilege="view"/>
258+
<quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false"/>
259+
<mandatoryConform/>
260+
</attribute>
261+
<attribute id="0x0006" name="SpecialDays" type="list" default="empty">
262+
<entry type="DayStruct"/>
263+
<access read="true" readPrivilege="view"/>
264+
<quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false"/>
265+
<mandatoryConform/>
266+
</attribute>
267+
<attribute id="0x0007" name="CurrentDay" type="DayStruct" default="null">
268+
<access read="true" readPrivilege="view"/>
269+
<quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false"/>
270+
<mandatoryConform/>
271+
</attribute>
272+
<attribute id="0x0008" name="NextDay" type="DayStruct" default="null">
273+
<access read="true" readPrivilege="view"/>
274+
<quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false"/>
275+
<mandatoryConform/>
276+
</attribute>
277+
<attribute id="0x0009" name="CurrentTransition" type="TransitionStruct" default="null">
278+
<access read="true" readPrivilege="view"/>
279+
<quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false"/>
280+
<mandatoryConform/>
281+
</attribute>
282+
<attribute id="0x000A" name="CurrentPeakPeriod" type="PeakPeriodStruct" default="null">
283+
<access read="true" readPrivilege="view"/>
284+
<quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false"/>
285+
<mandatoryConform>
286+
<feature name="PEAKP"/>
287+
</mandatoryConform>
288+
</attribute>
289+
<attribute id="0x000B" name="NextPeakPeriod" type="PeakPeriodStruct" default="null">
290+
<access read="true" readPrivilege="view"/>
291+
<quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false"/>
292+
<mandatoryConform>
293+
<feature name="PEAKP"/>
294+
</mandatoryConform>
295+
</attribute>
296+
</attributes>
297+
</cluster>

‎scripts/rules.matterlint

+1
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ load "../src/app/zap-templates/zcl/data-model/chip/resource-monitoring-cluster.x
107107
load "../src/app/zap-templates/zcl/data-model/chip/sample-mei-cluster.xml";
108108
load "../src/app/zap-templates/zcl/data-model/chip/electrical-energy-measurement-cluster.xml";
109109
load "../src/app/zap-templates/zcl/data-model/chip/electrical-power-measurement-cluster.xml";
110+
load "../src/app/zap-templates/zcl/data-model/chip/energy-calendar-cluster.xml";
110111
load "../src/app/zap-templates/zcl/data-model/draft/barrier-control-cluster.xml";
111112
load "../src/app/zap-templates/zcl/data-model/draft/electrical-measurement-cluster.xml";
112113
load "../src/app/zap-templates/zcl/data-model/draft/input-output-value-clusters.xml";

‎src/app/common/templates/config-data.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ CommandHandlerInterfaceOnlyClusters:
3636
- Microwave Oven Control
3737
- Energy EVSE
3838
- Energy EVSE Mode
39+
- Energy Calendar
3940
- Device Energy Management
4041
- Device Energy Management Mode
4142
- Electrical Power Measurement

‎src/app/zap-templates/zcl/data-model/all.xml

+1
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@
111111
<xi:include href="chip/temperature-control-cluster.xml" />
112112
<xi:include href="chip/refrigerator-alarm.xml" />
113113
<xi:include href="chip/matter-devices.xml" />
114+
<xi:include href="chip/energy-calendar-cluster.xml" />
114115
<xi:include href="draft/barrier-control.xml" />
115116
<xi:include href="draft/electrical-measurement-cluster.xml" />
116117
<xi:include href="draft/input-output-value-clusters.xml" />

0 commit comments

Comments
 (0)
Please sign in to comment.