空气质量 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(0) 表示设备当前无法确定空气质量等级(比如传感器正在预热、校准、或数据不足),
并不意味着设备离线或故障。App 端应将其展示为「检测中」或「暂无数据」,而非错误状态。
AirQualityEnum 枚举值
命令(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 可以在实时性和功耗之间取得平衡。
场景一:空气净化器联动控制
空气质量传感器与净化器组成联动:传感器检测到空气变差时自动开启净化器,好转后自动关闭。
- 订阅空气质量传感器的
AirQuality属性变化 -
收到上报后根据等级判断:
Moderate(3)及以上 → 发送 On/Off Cluster 的 On 命令,开启净化器Good(1)→ 发送 Off 命令,关闭净化器Fair(2)→ 维持当前状态,避免频繁开关
- 还可以结合 Level Control Cluster 调节净化器风速 ——
Poor(4)开高速,Moderate(3)用低速
这个逻辑可以在 App 端实现,也可以利用 Matter 的自动化规则下发到 Hub/Bridge 上运行,后者不依赖 App 在线。
场景二:仪表盘展示
在智能家居 App 中将空气质量等级可视化展示,通常与浓度测量数据搭配呈现。
-
用颜色区分等级(参考常见 AQI 配色):
Good→ 绿色Fair→ 黄色Moderate→ 橙色Poor→ 红色VeryPoor→ 紫色ExtremelyPoor→ 褐红色
Unknown显示为灰色并附文字「检测中」,避免用户误以为是故障-
在等级卡片下方展示具体浓度数据(来自搭配的 Cluster):
- PM2.5 浓度(
0x042A) - CO2 浓度(
0x040D) - TVOC 浓度(
0x042E)
- PM2.5 浓度(
- 保留历史趋势图,让用户看到空气质量随时间的变化