3. 基于ZAP工具生成Matter数据模型代码
任务说明
本案例目标是通过chip-tool工具将一台Matter设备(此处以Matter Light Bulb模拟设备为例)配对到Thread或Wi-Fi网络中,并验证chip-tool与设备之间的基本通信能力。完成配对后,能够通过chip-tool发送On/Off命令并读取设备状态,以此确认配对成功且应用层通信正常。
前置条件
- 已编译生成chip-tool可执行文件(位于
connectedhomeip/out/standalone/chip-tool) - 已运行Matter设备模拟器(如
chip-all-clusters-app或chip-light-app),设备处于未配对状态 - Thread边界路由器(如OpenThread Border Router)或Wi-Fi AP已就绪,且chip-tool所在主机与设备网络可达
实现步骤
配对过程使用chip-tool的pairing子命令。对于Thread网络,使用onnetwork配对方式;对于Wi-Fi设备,使用wifi配对方式。以下以Thread网络为例,演示完整配对及通信验证流程。
# 1. 查看chip-tool帮助,确认子命令
./chip-tool pairing --help
# 2. 执行Thread网络配对(假设设备discriminator=3840,setup-pin=20202021,节点ID=1)
./chip-tool pairing onnetwork 1 20202021 3840
# 3. 配对成功后,发送On命令(endpoint=1,cluster=On/Off)
./chip-tool onoff on 1 1
# 4. 读取On/Off属性,验证设备状态
./chip-tool onoff read on-off 1 1
# 5. 发送Off命令
./chip-tool onoff off 1 1
# 6. 再次读取属性,确认状态已切换
./chip-tool onoff read on-off 1 1
对于Wi-Fi设备,配对命令格式为:
./chip-tool pairing wifi <node-id> <setup-pin> <discriminator> <ssid> <passphrase>
代码实现说明
chip-tool本身是命令行工具,无需编写额外代码。但为了验证配对后的通信,可编写一个简单的Shell脚本自动化上述流程,便于重复执行和结果判定:
#!/bin/bash
# pair_and_verify.sh - 使用chip-tool配对Matter设备并验证通信
CHIP_TOOL="./chip-tool"
NODE_ID=1
SETUP_PIN=20202021
DISCRIMINATOR=3840
ENDPOINT=1
echo "=== 开始配对 ==="
$CHIP_TOOL pairing onnetwork $NODE_ID $SETUP_PIN $DISCRIMINATOR
if [ $? -ne 0 ]; then
echo "配对失败"
exit 1
fi
echo "配对成功"
echo "=== 发送On命令 ==="
$CHIP_TOOL onoff on $NODE_ID $ENDPOINT
sleep 2
echo "=== 读取On/Off属性 ==="
ON_STATE=$($CHIP_TOOL onoff read on-off $NODE_ID $ENDPOINT | grep -o 'on-off: [0-9]*' | awk '{print $2}')
echo "当前状态: $ON_STATE (1=On, 0=Off)"
if [ "$ON_STATE" -eq 1 ]; then
echo "On命令验证通过"
else
echo "On命令验证失败"
exit 1
fi
echo "=== 发送Off命令 ==="
$CHIP_TOOL onoff off $NODE_ID $ENDPOINT
sleep 2
echo "=== 再次读取On/Off属性 ==="
OFF_STATE=$($CHIP_TOOL onoff read on-off $NODE_ID $ENDPOINT | grep -o 'on-off: [0-9]*' | awk '{print $2}')
echo "当前状态: $OFF_STATE (1=On, 0=Off)"
if [ "$OFF_STATE" -eq 0 ]; then
echo "Off命令验证通过"
else
echo "Off命令验证失败"
exit 1
fi
echo "=== 配对与通信验证全部通过 ==="
验证方法
执行上述脚本后,观察输出。判定标准如下:
- 配对阶段无错误返回,且chip-tool输出包含
Device commissioning completed with success字样 - On命令后读取属性值为
1,Off命令后读取属性值为0 - 脚本最终输出“配对与通信验证全部通过”
判定标准
当脚本输出显示配对成功、On/Off命令均能正确改变设备状态且属性读取值与预期一致时,即可判定本案例目标达成。若配对失败,请检查设备是否处于未配对状态、discriminator与setup-pin是否正确、网络是否连通;若命令发送失败,请确认节点ID与endpoint是否正确,以及设备是否仍在网络中在线。