设备数据上云,解析后的设备数据一般是时序存储,但纯粹的设备时序数据无法给用户带来更大的业务价值,需要根据业务需求进行额外的数据统计分析。本文将介绍如何利用ZWS云平台的自定义统计算法对数据进行统计。
统计数据准备首先,需要在ZWS云平台中创建设备并上报设备数据:
统计算法ZWS云平台的统计算法有两种,分别是内置统计算法和自定义统计算法。
创建自定义统计算法不同于内置算法,自定义算法从请求参数、统计过程、统计结果均由用户自定义,需要开发者编写脚本。目前自定义统计中支持了Groovy和JavaScript两种脚本语言解析。
技术交流群长按识别如下二维码可加入“EsDA嵌入式系统设计自动化交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信:zlgmcu-888。
应用场景
上一篇《如何利用IoT云平台统计设备数据?—基础篇》介绍了如何运用ZWS云平台中的内置统计算法进行数据统计,这次将介绍如何创建自定义统计算法。
为什么需要自定义统计算法?由于业务需求各式各样,有的需要求平均值,有的需要求累加值,不同维度需要不同统计算法,开发者可以通过自定义统计算法来满足对应的项目需求。
统计数据准备首先,需要在ZWS云平台中创建设备并上报设备数据:

统计算法ZWS云平台的统计算法有两种,分别是内置统计算法和自定义统计算法。- 内置算法为云平台定义好的算法,可以直接关联设备进行统计,无需关心统计算法内容和过程。
-
自定义算法可以自己拟定数据统计的方式(例如取某段时间的最大最小值、总和等等)来统计设备数据。
创建自定义统计算法不同于内置算法,自定义算法从请求参数、统计过程、统计结果均由用户自定义,需要开发者编写脚本。目前自定义统计中支持了Groovy和JavaScript两种脚本语言解析。

- 类别:云平台提供给自定义算法的参数;
-
参数名:参数的别名。
在云平台中,提供了6种参数给自定义算法的开发者使用:
-
devType:设备类型;
-
devId:创建设备定义的ID,可以用于选取一个设备进行统计;
-
dataSource:设备类型功能块中的某一个字段;
-
dataValue:需要比较的数据值;
- group:软件分组,可以对一整个软件分组进行统计。
统计数据的过程代码,可以使用Groovy或者JavaScript语言编写。
3.返回参数
定义统计后结果显示的字段。
这里以统计一小时内设备的某个数据的总和为例,编写一个JavaScript脚本:
// 载入需要实现的接口
var DataStatisticScriptMethod = Java.type("com.zlgcloud.iotplatform.iotdata.service.data.statistics.DataStatisticScriptMethod");
// 创建继承实现接口的类
var JsDataStatisticScriptMethod = Java.extend(DataStatisticScriptMethod);
// 创建func对象
var func = new JsDataStatisticScriptMethod() {
execute: function(param) {
//获取创建算法页面的请求参数,参数值会由云平台根据算法实例的选择项,进行自动填充
var thirdThingsId = param.get("devId");
var infoModelId = param.get("devType");
var property = param.get("property");
//可以自定义统计时间范围,如果查询条件没有range,则会根据算法实例的数据开始时间和数据结束时间范围进行统计
var currentTime = new Date().valueOf();
var anHourAgo = currentTime - 3600000;
// 拼装elasticseach 查询的dsl
// 这里根据业务需要设置数据范围. 查询时会限制租户和用户管理的设备.
var esParam = {
"aggregations": {
"result_in_hour": {
"sum": {
"field": "data." + property
}
}
},
"query": {
"bool":{
"must": [
{
"term": {
"third_things_id.keyword": thirdThingsId
}
},
{
"range": {
"timestamp": {
"gte": anHourAgo,
"lt": currentTime
}
}
}
]
}
}
};
//获取统计结果
var result = Java.super(func).queryEs(infoModelId, esParam);
var rtn = {"result_in_hour":result['aggregations']['result_in_hour']['value']};
return rtn;
}
}
将脚本复制到自定义算法中。

同时创建实例,给设备的数据进行统计。

执行算法过后,可以看到自定义统计结果。

关联产品
技术交流群长按识别如下二维码可加入“EsDA嵌入式系统设计自动化交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信:zlgmcu-888。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
致远电子
+关注
关注
13文章
423浏览量
32647
发布评论请先 登录
相关推荐
热点推荐
智能家居体验升级关键!物联网云平台靠跨设备数据关联发力
在数字浪潮席卷全球的今天,物联网云平台已成为智能家居的“大脑”与“中枢”,正以前所未有的深度和广度重新定义着我们的居住体验,连接起分散的智能设备,实现数据互通与指令协同,让智能家居从“
御控工业物联网大数据解决方案:排水设备远程监控与大数据统计系统
御控工业物联网推出排水设备远程监控与大数据统计系统,通过物联网、大数据、云计算等技术构建“感知-传输-分析-决策”闭环管理体系,助力排水行业数字化转型。
数据中台可以接入哪些物联网云平台
数据中台作为企业数字化转型的核心枢纽,能够通过标准化接口、协议适配及数据治理能力,接入多种类型的物联网云平台,实现设备
解锁应用场景搭建新方式:IOT 物联网平台的跨设备数据关联与零编程零成本
在物联网技术深度渗透各行各业的今天,IOT云平台已成为连接设备、数据与业务的核心枢纽。而低代码组态开发的融入,更是打破了传统物联网开发的技术
IoT设备管理平台的核心功能与场景化应用
在物联网产业从 “碎片化试点” 迈向 “规模化运营” 的过程中,IoT 设备管理平台逐渐成为支撑海量设备稳定运行的 “操作系统”。作为连接设备
从设备联动到数据驱动:IoT物联网管理平台的核心应用场景
当田间的传感器自动触发灌溉,当城市的路灯随车流调节亮度,当工厂的设备提前预警故障——这些看似独立的智能场景,背后都依赖于同一个核心支撑:IoT物联网管理平台。作为连接设备、
低代码物联网云平台功能解析:从设备接入到智能应用
设备、数据与应用的核心枢纽,其功能覆盖了从设备接入到数据处理、应用开发的全流程。以下是其主要功能的详细说明: 一、设备接入与管理 物联网
数据中台实现Modbus温度传感器对接到IOT平台
为IoT平台支持的格式(标准MQTT格式)。 实时性:温度数据需实时低延迟传输,满足监控或告警需求。 可扩展性:支持多设备接入,兼容不同厂商的Modbus传感器。
【产品应用】如何利用IoT云平台统计设备数据?— 进阶篇
评论