Matter Cluster 144 — Electrical Power Measurement
Matter Cluster 144 (0x0090) Electrical Power Measurement: attributes, commands, events, data types, shadow paths and bridge payload examples.
Matter Cluster 144 — Electrical Power Measurement Cluster
Matter Cluster 144, also written as 0x0090, is the Electrical Power Measurement Cluster.
This cluster provides a mechanism for querying data about electrical power as measured by the server.
Cluster Identity
| Field | Value |
|---|---|
| Cluster ID decimal | 144 |
| Cluster ID hex | 0x0090 |
| Cluster name | Electrical Power Measurement |
| Cluster revision (Matter 1.6.1) | 3 |
| Role | application |
| Scope | Endpoint |
| PICS code | EPM |
| Typical endpoint | 1 |
Revision history
| Revision | Change |
|---|---|
| 1 | Initial revision |
| 2 | Changed reactive and apparent power fields to use new data types |
| 3 | Changed range of apparent current field to allow negative apparent current |
Shadow Path Format
Cluster 144 values in the device shadow use this format:
endpoint_id / 144 / attribute_id
Example:
{
"1/144/0": 1
}
| Part | Meaning |
|---|---|
1 | Endpoint ID |
144 | Electrical Power Measurement cluster |
0 | PowerMode attribute |
Cluster 144 Features
The FeatureMap attribute (1/144/65532) is a bitmap. Each bit set means the device implements that feature and the attributes and commands that depend on it.
| Bit | Code | Feature | Conformance | Meaning |
|---|---|---|---|---|
| 0 | DIRC | DirectCurrent | O | Supports measurement of direct current |
| 1 | ALTC | AlternatingCurrent | O | Supports measurement of alternating current |
| 2 | POLY | PolyphasePower | [ALTC] | Supports polyphase measurements |
| 3 | HARM | Harmonics | [ALTC] | Supports measurement of AC harmonics |
| 4 | PWRQ | PowerQuality | [ALTC] | Supports measurement of AC harmonic phases |
Example: FeatureMap = 0 means no optional feature is enabled; 31 means every feature listed above is enabled.
Data Types
MeasurementTypeEnum
| Value | Name | Conformance | Meaning |
|---|---|---|---|
| 0 | Unspecified | M | — |
| 1 | Voltage | M | Voltage in millivolts (mV) |
| 2 | ActiveCurrent | M | Active current in milliamps (mA) |
| 3 | ReactiveCurrent | M | Reactive current in milliamps (mA) |
| 4 | ApparentCurrent | M | Apparent current in milliamps (mA) |
| 5 | ActivePower | M | Active power in milliwatts (mW) |
| 6 | ReactivePower | M | Reactive power in millivolt-amps reactive (mVAR) |
| 7 | ApparentPower | M | Apparent power in millivolt-amps (mVA) |
| 8 | RMSVoltage | M | Root mean squared voltage in millivolts (mV) |
| 9 | RMSCurrent | M | Root mean squared current in milliamps (mA) |
| 10 | RMSPower | M | Root mean squared power in milliwatts (mW) |
| 11 | Frequency | M | AC frequency in millihertz (mHz) |
| 12 | PowerFactor | M | Power Factor ratio in +/- 1/100ths of a percent. |
| 13 | NeutralCurrent | M | AC neutral current in milliamps (mA) |
| 14 | ElectricalEnergy | M | Electrical energy in milliwatt-hours (mWh) |
| 15 | ReactiveEnergy | M | Reactive power in millivolt-amp-hours reactive (mVARh) |
| 16 | ApparentEnergy | M | Apparent power in millivolt-amp-hours (mVAh) |
PowerModeEnum
| Value | Name | Conformance | Meaning |
|---|---|---|---|
| 0 | Unknown | M | — |
| 1 | DC | M | Direct current |
| 2 | AC | M | Alternating current, either single-phase or polyphase |
HarmonicMeasurementStruct (struct)
| Field | Name | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|
| 0 | Order | uint8 | M | min 1 | This field is the order of the harmonic being measured. |
| 1 | Measurement | int64 (nullable) | M | -4611686018427387904 to 4611686018427387904 | This field is the measured value for the given harmonic order. |
MeasurementAccuracyRangeStruct (struct)
| Field | Name | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|
| 0 | RangeMin | int64 | M | -4611686018427387904 to 4611686018427387904 | — |
| 1 | RangeMax | int64 | M | -4611686018427387904 to 4611686018427387904 | — |
| 2 | PercentMax | percent100ths | O | — | — |
| 3 | PercentMin | percent100ths | [PercentMax] | max PercentTypical | — |
| 4 | PercentTypical | percent100ths | [PercentMin] | PercentMin to PercentMax | — |
| 5 | FixedMax | uint64 | O | max compute | — |
| 6 | FixedMin | uint64 | [FixedMax] | max FixedMax | — |
| 7 | FixedTypical | uint64 | [FixedMin] | FixedMin to FixedMax | — |
MeasurementAccuracyStruct (struct)
| Field | Name | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|
| 0 | MeasurementType | MeasurementTypeEnum | M | — | — |
| 1 | Measured | bool | M | — | — |
| 2 | MinMeasuredValue | int64 | M | -4611686018427387904 to 4611686018427387904 | — |
| 3 | MaxMeasuredValue | int64 | M | -4611686018427387904 to 4611686018427387904 | — |
| 4 | AccuracyRanges | list of MeasurementAccuracyRangeStruct | M | min 1 entries | — |
MeasurementRangeStruct (struct)
This struct indicates the maximum and minimum values of a given measurement type during a measurement period, along with the observation times of these values.
| Field | Name | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|
| 0 | MeasurementType | MeasurementTypeEnum | M | — | This field is the type of measurement for the range provided. |
| 1 | Min | int64 | M | -4611686018427387904 to 4611686018427387904 | This field is the smallest measured value for the associated measurement over either the period between StartTimestamp and EndTimestamp, or the period between StartSystime and EndSystime, or both. |
| 2 | Max | int64 | M | -4611686018427387904 to 4611686018427387904 | This field is the largest measured value for the associated measurement over the period between either StartTimestamp and EndTimestamp or the period between StartSystime and EndSystime, or both. |
| 3 | StartTimestamp | epoch-s | EndTimestamp | — | This field is the timestamp in UTC of the beginning of the measurement period. |
| 4 | EndTimestamp | epoch-s | desc | min compute | This field is the timestamp in UTC of the end of the measurement period. |
| 5 | MinTimestamp | epoch-s | EndTimestamp | — | This field is the most recent timestamp in UTC that the value in the Min field was measured. |
| 6 | MaxTimestamp | epoch-s | EndTimestamp | min compute | This field is the most recent timestamp in UTC of the value in the Max field. |
| 7 | StartSystime | systime-ms | EndSystime | — | This field is the time since boot of the beginning of the measurement period. |
| 8 | EndSystime | systime-ms | desc | min compute | This field is the time since boot of the end of the measurement period. |
| 9 | MinSystime | systime-ms | EndSystime | — | This field is the measurement time since boot of the value in the Min field was measured. |
| 10 | MaxSystime | systime-ms | EndSystime | min compute | This field is the measurement time since boot of the value in the Max field. |
Cluster 144 Attributes
Cluster 144 defines 19 attributes plus the global attributes. Conformance: M mandatory, O optional, a feature code means "mandatory when that feature is present", square brackets mean "optional when …".
| ID | Hex | Attribute | Type | Conformance | Access | Qualities | Default |
|---|---|---|---|---|---|---|---|
| 0 | 0x0000 | PowerMode | PowerModeEnum | M | R (read: view) | — | — |
| 1 | 0x0001 | NumberOfMeasurementTypes | uint8 | M | R (read: view) | — | — |
| 2 | 0x0002 | Accuracy | list of MeasurementAccuracyStruct | M | R (read: view) | — | — |
| 3 | 0x0003 | Ranges | list of MeasurementRangeStruct | O | R (read: view) | quiet reporting | empty |
| 4 | 0x0004 | Voltage | voltage-mV | O | R (read: view) | nullable, quiet reporting | null |
| 5 | 0x0005 | ActiveCurrent | amperage-mA | O | R (read: view) | nullable, quiet reporting | null |
| 6 | 0x0006 | ReactiveCurrent | amperage-mA | [ALTC] | R (read: view) | nullable, quiet reporting | null |
| 7 | 0x0007 | ApparentCurrent | amperage-mA | [ALTC] | R (read: view) | nullable, quiet reporting | null |
| 8 | 0x0008 | ActivePower | power-mW | M | R (read: view) | nullable, quiet reporting | — |
| 9 | 0x0009 | ReactivePower | power-mVAR | [ALTC] | R (read: view) | nullable, quiet reporting | null |
| 10 | 0x000A | ApparentPower | power-mVA | [ALTC] | R (read: view) | nullable, quiet reporting | null |
| 11 | 0x000B | RMSVoltage | voltage-mV | [ALTC] | R (read: view) | nullable, quiet reporting | null |
| 12 | 0x000C | RMSCurrent | amperage-mA | [ALTC] | R (read: view) | nullable, quiet reporting | null |
| 13 | 0x000D | RMSPower | power-mW | [ALTC] | R (read: view) | nullable, quiet reporting | null |
| 14 | 0x000E | Frequency | int64 | [ALTC] | R (read: view) | nullable, quiet reporting | null |
| 15 | 0x000F | HarmonicCurrents | list of HarmonicMeasurementStruct | HARM | R (read: view) | nullable, quiet reporting | — |
| 16 | 0x0010 | HarmonicPhases | list of HarmonicMeasurementStruct | PWRQ | R (read: view) | nullable, quiet reporting | — |
| 17 | 0x0011 | PowerFactor | int64 | [ALTC] | R (read: view) | nullable, quiet reporting | null |
| 18 | 0x0012 | NeutralCurrent | amperage-mA | [POLY] | R (read: view) | nullable, quiet reporting | null |
Global attributes
| ID | Hex | Attribute | Meaning |
|---|---|---|---|
| 65528 | 0xFFF8 | GeneratedCommandList | Response command IDs this server generates. |
| 65529 | 0xFFF9 | AcceptedCommandList | Command IDs this server accepts. |
| 65531 | 0xFFFB | AttributeList | Attribute IDs implemented. |
| 65532 | 0xFFFC | FeatureMap | Implemented optional features (see above). |
| 65533 | 0xFFFD | ClusterRevision | Cluster revision implemented; 3 for a Matter 1.6.1 device. |
Attribute Details
Attribute 0 / 0x0000 — PowerMode
Path example:
1/144/0
This indicates the current mode of the server. For some servers, such as an EV, this may change depending on the mode of charging or discharging.
| Property | Value |
|---|---|
| Type | PowerModeEnum |
| Conformance | M |
| Access | R (read: view) |
Values (PowerModeEnum):
| Value | Name | Meaning |
|---|---|---|
| 0 | Unknown | — |
| 1 | DC | Direct current |
| 2 | AC | Alternating current, either single-phase or polyphase |
Example:
{
"1/144/0": 1
}
Attribute 1 / 0x0001 — NumberOfMeasurementTypes
Path example:
1/144/1
This indicates the maximum number of measurement types the server is capable of reporting.
| Property | Value |
|---|---|
| Type | uint8 |
| Conformance | M |
| Access | R (read: view) |
| Constraint | max 32 |
Example:
{
"1/144/1": 1
}
Attribute 2 / 0x0002 — Accuracy
Path example:
1/144/2
This indicates a list of accuracy specifications for the measurement types supported by the server. There is an entry for ActivePower, as well as any other measurement types implemented by this server.
| Property | Value |
|---|---|
| Type | list of MeasurementAccuracyStruct |
| Conformance | M |
| Access | R (read: view) |
| Constraint | 1 to NumberOfMeasurementTypes entries |
Each entry is a MeasurementAccuracyStruct (see Data Types).
Example:
{
"1/144/2": []
}
Attribute 3 / 0x0003 — Ranges
Path example:
1/144/3
This indicates a list of measured ranges for different measurement types. Each measurement type has at most one entry in this list, representing the range of measurements in the most recent measurement period. The reporting interval of this attribute is manufacturer dependent. The server may choose to omit publication of deltas considered not meaningful.
| Property | Value |
|---|---|
| Type | list of MeasurementRangeStruct |
| Conformance | O |
| Access | R (read: view) |
| Qualities | quiet reporting |
| Constraint | 0 to NumberOfMeasurementTypes entries |
| Default | empty |
Each entry is a MeasurementRangeStruct (see Data Types).
Example:
{
"1/144/3": []
}
Attribute 4 / 0x0004 — Voltage
Path example:
1/144/4
This indicates the most recent Voltage reading in millivolts (mV). The reporting interval of this attribute is manufacturer dependent. The server may choose to omit publication of deltas considered not meaningful. The server must NOT mark this attribute ready for report if the last time this was done was more recently than 1 second ago.
| Property | Value |
|---|---|
| Type | voltage-mV |
| Conformance | O |
| Access | R (read: view) |
| Qualities | nullable, quiet reporting |
| Constraint | -4611686018427387904 to 4611686018427387904 |
| Default | null |
Example:
{
"1/144/4": 1
}
Attribute 5 / 0x0005 — ActiveCurrent
Path example:
1/144/5
This indicates the most recent ActiveCurrent reading in milliamps (mA). A positive value represents current flowing into the server, while a negative value represents current flowing out of the server. The reporting interval of this attribute is manufacturer dependent. The server may choose to omit publication of deltas considered not meaningful.
| Property | Value |
|---|---|
| Type | amperage-mA |
| Conformance | O |
| Access | R (read: view) |
| Qualities | nullable, quiet reporting |
| Constraint | -4611686018427387904 to 4611686018427387904 |
| Default | null |
Example:
{
"1/144/5": 1
}
Attribute 6 / 0x0006 — ReactiveCurrent
Path example:
1/144/6
This indicates the most recent ReactiveCurrent reading in milliamps (mA). A positive value represents current flowing into the server, while a negative value represents current flowing out of the server. The reporting interval of this attribute is manufacturer dependent. The server may choose to omit publication of deltas considered not meaningful.
| Property | Value |
|---|---|
| Type | amperage-mA |
| Conformance | [ALTC] |
| Access | R (read: view) |
| Qualities | nullable, quiet reporting |
| Constraint | -4611686018427387904 to 4611686018427387904 |
| Default | null |
Example:
{
"1/144/6": 1
}
Attribute 7 / 0x0007 — ApparentCurrent
Path example:
1/144/7
This indicates the most recent ApparentCurrent (square root sum of the squares of active and reactive currents) reading in milliamps (mA). A positive value represents current flowing into the server, while a negative value represents current flowing out of the server. The reporting interval of this attribute is manufacturer dependent. The server may choose to omit publication of deltas considered not meaningful.
| Property | Value |
|---|---|
| Type | amperage-mA |
| Conformance | [ALTC] |
| Access | R (read: view) |
| Qualities | nullable, quiet reporting |
| Constraint | -4611686018427387904 to 4611686018427387904 |
| Default | null |
Example:
{
"1/144/7": 1
}
Attribute 8 / 0x0008 — ActivePower
Path example:
1/144/8
This indicates the most recent ActivePower reading in milliwatts (mW). If the power cannot be measured, a value of null is returned. A positive value represents power imported, while a negative value represents power exported. The reporting interval of this attribute is manufacturer dependent.
| Property | Value |
|---|---|
| Type | power-mW |
| Conformance | M |
| Access | R (read: view) |
| Qualities | nullable, quiet reporting |
| Constraint | -4611686018427387904 to 4611686018427387904 |
Example:
{
"1/144/8": 1
}
Attribute 9 / 0x0009 — ReactivePower
Path example:
1/144/9
This indicates the most recent ReactivePower reading in millivolt-amps reactive (mVAR). A positive value represents power imported, while a negative value represents power exported. The reporting interval of this attribute is manufacturer dependent. The server may choose to omit publication of deltas considered not meaningful.
| Property | Value |
|---|---|
| Type | power-mVAR |
| Conformance | [ALTC] |
| Access | R (read: view) |
| Qualities | nullable, quiet reporting |
| Constraint | -4611686018427387904 to 4611686018427387904 |
| Default | null |
Example:
{
"1/144/9": 1
}
Attribute 10 / 0x000A — ApparentPower
Path example:
1/144/10
This indicates the most recent ApparentPower reading in millivolt-amps (mVA). A positive value represents power imported, while a negative value represents power exported. The reporting interval of this attribute is manufacturer dependent. The server may choose to omit publication of deltas considered not meaningful.
| Property | Value |
|---|---|
| Type | power-mVA |
| Conformance | [ALTC] |
| Access | R (read: view) |
| Qualities | nullable, quiet reporting |
| Constraint | -4611686018427387904 to 4611686018427387904 |
| Default | null |
Example:
{
"1/144/10": 1
}
Attribute 11 / 0x000B — RMSVoltage
Path example:
1/144/11
No condensed specification text is available for RMSVoltage; use the type, conformance and constraint below together with the cluster description above.
| Property | Value |
|---|---|
| Type | voltage-mV |
| Conformance | [ALTC] |
| Access | R (read: view) |
| Qualities | nullable, quiet reporting |
| Constraint | -4611686018427387904 to 4611686018427387904 |
| Default | null |
Example:
{
"1/144/11": 1
}
Attribute 12 / 0x000C — RMSCurrent
Path example:
1/144/12
No condensed specification text is available for RMSCurrent; use the type, conformance and constraint below together with the cluster description above.
| Property | Value |
|---|---|
| Type | amperage-mA |
| Conformance | [ALTC] |
| Access | R (read: view) |
| Qualities | nullable, quiet reporting |
| Constraint | -4611686018427387904 to 4611686018427387904 |
| Default | null |
Example:
{
"1/144/12": 1
}
Attribute 13 / 0x000D — RMSPower
Path example:
1/144/13
No condensed specification text is available for RMSPower; use the type, conformance and constraint below together with the cluster description above.
| Property | Value |
|---|---|
| Type | power-mW |
| Conformance | [ALTC] |
| Access | R (read: view) |
| Qualities | nullable, quiet reporting |
| Constraint | -4611686018427387904 to 4611686018427387904 |
| Default | null |
Example:
{
"1/144/13": 1
}
Attribute 14 / 0x000E — Frequency
Path example:
1/144/14
This indicates the most recent Frequency reading in millihertz (mHz). The reporting interval of this attribute is manufacturer dependent. The server may choose to omit publication of deltas considered not meaningful. The server must NOT mark this attribute ready for report if the last time this was done was more recently than 1 second ago.
| Property | Value |
|---|---|
| Type | int64 |
| Conformance | [ALTC] |
| Access | R (read: view) |
| Qualities | nullable, quiet reporting |
| Constraint | 0 to 1000000 |
| Default | null |
Example:
{
"1/144/14": 0
}
Attribute 15 / 0x000F — HarmonicCurrents
Path example:
1/144/15
This indicates a list of HarmonicMeasurementStruct values, with each HarmonicMeasurementStruct representing the harmonic current reading for the harmonic order specified by Order. The reporting interval of this attribute is manufacturer dependent. The server may choose to omit publication of deltas considered not meaningful. The server must NOT mark this attribute ready for report if the last time this was done was more recently than 1 second ago.
| Property | Value |
|---|---|
| Type | list of HarmonicMeasurementStruct |
| Conformance | HARM |
| Access | R (read: view) |
| Qualities | nullable, quiet reporting |
| Constraint | max 25 entries |
Each entry is a HarmonicMeasurementStruct (see Data Types).
Example:
{
"1/144/15": []
}
Attribute 16 / 0x0010 — HarmonicPhases
Path example:
1/144/16
This indicates a list of HarmonicMeasurementStruct values, with each HarmonicMeasurementStruct representing the most recent phase of the harmonic current reading for the harmonic order specified by Order. The reporting interval of this attribute is manufacturer dependent. The server may choose to omit publication of deltas considered not meaningful. The server must NOT mark this attribute ready for report if the last time this was done was more recently than 1 second ago.
| Property | Value |
|---|---|
| Type | list of HarmonicMeasurementStruct |
| Conformance | PWRQ |
| Access | R (read: view) |
| Qualities | nullable, quiet reporting |
| Constraint | max 25 entries |
Each entry is a HarmonicMeasurementStruct (see Data Types).
Example:
{
"1/144/16": []
}
Attribute 17 / 0x0011 — PowerFactor
Path example:
1/144/17
This indicates the Power Factor ratio in +/- 1/100ths of a percent. The reporting interval of this attribute is manufacturer dependent. The server may choose to omit publication of deltas considered not meaningful. The server must NOT mark this attribute ready for report if the last time this was done was more recently than 1 second ago.
| Property | Value |
|---|---|
| Type | int64 |
| Conformance | [ALTC] |
| Access | R (read: view) |
| Qualities | nullable, quiet reporting |
| Constraint | -10000 to 10000 |
| Default | null |
Example:
{
"1/144/17": 1
}
Attribute 18 / 0x0012 — NeutralCurrent
Path example:
1/144/18
This indicates the most recent NeutralCurrent reading in milliamps (mA). Typically this is a derived value, taking the magnitude of the vector sum of phase currents. If the neutral current cannot be measured or derived, a value of null is returned. A positive value represents an imbalance between the phase currents when power is imported.
| Property | Value |
|---|---|
| Type | amperage-mA |
| Conformance | [POLY] |
| Access | R (read: view) |
| Qualities | nullable, quiet reporting |
| Constraint | -4611686018427387904 to 4611686018427387904 |
| Default | null |
Example:
{
"1/144/18": 1
}
Cluster 144 Commands
Cluster 144 defines no commands. It is read (and, for writable attributes, written) through attribute access only.
Cluster 144 Events
| ID | Hex | Event | Priority | Conformance | Description |
|---|---|---|---|---|---|
| 0 | 0x00 | MeasurementPeriodRanges | info | Ranges | If supported, this event is generated at the end of a measurement period. |
Event 0 — MeasurementPeriodRanges
If supported, this event is generated at the end of a measurement period. The start and end times for measurement periods is determined by the server, and may represent overlapping periods.
| ID | Field | Type | Conformance | Meaning |
|---|---|---|---|---|
| 0 | Ranges | list of MeasurementRangeStruct | M | This indicates the value of the Ranges attribute at the time of event generation. |
SmartphoneKey Notes
- Cluster 144 is not currently exposed by SmartphoneKey devices. This page documents the Matter 1.6.1 specification so that future devices can be interpreted without changes to the backend.
- Shadow paths follow
endpoint/144/attribute; attribute values that the device reports as unreadable are written asn/a. - Attribute IDs, command IDs and enum values on this page come from the CSA Matter 1.6.1 data model; descriptions are condensed from the specification text.