在物联网业务场景中,对于低配置且资源受限或者对网络流量有要求的设备,不适合直接构造JSON数据与物联网平台通信,可将原数据透传到物联网平台。物联网平台提供数据解析功能,可以根据您提交的脚本,先将数据在设备自定义格式和JSON格式之间转换,再进行业务处理。
数据解析流程图如下所示。
本文以环境数据采集设备为例,为您介绍数据解析具体操作步骤。
在实例概览页签的全部环境下,找到对应的实例,单击实例卡片。
在左侧导航栏,选择设备管理 > 产品,单击创建产品,创建一个产品:环境监测传感器。
产品创建成功后,单击前往定义物模型,添加物模型,然后发布上线。
在左侧导航栏,选择设备,单击添加设备,在环境监测传感器产品下添加设备:Esensor。
设备创建成功后,获取设备证书信息(ProductKey、DeviceName和DeviceSecret)。
开发设备端,并测试运行。
SDK开发示例代码如下:
单击设备Esensor操作栏的查看,单击物模型数据。如下图所示,因产品数据格式为透传/自定义,模拟上报的标准物模型数据不能在运行状态页签显示。
在监控运维 > 日志服务页面的云端运行日志页签下,查看该设备的设备到云消息中对应的Hex格式消息内容。
本示例中,Hex格式消息内容为:0xaa1fc800003710ff0005d76b15001c013400ad04ffff0400ffff18003000ff2e。
在物联网平台控制台,编辑、提交脚本,并模拟数据解析。
在物联网平台控制台对应实例下的左侧导航栏,选择设备管理 > 产品。
在产品页面,单击产品对应的查看。
在产品详情页面,单击消息解析页签。
在消息解析页签下的编辑脚本输入框中,输入数据解析脚本。
根据设备数据协议内容编写解析脚本。本示例中的设备数据消息体结构如下表所示。
Byte
说明
备注
12
PM2.5值低字节
返回:PM2.5值,取值范围0~999ug/m3。
13
PM2.5值高字节
14
温度值*10低字节
返回:温度值,取值范围-10°C~50°C。
15
温度值*10高字节
16
湿度值低字节
返回:湿度值,取值范围0~99%。
17
湿度值高字节
18
二氧化碳含量低字节
返回:二氧化碳含量,取值范围0~9999mg/m3。
19
二氧化碳含量高字节
22
甲醛含量*100低字节
返回:甲醛含量,取值范围0~9.99。
23
甲醛含量*100高字节
28
照度值低字节
返回:照度值,单位lux。
29
照度值高字节
示例中的环境采集设备只有数据上报功能,因此只需要编写上行数据解析函数rawDataToProtocol,无需实现protocolToRawData。可以将透传后的数据转发到属性、服务或事件。本示例中将数据转发到属性。
测试数据解析。
选择模拟类型为设备上报数据。
在模拟输入下的输入框中,输入一个模拟数据。
模拟数据可使用测试运行设备端后,在日志服务页面,查看到的设备端上报数据的Hex格式内容。例如:0xaa1fc800003710ff0005d76b15001c013400ad04ffff0400ffff18003000ff2e。
单击执行 。
右侧运行结果栏显示解析结果如下图所示。
确认脚本能正确解析数据后,单击提交,将脚本提交到物联网平台。
脚本提交后,再次运行设备端SDK脚本进行调试验证。
解析后的数据将显示在设备对应设备详情页面的物模型数据 > 运行状态页签下。
关注阿里云公众号或下载阿里云APP,关注云资讯,随时随地运维管控云服务