【chip-tool】 使用 chip-tool 工具测试matter设备
matter 设备作为一个比较新的协议,可以打破生态壁垒,最近比较火爆,而 chip-tool 是一个调试matter设备的重要工具,由于资料都是英文的,对于新手很不友好,最近项目需要将工具的资料整理如下:
关于 chip-tool 工具常用指令,请参考博文:【】
参考:【Using CHIP Tool for Matter device testing】
说明:教程使用的示例为【 Matter Lighting Application Example 】,使用支持 BLE 的设备。若果使用不同的示例,步骤7有所不同,取决于你的application中的cluster。
1. 主要步骤
使用chip-tool 工具调试 matter设备主要步骤如下:
- 编译matter设备的固件程序
- 在 matter 设备上开启BLE蓝牙广播
- 确保已设置IP网络
- 确定网络配对凭据
- 确定 matter 设备的
discriminator
和 配置的PIN Code
- 将Matter设备接入现有IP网络
- 控制应用程序数据模型的
cluster
- 从matter设备中读取基本信息
1.1 编译matter设备的固件程序
1.2 在 matter 设备上开启BLE蓝牙广播
1.3 确保已设置IP网络
1.4 确定网络配对凭据
1.5 确定 matter 设备的 discriminator
和 配置的 PIN Code
1.6 将Matter设备接入现有IP网络
1.7 控制应用程序数据模型的 cluster
1.8 从matter设备中读取基本信息
2. 调试步骤详细说明
以下是详细说明:
-
步骤1:编译matter设备的固件程序。
connectedhomeip/examples/lighting-app/esp32/
以此为例。参考:【Matter ESP32 Lighting Example】 -
步骤2:在 matter 设备上开启BLE蓝牙广播。一些示例配置为在 boot 时就自动广播,有些示例需要物理触发,如按下按键。
-
步骤3:确保已设置IP网络。要执行下一步,IP网络必须已启动并正在运行。例如,可以使用 OpenThread Border Router 建立线程网络。
-
步骤4:确定网络配对凭据。在使用
chip-tool
调试设备时,必须向其提供网络凭据(network credentials
),才能使用网络接口,如thread或者wifi,Matter规范==没有定义==控制器获取网络证书的首选方式。本教程中使用thread network credentials
,具体的 thread 和 wifi 的 network credentials 请参考【Thread network credentials】 -
步骤5:确定 matter 设备的 discriminator 和 配置的 PIN Code,matter设备使用 12-bit 的值 discriminator 用于区分多个可调式设备的广播信息,并且用 27-bit 的 PIN code 来认证设备,比如如下
- I: 270 [DL] Setup
Pin Code
: 20202021 - I: 273 [DL] Setup
Discriminator
: 3840 (0xF00)
- I: 270 [DL] Setup
-
步骤6:将Matter设备接入现有IP网络。matter 设备可能使用不同的调试通道,通常未连接到目标ip网络的设备使用蓝牙BLE作为调试通道,加入ip网络后,就使用基于IP协议调试matter设备
-
【基于BLE调试】
-
蓝牙配网使设备加入到ip网络中,在matter网络中调试设备,
设备成功加入到matter网络中时,打印消息:
Secure Session to Device Established
-
蓝牙配网使设备加入到thread网络中:
./chip-tool pairing ble-thread <node_id> hex:<operational_dataset> <pin_code> <discriminator>
-
蓝牙配网使设备加入wifi网络中:
./chip-tool pairing ble-wifi <node_id> <ssid> <password> <pin_code> <discriminator>
-
-
【基于IP调试】
当 Matter设备已经在 IP网络中,但是还没有委托给 Matter 网络时,使用该方式。调试设备时,可使用步骤5设置的
Discriminator
和PIN Code
- 查找设备,并尝试使用设置的
pin_code
码与 **第一个查找到的设备 **配对./chip-tool pairing onnetwork <node_id> <pin_code>
, - 若设备的
Discriminator
比较长,则用以下命令 :./chip-tool pairing onnetwork-long <node_id> <pin_code> <discriminator>
- 使用二维码 QR code ,在此不给出,请参考 【Commissioning with QR code payload or manual pairing code】
- 从已调试的Matter设备列表中删除具有给定节点ID的设备:
./chip-tool pairing unpair <node_id>
- 查找设备,并尝试使用设置的
-
-
步骤7:控制应用程序数据模型的
cluster
。截止到这一步,已经将 Matter 设备加入到网络中,此时可以通过与数据模型 cluster 交互来测试设备。例如以 example/light 为例,可以通过OnOff
cluster 指令开关灯泡,使用levelcontrol
cluster 指令控制亮度。./chip-tool onoff toggle <node_id> <endpoint_id>
./chip-tool levelcontrol move-to-level <level> <transition_time> <option_mask> <option_override> <node_id> <endpoint_id>
-
步骤8:从 Matter 设备中读取基本信息。每个 Matter 设备都支持 基本的集群(
Basic cluster
),该集群控制器可以从设备获取到的属性attribute
集合,这些属性可以包括供应商名称、产品名称或软件版本。$ ./chip-tool basic read vendor-name <node_id> <endpoint_id> $ ./chip-tool basic read product-name <node_id> <endpoint_id> $ ./chip-tool basic read software-version <node_id> <endpoint_id> $ ./chip-tool basic