水泵控制 Cluster(PumpConfigurationAndControl)
Cluster ID: 0x0200 |
所在 Endpoint: 通常在 Pump Endpoint(水泵功能端点)
PumpConfigurationAndControl 是 Matter 中控制水泵设备的核心 Cluster, 适用于 HVAC 系统循环泵、生活供水泵、工业用泵等场景。 它定义了水泵的运行模式、控制模式、转速/流量/压力范围、运行状态监控和故障事件上报等全部能力。 水泵类设备的配置和运维都围绕这个 Cluster 展开。
PumpConfigurationAndControl 的能力差异很大 —— 一个简单的定速泵可能只支持恒定转速模式,
而一台变频泵可能同时支持恒定压力、补偿压力、恒定流量、恒定温度和自动模式。
每种控制模式由对应的 Feature 启用,Feature 还决定了哪些范围属性可用。
开发前先读取 FeatureMap (0xFFFC),确认设备支持哪些控制模式,再决定 UI 布局。
Feature 位图
PumpConfigurationAndControl Cluster 通过 FeatureMap(0xFFFC)声明设备支持哪些控制模式。Feature 直接决定了可用的属性范围和 ControlMode 选项:
一台简单的定速循环泵:FeatureMap = 0x04(仅 SPD),只能以恒定转速运行。
一台变频供水泵:FeatureMap = 0x23(PRSCONST + PRSCOMP + AUTO),支持恒定压力、补偿压力和自动模式。
一台全功能工业泵:FeatureMap = 0x7F(全部 7 个 Feature),支持所有控制模式和本地操作。
属性详解
PumpConfigurationAndControl Cluster 的属性按功能分为五组。点击下方汇总表中的属性 ID 可跳转到对应的详细说明。
| ID | 名称 | 类型 | 分组 | 说明 |
|---|---|---|---|---|
0x0000 |
MaxPressure | int16 / null | 设备能力上限 | 最大压力(1/10 kPa) |
0x0001 |
MaxSpeed | uint16 / null | 设备能力上限 | 最大转速(RPM) |
0x0002 |
MaxFlow | uint16 / null | 设备能力上限 | 最大流量(1/10 m³/h) |
0x0003 |
MinConstPressure | int16 / null | 控制范围 | 恒定压力模式最小值 |
0x0004 |
MaxConstPressure | int16 / null | 控制范围 | 恒定压力模式最大值 |
0x0005 |
MinCompPressure | int16 / null | 控制范围 | 补偿压力模式最小值 |
0x0006 |
MaxCompPressure | int16 / null | 控制范围 | 补偿压力模式最大值 |
0x0007 |
MinConstSpeed | uint16 / null | 控制范围 | 恒定转速模式最小值 |
0x0008 |
MaxConstSpeed | uint16 / null | 控制范围 | 恒定转速模式最大值 |
0x0009 |
MinConstFlow | uint16 / null | 控制范围 | 恒定流量模式最小值 |
0x000A |
MaxConstFlow | uint16 / null | 控制范围 | 恒定流量模式最大值 |
0x000B |
MinConstTemp | int16 / null | 控制范围 | 恒定温度模式最小值 |
0x000C |
MaxConstTemp | int16 / null | 控制范围 | 恒定温度模式最大值 |
0x0010 |
PumpStatus | bitmap16 | 运行状态 | 水泵状态位图 |
0x0011 |
EffectiveOperationMode | OperationModeEnum | 运行状态 | 实际生效的运行模式 |
0x0012 |
EffectiveControlMode | ControlModeEnum | 运行状态 | 实际生效的控制模式 |
0x0013 |
Capacity | int16 / null | 运行状态 | 当前工作点容量 |
0x0014 |
Speed | uint16 / null | 运行状态 | 当前转速(RPM) |
0x0015 |
LifetimeRunningHours | uint24 / null | 累计统计 | 累计运行小时数 |
0x0016 |
Power | uint24 / null | 累计统计 | 当前功率(W) |
0x0017 |
LifetimeEnergyConsumed | uint32 / null | 累计统计 | 累计耗电量(Wh) |
0x0020 |
OperationMode | OperationModeEnum | 控制参数 | 运行模式(可写) |
0x0021 |
ControlMode | ControlModeEnum | 控制参数 | 控制模式(可写) |
PumpConfigurationAndControl Cluster 没有定义任何命令。
所有控制操作通过写入属性完成 —— 写入 OperationMode (0x0020) 切换运行模式,
写入 ControlMode (0x0021) 切换控制模式。这与大部分 HVAC 类 Cluster 的设计一致。
设备能力上限(0x0000 ~ 0x0002)
描述水泵硬件的物理极限参数。这三个属性是只读的,由设备固件在出厂时设定,代表水泵能达到的最大性能指标。
| ID | 名称 | 类型 | 说明 |
|---|---|---|---|
0x0000 |
MaxPressure 最大压力 |
int16 / null | 水泵能输出的最大压力,单位 1/10 kPa。例如 3200 = 320.0 kPa。Nullable —— null 表示设备未提供此参数 |
0x0001 |
MaxSpeed 最大转速 |
uint16 / null | 水泵电机的最大转速,单位 RPM。例如 2900 = 2900 转/分钟。Nullable |
0x0002 |
MaxFlow 最大流量 |
uint16 / null | 水泵能输出的最大流量,单位 1/10 m³/h。例如 500 = 50.0 m³/h。Nullable |
MaxPressure 和 MaxFlow 的单位分别是 1/10 kPa 和 1/10 m³/h,
不是整数 kPa 和 m³/h。例如值为 3200 表示 320.0 kPa,值为 500 表示 50.0 m³/h。
界面展示时记得除以 10。温度类属性(MinConstTemp / MaxConstTemp)也是 1/10 °C 精度。
控制范围(0x0003 ~ 0x000C)
定义各控制模式下设定值的有效范围。每种控制模式对应一对 Min/Max 属性, 只有设备支持对应 Feature 时这对属性才存在。App 在渲染滑块或输入框时应以这些值为上下限。
| ID | 名称 | 类型 | Feature | 说明 |
|---|---|---|---|---|
0x0003 |
MinConstPressure 恒定压力下限 |
int16 / null | PRSCONST | 恒定压力模式下可设定的最小压力,单位 1/10 kPa |
0x0004 |
MaxConstPressure 恒定压力上限 |
int16 / null | PRSCONST | 恒定压力模式下可设定的最大压力,单位 1/10 kPa |
0x0005 |
MinCompPressure 补偿压力下限 |
int16 / null | PRSCOMP | 补偿压力模式下可设定的最小压力,单位 1/10 kPa |
0x0006 |
MaxCompPressure 补偿压力上限 |
int16 / null | PRSCOMP | 补偿压力模式下可设定的最大压力,单位 1/10 kPa |
0x0007 |
MinConstSpeed 恒定转速下限 |
uint16 / null | SPD | 恒定转速模式下可设定的最小转速,单位 RPM |
0x0008 |
MaxConstSpeed 恒定转速上限 |
uint16 / null | SPD | 恒定转速模式下可设定的最大转速,单位 RPM |
0x0009 |
MinConstFlow 恒定流量下限 |
uint16 / null | FLW | 恒定流量模式下可设定的最小流量,单位 1/10 m³/h |
0x000A |
MaxConstFlow 恒定流量上限 |
uint16 / null | FLW | 恒定流量模式下可设定的最大流量,单位 1/10 m³/h |
0x000B |
MinConstTemp 恒定温度下限 |
int16 / null | TEMP | 恒定温度模式下可设定的最小温度,单位 1/10 °C |
0x000C |
MaxConstTemp 恒定温度上限 |
int16 / null | TEMP | 恒定温度模式下可设定的最大温度,单位 1/10 °C |
恒定压力(ConstantPressure):水泵维持固定的出口压力,不管流量如何变化。适合供水系统,保证各出水口压力稳定。
补偿压力(ProportionalPressure / CompensatedPressure):水泵根据流量自动调整压力 —— 流量小时压力低,流量大时压力高。
适合大型管网系统,在低负荷时节能。
运行状态(0x0010 ~ 0x0014)
反映水泵当前的实时运行状况。这些属性都是只读的,由设备自动维护。
| ID | 名称 | 类型 | 说明 |
|---|---|---|---|
0x0010 |
PumpStatus 水泵状态位图 |
bitmap16 | 水泵当前状态的位图标志,包含运行/故障/远程控制等信息。详见下方 PumpStatus 位图 章节。可选属性 |
0x0011 |
EffectiveOperationMode 实际运行模式 |
OperationModeEnum | 水泵实际生效的运行模式。可能与写入的 OperationMode 不同 —— 例如设备处于本地面板控制时,即使远程写入 Normal,实际仍为 Local |
0x0012 |
EffectiveControlMode 实际控制模式 |
ControlModeEnum | 水泵实际生效的控制模式。当 OperationMode 为 Minimum 或 Maximum 时,设备会覆盖 ControlMode 的设定值 |
0x0013 |
Capacity 当前容量 |
int16 / null | 水泵当前工作点的容量值,单位和含义取决于当前控制模式(压力 / 转速 / 流量 / 温度)。Nullable |
0x0014 |
Speed 当前转速 |
uint16 / null | 水泵电机当前实际转速,单位 RPM。Nullable。可选属性 |
EffectiveOperationMode 和 EffectiveControlMode 是只读的「实际生效值」,
OperationMode 和 ControlMode 是可写的「期望值」。
两者可能不一致 —— 例如写入 OperationMode = Normal 后,
如果水泵面板切换到本地控制,EffectiveOperationMode 会变为 Local。
App 界面应以 Effective 值为准显示当前状态。
累计统计(0x0015 ~ 0x0017)
记录水泵的运行时长和能耗数据,用于运维和能效分析。
| ID | 名称 | 类型 | 说明 |
|---|---|---|---|
0x0015 |
LifetimeRunningHours 累计运行小时 |
uint24 / null | 水泵从出厂至今的累计运行小时数。可读写(支持重置)。默认值 0。Nullable。可选属性 |
0x0016 |
Power 当前功率 |
uint24 / null | 水泵当前消耗的电功率,单位 W。例如 1500 = 1.5 kW。Nullable。可选属性 |
0x0017 |
LifetimeEnergyConsumed 累计耗电量 |
uint32 / null | 水泵从出厂至今的累计耗电量,单位 Wh。可读写(支持重置)。默认值 0。Nullable。可选属性 |
LifetimeRunningHours 对水泵维保非常重要 —— 大部分水泵的维保周期按运行小时计算(如每 8000 小时更换密封件)。
App 可以基于此属性实现「维保到期提醒」功能。
LifetimeEnergyConsumed 单位是 Wh(瓦时),界面展示时通常转换为 kWh(除以 1000)。
控制参数(0x0020 ~ 0x0021)
水泵的核心控制属性 —— 通过写入这两个属性控制水泵的运行方式。 这是 PumpConfigurationAndControl 唯一可写的应用属性。
| ID | 名称 | 类型 | 说明 |
|---|---|---|---|
0x0020 |
OperationMode 运行模式 |
OperationModeEnum | 水泵的运行模式。可读写,默认 Normal (0)。决定水泵以什么方式运行。见下方枚举 |
0x0021 |
ControlMode 控制模式 |
ControlModeEnum | 水泵的控制模式。可读写,默认 ConstantSpeed (0)。决定水泵以什么物理量为控制目标。可选属性。见下方枚举 |
OperationMode 枚举值
ControlMode 枚举值
ControlMode 决定水泵以什么物理量为调节目标。仅在 OperationMode = Normal 时生效。
注意 ControlMode 枚举值不是连续的 —— 没有 4 和 6。
ConstantTemperature 是 5,Automatic 是 7。
解析时不能用数组下标直接映射,需要显式匹配。
PumpStatus 位图
PumpStatus (0x0010) 是一个 16 位位图,每个位代表水泵的一种状态标志。
多个位可以同时为 1 —— 例如水泵正在运行且处于本地控制时,Running 和 LocalOverride 同时置位。
PumpStatus = 0x0020(十进制 32)= Bit 5 置位 = 水泵正在运行(Running),其他状态均正常。
PumpStatus = 0x0023(十进制 35)= Bit 0 + Bit 1 + Bit 5 = 水泵运行中,但有设备故障和供电故障 —— 需要立即告警。
事件(Events)
PumpConfigurationAndControl 定义了 17 个事件,全部用于故障和异常上报。 这是 Matter 中事件最多的 Cluster 之一 —— 水泵作为关键基础设施,需要细粒度的故障分类。 所有事件均无数据字段,事件本身即代表对应状况的发生。
| ID | 名称 | 优先级 | 说明 |
|---|---|---|---|
0x00 |
SupplyVoltageLow | WARNING | 供电电压过低 |
0x01 |
SupplyVoltageHigh | WARNING | 供电电压过高 |
0x02 |
PowerMissingPhase | WARNING | 三相电缺相 |
0x03 |
SystemPressureLow | WARNING | 系统压力过低 |
0x04 |
SystemPressureHigh | WARNING | 系统压力过高 |
0x05 |
DryRunning | CRITICAL | 干转(水泵无水运行,可能烧毁) |
0x06 |
MotorTemperatureHigh | WARNING | 电机温度过高 |
0x07 |
PumpMotorFatalFailure | CRITICAL | 电机致命故障(需立即停机) |
0x08 |
ElectronicTemperatureHigh | WARNING | 控制板温度过高 |
0x09 |
PumpBlocked | CRITICAL | 水泵堵转(叶轮卡住) |
0x0A |
SensorFailure | WARNING | 传感器故障 |
0x0B |
ElectronicNonFatalFailure | WARNING | 控制板非致命故障 |
0x0C |
ElectronicFatalFailure | CRITICAL | 控制板致命故障 |
0x0D |
GeneralFault | INFO | 通用故障(未归类的一般性问题) |
0x0E |
Leakage | WARNING | 泄漏 —— 检测到水泵或管路漏水 |
0x0F |
AirDetection | WARNING | 气体检测 —— 管路中检测到空气 |
0x10 |
TurbineOperation | WARNING | 涡轮流量异常 —— 涡轮流量计检测到异常流量 |
标记为 CRITICAL 的事件(DryRunning、PumpMotorFatalFailure、PumpBlocked、ElectronicFatalFailure) 表示水泵可能正在遭受不可逆损伤。App 收到这些事件时应立即弹出全屏告警, 建议用户停机检查。干转(DryRunning)尤其危险 —— 水泵无水运行几分钟就可能烧毁机械密封。
示例数据
一台支持恒定压力控制的变频水泵在正常运行中的 PumpConfigurationAndControl Cluster 读取结果:
{
// --- 设备能力上限 ---
"0x0000": 3200, // MaxPressure = 320.0 kPa(最大压力)
"0x0001": 2900, // MaxSpeed = 2900 RPM(最大转速)
"0x0002": 500, // MaxFlow = 50.0 m³/h(最大流量)
// --- 控制范围(恒定压力 Feature)---
"0x0003": 500, // MinConstPressure = 50.0 kPa
"0x0004": 3000, // MaxConstPressure = 300.0 kPa
// --- 运行状态 ---
"0x0010": 32, // PumpStatus = 0x0020(Running 位置 1)
"0x0011": 0, // EffectiveOperationMode = Normal
"0x0012": 1, // EffectiveControlMode = ConstantPressure
"0x0013": 2350, // Capacity = 2350(当前工作点容量)
"0x0014": 2450, // Speed = 2450 RPM(当前转速)
// --- 累计统计 ---
"0x0015": 8760, // LifetimeRunningHours = 8760 小时(约 1 年)
"0x0016": 1500, // Power = 1500 W(当前功率)
"0x0017": 13140000, // LifetimeEnergyConsumed = 13140 kWh
// --- 控制参数 ---
"0x0020": 0, // OperationMode = Normal(正常运行)
"0x0021": 1 // ControlMode = ConstantPressure(恒定压力)
}
最简单的定速水泵可能只有 MaxPressure、MaxSpeed、MaxFlow、EffectiveOperationMode、EffectiveControlMode 和 OperationMode 这几个核心属性。
控制范围属性(0x0003~0x000C)和 ControlMode 都依赖 Feature。
读取前先检查 FeatureMap (0xFFFC),对不支持的属性发起读取会返回 UNSUPPORTED_ATTRIBUTE。
常见场景
场景 1:HVAC 恒定压力供水
查看步骤
- 读取
FeatureMap (0xFFFC),确认设备支持 PRSCONST(Bit 0) - 读取
MinConstPressure (0x0003)和MaxConstPressure (0x0004)获取压力设定范围 - 写入
ControlMode (0x0021) = 1(ConstantPressure),将水泵切换到恒定压力模式 - 写入
OperationMode (0x0020) = 0(Normal),确保水泵按 ControlMode 运行 - 订阅
EffectiveControlMode (0x0012)确认模式已生效 - 订阅
Capacity (0x0013)和Speed (0x0014)实时监控运行状态 - 订阅
PumpStatus (0x0010)监控故障标志,关注 DeviceFault 和 SupplyFault 位
场景 2:水泵故障监控与告警
查看步骤
- 订阅全部事件 —— 事件是水泵故障上报的主要通道,比轮询 PumpStatus 更及时
- 按事件优先级分级处理:
- CRITICAL(DryRunning / PumpMotorFatalFailure / PumpBlocked / ElectronicFatalFailure)—— 全屏告警 + 推送通知 + 建议立即停机
- WARNING(SupplyVoltageLow / SystemPressureHigh / Leakage 等)—— 顶部横幅告警 + 记录日志
- INFO(GeneralFault)—— 仅记录日志
- 定期读取
PumpStatus (0x0010)位图,检查是否有持续性故障(如 DeviceFault 一直置位) - 读取
LifetimeRunningHours (0x0015),当接近维保周期(如 8000 小时)时提醒用户安排维保 - 读取
Power (0x0016)和LifetimeEnergyConsumed (0x0017),计算能效趋势 —— 同等负荷下功率异常升高可能预示机械磨损