数据解析脚本(云网关)实际
物联网场景中,面对低配置且资源受限或者对网络流量有要求的设施,往往不适宜在设施端结构JSON数据与IoT物联网平台通信,这时设施可通过自定义Topic将原始数据间接上报到物联网平台。物联网平台提供数据解析性能,能够依据您提交的脚本,将设施原始数据在云端转换成结构化的JSON格局,不便云上业务零碎存储和展现。
1.自定义Topic数据解析
设施通过自定义Topic公布数据,且Topic携带解析标记(?_sn=default)时,物联网平台接收数据后,先调用您在控制台提交的业务数据解析脚本,将设施上报的原始数据解析为JSON构造体,再进行数据流转解决。
云上数据解析能力:
数据解析流程图:
阐明
- 目前仅华东2(上海)地区反对自定义Topic数据解析。
- 设施上报数据是,在公布音讯的自定义Topic后增加数据解析标记(?_sn=default)。
例如,设施发送到Topic /${productKey}/${deviceName}/user/update 的原数据须要解析为JSON格局。在设施上报时,该Topic为:/${productKey}/${deviceName}/user/update?_sn=default。
- 在物联网平台创立自定义Topic时按失常Topic定义,不增加解析标记。
- 仅解析设施上报云端的原数据,不解析云端上行数据。
- 解析前后,音讯所在Topic不变。
例如,设施发送到/${productKey}/${deviceName}/user/update?_sn=default的数据,解析后仍在/${productKey}/${deviceName}/user/update的Topic中。
2.脚本解析实际案例
本次实际,咱们以水泵运行数据采集为例,在设施端产生的原始数据是一个字符串: DATA,23,5000 ,通过数据脚本解析引擎在IoT物联网平台云端转换成结构化的JSON格局: {"temperature":23,"speed":5000} 。
Topic和Payload变动:
3.云端开发
**
3.1 创立产品
登录控制台,创立产品:水泵
**
3.2 增加自定义Topic
进入产品详情,抉择Topic类列表的Tab,增加自定义通信Topic : /${productKey}/${deviceName}/user/data
3.3 编写数据解析脚本
依据业务状况编写数据转换的脚本,通过模仿输出验证脚本正确性,而后提交到物联网平台,如下图:
本案例残缺脚本如下:
/** * 将设施自定义topic数据转换为json格局数据, 设施上报数据到物联网平台时调用 * 入参:topic 字符串,设施上报音讯的topic * 入参:rawData byte[]数组 不能为空 * * 出参:jsonObj JSON对象 不能为空 */function transformPayload(topic, rawData) { var jsonObj = {} var dataSrc = String.fromCharCode.apply(String, rawData); var data = dataSrc.split(','); jsonObj.temperature = parseInt(data[1]); jsonObj.speed = parseInt(data[2]); return jsonObj;}
**
3.4 注册设施
实现水泵产品的定义和数据解析脚本提交后,咱们来注册一个设施,获取到身份认证的三元组信息,如下图:
4.设施端开发
咱们通过Node.js脚本模仿水泵上报运行数据到IoT物联网平台,残缺代码如下:
const mqtt = require('aliyun-iot-mqtt');//设施身份const options = { productKey: "替换productKey", deviceName: "替换deviceName", deviceSecret: "替换deviceSecret", regionId: "cn-shanghai"};//上报的Topic追加?_sn=defaultconst topic = `/${options.productKey}/${options.deviceName}/user/data?_sn=default`;//设施端数据var data = 'DATA,23,5000';//1.建设连贯const client = mqtt.getAliyunIotMqttClient(options);console.log('topic= '+topic)console.log('payload= '+data)//2.公布数据到topicclient.publish(topic, data);
5.联机运行
在电脑端启动水泵模仿的Node.js脚本后,咱们在IoT物联网平台的控制台日志服务里能够观测到上行音讯剖析日志,音讯内容曾经在云端转换为了结构化JSON数据,如下图:
在物模型数据分析的Tab下,能够看到解析过程的日志,如下图:
【往期回顾】
1.自建MQTT集群迁徙阿里云IoT平台
2.IoT时代:WiFi配网技术分析
3.微信小程序和IoT智能家居实际
物联网平台产品介绍详情:https://www.aliyun.com/produc...
阿里云物联网平台客户交换群