空气质量 Cluster(Air Quality)

Cluster ID: 0x005B  |  所在 Endpoint: 功能端点(通常 Endpoint 1 或空气质量传感器对应的端点)

Air Quality Cluster 提供一个综合性的空气质量指数,以枚举值的形式反映当前环境的整体空气状况。 这是一个极简的只读 Cluster —— 只有 1 个属性,没有任何命令,也没有 Feature Map。

定位与搭配

Air Quality 给出的是一个「总评」级别,不包含具体的污染物浓度数据。 实际应用中它通常与浓度测量类 Cluster 搭配出现,比如 PM2.5 浓度测量(0x042A)、 CO2 浓度测量(0x040D)、TVOC 浓度测量(0x042E)等。 这些 Cluster 提供精确数值,Air Quality 则提供一目了然的等级判断。

属性总览

Air Quality Cluster 只有一个属性。

ID 名称 类型 读写 说明
0x00 AirQuality AirQualityEnum 只读 当前综合空气质量等级

AirQuality(空气质量等级)

只读属性,表示设备所测得的当前综合空气质量等级。值从 0(Unknown)到 6(ExtremelyPoor)共 7 个级别。 设备根据内置传感器的读数综合计算后报告此值,具体的计算算法由设备厂商决定。

Unknown 不等于离线

Unknown(0) 表示设备当前无法确定空气质量等级(比如传感器正在预热、校准、或数据不足), 并不意味着设备离线或故障。App 端应将其展示为「检测中」或「暂无数据」,而非错误状态。

AirQualityEnum 枚举值

0
Unknown 未知 —— 传感器预热中或数据不足
1
Good 优 —— 空气质量令人满意,无健康风险
2
Fair 良 —— 可接受,敏感人群可能有轻微影响
3
Moderate 中等 —— 敏感人群可能出现健康反应
4
Poor 差 —— 所有人可能开始感受到健康影响
5
VeryPoor 很差 —— 健康警告,所有人可能有较严重反应
6
ExtremelyPoor 极差 —— 健康紧急状况,应立即采取防护措施

命令(Commands)

Air Quality Cluster 是纯只读的,没有任何命令。 App 只能通过读取属性或订阅上报来获取空气质量数据,无法向设备发送控制指令。

示例数据

读取一个空气质量传感器的 Air Quality Cluster 属性:

{
  // --- 属性 ---
  "0x0": 1           // AirQuality = Good(空气质量良好)
}

订阅空气质量变化(推荐方式):

{
  "subscribeRequests": [{
    "attributePath": {
      "endpointId": 1,
      "clusterId": "0x005B",
      "attributeId": "0x00"       // AirQuality
    },
    "minInterval": 10,            // 最短上报间隔 10 秒
    "maxInterval": 60             // 最长上报间隔 60 秒
  }]
}
为什么要订阅而不是轮询

空气质量是一个持续变化的指标。与其定时读取,不如通过 Subscribe 让设备在数值变化时主动上报。 设置合理的 minInterval 和 maxInterval 可以在实时性和功耗之间取得平衡。

场景一:空气净化器联动控制

空气质量传感器与净化器组成联动:传感器检测到空气变差时自动开启净化器,好转后自动关闭。

实现思路
  1. 订阅空气质量传感器的 AirQuality 属性变化
  2. 收到上报后根据等级判断:
    • Moderate(3) 及以上 → 发送 On/Off Cluster 的 On 命令,开启净化器
    • Good(1) → 发送 Off 命令,关闭净化器
    • Fair(2) → 维持当前状态,避免频繁开关
  3. 还可以结合 Level Control Cluster 调节净化器风速 —— Poor(4) 开高速,Moderate(3) 用低速

这个逻辑可以在 App 端实现,也可以利用 Matter 的自动化规则下发到 Hub/Bridge 上运行,后者不依赖 App 在线。

场景二:仪表盘展示

在智能家居 App 中将空气质量等级可视化展示,通常与浓度测量数据搭配呈现。

展示建议
  1. 用颜色区分等级(参考常见 AQI 配色):
    • Good → 绿色
    • Fair → 黄色
    • Moderate → 橙色
    • Poor → 红色
    • VeryPoor → 紫色
    • ExtremelyPoor → 褐红色
  2. Unknown 显示为灰色并附文字「检测中」,避免用户误以为是故障
  3. 在等级卡片下方展示具体浓度数据(来自搭配的 Cluster):
    • PM2.5 浓度(0x042A)
    • CO2 浓度(0x040D)
    • TVOC 浓度(0x042E)
  4. 保留历史趋势图,让用户看到空气质量随时间的变化