ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Matter Air Purifier 示例设备 PICS 能力清单与组合式设备实现解析

2026/9/18 0:52:55 拓冰建站 浏览量
Matter Air Purifier 示例设备 PICS 能力清单与组合式设备实现解析 Matter Air Purifier 示例设备 PICS 能力清单与组合式设备实现解析【免费下载链接】connectedhomeipMatter (formerly Project CHIP) creates more connections between more objects, simplifying development for manufacturers and increasing compatibility for consumers, guided by the Connectivity Standards Alliance.项目地址: https://gitcode.com/GitHub_Trending/co/connectedhomeip导读本文以 connectedhomeip 仓库中examples/air-purifier-app/air-purifier-common/的示例为载体系统讲解 Matter 空气净化器Air Purifier组合式设备的协议实现一致性声明PICS能力清单从 Fan Control、HEPA/活性炭滤芯监测、空气质量与多种污染物浓度测量到温湿度与恒温器集群的逐项能力声明格式与含义。读者将掌握 PICS 各项Server/Client/Feature/Attribute/Command的编写规范并理解这些声明在仓库源码.matterIDL、.zap配置、Manager 与 Delegate 实现中是如何落地为真实可运行的设备固件的。一、示例概述一个由 5 个端点组合而成的 Air Purifier在 Matter 设备模型中Air Purifier 是一个典型的组合式设备composed device。Linux 平台示例在 examples/air-purifier-app/linux/main.cpp 中定义了端点划分端点角色说明Endpoint 1Air Purifier主设备承载 Identify、OnOff、Fan Control、HEPA/活性炭滤芯监测等集群Endpoint 2Air Quality Sensor空气质量与多种污染物浓度测量集群Endpoint 3Temperature Sensor温度测量集群Endpoint 4Relative Humidity Sensor相对湿度测量集群Endpoint 5Thermostat恒温器集群这些子端点通过 SetParentEndpointForEndpoint 被挂载到 Endpoint 1 之下形成组合树。在 air-purifier-app.matter 中可以看到各端点的设备类型声明endpoint 1声明为ma_air_purifier 45, version 3endpoint 2声明为ma_air_quality_sensor 44, version 1endpoint 5声明为ma_thermostat 769, version 7。air-purifier-common目录下的 README.md 正是这份示例的PICS 声明文件它逐项列出了设备实现的支持范围是设备认证与互通性测试的重要依据。二、PICS 文件解读Matter 一致性声明的基础PICSProtocol Implementation Conformance Statement协议实现一致性声明用于精确描述一个设备实现了什么。本示例的 PICS 采用以下格式约定XXX.S1/XXX.C0Server服务器端被控或 Client客户端控制角色是否支持XXX.S.Fxx1/0Feature 特性位声明1 表示支持该特性0 表示不支持XXX.S.Axxxx1/0Attribute 属性声明支持1或明确不支持0XXX.S.M.xxx1/0用于标识特定机制/条件项如是否可写等XXX.S.Cxx.Rsp1/0Command 命令响应支持声明。下文逐集群拆解这份清单并结合源码说明其落地实现。三、Fan Control 集群风扇控制能力PICS 声明节选核心# Fan Control FAN.S1 FAN.C0 FAN.S.F001 FAN.S.F011 FAN.S.F021 FAN.S.F031 FAN.S.F041 FAN.S.F051 FAN.S.A00001 FAN.S.A00011 FAN.S.A00021 FAN.S.A00031 FAN.S.A00041 FAN.S.A00051 FAN.S.A00061 FAN.S.A00071 FAN.S.A00081 FAN.S.A00091 FAN.S.A000A1 FAN.S.A000B1 FAN.S.C00.Rsp1含义解读设备仅作为 Fan ControlServerFAN.S1不作为 ClientFAN.C0即本设备是被控风扇不控制他人特性位F00~F05全部置 1对应 Matter 规范中风扇控制集群的多个能力特性如多速、自动模式、摇摆/风向支持等属性A0000FanMode到A000B全部支持命令C00Step 步进调速命令支持响应。在 air-purifier-manager.h 中AirPurifierManager直接继承FanControl::Delegate并实现了HandleStep回调air-purifier-manager.h同时定义了低/中/高三档风速对应的 FanMode 数值边界FAN_MODE_LOW_LOWER_BOUND1至FAN_MODE_HIGH_UPPER_BOUND10见 air-purifier-manager.h。对应 air-purifier-app.matter 中的server cluster FanControl声明了fanModeSequence default 2、speedMax default 10、featureMap default 63二进制 111111与F00~F05六个特性全支持一致并处理Step命令。四、滤芯监测集群HEPA 与活性炭滤芯4.1 HEPA Filter MonitoringHEPA 滤芯监测# HEPA Filter Monitoring Cluster HEPAFREMON.S1 HEPAFREMON.C0 HEPAFREMON.S.F001 HEPAFREMON.S.F011 HEPAFREMON.S.F021 HEPAFREMON.S.A00001 HEPAFREMON.S.A00011 HEPAFREMON.S.A00021 HEPAFREMON.S.A00031 HEPAFREMON.S.A00041 HEPAFREMON.S.A00051 HEPAFREMON.S.C00.Rsp14.2 Activated Carbon Filter Monitoring活性炭滤芯监测# Activated Carbon Filter Monitoring Cluster ACFREMON.S1 ACFREMON.C0 ACFREMON.S.F001 ACFREMON.S.F011 ACFREMON.S.F021 ACFREMON.S.A00001 ACFREMON.S.A00011 ACFREMON.S.A00021 ACFREMON.S.A00031 ACFREMON.S.A00041 ACFREMON.S.A00051 ACFREMON.S.C00.Rsp1两个滤芯监测集群的声明结构一致Server 支持、Client 不支持三个特性F00~F02全支持六个属性A0000~A0005全支持命令C00ResetCondition重置滤芯状态支持响应。在 air-purifier-manager.h 中定义了两个 feature mapgHepaFilterFeatureMapkCondition、kWarning、kReplacementProductList条件、告警、替换产品列表三个特性gActivatedCarbonFeatureMap同样的三个特性。而 filter-delegates.h 分别实现了ActivatedCarbonFilterMonitoringDelegate与HepaFilterMonitoringDelegate它们继承ResourceMonitoring::Delegate并覆写Init、PreResetCondition、PostResetCondition从而支持ResetCondition命令。此外ImmutableReplacementProductListManager实现了ReplacementProductListManager::Next支撑replacementProductList属性对应特性kReplacementProductList。对应 air-purifier-app.matter 中 Endpoint 1 上的两个server cluster声明均handle command ResetCondition。五、Air Quality 集群与九种浓度测量集群5.1 Air Quality空气质量# Air Quality Cluster AIRQUAL.C0 AIRQUAL.S1 AIRQUAL.S.F001 AIRQUAL.S.F011 AIRQUAL.S.F021 AIRQUAL.S.F031 AIRQUAL.S.A00001 AIRQUAL.M.AirQualityChange0说明本设备作为 Server 提供空气质量等级A0000四个特性F00~F03支持AIRQUAL.M.AirQualityChange0表示不提供 AirQualityChange 相关机制。对应实现位于 air-quality-sensor-manager.h其在 air-purifier-app.matter 的 Endpoint 2 中声明server cluster AirQuality。5.2 Concentration Measurement 系列PICS 声明了 9 个浓度测量集群全部采用 Server 支持、Client 不支持、六个特性F00~F05支持、属性A0000~A000a支持的统一结构PICS 前缀集群属性范围CDOCONCCarbon Dioxide二氧化碳A0000~A0009CMOCONCCarbon Monoxide一氧化碳A0000~A0009NDOCONCNitrogen Dioxide二氧化氮A0000~A0009OZCONCOzone臭氧A0000~A0009PMICONCPM1粒径 1 微米颗粒物A0000~A0009FLDCONCFormaldehyde甲醛A0000~A0009PMHCONCPM10粒径 10 微米颗粒物A0000~A0009PMKCONCPM2.5粒径 2.5 微米颗粒物A0000~A0009TVOCCONCTVOC总挥发性有机物A0000~A0009RNCONCRadon氡气A0000~A0009以二氧化碳为例完整声明为CDOCONC.C0 CDOCONC.S1 CDOCONC.S.F001 CDOCONC.S.F011 CDOCONC.S.F021 CDOCONC.S.F031 CDOCONC.S.F041 CDOCONC.S.F051 CDOCONC.S.A00001 CDOCONC.S.A00011 CDOCONC.S.A00021 CDOCONC.S.A00031 CDOCONC.S.A00041 CDOCONC.S.A00051 CDOCONC.S.A00061 CDOCONC.S.A00071 CDOCONC.S.A00081 CDOCONC.S.A00091 CDOCONC.S.A000a1这些浓度集群在 air-purifier-app.matter 的 Endpoint 2 上逐个声明为server cluster其属性集measuredValue、minMeasuredValue、maxMeasuredValue、peakMeasuredValue、averageMeasuredValue、uncertainty、measurementUnit、measurementMedium、levelValue等与 PICS 中的A0000~A000a一一对应。六、温湿度与恒温器集群6.1 Temperature Measurement温度测量# Temperature Measurement Cluster TMP.S1 TMP.S.A00001 TMP.S.A00011 TMP.S.A00021 TMP.S.A00031 TMP.M.ManuallyControlled06.2 Relative Humidity相对湿度# Relative Humidity Cluster RH.S1 RH.S.A00001 RH.S.A00011 RH.S.A00021 RH.S.A00031 RH.M.ManuallyControlled0两者均在 Endpoint 3 / Endpoint 4 上声明见 air-purifier-app.matter 与 air-purifier-app.matter由TemperatureSensorManager与RelativeHumiditySensorManager见 air-purifier-manager.h管理。6.3 Thermostat恒温器# Thermostat Cluster TSTAT.S 1 TSTAT.S.F00 1 TSTAT.S.F01 0 TSTAT.S.F02 0 TSTAT.S.F03 0 TSTAT.S.F04 0 TSTAT.S.F05 0 TSTAT.S.F06 0恒温器集群只启用F00Heating 加热模式一个特性其余六个特性F01~F06对应制冷/自动/风扇等模式均明确置 0。属性声明中大量属性为 0明确不支持仅少数为 1属性值含义A0000LocalTemperature1支持本地温度A0003AbsMinHeatSetpointLimit1支持绝对最小加热设定点限制A0004AbsMaxHeatSetpointLimit1支持绝对最大加热设定点限制A0012OccupiedHeatingSetpoint1支持占用状态加热设定点A001bControlSequenceOfOperation1支持控制运行顺序A001cSystemMode1支持系统模式A0025ThermostatRunningState1支持运行状态A0029FeatureMap1支持特性位图同时TSTAT.S.M.MinSetpointDeadBandWritable 0、TSTAT.S.M.HVACSystemTypeConfigurationWritable 0表示这两个机制项不可写。命令方面仅TSTAT.S.C00.Rsp 1SetpointRaiseLowerC01~C04均为 0。这与 air-purifier-app.matter 中 Endpoint 5 的server cluster Thermostat声明完全吻合absMinHeatSetpointLimit default 1000、absMaxHeatSetpointLimit default 3000、occupiedHeatingSetpoint default 2000、controlSequenceOfOperation default 2、featureMap default 1并handle command SetpointRaiseLower。ThermostatManager见 air-purifier-manager.h负责该集群并在加热状态变化时通过HeatingCallback联动主净化器的风扇逻辑。七、PICS 背后的实现骨架从声明到固件PICS 声明与实现之间存在清晰的对应关系其落地链路如下.zap配置 air-purifier-app.zap 是 ZAPZigbee Cluster Configurator的工程文件用于图形化配置端点与集群.matterIDL air-purifier-app.matter 是 ZAP 自动生成的 IDL 审阅文件描述了完整的端点/集群/属性/命令模型即上文各集群声明出处构建配置 BUILD.gn 通过chip_data_model(air-purifier-common)目标引用air-purifier-app.zap并设置is_server true与 PICS 中各类XXX.S1的角色声明一致运行时逻辑 air-purifier-manager.cpp 实现AirPurifierManager单例InitInstance创建主管理器并初始化各个子管理器见 air-purifier-manager.h属性变化统一经PostAttributeChangeCallback按 clusterId 分发到HandleFanControlAttributeChange、HandleThermostatAttributeChange等处理函数。由此可以推断PICS 中每一个支持项都不是孤立的声明而是由 Delegate/Manager 类、IDL 模型与属性回调共同支撑的完整实现。八、在 Linux 上构建与运行示例PICS 声明之外该示例提供了 Linux 参考实现构建步骤如下详见 examples/air-purifier-app/linux/README.md# 1. 安装工具链 $ sudo apt-get install git gcc g python pkg-config libssl-dev libdbus-1-dev \ libglib2.0-dev ninja-build python3-venv python3-dev unzip # 2. 初始化子模块并激活构建环境 $ cd ~/connectedhomeip/examples/air-purifier-app/linux/ $ git submodule update --init $ source third_party/connectedhomeip/scripts/activate.sh # 3. 生成构建文件并编译 $ gn gen out/debug $ ninja -C out/debug常用命令行参数--wifi启用 WiFi 管理功能用于 WiFi 配网--thread启用 Thread 管理功能需要 ot-br-posix dbus 守护进程运行--ble-controller selector指定 BLE 控制器用于广播与连接例如sudo out/debug/chip-air-purifier-app --ble-controller 1。如需在 Raspberry Pi 4 等 ARM64 平台运行完整示例含 BLE 配网与 ChipTool 联调可参考 Linux BLE Settings 说明若存在及该 README 的Running the Complete Example章节。若需交叉编译到 NXP i.MX 8M Mini EVK参见 docs/platforms/nxp/nxp_imx8m_linux_examples.md。九、小结本示例的 PICS 清单完整勾勒出一台现代 Matter 空气净化器的能力画像核心控制Fan ControlServer 角色6 个特性、12 个属性、Step 命令耗材管理HEPA 与活性炭双滤芯监测条件/告警/替换产品列表特性 ResetCondition 命令环境感知Air Quality 等级 9 种污染物浓度测量CO₂、CO、NO₂、O₃、PM1、PM10、PM2.5、TVOC、甲醛、氡舒适联动温度、相对湿度、恒温器仅加热模式且恒温器加热状态可反向驱动风扇逻辑。从 PICS 到.matterIDL、AirPurifierManager/各 Delegate 的实现再到 Linux 参考应用仓库提供了完整的可追溯链路。这份 PICS 文件既是设备实现者对照规范自查的清单也是 Matter 认证测试中声明与实测对照的原始依据值得作为开发自有空气净化器设备的起点模板。【免费下载链接】connectedhomeipMatter (formerly Project CHIP) creates more connections between more objects, simplifying development for manufacturers and increasing compatibility for consumers, guided by the Connectivity Standards Alliance.项目地址: https://gitcode.com/GitHub_Trending/co/connectedhomeip创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考