規(guī)則引擎
規(guī)則引擎就是指用戶在華為云平臺對接入的設備設定相應的規(guī)則,然后在條件滿足響應的規(guī)則后,平臺便會觸發(fā)的動作來滿足用戶需求。規(guī)則引擎包含了設備聯(lián)動和數(shù)據(jù)轉(zhuǎn)發(fā)兩個部分。
規(guī)則引擎思維導圖:
設備聯(lián)動
設備聯(lián)動是通過條件觸發(fā),基于預設的規(guī)則,引發(fā)多設備的協(xié)同反應,實現(xiàn)設備聯(lián)動、智能控制。例如,當執(zhí)行動作為“發(fā)送通知”時,物聯(lián)網(wǎng)平臺對接華為云的 消息通知 服務 SMN ,進行主題消息的設置和下發(fā)。
觸發(fā)條件:
要想觸發(fā)一個規(guī)則動作,就必須首先要有個觸發(fā)條件,在華為云設備聯(lián)動的規(guī)則有匹配設備觸發(fā)、指定設備觸發(fā)、定時觸發(fā)三個部分。
指定設備觸發(fā):對使用相同產(chǎn)品模型的設備進行條件設置。
指定設備出發(fā):對指定設備進行條件設置。
定時觸發(fā):可以設置規(guī)則觸發(fā)的時間點。值得注意的是當指定的觸發(fā)條件選擇“定時觸發(fā)”,則執(zhí)行動作中不能設置為“發(fā)送通知”、“上報告警”、“恢復告警”的動作。
執(zhí)行動作:
當擁有一個觸發(fā)條件的時候,必定會有一個與之對應的執(zhí)行動作,執(zhí)行動作可分為下發(fā)命令、發(fā)送通知、上報告警、恢復告警。
下發(fā)命令:下發(fā)命令時需指定要執(zhí)行的設備,對服務的執(zhí)行命令參數(shù)進行重新配置下發(fā)給設備。
發(fā)送通知:發(fā)送通知需要您授權當前 設備接入服務 (IoTDA) 訪問所有區(qū)域的消息通知服務(SMN) 的權限。即對接華為云的消息通知服務SMN,進行主題消息的設置和下發(fā)。
上報告警:定義告警級別、告警名稱、告警內(nèi)容等。當滿足觸發(fā)設置的條件后,產(chǎn)生的告警將統(tǒng)一上報到 應用運維管理 服務( AOM )管理界面。
恢復告警:定義告警級別、告警名稱、告警內(nèi)容等,當滿足觸發(fā)設置的條件后,產(chǎn)生的告警將統(tǒng)一上報到應用運維管理服務(AOM)管理界面。
數(shù)據(jù)轉(zhuǎn)發(fā)
設備接入IoTDA 與華為云上的其他服務實現(xiàn)無縫對接,就是借助于規(guī)則引擎中的數(shù)據(jù)轉(zhuǎn)發(fā)來實現(xiàn)的。當滿足數(shù)據(jù)轉(zhuǎn)發(fā)的觸發(fā)條件時,IoTDA便能根據(jù)所設定的觸發(fā)事件將數(shù)據(jù)轉(zhuǎn)發(fā)到其他服務或是推送給應用。例如DIS、OBS等。
觸發(fā)事件:
在設備接入IoTDA與其他服務對接,首先需要確認需要轉(zhuǎn)發(fā)的事件,觸發(fā)事件主要有設備的添加更新或刪除、設備屬性的上報、設備消息狀態(tài)的變更、設備狀態(tài)變更、批量任務變更。
設備添加更新與刪除:是指新增一個設備、刪除、更新一個設備時觸發(fā)規(guī)則引擎,然后將數(shù)據(jù)轉(zhuǎn)發(fā)到所設定的轉(zhuǎn)發(fā)目標服務。值得注意的是設備更新指的是設備的一些基本信息,如設備名稱、描述、版本信息等,而是不是所屬服務的屬性。
設備屬性上報:是指當設備上報其屬性時觸發(fā)規(guī)則通過設定的轉(zhuǎn)發(fā)目標將其轉(zhuǎn)發(fā)到其他的華為云服務或是推送給應用。
設備消息上報:是指當設備上報其消息時觸發(fā)規(guī)則通過設定的轉(zhuǎn)發(fā)目標將其轉(zhuǎn)發(fā)到其他的華為云服務或是推送給應用。
設備消息狀態(tài)變更:是指當設備消息狀態(tài)發(fā)生變更時觸發(fā)規(guī)則通過設定的轉(zhuǎn)發(fā)目標將其轉(zhuǎn)發(fā)到其他的華為云服務或是推送給應用。消息的狀態(tài)分為以下四種:PENDING,DELIVERED,F(xiàn)AILED和TIMEOUT,PENDING指設備不在線,消息被緩存起來,等設備上線之后下發(fā): DELIVERED指消息發(fā)送成功;FAILED消息發(fā)送失敗;TIMEOUT指消息在平臺默認時間內(nèi)(1天)還沒有下發(fā)送給設備,則平臺會將消息設置為超時,狀態(tài)為TIMEOUT。
設備狀態(tài)變更:是指當設備的狀態(tài)發(fā)生變更時觸發(fā)規(guī)則通過設定的轉(zhuǎn)發(fā)目標將其轉(zhuǎn)發(fā)到其他的華為云服務或是推送給應用。設備的狀態(tài)分為以下四種:未激活,在線、離線、異常。
設備批量任務變更:是指針對任務類型為固件升級或是軟件升級的任務狀態(tài)發(fā)生變更時觸發(fā)規(guī)則通過設定的轉(zhuǎn)發(fā)目標將其轉(zhuǎn)發(fā)到其他的華為云服務或是推送給應用。設備的批量任務狀態(tài)分為以下六種:任務正在等待被執(zhí)行、任務正在被執(zhí)行、任務成功、任務部分成功、任務失敗、任務被停止。
轉(zhuǎn)發(fā)目標
在我們對觸發(fā)事件設置完成之后,就會設置其轉(zhuǎn)發(fā)的目標。轉(zhuǎn)發(fā)目標可以是華為云上的其他服務,也可以直接是通過http推送的方式推送給第三方應用又或者是AMQP消息隊列.
關于規(guī)則引擎的黑名單:
規(guī)則引擎的黑名單是指:當觸發(fā)規(guī)則引擎時,根據(jù)觸發(fā)事件通過http訂閱推送的方式將數(shù)據(jù)推送給應用,但如果推送失?。捶祷氐臓顟B(tài)碼不為200)并且連續(xù)推送十次失敗,這時這個應用地址便會被平臺加入到黑名單,不再進行推送。當三十秒過后,這時平臺將會放開黑名單一次,此時當觸發(fā)事件條件滿足時再去推送,如果返回的狀態(tài)碼為200,即推送成功,如果返回的狀態(tài)碼不為200即推送失敗,且又再次連續(xù)十次失敗,此時應用地址又會加入黑名單。如此反復。