更新时间:2024-05-14 08:00:15下载pdf
管理子设备的能力是网关的核心能力。
本文简单介绍如何使用 添加删除子设备 以及 控制子设备的在线离线 等子设备相关的能力。
网关的能力是转换不同设备间的通讯协议,可以让不具有联网能力的子设备通过网关连接上云端。
如果我们想要达到该目的,需要将子设备添加到网关下,建立子设备与网关的联系。
因此首先要做的是 添加子设备 到网关。
基础操作路径如下:
设置网关为配网模式(允许子设备加入) > 加入子设备 > 设置网关退出配网(禁止子设备加入)
添加子设备的时候都需要将模组设置为允许子设备加入的状态,如果不在此状态下,直接发起添加子设备设备的请求会被模组拒绝。
添加子设备可以根据发起允许加入状态的对象不同,分为两种情况。
App 会将模组设置为允许入网状态,此时模组会通知 MCU(0x06命令),MCU 需要在此时进入配网模式,允许子设备入网。
MCU 进入配网模式后收到子设备加入的信息,MCU 发送子设备信息(0x08命令),将子设备加入网关。
网关收到子设备信息后将设备注册到云端(从而可以在 APP 上显示),同时获取子设备的相关属性(DP 点)。
网关注册成功后通知 MCU(0x13命令)添加完成。直到此步,子设备添加才真正添加成功。
App 退出配网页面,通知模组。模组发送关闭子设备入网命令(0x07命令)。

0x1A通知模组,需要进入允许入网状态。0x06通知 MCU 进入配网模式0x08命令),将子设备加入网关。0x13命令)添加完成。直到此步,子设备添加才真正添加成功。0x1A命令),到时间后发送0x07命令,通知 MCU 关闭子设备入网。您也可以通过 MCU 主动发送0x1A命令通知模组退出。模组会随即发送0x07命令通知 MCU 关闭子设备入网。
当 MCU 发送0x06指令时,如果模组处于断网的状态下,是无法添加成功的。但是在该环境下,模组会保存子设备的信息,在恢复网络的情况下重新向云端注册。
0x09命令通知 MCU(具体内容参照协议)。0x19命令,告知模组删除指定子设备(具体内容参照协议),模组收到后执行删除操作,并通知删除结果。作为网关,需要管理网关下子设备的在线离线情况。
在一般情况下,网关采用心跳查询的机制来检测各子设备的状态。但同时也可由 MCU 主动设置子设备的在线状态。
模组采用心跳检测的模式来判断子设备的离线以及在线情况。
在子设备加入到网关后,模组会发送心跳检测指令(0x0A命令)来查询子设备的在线状况。MCU 收到心跳检测指令后,如果该子设备在线,则需要回复对应的帧。如果两个心跳周期都没有回复,那么该子设备会被网关设置为离线。
状态上报(0x0D命令)也会刷新心跳周期,如果在两次心跳周期的时间内持续有状态上报,设备不会被判定离线
查询周期和子设备数量相关,子设备数量越多,子设备心跳查询间隔越频繁。查询机制见下表。
| 设备数 | 间隔(秒) | 轮询次数 | 第一个设备的离线时间 | 最后一个设备离线时间 |
|---|---|---|---|---|
| 1 | 5 | 3 | 10 | 10 |
| 2 | 3.333 | 2 | 10 | 13.333 |
| 3 | 2.5 | 2 | 10 | 15 |
| 4 | 2 | 2 | 10 | 16 |
| 5 | 1.667 | 2 | 10 | 16.667 |
| 6 | 1.429 | 2 | 10 | 17.143 |
| 7 | 1.25 | 2 | 10 | 17.5 |
| 8 | 1.111 | 2 | 10 | 17.777 |
| 9 | 1 | 2 | 10 | 18 |
| 10 | 说明:当间隔小于 1 秒时,按 1 秒计算。 |
2 | 说明:当设备数大于等于 10 时,第一个设备离线时间按 N+1 秒计算。 |
说明:当设备数大于等于 10 时,最后一个设备离线时间按 2N 秒计算。 |
| 11 | 1 | 2 | 12 | 22 |
| 32 | 1 | 2 | 33 | 64 |
| 64 | 1 | 2 | 65 | 128 |
| 128 | 1 | 2 | 129 | 256 |
| N | 1 | 2 | N+1 | 2N |
模组只会主动向被设置为标准功耗设备(0x0A命令中回复"lp":0)的子设备查询心跳,如果在心跳检测命令中,MCU 将该设备设置为低功耗子设备(0x0A命令中回复"lp":1),那么模组将不会主动查询该子设备的心跳。此时需要该子设备主动上报心跳(0x0A命令)。
如果十二小时内没有收到来自该设备的心跳(或者该子设备的0x0D状态上报),则网关判定该子设备离线。
在大部分情况下,MCU 对子设备的在线与离线状态的感知更敏感,当子设备离线的时候,模组至少需要两次心跳查询的周期来判定子设备的离线。但对于 MCU 来说,子设备的离线在线情况,MCU 可以更快的感知到。在这种情况下,MCU 可以使用命令 0x2A 来直接将子设备设置为在线或离线的状态。具体可参见协议。
通用对接网关(非 Pro) 支持 关闭心跳查询。
如果 MCU 可以自行管理设备的在线和离线状况,也可以在产品信息0x01命令中设置 cap 值对应的 bit7 为 1,从而关闭心跳检测。MCU 可以只通过0x2A命令来完成设备的在线离线状态维护。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈