DNS - SD 在matter中发现场景:
-
Commissionable Node Discovery(可添加节点发现)
-
Operational Discovery(可操作节点发现)
-
Commissioner Discovery(添加者发现)
-
User Directed Commissioning(用户直接添加)
场景一 Commissionable Node Discovery
适用场景:
-
已经接入局域网的节点
-
不支持BLE添加,还未配网,通过WiFI Soft-AP直连的节点
实例名:一个随机动态的 64bit大写字符,例如:DD200C20D25AE5F7;
每次重启、进入可添加模式时,须重新生成。
Service type:_matterc._udp
对于link-local的mDNS,服务域名为:local
Host Name:MAC(48bit or 64bit)+Domian,例如 B75AFB458ECD.<domain>
Subtypes:
_L<dddd>:完整的12-bit的判别器( discriminator),10进制形式表示,省略高位的0
_S<dd>:判别器的高4bit,10进制形式表示,省略高位的0
_V<ddddd>:16-bit的VID,10进制形式表示,省略高位的0
_T<ddd>:设备类型(device type )
_CM:表示在可添加模式
当发现设备后,会返回 AAAA records和 DNS-SD TXT record。前者包含IPv6地址,后者包含key/value对。
key | value |
D | 12-bit discriminator |
VP | VID "+PID" |
CM | 0 ,不在可添加模式 1,在可添加模式,passcode由设备提供(例如扫二维码) 2,在可添加模式,passcode动态生成(例如另外一个管理员提供,设备是那个管理员发命令置入可发现状态的) |
DT | device type,例如DT=10表示是一个门锁 |
DN | device name |
RI | Rotating Device Identifier |
PH | pairing hint 进入添加模式的方法 |
PI | pairing instruction |
Pairing Hint Values :
Bit index | Name | PI Dependency | Description |
0 | Power Cycle | FALSE | 当设备会在插拔电源、重新上电池后进入可添加模式,bit置位 否则置0 |
1 | Device Manufacturer URL | FALSE | 需要厂商自定义的流程才能进入可添加模式,要提供一个链接 |
2 | Administrator | FALSE | 设备已经被其他管理员添加,可通过管理员界面让设备进入可添加模式 |
3 | Settings menu on the Node | FALSE | 设备上的设置菜单可把设备进入可添加模式 |
4 | Custom Instruction | TRUE | PI的value会描述如何自定义进入可添加模式 |
5 | Device Manual | FALSE | 参照说明书 |
6 | Press Reset Button | FALSE | 按复位按钮 |
7 | Press Reset Button with application of power | FALSE | 按住复位按钮上电 |
8 | Press Reset Button for N seconds | TRUE | 按住复位按钮N秒,N由PI的value决定 |
9 | Press Reset Button until light blinks | TRUE | 按住复位按钮直至灯闪,灯的颜色可能由PI的value指明 |
10 | Press Reset Button for N seconds with application of power | TRUE | 按住复位按钮上电,保持按住N秒,N由PI指明 |
11 | Press Reset Button until light blinks with application of power | TRUE | 按住复位按钮上电直至灯闪,灯的颜色可能由PI的value指明 |
12 | Press Reset Button N times | TRUE | 连续按N次复位按钮,间隔不超过1秒,N由PI指明 |
13 | Press Setup Button | FALSE | 按设置按钮 |
14 | Press Setup Button with application of power | FALSE | 按住设置按钮上电 |
15 | Press Setup Button for N seconds | TRUE | 按住设置按钮N秒 |
16 | Press Setup Button until light blinks | TRUE | 按住设置按钮直至灯闪 |
17 | Press Setup Button for N seconds with application of power | TRUE | 按住设置按钮上电,保持N秒 |
18 | Press Setup Button until light blinks with application of power | TRUE | 按住设置按钮上电,直至灯闪 |
19 | Press Setup Button N times | TRUE | 连续按N次设置按钮 |
场景二 Operational Discovery
适用场景:已被添加到一个Fabric
这样的设计就 不需要底层的IPv6网络是固定的,地址变了也没关系,反正我能再发现。
实例名:64bit的 compressed Fabric ID + 64bit Node ID
Service Type: _matter._tcp,注意这里的tcp不是指跑在TCP上
Subtype:
_I<hhhh>: Compressed Fabric Identifier
对于link-local的mDNS,服务域名为:local
对于使用 unicast DNS的,服务域名由 Thread的BR自动配置。
Host Name:MAC(48bit or 64bit)+Domian,例如 B75AFB458ECD.<domain>
当发现设备后,会返回AAAA records和DNS-SD TXT record。前者包含IPv6地址,后者包含key/value对
key | value |
SII | SLEEPY_IDLE_INTERVAL,单位毫秒 |
SAI | SLEEPY_ACTIVE_INTERVAL |
T | T=1表示支持TCP传输 |
场景三 Commissioner Discovery
适用场景:被添加设备在用户操作后反向去查找添加者
Service type:_matterd._udp
Subtype:
_T<ddd> :device type identifier
对于link-local的mDNS,服务域名为:local
对于使用unicast DNS的,服务域名由 Thread的BR自动配置。
Host Name:同 Commissionable Node Discovery
当发现后,会返回AAAA records和DNS-SD TXT record。前者包含IPv6地址,后者包含key/value对
key | value |
SII | SLEEPY_IDLE_INTERVAL,单位毫秒 |
SAI | SLEEPY_ACTIVE_INTERVAL |
T | T=1表示支持TCP传输 |
VP | VID + PID |
DT | Device Type |
DN | Device Name |