更新时间:2024-05-14 08:00:15下载pdf
在很多场景下,需要同时控制很多数量的同类型设备,因此有了群组的设计。
在这种场景下,网关可以将相同类型的的子设备加入到一个群组。当发送群组控制命令时,意味着所有该群组内的子设备都需要执行同样的操作。群组减少了数据的交互量,从而减少了出错的风险。
比如,本来要控制 50 台相同的设备需要发送 50 条命令,如果设置为一个群组,那么只需要下发一条命令。从而大大减少了数据的交互流程。
群组 ID:群组创建后的唯一标识。
cid:子设备标识即 subid。
将子设备加入群组。
模组下发
55 AA 00 0E 00 1F 7B 22 67 69 64 22 3A 22 31 30 30 32 30 22 2C 22 63 69 64 73 22 3A 5B 22 31 32 33 34 22 5D 7D 20
数据内容为
{"gid":"10020","cids":["1234"]}
模组要求MCU将子设备标识(cids
)为 1234
的设备加入到群组,群组的标识(gid
)为10020
。
MCU回复
55 AA 00 0E 00 2A 7B 22 72 65 74 73 22 3A 5B 30 5D 2C 22 67 69 64 22 3A 22 31 30 30 32 30 22 2C 22 63 69 64 73 22 3A 5B 22 31 32 33 34 22 5D 7D 7B
数据内容为
{"rets":[0],"gid":"10020","cids":["1234"]}
rets
对应的值为返回的结果,0
代表添加成功,此回复代表 MCU 已经成功将子设备标识为1234
的设备加入到群组,群组的标识为 10020
。如果添加失败,MCU可根据自身原因,根据协议回复具体的值。
将子设备从群组中移除。
模组下发
55 AA 00 0F 00 1F 7B 22 67 69 64 22 3A 22 31 30 30 32 30 22 2C 22 63 69 64 73 22 3A 5B 22 31 32 33 34 22 5D 7D 21
数据内容为
{"gid":"10020","cids":["1234"]}
模组要求MCU将子设备标识 cids
为 1234
的设备从群组中删除,群组的标识 gid
为 10020
。
MCU回复
55 AA 00 0F 00 2A 7B 22 72 65 74 73 22 3A 5B 30 5D 2C 22 67 69 64 22 3A 22 31 30 30 32 30 22 2C 22 63 69 64 73 22 3A 5B 22 31 32 33 34 22 5D 7D 7C
数据内容为
{"rets":[0],"gid":"10020","cids":["1234"]}
rets
对应的值为返回的结果,0
代表添加成功,此回复代表MCU已经成功将子设备标识 cid
为 1234
的设备从群组标识 gid
为 10020
的群组中移除。如果移除失败,MCU 可根据自身原因,根据协议回复具体的值。
当 App 通过群组来控制下发控制命令时,模组会通过该命令传递给 MCU。
模组下发
55 AA 00 14 00 0B 05 31 30 30 32 30 01 01 00 01 01 1A
字段 | 内容 |
---|---|
帧头 | 55 AA |
命令字 | 00 14 |
长度 | 00 0B |
数据 |
|
校验和 | 0xE8 |
此条命令指要求将所有群组 ID 为 10020 的设备都执行 DP 序号 1,值为 1 的动作。
MCU回复
55 AA 00 14 00 00 13
接收群组动作后并执行动作后,子设备需要主动上报改变后的状态(0x0D
命令)。
如果没有及时上报,模组会在五秒后主动来查询群组内所有设备的对应DP的状态(0x29
命令)来确保 App 上显示的子设备的状态与真实的相符。
当 MCU 在本地执行了群组动作后(不是来自APP),如果MCU针对群组并没有让子设备逐个主动上报的逻辑,会导致本地的状态和App上显示的状态不一致。可以通过该命令通知模组。模组收到该指令后,会对群组下的子设备对应的DP逐个查询(0x29
命令),从而确保App上显示状态和实际的设备状态一致。
MCU上报
55 AA 00 2F 00 18 7B 22 67 69 64 22 3A 22 31 30 30 34 30 22 2C 22 64 70 69 64 22 3A 31 7D A5
数据内容为
{"gid":"10040","dpid":1}
此命令为通知模组,群组标识 gid
为 10040 的群组本地状态发生了改变,改变的 DP 序号 dpid
为 1。
模组回复
55 AA 00 2F 00 01 00 2F
表示模组已经收到信息。
如果 gid 和 dpid 没有问题,那么模组会调用 0x29
命令来查询该群组下的所有子设备。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈