PumpConfigurationAndControl Cluster
Cluster ID: 0x0200 |
Endpoint: Typically on Pump Endpoint (pump functional endpoint)
PumpConfigurationAndControl is the core Cluster for controlling pump devices in Matter, applicable to HVAC circulation pumps, domestic water supply pumps, industrial pumps, and more. It defines all capabilities including pump operation modes, control modes, speed/flow/pressure ranges, operating status monitoring, and fault event reporting. Pump device configuration and maintenance revolves around this Cluster.
PumpConfigurationAndControl capabilities vary widely — a simple fixed-speed pump may only support constant speed mode,
while a variable-frequency pump may support constant pressure, compensated pressure, constant flow, constant temperature, and automatic modes simultaneously.
Each control mode is enabled by its corresponding Feature, which also determines available range attributes.
Before development, read FeatureMap (0xFFFC) to confirm which control modes the device supports, then decide the UI layout.
Feature Bitmap
PumpConfigurationAndControl Cluster declares device control capabilities through FeatureMap (0xFFFC). Features directly determine available attribute ranges and ControlMode options:
A simple fixed-speed circulation pump: FeatureMap = 0x04 (SPD only), can only run at constant speed.
A variable-frequency water supply pump: FeatureMap = 0x23 (PRSCONST + PRSCOMP + AUTO), supports constant pressure, compensated pressure, and automatic mode.
A fully-featured industrial pump: FeatureMap = 0x7F (all 7 Features), supports all control modes and local operation.
Attributes
PumpConfigurationAndControl Cluster attributes are organized into five functional groups. Click an attribute ID in the summary table below to jump to its detailed description.
| ID | Name | Type | Group | Description |
|---|---|---|---|---|
0x0000 |
MaxPressure | int16 / null | Capacity Limits | Maximum pressure (1/10 kPa) |
0x0001 |
MaxSpeed | uint16 / null | Capacity Limits | Maximum speed (RPM) |
0x0002 |
MaxFlow | uint16 / null | Capacity Limits | Maximum flow (1/10 m³/h) |
0x0003 |
MinConstPressure | int16 / null | Control Range | Constant pressure mode minimum |
0x0004 |
MaxConstPressure | int16 / null | Control Range | Constant pressure mode maximum |
0x0005 |
MinCompPressure | int16 / null | Control Range | Compensated pressure mode minimum |
0x0006 |
MaxCompPressure | int16 / null | Control Range | Compensated pressure mode maximum |
0x0007 |
MinConstSpeed | uint16 / null | Control Range | Constant speed mode minimum |
0x0008 |
MaxConstSpeed | uint16 / null | Control Range | Constant speed mode maximum |
0x0009 |
MinConstFlow | uint16 / null | Control Range | Constant flow mode minimum |
0x000A |
MaxConstFlow | uint16 / null | Control Range | Constant flow mode maximum |
0x000B |
MinConstTemp | int16 / null | Control Range | Constant temperature mode minimum |
0x000C |
MaxConstTemp | int16 / null | Control Range | Constant temperature mode maximum |
0x0010 |
PumpStatus | bitmap16 | Operating Status | Pump status bitmap |
0x0011 |
EffectiveOperationMode | OperationModeEnum | Operating Status | Effective operation mode |
0x0012 |
EffectiveControlMode | ControlModeEnum | Operating Status | Effective control mode |
0x0013 |
Capacity | int16 / null | Operating Status | Current operating point capacity |
0x0014 |
Speed | uint16 / null | Operating Status | Current speed (RPM) |
0x0015 |
LifetimeRunningHours | uint24 / null | Cumulative Stats | Lifetime running hours |
0x0016 |
Power | uint24 / null | Cumulative Stats | Current power (W) |
0x0017 |
LifetimeEnergyConsumed | uint32 / null | Cumulative Stats | Lifetime energy consumed (Wh) |
0x0020 |
OperationMode | OperationModeEnum | Control Parameters | Operation mode (writable) |
0x0021 |
ControlMode | ControlModeEnum | Control Parameters | Control mode (writable) |
PumpConfigurationAndControl Cluster does not define any commands.
All control operations are done through attribute writes — write OperationMode (0x0020) to switch operation mode,
write ControlMode (0x0021) to switch control mode. This is consistent with most HVAC Cluster designs.
Device Capacity Limits (0x0000 ~ 0x0002)
Describes the physical limit parameters of pump hardware. These three attributes are read-only, set by device firmware at the factory, representing the maximum performance the pump can achieve.
| ID | Name | Type | Description |
|---|---|---|---|
0x0000 |
MaxPressure Max Pressure |
int16 / null | Maximum pressure the pump can output, in 1/10 kPa. For example, 3200 = 320.0 kPa. Nullable — null indicates the device did not provide this parameter |
0x0001 |
MaxSpeed Max Speed |
uint16 / null | Maximum motor speed, in RPM. For example, 2900 = 2900 RPM. Nullable |
0x0002 |
MaxFlow Max Flow |
uint16 / null | Maximum flow the pump can output, in 1/10 m³/h. For example, 500 = 50.0 m³/h. Nullable |
The units for MaxPressure and MaxFlow are 1/10 kPa and 1/10 m³/h respectively,
not integer kPa and m³/h. For example, a value of 3200 means 320.0 kPa, and 500 means 50.0 m³/h.
Remember to divide by 10 when displaying. Temperature attributes (MinConstTemp / MaxConstTemp) also use 1/10 °C precision.
Control Range (0x0003 ~ 0x000C)
Defines the valid range of setpoints for each control mode. Each control mode corresponds to a Min/Max attribute pair, which only exists when the device supports the corresponding Feature. Apps should use these values as bounds when rendering sliders or input fields.
| ID | Name | Type | Feature | Description |
|---|---|---|---|---|
0x0003 |
MinConstPressure Const Pressure Min |
int16 / null | PRSCONST | Minimum settable pressure in constant pressure mode, in 1/10 kPa |
0x0004 |
MaxConstPressure Const Pressure Max |
int16 / null | PRSCONST | Maximum settable pressure in constant pressure mode, in 1/10 kPa |
0x0005 |
MinCompPressure Comp Pressure Min |
int16 / null | PRSCOMP | Minimum settable pressure in compensated pressure mode, in 1/10 kPa |
0x0006 |
MaxCompPressure Comp Pressure Max |
int16 / null | PRSCOMP | Maximum settable pressure in compensated pressure mode, in 1/10 kPa |
0x0007 |
MinConstSpeed Const Speed Min |
uint16 / null | SPD | Minimum settable speed in constant speed mode, in RPM |
0x0008 |
MaxConstSpeed Const Speed Max |
uint16 / null | SPD | Maximum settable speed in constant speed mode, in RPM |
0x0009 |
MinConstFlow Const Flow Min |
uint16 / null | FLW | Minimum settable flow in constant flow mode, in 1/10 m³/h |
0x000A |
MaxConstFlow Const Flow Max |
uint16 / null | FLW | Maximum settable flow in constant flow mode, in 1/10 m³/h |
0x000B |
MinConstTemp Const Temp Min |
int16 / null | TEMP | Minimum settable temperature in constant temperature mode, in 1/10 °C |
0x000C |
MaxConstTemp Const Temp Max |
int16 / null | TEMP | Maximum settable temperature in constant temperature mode, in 1/10 °C |
Constant Pressure (ConstantPressure): The pump maintains a fixed outlet pressure regardless of flow changes. Suitable for water supply systems to ensure stable pressure at all outlets.
Compensated Pressure (ProportionalPressure / CompensatedPressure): The pump automatically adjusts pressure based on flow — lower pressure at low flow, higher at high flow.
Suitable for large piping networks, saving energy at low loads.
Operating Status (0x0010 ~ 0x0014)
Reflects the pump's current real-time operating status. These attributes are all read-only, automatically maintained by the device.
| ID | Name | Type | Description |
|---|---|---|---|
0x0010 |
PumpStatus Pump Status Bitmap |
bitmap16 | Bitmap flags for the pump's current status, including running/fault/remote control information. See the PumpStatus Bitmap section below. Optional attribute |
0x0011 |
EffectiveOperationMode Effective Operation Mode |
OperationModeEnum | The pump's actual effective operation mode. May differ from the written OperationMode — for example, when the device is under local panel control, even if Normal is written remotely, the actual mode remains Local |
0x0012 |
EffectiveControlMode Effective Control Mode |
ControlModeEnum | The pump's actual effective control mode. When OperationMode is Minimum or Maximum, the device overrides the ControlMode setting |
0x0013 |
Capacity Current Capacity |
int16 / null | Current operating point capacity of the pump; unit and meaning depend on the current control mode (pressure / speed / flow / temperature). Nullable |
0x0014 |
Speed Current Speed |
uint16 / null | Actual current motor speed, in RPM. Nullable. Optional attribute |
EffectiveOperationMode and EffectiveControlMode are read-only "actual effective values",
while OperationMode and ControlMode are writable "desired values".
They may differ — for example, after writing OperationMode = Normal,
if the pump panel switches to local control, EffectiveOperationMode becomes Local.
The App UI should display current status based on Effective values.
Cumulative Statistics (0x0015 ~ 0x0017)
Records pump running time and energy consumption data, used for maintenance and energy efficiency analysis.
| ID | Name | Type | Description |
|---|---|---|---|
0x0015 |
LifetimeRunningHours Lifetime Running Hours |
uint24 / null | Cumulative running hours since factory. Read/write (supports reset). Default value 0. Nullable. Optional attribute |
0x0016 |
Power Current Power |
uint24 / null | Current electrical power consumed by the pump, in W. For example, 1500 = 1.5 kW. Nullable. Optional attribute |
0x0017 |
LifetimeEnergyConsumed Lifetime Energy Consumed |
uint32 / null | Cumulative energy consumed since factory, in Wh. Read/write (supports reset). Default value 0. Nullable. Optional attribute |
LifetimeRunningHours is critical for pump maintenance — most pump maintenance cycles are based on running hours (e.g., replace seals every 8000 hours).
The App can implement a "maintenance due reminder" feature based on this attribute.
LifetimeEnergyConsumed is in Wh (watt-hours); typically convert to kWh (divide by 1000) for UI display.
Control Parameters (0x0020 ~ 0x0021)
Core control attributes for the pump — control the pump's operating behavior by writing these two attributes. These are the only writable application attributes in PumpConfigurationAndControl.
| ID | Name | Type | Description |
|---|---|---|---|
0x0020 |
OperationMode Operation Mode |
OperationModeEnum | Pump operation mode. Read/write, default Normal (0). Determines how the pump operates. See enum values below |
0x0021 |
ControlMode Control Mode |
ControlModeEnum | Pump control mode. Read/write, default ConstantSpeed (0). Determines the physical quantity used as the control target. Optional attribute. See enum values below |
OperationMode Enum Values
ControlMode Enum Values
ControlMode determines the physical quantity used as the pump's regulation target. Only effective when OperationMode = Normal.
Note that ControlMode enum values are not consecutive — there are no values 4 and 6.
ConstantTemperature is 5, Automatic is 7.
You cannot use array indices for direct mapping when parsing; use explicit matching.
PumpStatus Bitmap
PumpStatus (0x0010) is a 16-bit bitmap where each bit represents a pump status flag.
Multiple bits can be set simultaneously — for example, when the pump is running and under local control, both Running and LocalOverride are set.
PumpStatus = 0x0020 (decimal 32) = Bit 5 set = pump is running (Running), all other statuses normal.
PumpStatus = 0x0023 (decimal 35) = Bit 0 + Bit 1 + Bit 5 = pump running with device fault and supply fault — immediate alarm required.
Events
PumpConfigurationAndControl defines 17 events, all used for fault and anomaly reporting. This is one of the Clusters with the most events in Matter — pumps, as critical infrastructure, require fine-grained fault classification. All events have no data fields; the event itself represents the occurrence of the corresponding condition.
| ID | Name | Priority | Description |
|---|---|---|---|
0x00 |
SupplyVoltageLow | WARNING | Supply voltage low |
0x01 |
SupplyVoltageHigh | WARNING | Supply voltage high |
0x02 |
PowerMissingPhase | WARNING | Three-phase power missing phase |
0x03 |
SystemPressureLow | WARNING | System pressure low |
0x04 |
SystemPressureHigh | WARNING | System pressure high |
0x05 |
DryRunning | CRITICAL | Dry running (pump running without water, may burn out) |
0x06 |
MotorTemperatureHigh | WARNING | Motor temperature high |
0x07 |
PumpMotorFatalFailure | CRITICAL | Motor fatal failure (immediate shutdown required) |
0x08 |
ElectronicTemperatureHigh | WARNING | Control board temperature high |
0x09 |
PumpBlocked | CRITICAL | Pump blocked (impeller jammed) |
0x0A |
SensorFailure | WARNING | Sensor failure |
0x0B |
ElectronicNonFatalFailure | WARNING | Control board non-fatal failure |
0x0C |
ElectronicFatalFailure | CRITICAL | Control board fatal failure |
0x0D |
GeneralFault | INFO | General fault (unclassified general issue) |
0x0E |
Leakage | WARNING | Leakage — pump or piping water leak detected |
0x0F |
AirDetection | WARNING | Air detection — air detected in piping |
0x10 |
TurbineOperation | WARNING | Turbine flow anomaly — turbine flow meter detected abnormal flow |
Events marked as CRITICAL (DryRunning, PumpMotorFatalFailure, PumpBlocked, ElectronicFatalFailure) indicate the pump may be suffering irreversible damage. The App should immediately show a full-screen alert when receiving these events, recommending the user to shut down and inspect. Dry running (DryRunning) is especially dangerous — a pump running without water for a few minutes can destroy the mechanical seal.
Example Data
PumpConfigurationAndControl Cluster read results from a variable-frequency pump with constant pressure control during normal operation:
{
// --- Device Capacity Limits ---
"0x0000": 3200, // MaxPressure = 320.0 kPa
"0x0001": 2900, // MaxSpeed = 2900 RPM
"0x0002": 500, // MaxFlow = 50.0 m³/h
// --- Control Range (Constant Pressure Feature) ---
"0x0003": 500, // MinConstPressure = 50.0 kPa
"0x0004": 3000, // MaxConstPressure = 300.0 kPa
// --- Operating Status ---
"0x0010": 32, // PumpStatus = 0x0020 (Running bit set)
"0x0011": 0, // EffectiveOperationMode = Normal
"0x0012": 1, // EffectiveControlMode = ConstantPressure
"0x0013": 2350, // Capacity = 2350 (current operating point)
"0x0014": 2450, // Speed = 2450 RPM
// --- Cumulative Statistics ---
"0x0015": 8760, // LifetimeRunningHours = 8760 hours (~1 year)
"0x0016": 1500, // Power = 1500 W
"0x0017": 13140000, // LifetimeEnergyConsumed = 13140 kWh
// --- Control Parameters ---
"0x0020": 0, // OperationMode = Normal
"0x0021": 1 // ControlMode = ConstantPressure
}
The simplest fixed-speed pump may only have MaxPressure, MaxSpeed, MaxFlow, EffectiveOperationMode, EffectiveControlMode, and OperationMode as core attributes.
Control range attributes (0x0003~0x000C) and ControlMode all depend on Features.
Check FeatureMap (0xFFFC) before reading; reading an unsupported attribute returns UNSUPPORTED_ATTRIBUTE.
Common Scenarios
Scenario 1: HVAC Constant Pressure Water Supply
View Steps
- Read
FeatureMap (0xFFFC)to confirm the device supports PRSCONST (Bit 0) - Read
MinConstPressure (0x0003)andMaxConstPressure (0x0004)to get the pressure setpoint range - Write
ControlMode (0x0021) = 1(ConstantPressure) to switch the pump to constant pressure mode - Write
OperationMode (0x0020) = 0(Normal) to ensure the pump runs according to ControlMode - Subscribe to
EffectiveControlMode (0x0012)to confirm the mode has taken effect - Subscribe to
Capacity (0x0013)andSpeed (0x0014)for real-time operating status monitoring - Subscribe to
PumpStatus (0x0010)to monitor fault flags, focusing on DeviceFault and SupplyFault bits
Scenario 2: Pump Fault Monitoring and Alerting
View Steps
- Subscribe to all events — events are the primary channel for pump fault reporting, more timely than polling PumpStatus
- Process events by priority level:
- CRITICAL (DryRunning / PumpMotorFatalFailure / PumpBlocked / ElectronicFatalFailure) — full-screen alert + push notification + recommend immediate shutdown
- WARNING (SupplyVoltageLow / SystemPressureHigh / Leakage, etc.) — top banner alert + log entry
- INFO (GeneralFault) — log entry only
- Periodically read
PumpStatus (0x0010)bitmap to check for persistent faults (e.g., DeviceFault continuously set) - Read
LifetimeRunningHours (0x0015)and remind users to schedule maintenance when approaching the maintenance cycle (e.g., 8000 hours) - Read
Power (0x0016)andLifetimeEnergyConsumed (0x0017)to calculate energy efficiency trends — abnormal power increase under the same load may indicate mechanical wear