KLink网关与子设备使用示例
本文描述使用KLink格式的网关与子设备接入IoT OS的流程。
【说明】:
接入流程简介
子设备无法像普通设备那样直接进行连接,需要通过网关进行接入。网关可以直接进行连接,连接上与普通设备比较接近。网关与子设备系统的连接步骤主要为下列阶段:
前期准备
->网关登录
->网关添加子设备
->子设备注册
->子设备上线
->网关、子设备上报
->子设备下线
->网关下线
【注】:
- 若用户创建的子设备不允许动态注册设备,则子设备需要在完成产品创建后在IoT OS自行创建相应的设备;
- 若用户创建的子设备允许动态注册设备,则需要先进行"设备注册"后再进行"子设备上线"。
- 子设备的任意操作都需要依靠网关,要保持网关始终处于连线状态,并且使用网关来上报子设备的操作。
网关与子设备可以进行的拓扑操作:
网关添加拓扑关系
->网关删除拓扑关系
;网关查看拓扑详情
前期准备
- 需要在IoT OS创建相应的网关产品,以及相应的子设备产品。关于创建网关与子设备的详情可参考设备接入-创建产品。并且已经完成产品物模型的创建;
- 在IoT OS完成网关设备的创建(即设备注册);
第一步 网关登录上线
相关设备创建完成后,首先需要使用网关进行登录上线操作。 网关与普通设备一样,可以直连平台登录,并且使用长连接协议的情况下,连接成功后网关即完成登录操作。
第二步 子设备注册
若子设备所属产品不允许动态注册,则用户需要在IoT OS自行创建设备。完成设备创建后,设备自动完成注册操作。
若子设备所属的产品允许动态注册,则用户可以直接通过下列子设备动态注册命令进行设备注册。指令详情可见KLink-动态注册设备。
{ "action": "register", "msgId": 1, "pk": "ec5e57589e6643c39f67ab640c8777dd", "devId": "znsb-sub-dy001" }
第三步 网关添加子设备
网关登录成功后网关即可和普通设备一样开始进行上报操作,除了普通设备可进行的相关操作外,网关可以进行拓扑操作。
由于子设备无法直连平台进行相应操作,所以需要使用网关来挂载子设备。
【注】:网关添加的子设备必须已完成注册。
使用下列指令进行子设备的添加。指令详情可见KLink-添加拓扑关系。
{
"action": "addTopo",
"msgId": 1,
"pk": "07b9373e9912416fa775ec904e385234",
"devId": "gateway001",
"sub": {
"pk": "6250d3bdaeef469b9c420635867c859a",
"devId": "znsbSub001"
}
}
顺利完成后可以在相应网关设备的"子设备管理"中查看和管理子设备。如下图所示。
第四步 子设备上线
完成在网关下添加子设备后,可以进行子设备的登录。详情可见KLink-子设备上线。
{
"action": "devLogin",
"msgId": 1,
"pk": "6250d3bdaeef469b9c420635867c859a",
"devId": "znsbSub001"
}
【注】使用模拟器模拟网关和子设备时,先使用网关的信息进行登录,在确保完成子设备添加之后,使用此命令进行子设备的登录。此时模拟器使用的登录信息仍为网关的连接信息。
第五步 子设备下线
非直连设备,即需要挂在在网关下的终端子设备需要主动上报进行登出操作。详情可见KLink-子设备下线。
{
"action": "devLogout",
"msgId": 1,
"pk": "6250d3bdaeef469b9c420635867c859a",
"devId": "znsbSub001"
}
第六步 网关查看拓扑关系
网关可以查看当前的网关的拓扑关系。只需要使用网关上报下述命令。详情可见KLink-网关查看拓扑关系。
{
"action": "getTopo",
"msgId": 1,
"pk": "07b9373e9912416fa775ec904e385234",
"devId": "gateway001"
}
此时可以收到云端的回复:
{
"action": "getTopoResp",
"msgId": 1,
"pk": "07b9373e9912416fa775ec904e385234",
"devId": "gateway001",
"code": 0,
"subs": [
{
"pk": "6250d3bdaeef469b9c420635867c859a",
"devId": "znsbSub001"
}
]
}
可以从云端的回复看到网关下挂载的子设备信息。
第七步 网关删除拓扑关系(删除子设备)
网关可以对已经建立的拓扑关系进行删除,即可以删除添加的子设备。只需使用网关上报下述命令。详情可见KLink-网关删除拓扑关系。
{
"action": "delTopo",
"msgId": 1,
"pk": "07b9373e9912416fa775ec904e385234",
"devId": "gateway001",
"sub": {
"pk": "6250d3bdaeef469b9c420635867c859a",
"devId": "znsbSub001"
}
}
此时再进行网关查看拓扑关系命令收到的回复:
{
"action": "getTopoResp",
"msgId": 1,
"pk": "07b9373e9912416fa775ec904e385234",
"devId": "gateway001",
"code": 0,
"subs": []
}
可以得知已经将子设备与网关的连接关系解除了。
【注】:此命令只是对网关和子设备的逻辑关系进行解除,不会影响到设备的信息。
第八步 网关离线
当网关完成操作后,可以进行离线操作。
【注】:网关设备和普通设备一样为直连设备,使用长连接协议时断开连接时自动完成此步骤,不需要像子设备那样主动上报。
模拟器展示网关与子设备关系
为方便用户理解网关与子设备连接时两者的关系,接下来使用模拟器来展示两者的关联。
【说明】:
IoT OS利用设备信息里的产品PK
和设备ID
来区分设备。
此例中网关信息:
产品PK:07b9373e9912416fa775ec904e385234 ID:gateway001
此例中子设备信息:
产品PK:6250d3bdaeef469b9c420635867c859a 设备ID:znsbSub001
一、网关登录
模拟器模拟网关和模拟普通设备一样,如图所示连接信息皆为网关设备信息。
二、网关添加子设备
如图所示网关通过指令添加子设备。
三、子设备连接操作
如图展示了子设备需要通过网关进行上报操作。
【说明】:
- 如图连接信息仍然为网关设备,即保持网关在线。
- 上报信息为子设备,即子设备通过网关接入平台。