佣金和可操作性发现

适宜的发现

可调试发现发生在调试之前,是指发现和标识可佣金节点的过程。含佣金的节点可通过以下三种方法宣传自身:

无论采用哪种方法,含佣金的节点都会通告表 1 中所示的信息。

表 1:含佣金节点的通告
字段 时长 必需
判别器 12 位
供应商 ID 16 位
产品 ID 16 位
扩展数据 变量

根据 Matter 规范,供应商 ID产品 ID 不是必需的,但可以包含在内。判别器是强制性的,在调试过程中配置正确设备至关重要,以防同时连接了多个相同的设备。扩展数据可用于对自定义供应商特定信息进行编码。

许多设备会在开机后短时间内(约 3-15 分钟)发出通告。其他设备不得开始通告,因为它们的主要控制机制并非源自结构脉络,或者自动的未预配设备(如锁)广告并不安全。表 2 总结了此行为。

表 2:按设备类型通告未配置的设备
主要设备功能 自动通知
锁和屏障访问设备
大多数控件源自结构。例如,开关或灯泡。
大多数控件并非源自结构。例如,洗碗机或冰箱。

蓝牙低功耗

在这种通告模式下,调试器将看到 BLE 通告。委员会必须实现通用访问配置文件 (GAP) 外设接口,并定期通告其未授权状态。在设备开启后的最初 30 秒内,通告频率必须保持较高的频率,间隔为 20 到 60 毫秒。

30 秒后,设备必须以 150 到 1500 毫秒的间隔以较低的频率进行通告。调试为其第一个结构脉络时,设备必须停止其 BLE 通告。

调试器无需发出扫描请求。它应该对以下三个 BLE 通告信道进行被动扫描:37 (2402 MHz)、38 (2426 MHz) 和 39 (2480 MHz)。这些信道是从频谱中的区域挑选的,与 Wi-Fi 信道的重叠极小,从而最大限度地减少了跨无线装置的干扰。

BLE 不用于操作发现。

Wi-Fi 软 AP

使用 Wi-Fi 软 AP 时,会通过临时的软接入点(软 AP)网络发现委员会。网络的 SSID(网络名称)采用 MATTER-ddd-vvvv-pppp 格式,其中:

  • ddd 是十六进制格式的 12 位判别器。
  • vvvv 是十六进制形式的 16 位供应商 ID。
  • pppp 是以十六进制格式表示的 16 位商品 ID。

每当调试器连接到调试器时,两个调试器都将配置唯一的 IPv6 链路本地地址,从而实现在 Wi-Fi 层的连接。此时,发现操作将继续进行,就像下一部分中介绍的 DNS-SD 方法一样。

此外,Wi-Fi 软 AP 可以实现适用于 IPv4 的 DHCP 和信息元素 (IE),以公开特定于供应商的其他信息。IE 是 802.11 (Wi-Fi) 管理帧中的可变长度字段,允许将自定义信息传送到其他系统。

在调试器扫描期间应优先选择 Wi-Fi 信道 1、6 和 11,但必须扫描本地频谱法规允许的所有信道。

Wi-Fi 软 AP 不用于操作发现。

DNS-SD

在这种情况下,委员会将通过其域名服务 - 服务发现 (DNS-SD) 通告发现该委员会,其中包含节点呈现的服务的相关信息。如需详细了解 DNS-SD,请参阅 RFC 6762。这是在以下情况下发现设备的常见方法:

  • 委员会已连接到以太网,因此可以物理访问未加密的网络媒介。
  • 委员会已通过任何带外方式加入 Wi-Fi 或 Thread 网络。
  • 该委员会已受委托用于其他结构,并已加入 Wi-Fi/Thread 网络。在这种情况下,委员会无法使用 BLE 通告功能,也无法创建软 AP。因此,所有辅助结构脉络都通过此方法预配。

Thread 设备不直接使用 DNS-SD,而是使用 Thread 边界路由器提供的代理方法。此方法由 DNS-SD 服务注册协议及其通告代理定义。Thread 设备在通常由 Thread 边界路由器提供的 SRP 服务中自行注册。此服务代表每个已注册的 Thread 节点处理 mDNS 流量,而不会使这些协议生成的额外流量加重 Thread 网络负担。

用于设备发现的 DNS-SD 实例名称为 _matterc._udp,主机名由 48 位 MAC 地址或 64 位 MAC 扩展地址(以十六进制字符串表示,例如 A5F15790B0D15F32.local.)表示。通常,此记录仅在委员会委派时公布。不过,在未处于佣金模式时,它也可以继续通告。该行为称为扩展发现。

发现后,IPv6 地址会在 AAAA 记录中返回,键值对会在 DNS‐SD TXT 记录中返回。键值对包含判别器、供应商 ID 和产品 ID 等信息。该节点还会宣传调试子类型,这种子类型可以对结果进行过滤,以便仅查找与特定属性匹配的佣金。

运营发现

操作发现是发现和标识委托节点的过程。操作发现只能通过基于 IP 的 DNS-SD 方法进行。节点实例名称将由 64 位压缩的 Fabric ID 和 64 位节点 ID 组成。然后,用连字符连接这些十六进制 ID,例如 2906C908D115D362-8FC7772401CD0696.local.。操作发现与 DNS-SD 设备发现具有相同的目标主机名。

DNS-SD 服务类型为 _matter._tcp。虽然使用 _tcp 命名,但设备可能会使用其他传输方式,例如 UDP。