Appearance
入门介绍 ¶
在物联网中,网关的作用是将那些本身不能直接连接平台的设备,通过网关的中转,让设备接入平台。网关起到的作用是数据转发和协议转换。
网关和平台的通信主要分为:
- 网关设备自身和平台的通信,例如:上报网关自身的设备状态和属性,接收平台对网关的控制指令等。
- 网关子设备和平台的通信,例如:网关连接的 Zigbee 温湿度传感器向平台上报温湿度,以及网关连接的 RS485/Modbus 继电器数据或传感器数据,接收平台下发的实时指令。这些子设备的通信都需要经过网关的转发。
这一节,我们主要介绍的是利用网关如何实现子设备和平台的通信,Thingskit提供了一套网关专用的 MQTT 协议,包括独立的主题和消息格式。
为网关添加子设备 ¶
在使用网关 MQTT 协议时,需要先在 Thingskit平台上为网关和子设备绑定关系。
对于MQTT网关子设备而言,上报上来的遥测数据,系统会自动创建。
设备类型 ¶
首先,网关和子设备都是 设备,它们的区别仅仅在于所属的 设备类型 不同:
网关设备 必须归属于 网关设备 设备类型。
网关子设备 必须归属于 网关子设备 设备类型。
网关子设备 ¶
使用者,只需要单击编辑,重新绑定一下网关设备,来辨别两者之间的关系。如下图:
网关子设备,如下图:
关联关系如下图:
设备连接 API ¶
为了通知 ThingsKit 设备已连接到网关,需要发布以下消息:
Topic: v1/gateway/connect
Message: {"device":"Device A"}
1
2
2
其中 **Device A ** 是您的设备名称。
一旦收到,ThingsKit 将查找或创建具有指定名称的设备。此外,ThingsKit 将向此网关发布有关特定设备的新属性更新和 RPC 命令的消息。
设备断开 API ¶
为了通知 ThingsKit 设备与网关断开连接,需要发布以下消息:
Topic: v1/gateway/disconnect
Message: {"device":"Device A"}
1
2
2
遥测上传接口 ¶
为了将设备遥测发布到 ThingsKit 服务器节点,请将 PUBLISH 消息发送到以下主题:
Topic: v1/gateway/telemetry
1
提示
这里的Device_A_Sub是网关子设备。
数据上报格式如下:ts是以毫秒为单位的 unix 时间戳。
{
"Device_A_Sub": [
{
"ts": 1483228800000,
"values": {
"temperature": 42,
"humidity": 80
}
}
]
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
或者
{
"Device_A_Sub": [
{
"temperature": 42,
"humidity": 80
}
]
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
调用控制接口 ¶
服务器端 RPC ¶
为了从服务器订阅 RPC 命令,发送 SUBSCRIBE 消息到以下主题:
v1/devices/me/rpc/request/+
1