IoT物联网平台-规则引擎SQL数据格式详解

产品推荐:阿里云物联网开发者工具(IoT Studio),立刻免费体验吧!  

规则引擎SQL数据格式详解

前言[](#i0bcvd)

设备接入IoT物联网平台后,最佳获取数据的方式就是通过规则引擎,先使用SQL表达式处理数据,再流转到DB,MQ,DataHub,FC等目的地。配置数据处理SQL时,我们需要了解每个topic对应的数据格式,才能写出正确的SQL表达式。

注意:请不要以控制台sql调试为准,除非你理解sql调试功能

1.自定义Topic

当我们使用自定义Topic时,IoT物联网平台会透传Payload数据,这种情况结构体不会变。
IoT物联网平台-规则引擎SQL数据格式详解
正如上图所展示的数据处理过程,原始报文在进入规则引擎,执行SQL表达式时,依然是端上Payload结构体。

{
  temperature:23,
  humidity:63,
}

因此,我们只需要按自定义Payload编写SQL即可。

2.物模型系统Topic(/sys/开头)

对我们使用物模型传输数据时,数据会在云端做处理,变换成物模型JSON格式,这里需要注意每个Payload的不同。
IoT物联网平台-规则引擎SQL数据格式详解

2.1 设备属性上报

通过该Topic获取设备上报的属性信息。

数据流转Topic:  /sys/{productKey}/{deviceName}/thing/event/property/post 

设备原始数据格式:

{
    "id": 3536123,
    "version": "1.0",
    "method": "thing.event.property.post",
    "params":{
        "Power":"on",
        "Position":{
            "latitude":39.9,
            "longitude":116.38 
         }
     }
}


物模型数据格式:规则引擎SQL需要根据这个格式编写

{
    "productKey":"1234556554",
    "deviceName":"deviceName1234",
    "gmtCreate":1510799670074,
    "items":{
        "Power":{
            "value":"on",
            "time":1510799670074
        },
        "Position":{
            "time":1510292697470,
            "value":{
                "latitude":39.9,
                "longitude":116.38
            }
        }
    }
}

2.2 设备事件上报

通过该topic获取设备上报的事件信息。
数据流转Topic:  /sys/{productKey}/{deviceName}/thing/event/(tsl.event.identifier}/post 

设备原始数据格式:

{
    "id": 3536123,
    "version": "1.0",
    "method": "thing.event.{tsl.event.identifier}.post",
    "params":{
        "temperature":39.9,
        "humidity":87
     }
}


物模型数据格式:规则引擎SQL需要根据这个格式编写

{
    "identifier":"{tsl.event.identifier}",
    "type":"info",
    "productKey":"X5eCzh6fEH7",
    "deviceName":"5gJtxDVeGAkaEztpisjX",
    "gmtCreate":1510799670074,
    "value":{
        "temperature":39.9,
        "humidity":87
    },
    "time":1510799670074
}

2.3 设备服务异步调用响应

通过该Topic可以获取,通过异步方式下发指令给设备,设备进行处理后返回的结果信息。如果下发指令过程中出现错误,也可以通过该Topic得到指令下发的错误信息。
数据流转Topic:  /sys/{productKey}/{deviceName}/thing/downlink/reply/message  

设备原始数据格式:

{
    "id": 3536123,
    "version": "1.0",
    "method": "thing.service.{tsl.service.identifier}",
    "params": {
        "Power":"on",
        "temperature":39.9
    }
}

物模型数据格式:规则引擎SQL需要根据这个格式编写

{
    "gmtCreate":1510292739881,
    "productKey":"123xxxx554",
    "deviceName":"deviceName1234",
    "requestId":3536123,
    "code":200,
    "message":"success",
    "topic":"/sys/123xxxx554/deviceName1234/thing/service/{tsl.service.identifier}",
    "data":{
        "status":"on"
    }
}

3.设备本身变化

3.1 设备上下线状态

通过该Topic获取设备的上下线状态。

数据流转Topic:  /as/mqtt/status/{productKey}/{deviceName} 
数据格式:

{
    "status":"online|offline",
    "productKey":"12345565569",
    "deviceName":"deviceName1234",
    "time":"2018-08-31 15:32:28.205",
    "utcTime":"2018-08-31T07:32:28.205Z",
    "lastTime":"2018-08-31 15:32:28.195",//状态变更前最后一次通信时间
    "utcLastTime":"2018-08-31T07:32:28.195Z",
    "clientIp":"123.123.123.123"
}

3.2 设备生命周期变化

通过该Topic获得设备创建、删除、禁用、启用等消息。

数据流转Topic:  /sys/{productKey}/{deviceName}/thing/lifecycle 
数据格式:

{
    "action" : "可能枚举值 create|delete|enable|disable",
    "productKey" : "X5eCxxxxEH7",
    "deviceName" : "5gJtxDVeGAkaEztpisjX",
    "deviceSecret" : "设备密钥,仅在action为create时包含", 
    "messageCreateTime": 1510292739881 
}

4.附录


IoT物联网平台官网文档:
https://help.aliyun.com/document_detail/73736.html

[](#80ifpi)IoT物联网平台-规则引擎SQL数据格式详解

上一篇:IoT物联网平台通信用Topic梳理


下一篇:IoT存量设备跨账号迁移,动态切换region节点,公共区到企业实例迁移方案