@@ -16,8 +16,6 @@ limitations under the License.
16
16
-->
17
17
<configurator >
18
18
<domain name =" Energy Management" />
19
-
20
-
21
19
<cluster apiMaturity =" provisional" >
22
20
<name >Device Energy Management</name >
23
21
<domain >Energy Management</domain >
@@ -26,15 +24,14 @@ limitations under the License.
26
24
<client init =" false" tick =" false" >true</client >
27
25
<server init =" false" tick =" false" >true</server >
28
26
<description >This cluster allows a client to manage the power draw of a device. An example of such a client could be an Energy Management System (EMS) which controls an Energy Smart Appliance (ESA).</description >
29
- <globalAttribute side =" either" code =" 0xFFFD" value =" 3" />
30
-
27
+ <globalAttribute side =" either" code =" 0xFFFD" value =" 4" />
31
28
<features >
32
29
<feature bit =" 0" code =" PA" name =" PowerAdjustment" summary =" Allows an EMS to make a temporary power
33
- adjustment (within the limits offered by the ESA)." >
34
- <optionalConform choice = " a " more = " true " />
30
+ adjustment (within the limits offered by the ESA)." >
31
+ <optionalConform />
35
32
</feature >
36
33
<feature bit =" 1" code =" PFR" name =" PowerForecastReporting" summary =" Allows an ESA to advertise its indicative
37
- future power consumption vs time." >
34
+ future power consumption vs time." >
38
35
<otherwiseConform >
39
36
<mandatoryConform >
40
37
<andTerm >
@@ -43,17 +40,20 @@ limitations under the License.
43
40
<feature name =" PAU" />
44
41
<feature name =" FA" />
45
42
<feature name =" CON" />
43
+ <notTerm >
44
+ <feature name =" PA" />
45
+ </notTerm >
46
46
</orTerm >
47
47
<notTerm >
48
48
<feature name =" SFR" />
49
49
</notTerm >
50
50
</andTerm >
51
51
</mandatoryConform >
52
- <optionalConform choice = " a " more = " true " />
52
+ <optionalConform />
53
53
</otherwiseConform >
54
54
</feature >
55
55
<feature bit =" 2" code =" SFR" name =" StateForecastReporting" summary =" Allows an ESA to advertise its indicative
56
- future state vs time." >
56
+ future state vs time." >
57
57
<otherwiseConform >
58
58
<mandatoryConform >
59
59
<andTerm >
@@ -62,103 +62,112 @@ limitations under the License.
62
62
<feature name =" PAU" />
63
63
<feature name =" FA" />
64
64
<feature name =" CON" />
65
+ <notTerm >
66
+ <feature name =" PA" />
67
+ </notTerm >
65
68
</orTerm >
66
69
<notTerm >
67
70
<feature name =" PFR" />
68
71
</notTerm >
69
72
</andTerm >
70
73
</mandatoryConform >
71
- <optionalConform choice = " a " more = " true " />
74
+ <disallowConform />
72
75
</otherwiseConform >
73
76
</feature >
74
- <feature bit =" 3" code =" STA" name =" StartTimeAdjustment" summary =" Allows an EMS to delay an ESA' s
75
- planned operation." >
76
- <optionalConform choice = " a " more = " true " />
77
+ <feature bit =" 3" code =" STA" name =" StartTimeAdjustment" summary =" Allows an EMS to delay an ESA' s
78
+ planned operation." >
79
+ <optionalConform />
77
80
</feature >
78
- <feature bit =" 4" code =" PAU" name =" Pausable" summary =" Allows an EMS to pause an ESA' s
79
- planned operation." >
80
- <optionalConform choice = " a " more = " true " />
81
+ <feature bit =" 4" code =" PAU" name =" Pausable" summary =" Allows an EMS to pause an ESA' s
82
+ planned operation." >
83
+ <optionalConform />
81
84
</feature >
82
- <feature bit =" 5" code =" FA" name =" ForecastAdjustment" summary =" Allows an EMS to adjust an ESA's
83
- planned operation." >
84
- <otherwiseConform >
85
- <provisionalConform />
86
- <optionalConform choice =" a" more =" true" />
87
- </otherwiseConform >
85
+ <feature bit =" 5" code =" FA" name =" ForecastAdjustment" summary =" Allows an EMS to adjust an ESA' s
86
+ planned operation." >
87
+ <optionalConform />
88
88
</feature >
89
- <feature bit =" 6" code =" CON" name =" ConstraintBasedAdjustment" summary =" Allows an EMS to request constraints to an ESA's
90
- planned operation." >
91
- <otherwiseConform >
92
- <provisionalConform />
93
- <optionalConform choice =" a" more =" true" />
94
- </otherwiseConform >
89
+ <feature bit =" 6" code =" CON" name =" ConstraintBasedAdjustment" summary =" Allows an EMS to request constraints to an ESA' s
90
+ planned operation." >
91
+ <optionalConform />
95
92
</feature >
96
93
</features >
97
-
98
94
<!-- Attributes-->
99
- <attribute code =" 0x0000" side =" server" type =" ESATypeEnum" define =" ESA_TYPE" writable = " false " optional = " false " min =" 0x00" max =" 0xFF" default =" 0xFF" >ESAType</attribute >
100
- <attribute code =" 0x0001" side =" server" type =" boolean" define =" ESA_CAN_GENERATE" writable = " false " optional = " false " default =" 0" >ESACanGenerate</attribute >
101
- <attribute code =" 0x0002" side =" server" type =" ESAStateEnum" define =" ESA_STATE" default =" 0x00" writable = " false " optional = " false " min =" 0x00" max =" 0x04" >ESAState</attribute >
102
- <attribute code =" 0x0003" side =" server" type =" power_mw" define =" ABS_MIN_POWER" default =" 0" writable = " false " optional = " false " >AbsMinPower</attribute >
103
- <attribute code =" 0x0004" side =" server" type =" power_mw" define =" ABS_MAX_POWER" default =" 0" writable = " false " optional = " false " >AbsMaxPower</attribute >
95
+ <attribute code =" 0x0000" side =" server" type =" ESATypeEnum" define =" ESA_TYPE" min =" 0x00" max =" 0xFF" default =" 0xFF" >ESAType</attribute >
96
+ <attribute code =" 0x0001" side =" server" type =" boolean" define =" ESA_CAN_GENERATE" default =" 0" >ESACanGenerate</attribute >
97
+ <attribute code =" 0x0002" side =" server" type =" ESAStateEnum" define =" ESA_STATE" default =" 0x00" min =" 0x00" max =" 0x04" >ESAState</attribute >
98
+ <attribute code =" 0x0003" side =" server" type =" power_mw" define =" ABS_MIN_POWER" default =" 0" >AbsMinPower</attribute >
99
+ <attribute code =" 0x0004" side =" server" type =" power_mw" define =" ABS_MAX_POWER" default =" 0" >AbsMaxPower</attribute >
104
100
<!-- Conformance feature PA - for now optional-->
105
- <attribute code =" 0x0005" side =" server" type =" array" entryType =" PowerAdjustStruct" define =" POWER_ADJUSTMENT_CAPABILITY" isNullable =" true" writable = " false " optional =" true" length =" 8" >PowerAdjustmentCapability</attribute >
101
+ <attribute code =" 0x0005" side =" server" type =" array" entryType =" PowerAdjustStruct" define =" POWER_ADJUSTMENT_CAPABILITY" isNullable =" true" optional =" true" length =" 8" >PowerAdjustmentCapability</attribute >
106
102
<!-- Conformance feature PFR \| SFR - for now optional-->
107
- <attribute code =" 0x0006" side =" server" type =" ForecastStruct" define =" FORECAST" isNullable =" true" writable = " false " optional =" true" >Forecast</attribute >
108
- <attribute code =" 0x0007" side =" server" type =" OptOutStateEnum" define =" OPT_OUT_STATE" min =" 0x00" max =" 0x03" default =" 0x00" writable = " false " optional =" true" >OptOutState</attribute >
103
+ <attribute code =" 0x0006" side =" server" type =" ForecastStruct" define =" FORECAST" isNullable =" true" optional =" true" >Forecast</attribute >
104
+ <attribute code =" 0x0007" side =" server" type =" OptOutStateEnum" define =" OPT_OUT_STATE" min =" 0x00" max =" 0x03" default =" 0x00" optional =" true" >OptOutState</attribute >
109
105
<command source =" client" code =" 0x00" name =" PowerAdjustRequest" optional =" true" apiMaturity =" provisional" >
110
106
<description >Allows a client to request an adjustment in the power consumption of an ESA for a specified duration.</description >
111
- <arg name =" Power" type =" power_mw" />
112
- <arg name =" Duration" type =" elapsed_s" />
113
- <arg name =" Cause" type =" AdjustmentCauseEnum" min =" 0x00" max =" 0x01" />
107
+ <arg id = " 0 " name =" Power" type =" power_mw" />
108
+ <arg id = " 1 " name =" Duration" type =" elapsed_s" />
109
+ <arg id = " 2 " name =" Cause" type =" AdjustmentCauseEnum" min =" 0x00" max =" 0x01" />
114
110
</command >
111
+
115
112
<command source =" client" code =" 0x01" name =" CancelPowerAdjustRequest" optional =" true" apiMaturity =" provisional" >
116
113
<description >Allows a client to cancel an ongoing PowerAdjustmentRequest operation.</description >
117
114
</command >
115
+
118
116
<command source =" client" code =" 0x02" name =" StartTimeAdjustRequest" optional =" true" apiMaturity =" provisional" >
119
117
<description >Allows a client to adjust the start time of a Forecast sequence that has not yet started operation (i.e. where the current Forecast StartTime is in the future).</description >
120
- <arg name =" RequestedStartTime" type =" epoch_s" />
121
- <arg name =" Cause" type =" AdjustmentCauseEnum" min =" 0x00" max =" 0x01" />
118
+ <arg id = " 0 " name =" RequestedStartTime" type =" epoch_s" />
119
+ <arg id = " 1 " name =" Cause" type =" AdjustmentCauseEnum" min =" 0x00" max =" 0x01" />
122
120
</command >
121
+
123
122
<command source =" client" code =" 0x03" name =" PauseRequest" optional =" true" apiMaturity =" provisional" >
124
123
<description >Allows a client to temporarily pause an operation and reduce the ESAs energy demand.</description >
125
- <arg name =" Duration" type =" elapsed_s" />
126
- <arg name =" Cause" type =" AdjustmentCauseEnum" min =" 0x00" max =" 0x01" />
124
+ <arg id = " 0 " name =" Duration" type =" elapsed_s" />
125
+ <arg id = " 1 " name =" Cause" type =" AdjustmentCauseEnum" min =" 0x00" max =" 0x01" />
127
126
</command >
127
+
128
128
<command source =" client" code =" 0x04" name =" ResumeRequest" optional =" true" apiMaturity =" provisional" >
129
129
<description >Allows a client to cancel the PauseRequest command and enable earlier resumption of operation.</description >
130
130
</command >
131
+
131
132
<command source =" client" code =" 0x05" name =" ModifyForecastRequest" optional =" true" apiMaturity =" provisional" >
132
133
<description >Allows a client to modify a Forecast within the limits allowed by the ESA.</description >
133
- <arg name =" ForecastId" type =" int32u" />
134
- <arg name =" SlotAdjustments" array =" true" type =" SlotAdjustmentStruct" length =" 10" />
135
- <arg name =" Cause" type =" AdjustmentCauseEnum" min =" 0x00" max =" 0x01" />
134
+ <arg id = " 0 " name =" ForecastId" type =" int32u" />
135
+ <arg id = " 1 " name =" SlotAdjustments" array =" true" type =" SlotAdjustmentStruct" length =" 10" />
136
+ <arg id = " 2 " name =" Cause" type =" AdjustmentCauseEnum" min =" 0x00" max =" 0x01" />
136
137
</command >
138
+
137
139
<command source =" client" code =" 0x06" name =" RequestConstraintBasedForecast" optional =" true" apiMaturity =" provisional" >
138
140
<description >Allows a client to ask the ESA to recompute its Forecast based on power and time constraints.</description >
139
- <arg name =" Constraints" array =" true" type =" ConstraintsStruct" length =" 10" />
140
- <arg name =" Cause" type =" AdjustmentCauseEnum" min =" 0x00" max =" 0x01" />
141
+ <arg id = " 0 " name =" Constraints" array =" true" type =" ConstraintsStruct" length =" 10" />
142
+ <arg id = " 1 " name =" Cause" type =" AdjustmentCauseEnum" min =" 0x00" max =" 0x01" />
141
143
</command >
144
+
142
145
<command source =" client" code =" 0x07" name =" CancelRequest" optional =" true" >
143
146
<description >Allows a client to request cancellation of a previous adjustment request in a StartTimeAdjustRequest, ModifyForecastRequest or RequestConstraintBasedForecast command</description >
144
147
</command >
148
+
145
149
<event code =" 0x00" name =" PowerAdjustStart" priority =" info" side =" server" apiMaturity =" provisional" optional =" true" >
146
150
<description >PowerAdjustStart</description >
147
151
</event >
152
+
148
153
<event code =" 0x01" name =" PowerAdjustEnd" priority =" info" side =" server" apiMaturity =" provisional" optional =" true" >
149
154
<description >PowerAdjustEnd</description >
150
155
<field id =" 0" name =" Cause" type =" CauseEnum" apiMaturity =" provisional" default =" 0x00" min =" 0x00" max =" 0x04" />
151
156
<field id =" 1" name =" Duration" type =" elapsed_s" apiMaturity =" provisional" />
152
157
<field id =" 2" name =" EnergyUse" type =" energy_mwh" apiMaturity =" provisional" />
153
158
</event >
159
+
154
160
<event code =" 0x02" name =" Paused" priority =" info" side =" server" apiMaturity =" provisional" optional =" true" >
155
161
<description >Paused</description >
156
162
</event >
163
+
157
164
<event code =" 0x03" name =" Resumed" priority =" info" side =" server" apiMaturity =" provisional" optional =" true" >
158
165
<description >Resumed</description >
159
166
<field id =" 0" name =" Cause" type =" CauseEnum" apiMaturity =" provisional" default =" 0x00" min =" 0x00" max =" 0x04" />
160
167
</event >
168
+
161
169
</cluster >
170
+
162
171
<enum name =" CostTypeEnum" type =" enum8" apiMaturity =" provisional" >
163
172
<cluster code =" 0x0098" />
164
173
<item name =" Financial" value =" 0x00" />
@@ -225,6 +234,13 @@ limitations under the License.
225
234
<item name =" OptOut" value =" 0x03" />
226
235
</enum >
227
236
237
+ <enum name =" PowerAdjustReasonEnum" type =" enum8" >
238
+ <cluster code =" 0x0098" />
239
+ <item name =" NoAdjustment" value =" 0x00" />
240
+ <item name =" LocalOptimizationAdjustment" value =" 0x01" />
241
+ <item name =" GridOptimizationAdjustment" value =" 0x02" />
242
+ </enum >
243
+
228
244
<struct name =" CostStruct" apiMaturity =" provisional" >
229
245
<cluster code =" 0x0098" />
230
246
<item fieldId =" 0" name =" CostType" type =" CostTypeEnum" default =" 0x00" min =" 0x00" max =" 0x03" />
@@ -239,17 +255,18 @@ limitations under the License.
239
255
<item fieldId =" 1" name =" MaxPower" type =" power_mw" default =" 0" />
240
256
<item fieldId =" 2" name =" MinDuration" type =" elapsed_s" default =" 0" />
241
257
<item fieldId =" 3" name =" MaxDuration" type =" elapsed_s" />
258
+ <item fieldId =" 4" name =" Cause" type =" PowerAdjustReasonEnum" min =" 0x00" max =" 0x02" />
242
259
</struct >
243
260
244
261
<struct name =" ForecastStruct" apiMaturity =" provisional" >
245
262
<cluster code =" 0x0098" />
246
- <item fieldId =" 0" name =" ForecastId" type =" int16u " default =" 0" />
263
+ <item fieldId =" 0" name =" ForecastId" type =" int32u " default =" 0" />
247
264
<item fieldId =" 1" name =" ActiveSlotNumber" type =" int16u" isNullable =" true" default =" 0" />
248
265
<item fieldId =" 2" name =" StartTime" type =" epoch_s" />
249
266
<item fieldId =" 3" name =" EndTime" type =" epoch_s" />
250
267
<item fieldId =" 4" name =" EarliestStartTime" type =" epoch_s" isNullable =" true" optional =" true" />
251
268
<item fieldId =" 5" name =" LatestEndTime" type =" epoch_s" optional =" true" />
252
- <item fieldId =" 6" name =" IsPauseable " type =" boolean" />
269
+ <item fieldId =" 6" name =" IsPausable " type =" boolean" />
253
270
<item fieldId =" 7" name =" Slots" array =" true" type =" SlotStruct" length =" 10" />
254
271
<item fieldId =" 8" name =" ForecastUpdateReason" type =" ForecastUpdateReasonEnum" min =" 0x00" max =" 0x02" />
255
272
</struct >
@@ -261,7 +278,7 @@ limitations under the License.
261
278
<item fieldId =" 2" name =" DefaultDuration" type =" elapsed_s" />
262
279
<item fieldId =" 3" name =" ElapsedSlotTime" type =" elapsed_s" />
263
280
<item fieldId =" 4" name =" RemainingSlotTime" type =" elapsed_s" />
264
- <item fieldId =" 5" name =" SlotIsPauseable " type =" boolean" optional =" true" />
281
+ <item fieldId =" 5" name =" SlotIsPausable " type =" boolean" optional =" true" />
265
282
<item fieldId =" 6" name =" MinPauseDuration" type =" elapsed_s" optional =" true" />
266
283
<item fieldId =" 7" name =" MaxPauseDuration" type =" elapsed_s" optional =" true" />
267
284
<item fieldId =" 8" name =" ManufacturerESAState" type =" int16u" optional =" true" />
@@ -279,17 +296,16 @@ limitations under the License.
279
296
<struct name =" SlotAdjustmentStruct" apiMaturity =" provisional" >
280
297
<cluster code =" 0x0098" />
281
298
<item fieldId =" 0" name =" SlotIndex" type =" int8u" />
282
- <item fieldId =" 1" name =" NominalPower" type =" power_mw" />
299
+ <item fieldId =" 1" name =" NominalPower" type =" power_mw" optional = " true " />
283
300
<item fieldId =" 2" name =" Duration" type =" elapsed_s" />
284
301
</struct >
285
302
286
303
<struct name =" ConstraintsStruct" apiMaturity =" provisional" >
287
304
<cluster code =" 0x0098" />
288
305
<item fieldId =" 0" name =" StartTime" type =" epoch_s" />
289
- <item fieldId =" 1" name =" Duration" type =" elapsed_s" min = " 0 " max =" 86400" />
306
+ <item fieldId =" 1" name =" Duration" type =" elapsed_s" max =" 86400" />
290
307
<item fieldId =" 2" name =" NominalPower" type =" power_mw" optional =" true" />
291
308
<item fieldId =" 3" name =" MaximumEnergy" type =" energy_mwh" optional =" true" />
292
309
<item fieldId =" 4" name =" LoadControl" type =" int8s" optional =" true" />
293
310
</struct >
294
-
295
311
</configurator >
0 commit comments