IoT平台云端通用数据解析脚本实践

简介: 在物联网平台云端,将设备原始数据转换成结构化的JSON格式,方便云上业务系统存储和展示。

数据解析脚本(云网关)实践

物联网场景中,面对低配置且资源受限或者对网络流量有要求的设备,往往不适合在设备端构造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=default
const 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.发布数据到topic
client.publish(topic, data);

5.联机运行

在电脑端启动水泵模拟的Node.js脚本后,我们在IoT物联网平台的控制台日志服务里可以观测到上行消息分析日志,消息内容已经在云端转换为了结构化JSON数据,如下图:



物模型数据分析的Tab下,可以看到解析过程的日志,如下图:



【往期回顾】
1.自建MQTT集群迁移阿里云IoT平台
2.IoT时代:WiFi配网技术剖析
3.微信小程序和IoT智能家居实践

image.png

相关文章
|
弹性计算 运维 安全
优化管理与服务:操作系统控制平台的订阅功能解析
本文介绍了如何通过操作系统控制平台提升系统效率,优化资源利用。首先,通过阿里云官方平台开通服务并安装SysOM组件,体验操作系统控制平台的功能。接着,详细讲解了订阅管理功能,包括创建订阅、查看和管理ECS实例的私有YUM仓库权限。订阅私有YUM仓库能够集中管理软件包版本、提升安全性,并提供灵活的配置选项。最后总结指出,使用阿里云的订阅和私有YUM仓库功能,可以提高系统可靠性和运维效率,确保业务顺畅运行。
|
数据采集 JSON 数据可视化
JSON数据解析实战:从嵌套结构到结构化表格
在信息爆炸的时代,从杂乱数据中提取精准知识图谱是数据侦探的挑战。本文以Google Scholar为例,解析嵌套JSON数据,提取文献信息并转换为结构化表格,通过Graphviz制作技术关系图谱,揭示文献间的隐秘联系。代码涵盖代理IP、请求头设置、JSON解析及可视化,提供完整实战案例。
788 4
JSON数据解析实战:从嵌套结构到结构化表格
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
JSON 监控 网络协议
Bilibili直播信息流:连接方法与数据解析
本文详细介绍了自行实现B站直播WebSocket连接的完整流程。解析了基于WebSocket的应用层协议结构,涵盖认证包构建、心跳机制维护及数据包解析步骤,为开发者定制直播数据监控提供了完整技术方案。
1916 9
|
缓存 监控 搜索推荐
【实战解析】smallredbook.item_get_video API:小红书视频数据获取与电商应用指南
本文介绍小红书官方API——`smallredbook.item_get_video`的功能与使用方法。该接口可获取笔记视频详情,包括无水印直链、封面图、时长、文本描述、标签及互动数据等,并支持电商场景分析。调用需提供`key`、`secret`和`num_iid`参数,返回字段涵盖视频链接、标题、标签及用户信息等。同时,文章提供了电商实战技巧,如竞品监控与个性化推荐,并列出合规注意事项及替代方案对比。最后解答了常见问题,如笔记ID获取与视频链接时效性等。
|
存储 缓存 监控
如何高效爬取天猫商品数据?官方API与非官方接口全解析
本文介绍两种天猫商品数据爬取方案:官方API和非官方接口。官方API合法合规,适合企业长期使用,需申请企业资质;非官方接口适合快速验证需求,但需应对反爬机制。详细内容涵盖开发步骤、Python实现示例、反爬策略、数据解析与存储、注意事项及扩展应用场景。推荐工具链包括Playwright、aiohttp、lxml等。如需进一步帮助,请联系作者。
|
11月前
|
物联网
(手把手)在华为云、阿里云搭建自己的物联网MQTT消息服务器,免费IOT平台
本文介绍如何在阿里云搭建自己的物联网MQTT消息服务器,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
3572 42
|
物联网 数据挖掘 BI
基于阿里云物联网平台(IoT)的智能家居系统开发与部署
随着物联网技术的发展,智能家居成为提升生活品质的重要方向。阿里云物联网平台提供设备接入、数据管理及应用开发能力,支持亿级设备接入、高效数据管理和灵活应用开发,确保系统安全。本文通过实战案例展示如何基于该平台构建智能家居系统,涵盖设备接入、远程控制、场景联动与数据分析等功能,助力企业快速部署智能家居解决方案。
|
安全 物联网 物联网安全
揭秘区块链技术在物联网(IoT)安全中的革新应用
揭秘区块链技术在物联网(IoT)安全中的革新应用
|
安全 物联网 网络安全
智能设备的安全隐患:物联网(IoT)安全指南
智能设备的安全隐患:物联网(IoT)安全指南
1477 12

推荐镜像

更多
  • DNS