活性炭滤芯监测 Cluster(ActivatedCarbonFilterMonitoring)

Cluster ID: 0x0072  |  所在 Endpoint: 功能端点(通常为 Endpoint 1 或独立滤芯端点)

ActivatedCarbonFilterMonitoring 用于监测活性炭滤芯的生命周期 —— 剩余寿命、降解方向、更换提醒、替换产品信息。 它与 HEPA Filter Monitoring(0x0071)结构完全相同(相同的属性、命令、枚举),区别仅在滤芯类型。

活性炭 vs HEPA:过滤对象不同

HEPA 滤芯捕捉颗粒物(PM2.5、粉尘、花粉、宠物毛发),靠物理拦截。
活性炭滤芯吸附气态污染物(甲醛、VOC、异味、烟味),靠化学吸附。
空气净化器通常同时搭载两层滤芯,各自有独立的寿命周期 —— 因此需要两个独立的 Cluster 分别监测。

Feature Map(功能位)

三个可选功能位决定设备支持哪些属性,与 HEPA Filter Monitoring 完全一致。

0x01
CON(Condition) 支持 Condition 属性,报告滤芯剩余百分比
0x02
WAR(Warning) 支持 ChangeIndication 属性,发出更换提醒
0x04
REP(ReplacementProductList) 支持 ReplacementProductList 属性,提供替换滤芯产品信息

属性总览

所有属性均与 HEPA Filter Monitoring 相同,Feature 列标注需要哪个功能位。

ID 名称 类型 Feature 说明
0x00 Condition percent CON 滤芯剩余寿命百分比(0~100)
0x01 DegradationDirection enum8 CON 降解方向(值变小=更旧 or 值变大=更旧)
0x02 ChangeIndication enum8 必选 当前更换状态(OK / Warning / Critical)
0x03 InPlaceIndicator bool 可选 滤芯是否已安装到位
0x04 LastChangedTime epoch-s 可选 上次更换滤芯的时间戳
0x05 ReplacementProductList list REP 推荐替换产品列表

Condition(滤芯剩余寿命)

0~100 的百分比值,表示活性炭滤芯的剩余吸附能力。100 表示全新,0 表示完全耗尽(当 DegradationDirection = Down 时)。 活性炭的衰减速度取决于环境中 VOC/异味的浓度,高污染环境下消耗更快。

DegradationDirection(降解方向)

告诉 App 端 Condition 值的含义方向。

0
Down 值从 100 降到 0,越小越需更换(最常见)
1
Up 值从 0 升到 100,越大越需更换

ChangeIndication(更换状态)

设备对滤芯当前状态的综合判断。必选属性,即使不支持 CON Feature 也必须实现。

0
OK 滤芯状态良好,无需更换
1
Warning 建议尽快更换(吸附能力下降)
2
Critical 必须立即更换(已丧失吸附能力)

InPlaceIndicator(滤芯安装状态)

true 表示滤芯已正确安装,false 表示滤芯缺失或未装好。 带有物理检测开关的设备可以在用户取出滤芯时自动更新此值。

LastChangedTime(上次更换时间)

Unix 时间戳(秒),记录上一次更换活性炭滤芯的时间。配合 Condition 可以计算滤芯的实际使用天数和平均消耗速度。 用户更换滤芯并执行 ResetCondition 命令后,设备应更新此值。

ReplacementProductList(替换产品列表)

设备推荐的替换滤芯产品列表,每条记录包含产品标识类型和标识值。App 可据此直接引导用户购买。

字段类型说明
ProductIdentifierType enum8 标识类型(见下方枚举)
ProductIdentifierValue string 标识值(如 UPC 码、EAN 码、型号等)

ProductIdentifierTypeEnum 枚举值

0
UPC 通用产品代码
1
GTIN-8 8 位全球贸易项目代码
2
EAN 欧洲商品编号
3
GTIN-14 14 位全球贸易项目代码
4
OEM 厂商自定义型号

命令(Commands)

只有一个命令,用于更换滤芯后重置状态。

ID 名称 说明
0x00 ResetCondition 重置滤芯状态(更换滤芯后调用)

ResetCondition —— 重置滤芯状态(0x00)

用户更换活性炭滤芯后,通过 App 发送此命令。设备收到后应将 Condition 恢复到 100(或 0,取决于 DegradationDirection), 将 ChangeIndication 重置为 OK,并更新 LastChangedTime 为当前时间。无参数,直接发送即可。

请求示例:

{
  "invokeRequests": [{
    "commandPath": {
      "endpointId": 1,
      "clusterId": "0x0072",
      "commandId": "0x00"          // ResetCondition
    },
    "commandFields": {}
  }]
}

示例数据

读取一台空气净化器的活性炭滤芯状态:

{
  // --- 属性(ActivatedCarbonFilterMonitoring Cluster) ---
  "0x0": 72,          // Condition = 72%(滤芯剩余寿命)
  "0x1": 0,           // DegradationDirection = Down(值越小越需更换)
  "0x2": 1,           // ChangeIndication = Warning(建议更换)
  "0x3": true,        // InPlaceIndicator = true(滤芯已安装)
  "0x4": 1718380800,  // LastChangedTime = 2024-06-15T00:00:00Z
  "0x5": [{           // ReplacementProductList
    "productIdentifierType": 3,
    "productIdentifierValue": "AC-FILTER-2024-VOC"
  }]
}

应用场景

场景一:双滤芯空气净化器

一台空气净化器同时搭载 HEPA 滤芯和活性炭滤芯,分别放在两个 Endpoint 上(或同一 Endpoint 上两个不同的 Cluster)。 App 需要分别显示两层滤芯的寿命,因为它们的消耗速度不同 —— PM2.5 高的环境 HEPA 先耗尽,装修房间则活性炭先耗尽。

{
  // Endpoint 1 — HEPA 滤芯(HEPAFilterMonitoring 0x0071)
  "hepa": {
    "0x0": 45,         // Condition = 45%
    "0x2": 1           // ChangeIndication = Warning
  },
  // Endpoint 2 — 活性炭滤芯(ActivatedCarbonFilterMonitoring 0x0072)
  "carbon": {
    "0x0": 78,         // Condition = 78%
    "0x2": 0           // ChangeIndication = OK
  }
}

App 端建议用双进度条或双环形图分别展示,让用户一目了然知道该换哪层滤芯。

场景二:VOC 吸附能力追踪

智能新风系统内置 VOC 传感器,结合活性炭滤芯的 Condition 属性,可以分析滤芯的实际吸附效率 —— 当 VOC 浓度持续偏高且 Condition 下降到 50% 以下时,说明吸附能力明显衰减,App 可提前推送更换建议, 而不是等到 ChangeIndication 变为 Critical 才通知用户。

结合 LastChangedTime 还可以统计滤芯的平均使用寿命,帮助用户规划耗材采购周期。

与 HEPA Filter Monitoring 的关系

两个 Cluster 的属性、命令、枚举定义完全一致,仅 Cluster ID 不同(HEPA = 0x0071,活性炭 = 0x0072)。 App 开发时可以复用同一套 UI 组件和数据解析逻辑,只需根据 Cluster ID 显示不同的滤芯名称和图标即可。