使用 Realtek Matter SDK 测试 Matter

Realtek Matter SDK 支持 Matter over Thread 方案,让 Matter 设备通过 Thread 网络进行通信。该方案需要边界路由器和控制器。边界路由器让 Thread 网络中的 Matter 设备能够与外部网络(例如 Wi-Fi)进行通信。控制器允许将 Matter 设备加入网络并使用 Matter 消息与其通信。

环境配置

可以通过以下两种方式搭建 Matter over Thread 开发环境:

  • 在不同设备上配置边界路由器和控制器,下面简称两设备环境配置

  • 在一个设备上配置边界路由器和控制器,下面简称单设备环境配置

两设备环境配置

本节描述了在不同设备上运行 Thread 边界路由器和 Matter 控制器的场景。可以在 PC 上安装 Matter 控制器,并在 Raspberry Pi 上运行 Thread 边界路由器。Matter 控制器和 Thread 边界路由器必须在同一局域网 (LAN) 内。

../../../../_images/Border_Router_%26_Controller_on_Separate_Devices.jpg

在不同设备上配置边界路由器和控制器

需求

所需设备

设备

数量

PC(Ubuntu 22.04)

1

Raspberry Pi 3B+ 或更新型号,带有至少 8GB 的 SD 卡

1

支持 IPv6 的 Wi-Fi Access Point(没有启用 IPv6 路由器通告防护)

1

无线协处理器(RCP)设备

1

Matter 设备

1

环境准备

Thread 边界路由器

您可以参考 OpenThread 边界路由器构建和配置 来准备 Thread 边界路由器。

Matter 控制器

CHIP Tool(chip-tool)是一个 Matter 控制器实现,允许将 Matter 设备接入网络并与之通信。

要构建目标,请按照 CHIP Tool 中的步骤进行。

Matter 设备

您可以参考 照明 来准备您的 Matter 设备。

单设备环境配置

本节描述了在一个设备上运行 Thread 边界路由器和 Matter 控制器的场景。您可以在 PC 或 Raspberry Pi 上运行它们。

../../../../_images/Border_Router_%26_Controller_on_One_Device.jpg

在一个设备上配置边界路由器和控制器

需求

所需设备

设备

数量

PC(Ubuntu 22.04) / Raspberry Pi 3B+ 或更新型号(装有 Ubuntu 22.04 而不是 Raspberry Pi OS)

1

无线协处理器(RCP)设备

1

Matter 设备

1

环境准备

Thread 边界路由器

您可以参考 OpenThread 边界路由器构建和配置 来准备 Thread 边界路由器。

Matter 控制器

CHIP Tool(chip-tool)是一个 Matter 控制器实现,允许将 Matter 设备接入网络并与它通信。

要构建目标,请按照 CHIP Tool 中的步骤进行。

Matter 设备

您可以参考 照明 来准备您的 Matter 设备。

设备配网

当准备好 Matter 设备后,可以参考如下的步骤进行设备配网。

  1. 确保 CHIP Tool 和 Thread 边界路由器在同一网段中。

  2. 使用 Thread 边界路由器组建一个 Thread 网络。

    $ sudo ot-ctl factoryreset
    $ sleep 1
    $ sudo ot-ctl dataset init new
    $ sudo ot-ctl dataset channel 25
    $ sudo ot-ctl dataset panid 0x5b35
    $ sudo ot-ctl dataset extpanid 5b35dead5b35beef
    $ sudo ot-ctl dataset networkname 5b35
    $ sudo ot-ctl dataset networkkey 00112233445566778899aabbccddeeff
    $ sudo ot-ctl dataset commit active
    $ sudo ot-ctl prefix add fd11:35::/64 pasor
    $ sudo ot-ctl dataset meshlocalprefix fd73:b7bd:20e5:053d::
    $ sudo ot-ctl dataset commit active
    $ sudo ot-ctl ifconfig up
    $ sleep 1
    $ sudo ot-ctl thread start
    $ sleep 1
    $ sudo ot-ctl state
    $ sudo ot-ctl netdata register
    $ sleep 1
    $ sudo ot-ctl netdata show
    $ sudo ot-ctl ipaddr
    

    请确保 Thread 边界路由器是 leader。

    $ sudo ot-ctl state
    leader
    done
    
  3. 获取设备的 PIN 码和 Discriminator。

    • PIN 码:用来认证设备的 27 位值。默认值:20202021

    • Discriminator:用来区分多个可配网设备广播的 12 位值。默认值:3840

    如果使用工厂数据,可以扫描 工厂数据生成 部分生成的 QR 码来获取此信息。

    ../../../../_images/QR_code_and_Scan_results.jpg

    QR 码和解析结果

    可以通过 CHIP Tool 解析其内容,示例如下:

    $ ./chip-tool payload parse-setup-payload "MT:Q5AA0CEK010O0648G00"
    CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_tool_kvs
    CHIP:SPL: Parsing base38Representation: MT:Q5AA0CEK010O0648G00
    CHIP:SPL: Version:             0
    CHIP:SPL: VendorID:            4886
    CHIP:SPL: ProductID:           32769
    CHIP:SPL: Custom flow:         0    (STANDARD)
    CHIP:SPL: Discovery Bitmask:   0x02 (BLE)
    CHIP:SPL: Long discriminator:  3841   (0xf01)
    CHIP:SPL: Passcode:            20202022
    
  4. 将设备通过 Bluetooth LE 加入到 Thread 网络。

    $ ./chip-tool pairing ble-thread <node_id> hex:<operational_dataset> <pin_code> <discriminator> --bypass-attestation-verifier true
    
    • <node_id>:用户定义的正在配网的节点 ID。

    • <operational_dataset>:从 Thread 边界路由器获取的当前的 operational dataset。获取方法是,在安装 Thread 边界路由器的设备终端中执行命令 sudo ot-ctl dataset active -x

    • <pin_code>:在步骤 3 中获得。

    • <discriminator>:在步骤 3 中获得。

    • --bypass-attestation-verifier:用于绕过验证。如果未提供此标志或其值为 false,则不绕过验证。如果其值为 true,那么如果验证失败,配网仍将继续。验证失败可能由认证声明、PAA 或 PAI 证书,或者设备认证证书中的错误导致。如果希望快速配网具有基于未知 PAA 的 PAI 和 DAC 证书的设备,并且使用的是未知密钥签名的认证声明,此选项将非常有用。

    例如:

    $ ./chip-tool pairing ble-thread 2 hex:0e08000000000001000035060004001fffe00410df7d53dd16ad16f407cd13efa93b285e0c0402a0f7f800030000190102123402081111111122222222030431323334051000112233445566778899aabbccddeeff0708fb73b7bd20e5053d 20202022 3841 --bypass-attestation-verifier true
    

    配网可能需要一些时间。如果成功,日志中将出现以下消息:

    Device commissioning completed with success