matter入门
参考资料:
cnblogs上一篇讲解:https://www.cnblogs.com/iini/p/18009504
st matter测试和演示: https://wiki.st.com/stm32mcu/wiki/Connectivity:Matter_test_and_demonstrate
esp-matter 文档: https://github.com/espressif/esp-matter
csa matter协议: https://csa-iot.org/all-solutions/matter/
官方matter sdk开源: https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/BUILDING.md#prerequisites
开发工具:
esp matter开发需要在linux或者MacOS上安装esp-idf和esp-matter
官方 chip-tool 运行于支持BLE的linux和MacOS上
android上由NXP开发的NXP Matter Tool可以替代chip-tool
配网
Matter的配网又叫commission任命(和provision又不同),过程叫commissioning, 给配网信息的叫任命者commissioner,一般就是controller手机,被任命的叫commissionee,一般就是设备。
matter的设备(不包括设备本身)内有三级结构,分别时node节点->endpoint终端->cluster功能簇,cluster分为server和client,其中server提供attributes, Commands和Events, client可以发起交互命令interactions, 包括 read, write, invoke, subscribe(读/写/调用/订阅)
为了完成配网,commissionee必须提供如下onboarding信息:
16-bit Vendor ID and 16-bit Product ID
12-bit device discriminator
27-bit setup passcode
8-bit Discovery Capabilities Bitmask
通过以上信息可以生成一下两种方式来配网(可以用NXP matter tool来生成):
手动配对码(Manual Pairing Code)
二维码(QR Code)
如果上述配网流程成功,那么设备将得到如下信息:
由fabric ID(64bit)和node ID(64bit)组成的实例名
Node Operational Certificate(NOC)
NOC对应的私钥
Access Control List
操作网络的其他信息
不同的node组成一个group,并用16bit的group id来标识
尝试
我用Esp-matter中example的light项目编译到C3上测试。串口是可以直接回车命令行交互的。输入matter help可以查看。
重要命令:
matter ble adv start
matter config
matter onboardingcodes ble
matter device factoryreset
设备不会一直在ble广播commissioning状态,过段时间会退出。
我是用NXP matter tool完成配网后,生成了一个QR码,然后再google home中扫描,然而google home提示必须有支持matter的hub才能控制,包括音箱(google home/mini, next mini, nest audio), 显示屏(nest hub 1代/2代/max), WLAN(nest wifi pro), 流媒体播放器(google tv streamer)。
使用matter device factoryreset后,我用ESP rainmaker home也配网成功,并且“雨作”配网可以自动发送ssid和密码过去(不知道是怎么获取的)。但是NXP就控制不了了。
根据AI的回复,matter优先使用ble配网,局域网控制,部分高级功能才会用到互联网。
并且从google home情况来看,matter可以适配各自的IOT生态,比如google home就要求购买支持matter的hub,而乐鑫和NXP可以直接加入控制。