blob: 7f49a643d1b1f96b8b2a636a10245b205524500b [file] [log] [blame]
<?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>Electrical Power Measurement</name>
<domain>Measurement &amp; Sensing</domain>
<code>0x0090</code>
<define>ELECTRICAL_POWER_MEASUREMENT_CLUSTER</define>
<client init="false" tick="false">true</client>
<server init="false" tick="false">true</server>
<globalAttribute side="either" code="0xFFFD" value="1"/>
<description>This cluster provides a mechanism for querying data about electrical power as measured by the server.</description>
<features>
<feature bit="0" code="DIRC" name="DirectCurrent" summary="Supports measurement of direct current">
<optionalConform choice="a" more="true"/>
</feature>
<feature bit="1" code="ALTC" name="AlternatingCurrent" summary="Supports measurement of alternating current">
<optionalConform choice="a" more="true"/>
</feature>
<feature bit="2" code="POLY" name="PolyphasePower" summary="Supports polyphase measurements">
<optionalConform>
<feature name="ALTC"/>
</optionalConform>
</feature>
<feature bit="3" code="HARM" name="Harmonics" summary="Supports measurement of AC harmonics">
<optionalConform>
<feature name="ALTC"/>
</optionalConform>
</feature>
<feature bit="4" code="PWRQ" name="PowerQuality" summary="Supports measurement of AC harmonic phases">
<optionalConform>
<feature name="ALTC"/>
</optionalConform>
</feature>
</features>
<!--Attributes-->
<attribute code="0x0000" side="server" define="POWER_MODE" type="PowerModeEnum" min="0x00" max="0x02">PowerMode</attribute>
<attribute code="0x0001" side="server" define="NUMBER_OF_MEASUREMENT_TYPES" type="int8u" min="1">NumberOfMeasurementTypes</attribute>
<attribute code="0x0002" side="server" define="ACCURACY" type="array" entryType="MeasurementAccuracyStruct" minLength="1">Accuracy</attribute>
<attribute code="0x0003" side="server" define="RANGES" type="array" optional="true" entryType="MeasurementRangeStruct" minLength="0">Ranges</attribute>
<attribute code="0x0004" side="server" define="VOLTAGE" type="voltage_mv" isNullable="true" min="-4611686018427387904" max="4611686018427387904" optional="true">Voltage</attribute>
<!--Conformance feature [ALTC] - for now optional-->
<attribute code="0x0005" side="server" define="ACTIVE_CURRENT" type="amperage_ma" isNullable="true" min="-4611686018427387904" max="4611686018427387904" optional="true">ActiveCurrent</attribute>
<!--Conformance feature [ALTC] - for now optional-->
<attribute code="0x0006" side="server" define="REACTIVE_CURRENT" type="amperage_ma" isNullable="true" min="-4611686018427387904" max="4611686018427387904" optional="true">ReactiveCurrent</attribute>
<attribute code="0x0007" side="server" define="APPARENT_CURRENT" type="amperage_ma" isNullable="true" min="0" max="4611686018427387904" optional="true">ApparentCurrent</attribute>
<!--Conformance feature [ALTC] - for now optional-->
<attribute code="0x0008" side="server" define="ACTIVE_POWER" type="power_mw" isNullable="true" min="-4611686018427387904" max="4611686018427387904">ActivePower</attribute>
<!--Conformance feature [ALTC] - for now optional-->
<attribute code="0x0009" side="server" define="REACTIVE_POWER" type="power_mw" isNullable="true" min="-4611686018427387904" max="4611686018427387904" optional="true">ReactivePower</attribute>
<!--Conformance feature [ALTC] - for now optional-->
<attribute code="0x000A" side="server" define="APPARENT_POWER" type="power_mw" isNullable="true" min="-4611686018427387904" max="4611686018427387904" optional="true">ApparentPower</attribute>
<!--Conformance feature [ALTC] - for now optional-->
<attribute code="0x000B" side="server" define="RMS_VOLTAGE" type="voltage_mv" isNullable="true" min="-4611686018427387904" max="4611686018427387904" optional="true">RMSVoltage</attribute>
<!--Conformance feature [ALTC] - for now optional-->
<attribute code="0x000C" side="server" define="RMS_CURRENT" type="amperage_ma" isNullable="true" min="-4611686018427387904" max="4611686018427387904" optional="true">RMSCurrent</attribute>
<!--Conformance feature [ALTC] - for now optional-->
<attribute code="0x000D" side="server" define="RMS_POWER" type="power_mw" isNullable="true" min="-4611686018427387904" max="4611686018427387904" optional="true">RMSPower</attribute>
<!--Conformance feature HARM - for now optional-->
<attribute code="0x000E" side="server" define="FREQUENCY" type="int64s" isNullable="true" optional="true" min="0" max="1000000">Frequency</attribute>
<!--Conformance feature PWRQ - for now optional-->
<attribute code="0x000F" side="server" define="HARMONIC_CURRENTS" type="array" entryType="HarmonicMeasurementStruct" isNullable="true" optional="true">HarmonicCurrents</attribute>
<!--Conformance feature [ALTC] - for now optional-->
<attribute code="0x0010" side="server" define="HARMONIC_PHASES" type="array" isNullable="true" optional="true" entryType="HarmonicMeasurementStruct">HarmonicPhases</attribute>
<!--Conformance feature [POLY] - for now optional-->
<attribute code="0x0011" side="server" define="POWER_FACTOR" type="int64s" isNullable="true" min="-10000" max="10000" optional="true">PowerFactor</attribute>
<attribute code="0x0012" side="server" type="amperage_ma" define="NEUTRAL_CURRENT" isNullable="true" min="-4611686018427387904" max="4611686018427387904" optional="true">NeutralCurrent</attribute>
<event code="0x00" side="server" name="MeasurementPeriodRanges" priority="info" optional="true">
<description>MeasurementPeriodRanges</description>
<field id="0" name="Ranges" array="true" type="MeasurementRangeStruct"/>
</event>
</cluster>
<enum name="PowerModeEnum" type="enum8">
<cluster code="0x0090"/>
<item name="Unknown" value="0x00"/>
<item name="DC" value="0x01"/>
<item name="AC" value="0x02"/>
</enum>
<struct name="MeasurementRangeStruct">
<cluster code="0x0090"/>
<item fieldId="0" name="MeasurementType" type="MeasurementTypeEnum" min="0x0000" max="0x000E"/>
<item fieldId="1" name="Min" type="int64s" min="-4611686018427387904" max="4611686018427387904"/>
<item fieldId="2" name="Max" type="int64s" min="-4611686018427387904" max="4611686018427387904"/>
<item fieldId="3" name="StartTimestamp" type="epoch_s" optional="true"/>
<item fieldId="4" name="EndTimestamp" type="epoch_s" optional="true"/>
<item fieldId="5" name="MinTimestamp" type="epoch_s" optional="true"/>
<item fieldId="6" name="MaxTimestamp" type="epoch_s" optional="true"/>
<item fieldId="7" name="StartSystime" type="systime_ms" optional="true"/>
<item fieldId="8" name="EndSystime" type="systime_ms" optional="true"/>
<item fieldId="9" name="MinSystime" type="systime_ms" optional="true"/>
<item fieldId="10" name="MaxSystime" type="systime_ms" optional="true"/>
</struct>
<struct name="HarmonicMeasurementStruct">
<cluster code="0x0090"/>
<item fieldId="0" name="Order" type="int8u" min="1" default="1"/>
<item fieldId="1" name="Measurement" type="int64s" min="-4611686018427387904" max="4611686018427387904" isNullable="true"/>
</struct>
</configurator>