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