場景聯(lián)動
場景聯(lián)動可以通過可視化的方式定義設(shè)備之間聯(lián)動的規(guī)則,配置界面如下:

配置說明:
- 觸發(fā)條件:所有條件,任意條件,不滿足。所有條件需要所有觸發(fā)器都滿足才會去執(zhí)行動作,任意條件滿足其中一個即可,不滿足只能包含一個觸發(fā)器。
- 觸發(fā)方式:設(shè)備觸發(fā),產(chǎn)品觸發(fā),定時觸發(fā)。設(shè)備觸發(fā)可以指定一個或多個設(shè)備觸發(fā),產(chǎn)品觸發(fā)時產(chǎn)品下面所有設(shè)備都會去匹配規(guī)則,定時觸發(fā)使用cron表達(dá)式定時執(zhí)行一次。
- 動作方式:設(shè)備執(zhí)行,產(chǎn)品執(zhí)行,告警執(zhí)行。設(shè)備執(zhí)行可以指定一個或多個設(shè)備執(zhí)行,產(chǎn)品執(zhí)行時產(chǎn)品下面所有設(shè)備都會去執(zhí)行動作,告警執(zhí)行時查詢該場景匹配的告警配置,執(zhí)行消息通知。
- 靜默時間:指定的時間范圍內(nèi)只會執(zhí)行一次動作,單位分鐘。
- 執(zhí)行方式:串行,并行。串行時動作按照順序依次執(zhí)行,并行時動作一起執(zhí)行。
- 延時執(zhí)行:延時執(zhí)行動作,時間限制為90秒,指定時間范圍內(nèi),如果服務(wù)端意外停止,重啟后不會再去執(zhí)行。
自定義觸發(fā)條件
常用判斷條件無法滿足觸發(fā)條件的判斷時,可使用自定義觸發(fā)條件,通過代碼獲取觸發(fā)id的方式執(zhí)行觸發(fā)動作。

配置說明:
- 觸發(fā)ID:會做為觸發(fā)腳本的id值,用戶查詢該觸發(fā)條件
- 觸發(fā)參數(shù):會作為觸發(fā)腳本的value值,作為傳參和判斷條件,為json格式的字符串,如:
代碼使用:
以定時檢查設(shè)備上報日志為例,定時任務(wù)傳入觸發(fā)id和周期參數(shù)。

// DeviceJob.java中 checkDeviceReportData函數(shù)
//查詢制定cycle周期(分鐘)的設(shè)備上報日志
public void checkDeviceReportData(String TriggerId, Integer cycle) {
Calendar calendar = Calendar.getInstance();
Date now = new Date();
calendar.setTime(now);
calendar.add(Calendar.MINUTE, -cycle);
//查詢制定cycle周期(分鐘)的設(shè)備上報日志
deviceLogService.selectDeviceReportData(calendar.getTime(), now).forEach(item -> {
// 獲取無上報參數(shù)屬性列表
if (!item.getUnReportList().isEmpty()) {
item.getUnReportList().forEach(s -> {
//傳入入觸發(fā)id 設(shè)備序列號 和 無上報的屬性id,執(zhí)行告警
alertPush(TriggerId, item.getSerialNumber(), s);
});
}
});
// 省略部分代碼.....
// 獲取告警場景id
SceneScript triggerScript = new SceneScript();
SceneScript alertlog = new SceneScript();
// 設(shè)置篩選的觸發(fā)id
triggerScript.setId(TriggerId);
// 獲取腳本列表
List<SceneScript> list = sceneScriptService.selectSceneScriptList(triggerScript);
if (!list.isEmpty()) {
triggerScript = list.get(0);
alertlog.setId(identity);
alertlog.setValue("無數(shù)據(jù)上報");
// 獲取腳本對應(yīng)場景id
alertlog.setSceneId(triggerScript.getSceneId());
} else {
return;
}
// 自定義觸發(fā)動作邏輯,或者獲取對應(yīng)場景動作腳本 執(zhí)行對應(yīng)的動作
// 執(zhí)行告警動作
}
提示
- 新建的場景中包含告警執(zhí)行,告警配置中可以關(guān)聯(lián)該場景,滿足觸發(fā)條件后會發(fā)送告警短信/語音/郵件,微信/釘釘通知等,具體根據(jù)告警的配置
- 告警觸發(fā)時會生成告警日志,只有當(dāng)告警日志未處理條數(shù)小于等于一條時才會執(zhí)行消息通知,請及時處理告警日志;或者可通過配置告警恢復(fù)處理