跳至主要內容

使用云网关集成第三方云平台

约 1146 字大约 4 分钟

使用云网关集成第三方云平台

什么是云网关?

云网关用于 ThingsCloud 实时接收第三方物联网云平台的设备数据,实现快速的云云对接。

假如您的物联网设备已经接入第三方物联网云平台,并且该平台支持 HTTP 消息推送,例如:电信天翼物联网平台、华为云物联网平台、设备厂商自有云平台等,通过在 ThingsCloud 上创建云网关,可以快速将这些物联网设备及数据同步到 ThingsCloud。

通过使用云网关,可以帮助我们对项目中所有物联网设备进行数据汇总和集中管理,并利用 ThingsCloud 易用的可视化及应用零代码开发能力,为客户带来最佳体验。

需要注意的是,云网关仅能接收第三方平台的设备数据推送,不支持设备控制下发。

提示

ThingsCloud 也支持设备数据实时推送到第三方平台,请浏览 实时消息 API

如何使用云网关?

创建云网关

进入 ThingsCloud 控制台的 项目 > 云网关,点击创建云网关,如下图:

给云网关写一个名字,完成创建。

配置云网关

打开云网关的配置界面,可以看到自动生成的 数据接收 URL,这个地址用来接收第三方平台的 HTTP 数据推送。

需要注意的是,云网关对接收的 HTTP 请求要求如下:

  • HTTP 头信息中 Content-Typeapplication/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 消息推送open in new window

电信平台当设备数据变化时,推送到 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 订阅推送open in new window

华为云物联网设备属性上报时,推送到 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"
      } ]
    }
  }
}

云网关配置如下: