Skip to content

Commit 1077144

Browse files
Merge a07b98d into 48df767
2 parents 48df767 + a07b98d commit 1077144

File tree

58 files changed

+12029
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+12029
-0
lines changed

.github/workflows/tests.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ jobs:
210210
src/app/zap-templates/zcl/data-model/chip/sample-mei-cluster.xml \
211211
src/app/zap-templates/zcl/data-model/chip/electrical-energy-measurement-cluster.xml \
212212
src/app/zap-templates/zcl/data-model/chip/electrical-power-measurement-cluster.xml \
213+
src/app/zap-templates/zcl/data-model/chip/energy-calendar-cluster.xml \
213214
"
214215
- name: Build Apps
215216
run: |
+287
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,287 @@
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+
<bitmap name="AuxiliaryLoadBitmap">
86+
<bitfield name="AuxiliarySwitch1" bit="0" summary="Auxiliary Switch 1">
87+
<mandatoryConform/>
88+
</bitfield>
89+
<bitfield name="AuxiliarySwitch2" bit="1" summary="Auxiliary Switch 2">
90+
<mandatoryConform/>
91+
</bitfield>
92+
<bitfield name="AuxiliarySwitch3" bit="2" summary="Auxiliary Switch 3">
93+
<mandatoryConform/>
94+
</bitfield>
95+
<bitfield name="AuxiliarySwitch4" bit="3" summary="Auxiliary Switch 4">
96+
<mandatoryConform/>
97+
</bitfield>
98+
<bitfield name="AuxiliarySwitch5" bit="4" summary="Auxiliary Switch 5">
99+
<mandatoryConform/>
100+
</bitfield>
101+
<bitfield name="AuxiliarySwitch6" bit="5" summary="Auxiliary Switch 6">
102+
<mandatoryConform/>
103+
</bitfield>
104+
<bitfield name="AuxiliarySwitch7" bit="6" summary="Auxiliary Switch 7">
105+
<mandatoryConform/>
106+
</bitfield>
107+
<bitfield name="AuxiliarySwitch8" bit="7" summary="Auxiliary Switch 8">
108+
<mandatoryConform/>
109+
</bitfield>
110+
</bitmap>
111+
<bitmap name="TransitionDayOfWeekBitmap">
112+
<bitfield name="Sunday" bit="0" summary="Sunday">
113+
<mandatoryConform/>
114+
</bitfield>
115+
<bitfield name="Monday" bit="1" summary="Monday">
116+
<mandatoryConform/>
117+
</bitfield>
118+
<bitfield name="Tuesday" bit="2" summary="Tuesday">
119+
<mandatoryConform/>
120+
</bitfield>
121+
<bitfield name="Wednesday" bit="3" summary="Wednesday">
122+
<mandatoryConform/>
123+
</bitfield>
124+
<bitfield name="Thursday" bit="4" summary="Thursday">
125+
<mandatoryConform/>
126+
</bitfield>
127+
<bitfield name="Friday" bit="5" summary="Friday">
128+
<mandatoryConform/>
129+
</bitfield>
130+
<bitfield name="Saturday" bit="6" summary="Saturday">
131+
<mandatoryConform/>
132+
</bitfield>
133+
</bitmap>
134+
<enum name="PeakPeriodSeverityEnum">
135+
<item value="0" name="Unused" summary="Unused">
136+
<mandatoryConform/>
137+
</item>
138+
<item value="1" name="Low" summary="Low">
139+
<mandatoryConform/>
140+
</item>
141+
<item value="2" name="Medium" summary="Medium">
142+
<mandatoryConform/>
143+
</item>
144+
<item value="3" name="High" summary="High">
145+
<mandatoryConform/>
146+
</item>
147+
</enum>
148+
<struct name="PeakPeriodStruct">
149+
<field id="0" name="Severity" type="PeakPeriodSeverityEnum">
150+
<mandatoryConform/>
151+
</field>
152+
<field id="1" name="PeakPeriod" type="uint16" default="0">
153+
<mandatoryConform/>
154+
</field>
155+
<field id="2" name="StartTime" type="epoch-s">
156+
<quality nullable="true"/>
157+
<mandatoryConform/>
158+
</field>
159+
<field id="3" name="EndTime" type="epoch-s">
160+
<quality nullable="true"/>
161+
<mandatoryConform/>
162+
</field>
163+
</struct>
164+
<struct name="TransitionStruct">
165+
<field id="0" name="TransitionTime" type="uint16">
166+
<mandatoryConform/>
167+
<constraint type="max" value="1499"/>
168+
</field>
169+
<field id="1" name="PriceTier" type="uint32">
170+
<optionalConform choice="a" more="true">
171+
<feature name="PTIER"/>
172+
</optionalConform>
173+
</field>
174+
<field id="2" name="FriendlyCredit" type="bool">
175+
<optionalConform choice="a" more="true">
176+
<feature name="FCRED"/>
177+
</optionalConform>
178+
</field>
179+
<field id="3" name="AuxiliaryLoad" type="AuxiliaryLoadBitmap">
180+
<optionalConform choice="a" more="true">
181+
<feature name="AUXLD"/>
182+
</optionalConform>
183+
</field>
184+
</struct>
185+
<struct name="DayStruct">
186+
<field id="0" name="Date" type="date">
187+
<optionalConform choice="a"/>
188+
</field>
189+
<field id="1" name="DaysOfWeek" type="TransitionDayOfWeekBitmap">
190+
<optionalConform choice="a"/>
191+
<constraint type="desc"/>
192+
</field>
193+
<field id="2" name="Transitions" type="list">
194+
<entry type="TransitionStruct"/>
195+
<mandatoryConform/>
196+
<constraint type="countBetween" from="1" to="48"/>
197+
</field>
198+
<field id="3" name="CalendarID" type="uint32">
199+
<optionalConform/>
200+
</field>
201+
</struct>
202+
<struct name="CalendarPeriodStruct">
203+
<field id="0" name="StartDate" type="epoch-s">
204+
<quality nullable="true"/>
205+
<mandatoryConform/>
206+
<constraint type="min" value="StartDate Attribute"/>
207+
</field>
208+
<field id="1" name="Days" type="list">
209+
<entry type="DayStruct"/>
210+
<mandatoryConform/>
211+
<constraint type="countBetween" from="1" to="7"/>
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>

docs/zap_clusters.md

+1
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ Generally regenerate using one of:
8484
| 151 | 0x97 | Messages |
8585
| 152 | 0x98 | DeviceEnergyManagement |
8686
| 153 | 0x99 | EnergyEvse |
87+
| 154 | 0x9A | EnergyCalendar |
8788
| 155 | 0x9B | EnergyPreference |
8889
| 156 | 0x9C | PowerTopology |
8990
| 157 | 0x9D | EnergyEvseMode |

scripts/rules.matterlint

+1
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ load "../src/app/zap-templates/zcl/data-model/chip/resource-monitoring-cluster.x
117117
load "../src/app/zap-templates/zcl/data-model/chip/sample-mei-cluster.xml";
118118
load "../src/app/zap-templates/zcl/data-model/chip/electrical-energy-measurement-cluster.xml";
119119
load "../src/app/zap-templates/zcl/data-model/chip/electrical-power-measurement-cluster.xml";
120+
load "../src/app/zap-templates/zcl/data-model/chip/energy-calendar-cluster.xml";
120121
load "../src/app/zap-templates/zcl/data-model/draft/barrier-control-cluster.xml";
121122
load "../src/app/zap-templates/zcl/data-model/draft/electrical-measurement-cluster.xml";
122123
load "../src/app/zap-templates/zcl/data-model/draft/input-output-value-clusters.xml";

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

+1
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@
120120
<xi:include href="chip/temperature-control-cluster.xml" />
121121
<xi:include href="chip/refrigerator-alarm.xml" />
122122
<xi:include href="chip/matter-devices.xml" />
123+
<xi:include href="chip/energy-calendar-cluster.xml" />
123124
<xi:include href="draft/barrier-control.xml" />
124125
<xi:include href="draft/electrical-measurement-cluster.xml" />
125126
<xi:include href="draft/input-output-value-clusters.xml" />

0 commit comments

Comments
 (0)