加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • ??應(yīng)用場(chǎng)景
    • ??統(tǒng)計(jì)數(shù)據(jù)準(zhǔn)備
    • ??統(tǒng)計(jì)算法
    • ??創(chuàng)建自定義統(tǒng)計(jì)算法
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

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

2023/08/11
1905
閱讀需 7 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

設(shè)備數(shù)據(jù)上云,解析后的設(shè)備數(shù)據(jù)一般是時(shí)序存儲(chǔ),但純粹的設(shè)備時(shí)序數(shù)據(jù)無(wú)法給用戶帶來(lái)更大的業(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ì)。

??應(yīng)用場(chǎng)景

上一篇《如何利用IoT云平臺(tái)統(tǒng)計(jì)設(shè)備數(shù)據(jù)?—?基礎(chǔ)篇》介紹了如何運(yùn)用ZWS云平臺(tái)中的內(nèi)置統(tǒng)計(jì)算法進(jìn)行數(shù)據(jù)統(tǒng)計(jì),這次將介紹如何創(chuàng)建自定義統(tǒng)計(jì)算法。

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

??統(tǒng)計(jì)數(shù)據(jù)準(zhǔn)備

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

??統(tǒng)計(jì)算法

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

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

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

??創(chuàng)建自定義統(tǒng)計(jì)算法

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

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

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

在云平臺(tái)中,提供了6種參數(shù)給自定義算法的開(kāi)發(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ù)的過(guò)程代碼,可以使用Groovy或者JavaScript語(yǔ)言編寫。

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)建算法頁(yè)面的請(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í)間范圍,如果查詢條件沒(méi)有range,則會(huì)根據(jù)算法實(shí)例的數(shù)據(jù)開(kāi)始時(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ù)制到自定義算法中。

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

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

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
SN65HVD251DR 1 Texas Instruments High Speed CAN Transceiver with Short Loop Delay 8-SOIC -40 to 125

ECAD模型

下載ECAD模型
$4.3 查看
DP83867IRRGZR 1 Texas Instruments Industrial temperature, robust gigabit Ethernet PHY transceiver 48-VQFN -40 to 85

ECAD模型

下載ECAD模型
$59.73 查看
KSZ8999 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP208
$23.65 查看
致遠(yuǎn)電子

致遠(yuǎn)電子

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊(cè)資金5000萬(wàn)元,國(guó)家級(jí)高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測(cè)量?jī)x器工程技術(shù)研究開(kāi)發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊(cè)資金5000萬(wàn)元,國(guó)家級(jí)高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測(cè)量?jī)x器工程技術(shù)研究開(kāi)發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜