作者:俏巴
概述
使用物联网平台规则引擎的数据流转功能,可将Topic中的数据消息转发至其他Topic或其他阿里云产品进行存储或处理。本文主要结合物模型的结构体类型属性数据,演示payLoad的设置及规则引擎的配置。
前提准备
1、物模型定义
2、上行消息payLoad
request.topic = "/sys/" + pk + "/" + dn + "/thing/event/property/post";
request.payloadObj = <span class="hljs-string">"{\"id\":\"230788029\",\"method\":\"thing.event.property.post\",\"params\":{\"Status\":1,\"Data\": [\n"</span> +
<span class="hljs-string">" {\n"</span> +
<span class="hljs-string">" \"P\": 25,\n"</span> +
<span class="hljs-string">" \"I\": 105,\n"</span> +
<span class="hljs-string">" \"E\": 11\n"</span> +
<span class="hljs-string">" },\n"</span> +
<span class="hljs-string">" {\n"</span> +
<span class="hljs-string">" \"P\": 121,\n"</span> +
<span class="hljs-string">" \"E\": 119,\n"</span> +
<span class="hljs-string">" \"I\": 11\n"</span> +
<span class="hljs-string">" }\n"</span> +
<span class="hljs-string">" ]},\"version\":\"1.0\"}"</span>;</code></pre>
3、日志服务监控上行消息情况
4、Table Store准备
操作步骤
1、在规则的数据流转详情页,创建规则 --> 编辑查询规则语句:
SELECT deviceName() as deviceName, "items.Data.value[0].P" as P, "items.Data.value[0].I" as I,"items.Data.value[0].E" as E FROM "/sys/a1D8NwXCe56/device1/thing/event/property/post"
此处编写相对比较复杂,可以参考SQL表达式数组使用说明部分及数据流转过程系统Topic部分。
小技巧:如果使用者对具体上行消息经过物模型解析后的格式不是特别清楚,建议可以直接使用服务端订阅订阅上行消息,这样就可以直接参考具体的消息格式类型了,如下是测试订阅获取的消息格式:
"deviceName":"device1","items":{"Status":{"value":1,"time":1561886161283},"Data":{"value":[{"P":25,"E":11,"I":105},{"P":121,"E":119,"I":11}],"time":1561886161283}}}
2、转发数据
3、数据流转详情
4、开启规则引擎(注意配置完成后务必记住要开启,否则配置不生效)
5、表格存储中检查数据