0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何利用ZWS云平臺(tái)的自定義統(tǒng)計(jì)算法對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)?

AGk5_ZLG_zhiyua ? 來源:ZLG致遠(yuǎn)電子 ? 2023-05-23 15:09 ? 次閱讀

設(shè)備數(shù)據(jù)上云,解析后的設(shè)備數(shù)據(jù)一般是時(shí)序存儲(chǔ),但純粹的設(shè)備時(shí)序數(shù)據(jù)無法給用戶帶來更大的業(yè)務(wù)價(jià)值,需要根據(jù)業(yè)務(wù)需求進(jìn)行額外的數(shù)據(jù)統(tǒng)計(jì)分析。本文將介紹如何利用ZWS云平臺(tái)的自定義統(tǒng)計(jì)算法對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。

fc1e0bfa-f937-11ed-90ce-dac502259ad0.jpg??應(yīng)用場景

為什么需要自定義統(tǒng)計(jì)算法?由于業(yè)務(wù)需求各式各樣,有的需要求平均值,有的需要求累加值,不同維度需要不同統(tǒng)計(jì)算法,開發(fā)者可以通過自定義統(tǒng)計(jì)算法來滿足對(duì)應(yīng)的項(xiàng)目需求。

fc2b5670-f937-11ed-90ce-dac502259ad0.jpg??統(tǒng)計(jì)數(shù)據(jù)準(zhǔn)備

首先,需要在ZWS云平臺(tái)中創(chuàng)建設(shè)備并上報(bào)設(shè)備數(shù)據(jù):

fc371d70-f937-11ed-90ce-dac502259ad0.png

fc2b5670-f937-11ed-90ce-dac502259ad0.jpg??統(tǒng)計(jì)算法

ZWS云平臺(tái)的統(tǒng)計(jì)算法有兩種,分別是內(nèi)置統(tǒng)計(jì)算法自定義統(tǒng)計(jì)算法。

內(nèi)置算法為云平臺(tái)定義好的算法,可以直接關(guān)聯(lián)設(shè)備進(jìn)行統(tǒng)計(jì),無需關(guān)心統(tǒng)計(jì)算法內(nèi)容和過程。

自定義算法可以自己擬定數(shù)據(jù)統(tǒng)計(jì)的方式(例如取某段時(shí)間的最大最小值、總和等等)來統(tǒng)計(jì)設(shè)備數(shù)據(jù)。

fc2b5670-f937-11ed-90ce-dac502259ad0.jpg??創(chuàng)建自定義統(tǒng)計(jì)算法

不同于內(nèi)置算法,自定義算法從請(qǐng)求參數(shù)、統(tǒng)計(jì)過程、統(tǒng)計(jì)結(jié)果均由用戶自定義,需要開發(fā)者編寫腳本。目前自定義統(tǒng)計(jì)中支持了Groovy和JavaScript兩種腳本語言解析。

fc5e5afc-f937-11ed-90ce-dac502259ad0.png

1. 請(qǐng)求參數(shù)

類別:云平臺(tái)提供給自定義算法的參數(shù);

參數(shù)名:參數(shù)的別名。

在云平臺(tái)中,提供了6種參數(shù)給自定義算法的開發(fā)者使用:

devType:設(shè)備類型;

devId:創(chuàng)建設(shè)備定義的ID,可以用于選取一個(gè)設(shè)備進(jìn)行統(tǒng)計(jì);

dataSource:設(shè)備類型功能塊中的某一個(gè)字段;

dataCompareOperation:字段的比較條件,有大于、小于和等于;

dataValue:需要比較的數(shù)據(jù)值;

group:軟件分組,可以對(duì)一整個(gè)軟件分組進(jìn)行統(tǒng)計(jì)。

2.算法代碼

統(tǒng)計(jì)數(shù)據(jù)的過程代碼,可以使用Groovy或者JavaScript語言編寫。

3.返回參數(shù)

定義統(tǒng)計(jì)后結(jié)果顯示的字段。

這里以統(tǒng)計(jì)一小時(shí)內(nèi)設(shè)備的某個(gè)數(shù)據(jù)的總和為例,編寫一個(gè)JavaScript腳本:

// 載入需要實(shí)現(xiàn)的接口
var DataStatisticScriptMethod = Java.type("com.zlgcloud.iotplatform.iotdata.service.data.statistics.DataStatisticScriptMethod");
// 創(chuàng)建繼承實(shí)現(xiàn)接口的類
var JsDataStatisticScriptMethod = Java.extend(DataStatisticScriptMethod);


// 創(chuàng)建func對(duì)象
var func = new JsDataStatisticScriptMethod() {
    execute: function(param) {


        //獲取創(chuàng)建算法頁面的請(qǐng)求參數(shù),參數(shù)值會(huì)由云平臺(tái)根據(jù)算法實(shí)例的選擇項(xiàng),進(jìn)行自動(dòng)填充
        var thirdThingsId = param.get("devId");
        var infoModelId = param.get("devType");
        var property = param.get("property");


        //可以自定義統(tǒng)計(jì)時(shí)間范圍,如果查詢條件沒有range,則會(huì)根據(jù)算法實(shí)例的數(shù)據(jù)開始時(shí)間和數(shù)據(jù)結(jié)束時(shí)間范圍進(jìn)行統(tǒng)計(jì)
        var currentTime = new Date().valueOf();
        var anHourAgo = currentTime - 3600000;


        // 拼裝elasticseach 查詢的dsl
        // 這里根據(jù)業(yè)務(wù)需要設(shè)置數(shù)據(jù)范圍. 查詢時(shí)會(huì)限制租戶和用戶管理的設(shè)備.
        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
                             }
                           }
                        }
                    ]
                }
            }
        };
        //獲取統(tǒng)計(jì)結(jié)果
        var result = Java.super(func).queryEs(infoModelId, esParam);
        var rtn = {"result_in_hour":result['aggregations']['result_in_hour']['value']};
        return rtn;
    }
}

將腳本復(fù)制到自定義算法中。

fc6df69c-f937-11ed-90ce-dac502259ad0.png

同時(shí)創(chuàng)建實(shí)例,給設(shè)備的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。

fc7f4c6c-f937-11ed-90ce-dac502259ad0.png

執(zhí)行算法過后,可以看到自定義統(tǒng)計(jì)結(jié)果。

fc8b8c0c-f937-11ed-90ce-dac502259ad0.png




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • javascript語言
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    961

原文標(biāo)題:【產(chǎn)品應(yīng)用】如何利用IoT云平臺(tái)統(tǒng)計(jì)設(shè)備數(shù)據(jù)?— 進(jìn)階篇

文章出處:【微信號(hào):ZLG_zhiyuan,微信公眾號(hào):ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ADI公司的人數(shù)統(tǒng)計(jì)算法確保高效空間利用與工作人員安全

    ADI今天推出ADI EagleEye? ADSW4000人數(shù)統(tǒng)計(jì)算法,用于檢測和統(tǒng)計(jì)會(huì)議室或辦公室等室內(nèi)空間中的人數(shù)。
    發(fā)表于 11-30 10:00 ?833次閱讀
    ADI公司的人數(shù)<b class='flag-5'>統(tǒng)計(jì)算法</b>確保高效空間<b class='flag-5'>利用</b>與工作人員安全

    基于音頻統(tǒng)計(jì)特性的數(shù)字水印嵌入算法

    結(jié)合數(shù)字音頻時(shí)頻域統(tǒng)計(jì)特性及同步碼技術(shù),提出了一種可有效抵抗去同步攻擊的混合域數(shù)字音頻水印嵌入算法.該算法首先結(jié)合數(shù)字水印與同步碼(大小),對(duì)原始音頻載體進(jìn)行分段處理,并將每個(gè)音頻
    發(fā)表于 03-03 22:38

    基于FPGA的HDTV視頻圖像灰度直方圖統(tǒng)計(jì)算法設(shè)計(jì)

    亮度分布特性有力的工具,根據(jù)它的結(jié)果可以進(jìn)行諸如灰度拉伸、自動(dòng)對(duì)比度、動(dòng)態(tài)伽馬調(diào)整等操作。圖1 Lena 圖像的灰度直方圖統(tǒng)計(jì)FPGA算法統(tǒng)計(jì)計(jì)算機(jī)或者DSP 上實(shí)現(xiàn)直方圖
    發(fā)表于 05-14 12:37

    Tisan平臺(tái)自定義產(chǎn)品組件數(shù)據(jù)類型沒有bool?

    本帖最后由 寒江雪20 于 2016-3-1 13:20 編輯 Tisan平臺(tái)自定義產(chǎn)品組件數(shù)據(jù)類型沒有bool類型,但是有兩個(gè)char*,是不是搞錯(cuò)了?而且即使有char*,
    發(fā)表于 03-01 13:16

    基于計(jì)算的監(jiān)控與統(tǒng)計(jì)

    計(jì)算統(tǒng)監(jiān)控與 復(fù)雜事件處理 是一個(gè)基于 Linux 平臺(tái)統(tǒng)計(jì)分析 框架 。它 是一 個(gè)集數(shù)據(jù)采,傳輸和
    發(fā)表于 10-09 09:54 ?10次下載
    基于<b class='flag-5'>云</b><b class='flag-5'>計(jì)算</b>的監(jiān)控與<b class='flag-5'>統(tǒng)計(jì)</b>

    【產(chǎn)品應(yīng)用】如何利用IoT平臺(tái)統(tǒng)計(jì)設(shè)備數(shù)據(jù)?— 基礎(chǔ)篇

    上報(bào)到 ZWS平臺(tái)數(shù)據(jù)經(jīng)過解析后可以直觀地看到某一時(shí)刻設(shè)備的數(shù)據(jù)狀態(tài),而想觀察設(shè)備數(shù)據(jù)整體
    的頭像 發(fā)表于 05-18 13:05 ?497次閱讀
    【產(chǎn)品應(yīng)用】如何<b class='flag-5'>利用</b>IoT<b class='flag-5'>云</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>統(tǒng)計(jì)</b>設(shè)備<b class='flag-5'>數(shù)據(jù)</b>?— 基礎(chǔ)篇

    【產(chǎn)品應(yīng)用】如何利用IoT平臺(tái)統(tǒng)計(jì)設(shè)備數(shù)據(jù)?— 進(jìn)階篇

    設(shè)備數(shù)據(jù),解析后的設(shè)備數(shù)據(jù)一般是時(shí)序存儲(chǔ),但純粹的設(shè)備時(shí)序數(shù)據(jù)無法給用戶帶來更大的業(yè)務(wù)價(jià)值,需要根據(jù)業(yè)務(wù)需求進(jìn)行額外的
    的頭像 發(fā)表于 05-23 15:10 ?536次閱讀
    【產(chǎn)品應(yīng)用】如何<b class='flag-5'>利用</b>IoT<b class='flag-5'>云</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>統(tǒng)計(jì)</b>設(shè)備<b class='flag-5'>數(shù)據(jù)</b>?— 進(jìn)階篇

    如何利用IoT平臺(tái)統(tǒng)計(jì)設(shè)備數(shù)據(jù)?

    平臺(tái)統(tǒng)計(jì)完設(shè)備數(shù)據(jù)后,有時(shí)需要下載統(tǒng)計(jì)數(shù)據(jù)。以往是把統(tǒng)計(jì)數(shù)據(jù)全部打包下載,這不僅
    發(fā)表于 05-30 11:42 ?431次閱讀
    如何<b class='flag-5'>利用</b>IoT<b class='flag-5'>云</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>統(tǒng)計(jì)</b>設(shè)備<b class='flag-5'>數(shù)據(jù)</b>?

    【解決方案】如何通過IoT對(duì)設(shè)備數(shù)據(jù)進(jìn)行自定義統(tǒng)計(jì)?

    從設(shè)備→網(wǎng)關(guān)→服務(wù)器,可以實(shí)現(xiàn)將數(shù)據(jù)采集到物聯(lián)網(wǎng)平臺(tái),但業(yè)務(wù)需求各式各樣,有時(shí)需要不同的統(tǒng)計(jì)數(shù)據(jù),那么,如何做好物聯(lián)網(wǎng)
    的頭像 發(fā)表于 03-06 13:50 ?713次閱讀
    【解決方案】如何通過IoT<b class='flag-5'>云</b>對(duì)設(shè)備<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>進(jìn)行</b><b class='flag-5'>自定義</b><b class='flag-5'>統(tǒng)計(jì)</b>?

    【產(chǎn)品應(yīng)用】如何利用IoT平臺(tái)統(tǒng)計(jì)設(shè)備數(shù)據(jù)?— 基礎(chǔ)篇

    ZWS平臺(tái)數(shù)據(jù)經(jīng)過解析后可以直觀地看到某一時(shí)刻設(shè)備的數(shù)據(jù)狀態(tài),而想觀察設(shè)備數(shù)據(jù)整體的特征或
    的頭像 發(fā)表于 05-19 10:40 ?543次閱讀
    【產(chǎn)品應(yīng)用】如何<b class='flag-5'>利用</b>IoT<b class='flag-5'>云</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>統(tǒng)計(jì)</b>設(shè)備<b class='flag-5'>數(shù)據(jù)</b>?— 基礎(chǔ)篇

    【產(chǎn)品應(yīng)用】如何利用IoT平臺(tái)統(tǒng)計(jì)設(shè)備數(shù)據(jù)?— 進(jìn)階篇

    設(shè)備數(shù)據(jù),解析后的設(shè)備數(shù)據(jù)一般是時(shí)序存儲(chǔ),但純粹的設(shè)備時(shí)序數(shù)據(jù)無法給用戶帶來更大的業(yè)務(wù)價(jià)值,需要根據(jù)業(yè)務(wù)需求進(jìn)行額外的
    的頭像 發(fā)表于 05-30 17:18 ?506次閱讀
    【產(chǎn)品應(yīng)用】如何<b class='flag-5'>利用</b>IoT<b class='flag-5'>云</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>統(tǒng)計(jì)</b>設(shè)備<b class='flag-5'>數(shù)據(jù)</b>?— 進(jìn)階篇

    【產(chǎn)品應(yīng)用】如何利用IoT平臺(tái)統(tǒng)計(jì)設(shè)備數(shù)據(jù)?— 下載篇

    。應(yīng)用場景上一篇的《如何利用IoT平臺(tái)統(tǒng)計(jì)設(shè)備數(shù)據(jù)?—進(jìn)階篇》介紹了如何在ZWS
    的頭像 發(fā)表于 06-07 10:28 ?582次閱讀
    【產(chǎn)品應(yīng)用】如何<b class='flag-5'>利用</b>IoT<b class='flag-5'>云</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>統(tǒng)計(jì)</b>設(shè)備<b class='flag-5'>數(shù)據(jù)</b>?— 下載篇

    【解決方案】如何通過IoT對(duì)設(shè)備數(shù)據(jù)進(jìn)行自定義統(tǒng)計(jì)?

    從設(shè)備→網(wǎng)關(guān) → 服務(wù)器,可以實(shí)現(xiàn)將數(shù)據(jù)采集到物聯(lián)網(wǎng)平臺(tái),但業(yè)務(wù)需求各式各樣,有時(shí)需要不同的統(tǒng)計(jì)數(shù)據(jù),那么,如何做好物聯(lián)網(wǎng)
    的頭像 發(fā)表于 07-17 14:45 ?380次閱讀
    【解決方案】如何通過IoT<b class='flag-5'>云</b>對(duì)設(shè)備<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>進(jìn)行</b><b class='flag-5'>自定義</b><b class='flag-5'>統(tǒng)計(jì)</b>?

    基于DTU&amp;amp;ZWS的智慧環(huán)境監(jiān)控系統(tǒng)之數(shù)據(jù)統(tǒng)計(jì)

    智慧環(huán)境監(jiān)控系統(tǒng),如何統(tǒng)計(jì)分析環(huán)境數(shù)據(jù)?如何統(tǒng)計(jì)每個(gè)小時(shí)PM2.5的平均值?本文將介紹基于DTU&ZWS的智慧環(huán)境監(jiān)控系統(tǒng)的
    的頭像 發(fā)表于 08-23 15:17 ?550次閱讀
    基于DTU&amp;amp;<b class='flag-5'>ZWS</b><b class='flag-5'>云</b>的智慧環(huán)境監(jiān)控系統(tǒng)之<b class='flag-5'>數(shù)據(jù)統(tǒng)計(jì)</b>篇

    基于ZWS平臺(tái)對(duì)ZigBee網(wǎng)關(guān)的通信統(tǒng)計(jì)

    在ZigBee物聯(lián)網(wǎng)應(yīng)用中,ZigBee網(wǎng)關(guān)是終端設(shè)備與云端通信聯(lián)接的重要一環(huán)。本文將介紹ZWS物聯(lián)網(wǎng)平臺(tái)支持從哪些方面對(duì)ZigBee網(wǎng)關(guān)進(jìn)行通信
    的頭像 發(fā)表于 10-10 10:04 ?632次閱讀
    基于<b class='flag-5'>ZWS</b><b class='flag-5'>云</b><b class='flag-5'>平臺(tái)</b>對(duì)ZigBee網(wǎng)關(guān)的通信<b class='flag-5'>統(tǒng)計(jì)</b>