环境配置参考:资料参考1:Matter Controller https://github.com/espressif/esp-matter/tree/main/examples/controller参考资料4:espmatter编程指南 https://docs.espressif.com/projects/esp-matter/en/latest/esp32c6/index.html参考资料5:espmatter API https://docs.espressif.com/projects/esp-matter/en/latest/esp32c6/api-reference/index.htmlhttps://developers.home.google.com/matter/test/certificates?hl=zh-cn esp32 controller的四种模式:https://docs.espressif.com/projects/esp-matter/en/latest/esp32/controller.html#attestation-trust-storageesp32 c++编程帮助:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/api-guides/cplusplus.html
关于认证流程可以看这些内容:
- https://developer.espressif.com/blog/matter-security-model/#certificates-in-matter (DAC PAI)
在esp-idf+ esp-matter 环境搭建好的前提下 ,就可以尝试 跑一下官方的 controller 例程了这个例程位于:esp/esp-matter/examples/controller
烧录Controller例程:
- 需要提前将WSL的共享USB绑定并共享一下。在【ESP-IDF环境】在Windows子系统WSL下搭建Ubuntu24.04的ESP32开发环境有提到~
- 每次打开新终端时都需要执行一次激活环境。
- 设置目标芯片并编译(
D SDKCONFIG_DEFAULTS="sdkconfig.defaults.otbr"是指定使用特定的默认配置文件, 刚开始没加这个,坑惨我了)
- 清除flash、烧录到芯片并进入监视模式(后面需要在运行的shell脚本里输入命令测试)
- 进入监视模式后,
matter help来查看指令帮助~
使用Thread配网, 控制ESP模拟的Matter设备
这里的模拟matter设备的开发板为 ESP32 H2, 此开发板仅有BLE+Thread,没有WIFI。

写在前面:在监控的终端中,输入matter help可以查看命令介绍matter device factoryreset出现错误时,可以重置设备或controller
前提是先启动 controller + Node (需要与matter设备处于同一局域网,我这里的设备是使用esp32h2模拟的【EspMatter环境】 并使用esp32 - h2 模拟Matter Node(light))
1. 控制端连接 WiFi 网络
- 说明:
{ssid}替换为实际 WiFi 名称,{password}替换为 WiFi 密码;
- 示例:
2. 初始化并启动 Thread 网络(控制端作为 Thread Leader)
- 初始化新的 Thread 网络数据集
- 说明:生成全新的 Thread 网络核心配置(含 PAN ID、网络密钥、信道等)。
- 提交数据集为活跃配置
- 说明:使初始化的 Thread 数据集立即生效。
- 导出 TLV 编码的 Thread 网络数据集
- 说明:输出 TLV 格式的 Thread 网络配置字符串(记为
<dataset_tlvs>,后续配对需使用);
- 示例输出(参考):
0e08000000000001000000030000154a0300001335060004001fffe00208f3b8545d66d5176f0708fda4013dc972c9bc0510a4a991938d75eb7c47335d7806366b07030f4f70656e5468726561642d643565370102d5e70410cfa686ad1778315b86e704459f75ca4a0c0402a0f7f8
- 启用 Thread 网络接口
- 说明:开启控制端 Thread 网络底层接口,准备创建 Thread 网络。
- 启动 Thread 网络(控制端成为 Leader)
- 说明:控制端启动 Thread 网络并选举为网络 Leader,等待设备接入。
- 配对 Thread 终端设备(BLE-Thread 配网)
- 参数说明:
1234:为设备分配的 Node ID(十进制,对应十六进制 0x4D2,需与设备端日志匹配);<dataset_tlvs>:替换为步骤 3.3 导出的 TLV 编码字符串;20202021:配网码(Setup PIN Code),需与设备端预设一致;3840:设备识别码(Discriminator),需与设备端预设一致;
- 示例(替换实际 TLV 字符串):
- 说明:通过 BLE 完成设备身份认证,同时下发 Thread 网络配置,设备自动接入 Thread 网络。
3. 控制 Thread 终端设备(On/Off 集群指令)
- 发送「切换」命令(Toggle)
- 参数说明:
1234:设备的 Node ID(需与配对时一致);1:设备的 Endpoint ID(灯控类设备默认值为 1);0x0006:On/Off 集群 ID;2:On/Off 集群的「On」命令 ID(十进制)。"{}":可省略不写
- 扩展控制指令
- 发送「关闭」命令(Off):
- 发送「打开」命令(On):
使用WIFI配网,控制ESP模拟的Matter设备
这里出问题了,用普通开发板能配网成功, 但是无法控制 注意,用H2开发板(因为H2没有WIFI功能,只有BLE+Thread) 所以不能配网成功= -=
- 控制端连接 WiFi 网络
- 在 controlle 上输入
进行设备入网,其中20202021 3840 分别为 PIn和鉴别符
- 控制板载LED灯反转
使用WIFI配网,控制 Tuya Matter 灯泡
Tuya灯泡型号为Tuya智能 E27 matter灯泡
1. 解析出的设备配网核心参数
- 若设备未配网,在启动时,Tuya Matter 灯泡会,意为开始配网。
闪烁
因为 esp controller 在配网时,需要输入 配网Pin码 和 鉴别符,这就需要用到 matter设备的二维码(对于一些设备可能是NFC贴,或者需要手动输入等等。。)
我这里是使用微信扫二维码得到其承载的数据
MT:GE.01UNV17EKF15-E00MT:GE.01UNV17EKF15-E00 这个字符串,本质是 Matter 设备的二维码文本格式,每一台设备都有唯一的配网字符串,解析出来的「厂商 ID、产品 ID、区分符、通行码」都是唯一的,这是 Matter 协议的标准化设计。然后使用matter官方的 chip-tool 来输入
得到的如下信息
关键信息解释:
2. 配网
配网同上,点击跳转↓
配网参考:
matter esp controller invoke-cmd 0x1 1 0x0006 2 "{}"然后在idf.py monitor中可以对配网后的设备进行读取和控制。
示例 1:读取单设备单属性
- 含义:读取 node-id=123 的设备、endpoint=1、开关集群(6)、开关状态属性(0)→ 获取该设备 1 号端点的开关状态(0 = 关 / 1 = 开)。
示例 2:控制设备反转
- 作者:L_Z_J
- 链接:https://www.mcoi.top/article/Post-esp32c6-matter-controller-console
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。







