写点什么

IoT 物联网平台 - 规则引擎 SQL 数据格式详解——设备管理运维类

作者:阿里云AIoT
  • 2023-03-09
    浙江
  • 本文字数:1965 字

    阅读完需:约 6 分钟

规则引擎 SQL 数据格式详解

前言

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

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

1.自定义 Topic

当我们使用自定义 Topic 时,IoT 物联网平台会透传 Payload 数据,这种情况结构体不会变。

image.png

正如上图所展示的数据处理过程,原始报文在进入规则引擎,执行 SQL 表达式时,依然是端上 Payload 结构体。

{  temperature:23,  humidity:63,}
复制代码

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


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

对我们使用物模型传输数据时,数据会在云端做处理,变换成物模型 JSON 格式,这里需要注意每个 Payload 的不同。

image.png


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


物联网平台产品介绍详情:https://www.aliyun.com/product/iot/iot_instc_public_cn


阿里云物联网平台客户交流群

用户头像

阿里云AIoT

关注

物联网内容搬运者 2022-04-22 加入

还未添加个人简介

评论

发布
暂无评论
IoT物联网平台-规则引擎SQL数据格式详解——设备管理运维类_sql_阿里云AIoT_InfoQ写作社区