使用云网关集成第三方云平台
使用云网关集成第三方云平台
什么是云网关?
云网关用于 ThingsCloud 实时接收第三方物联网云平台的设备数据,实现快速的云云对接。
假如您的物联网设备已经接入第三方物联网云平台,并且该平台支持 HTTP 消息推送,例如:电信天翼物联网平台、华为云物联网平台、设备厂商自有云平台等,通过在 ThingsCloud 上创建云网关,可以快速将这些物联网设备及数据同步到 ThingsCloud。
通过使用云网关,可以帮助我们对项目中所有物联网设备进行数据汇总和集中管理,并利用 ThingsCloud 易用的可视化及应用零代码开发能力,为客户带来最佳体验。
需要注意的是,云网关仅能接收第三方平台的设备数据推送,不支持设备控制下发。
提示
ThingsCloud 也支持设备数据实时推送到第三方平台,请浏览 实时消息 API。
如何使用云网关?
创建云网关
进入 ThingsCloud 控制台的 项目 > 云网关,点击创建云网关,如下图:
给云网关写一个名字,完成创建。
配置云网关
打开云网关的配置界面,可以看到自动生成的 数据接收 URL,这个地址用来接收第三方平台的 HTTP 数据推送。
需要注意的是,云网关对接收的 HTTP 请求要求如下:
- HTTP 头信息中
Content-Type
为application/json
- HTTP 正文数据采用
JSON
格式 - 所有字符集为
UTF-8
这里我们使用 HTTP 客户端向接收数据 URL 模拟推送一个请求,正文数据如下:
{
"deviceId": "123456",
"payload": {
"temperature": 33.1,
"humidity": 76.2,
"csq": 29,
"rsrp": -32768
}
}
如下图:
这时的 HTTP 回复看起来并没有成功,没有关系,在配置界面中,刷新预览数据,可以看到上边的模拟请求已经被云网关成功接收,如下图:
接下来是最关键的一步,选择设备标识字段,也就是告诉云网关 JSON 数据中哪个字段作为设备唯一标识。这里可以快速选择,支持多层级。如下图:
保存配置后,我们再次向云网关模拟推送 HTTP 消息,可以看到云网关已经成功将消息转发给了相应的设备。
接下来,您还可以使用消息规则,通过属性上报预处理规则,将 payload
中的属性,根据需要提取出来,直接放在设备的属性中,过程中还可以进行任何必要的计算。
自动创建新设备
如果云网关接收的数据中,指定的设备唯一标识不存在,那么云网关会忽略接收的数据。
那么,能否自动创建新设备呢?当然可以。在配置中,选择关联的设备类型,如下图:
同时还需要在该设备类型中设置允许设备自动创建?方法请参考 设备自动创建。
云网关对接示例
电信天翼物联网平台对接 ThingsCloud
一些客户的 NB-IoT 设备使用电信物联网卡接入电信物联网平台,通过云云对接,可以快速将设备数据同步到 ThingsCloud,实现应用端统一管理。
电信平台的设置方法,请参考 电信天翼物联网平台 HTTP 消息推送
电信平台当设备数据变化时,推送到 ThingsCloud 云网关的数据部分如下:
{
"upPacketSN": -1,
"deviceType": "",
"productId": "151***21",
"IMEI": "",
"deviceId": "15154****01",
"protocol": "mqtt",
"messageType": "dataReport",
"payload": {
"pci": -32768,
"rsrp": -32768,
"cell_id": -2147483648,
"sinr": -32768,
"ecl": -32768
},
"assocAssetId": "",
"tenantId": "9900000000*****",
"IMSI": "",
"topic": "ad",
"upDataSN": -1,
"serviceId": "signal_report",
"timestamp": 1667799875008
}
云网关配置如下:
华为云物联网平台对接 ThingsCloud
华为云平台的设置方法,请参考 华为云物联网平台 HTTP 订阅推送
华为云物联网设备属性上报时,推送到 ThingsCloud 云网关的数据部分如下:
{
"resource" : "device.property",
"event" : "report",
"event_time" : "20151212T121212Z",
"event_time_ms" : "2015-12-12T12:12:12.000Z",
"request_id" : "3fe58d5e-8697-4849-a165-7db128f7e776",
"notify_data" : {
"header" : {
"device_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f",
"product_id" : "ABC123456789",
"app_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f",
"gateway_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f",
"node_id" : "ABC123456789",
"tags" : [ {
"tag_value" : "testTagValue",
"tag_key" : "testTagName"
} ]
},
"body" : {
"services" : [ {
"service_id" : "Battery",
"properties" : {
"batteryLevel" : 80
},
"event_time" : "20151212T121212Z"
} ]
}
}
}
云网关配置如下: