作者/攝影 |
本文改編自聯發科技Cloud Sandbox(MCS)網站上的文章,特此感謝聯發科技的授權,圖文版權均屬於聯發科技。 |
文章分類 | 教學技術文 |
時間 | |
成本 | |
難度 | |
材料表 |
當我們在建構某些物聯網應用時,例如智慧門禁系統或空汙偵測裝置,往往,我們透過感測器將偵測到的資料上傳至雲端,會需要當上傳的資料滿足某一些條件,雲端系統會自動透過一些方式通知我們。像是當空氣中的某種物質達到一定程度,我們的行動裝置可收到空汙通知;又或著當智慧門禁系統的紅外線被觸動,我們也可以收到警示。
為此,聯發科技的雲端服務Cloud Sandbox(以下簡稱MCS)新推出了一個功能,就是強化trigger action的功能,例如設定的條件及含括更多型態的資料通道。針對action的部份,MCS新增了alert的功能,可強化更多使用的場景特別是Scene。另外,針對webhook的呼叫,MCS提供了更大的彈性。
實際上該怎麼使用呢?一起來看看以下的教學:
使用者可設定觸發條件和動作,當特定資料通道回傳的值符合使用者所設定的條件,系統將會發出通知提醒。
以下是支援設定觸發條件的資料通道:
- 開關
- 分類
- 字串
- 十六進位值
- 整數
- 浮點數
並可套用以下的條件:
- 大於
- 小於
- 等於
- 介於~之間
- 數值異動
當資料通道上傳的數值符合設定條件時時,會觸發通知動作。以下是四種支援的通知動作:
- 電子郵件
有權限能訪問這個裝置的使用者,皆能收到電子郵件通知,包括裝置的擁有者、管理者及一般檢視。
- 手機推播
必須先安裝 MediaTek Cloud Sandbox 手機應用程式,並登入 MCS 帳號。
- Webhook
MCS 會發送一個 HTTP 請求至使用者指定的網址(Callback URL)。
- 網頁警告
當觸發條件成立時,在 MCS 網頁上會顯示相關提醒,包含觸發的嚴重等級。
設定觸發條件與動作
您可在產品原型頁面下設定觸發條件和動作,此觸發規則會套用在此原型下的所有裝置。之後,使用者可在各個裝置底下,修改條件的觸發數值。詳細操作步驟:
Step1:當使用者點入產品原型頁面後,點選「觸發條件和動作」分頁 -> 點擊「新增觸發條件和動作」。
Step2:在「新增觸發條件和動作」視窗中,填入必要的資訊。
(1)觸發條件名稱之後將會顯示於網頁警告的訊息中。
(2)使用者可設定多個比對條件,當這些條件同時成立時(AND 邏輯)則會觸發通知。請注意,要讓條件同時成立,使用者必須將此條件有用到的資料通道數值同時上傳至 MCS,意思是寫在同個 HTTP 上傳的請求當中。
(3)至少選擇一個觸發動作,當條件成立時,發送通知。稍後將會針對觸發動作有更詳細的介紹。
使用者在產品原型中設定的觸發條件和動作,會被產品原型下所有的測試裝置所繼承。在測試裝置中,使用者只能更改觸發條件的值,或著是選擇打開或關閉此觸發條件和動作。
需要注意的是,只有透過裝置上傳的資料點(上傳資料點時,在 HTTP 表頭帶有deviceKey,或是透過MQTT協定發布資料)才會觸發動作。使用者透過 MCS 網頁操作資料通道而產生的資料點,將不會觸發。
觸發動作詳細介紹
設定手機推播
若使用者有多個手機裝置,MCS 能讓使用者設定,是否每隻手機裝置都要收到手機推播通知。使用者能於兩個地方設定:
-
「個人檔案」頁面中,設定是否手機要收到全部來自 MCS 的推播通知。
-
「測試裝置」頁面中,設定是否手機要收到來自特定測試裝置的推播通知。
在「個人檔案」頁面中,使用者可看到所有他有安裝 MCS 手機應用程式的手機列表。使用者可在此設定,是否每隻手機要收到或不收到全部來自 MCS 的推播通知。
在「測試裝置」頁面中,展開「管理您的觸發動作」,使用者可看到所有他有安裝 MCS 手機應用程式的手機列表。使用者可在此設定,是否特定手機要收到或不收到特定測試裝置的推播通知。
設定 Webhook
要使用webhook觸發動作,使用者只需在設定觸發條件時,選擇webhook作為觸發動作,並且輸入欲收到此觸發通知的網址。當觸發條件成立時,MCS會發送一個HTTP 請求至使用者提供的網址。
當使用者選擇 webhook 觸發動作後,他可使用測試按鈕,測試是否通知有被送出。送出的資訊包含 裝置名稱、device ID及觸發值。
設定網頁警告
當使用者在觸發條件與動作中設定網頁警告時,也必須指定此警告的嚴重性等級。
當觸發條件成立,網頁警告訊息會立即出現在網頁上,並顯示嚴重性等級等資訊。網頁警告會出現在以下三個頁面:
1.資料通道卡片
當資料通道的數值符合觸發條件,該資料通道上便會出現網頁警告標籤。展開後可看到更詳細的觸發資訊,包括觸發條件名稱與警告發生時間。在此範例中,資料點是在「2018-07-19 11:36」,上傳並觸發一個名叫「Water is too hot」的觸發條件。
當使用者點擊「解除」之後,這個警告則會被解除不會顯示在網頁上,直到下次使用者的裝置在上傳符合此觸發條件的資料點。
2.測試裝置列表
在測試裝置列表中,嚴重性最高的警告會顯示在測試裝置的卡片上。
以上面的範例來說,當測試裝置底下有兩個資料通道皆觸發了網頁警告,一個嚴重等級為「High」,另一個為「Medium」,那麼裝置卡片上的警告等級,會顯示「High」。當High的警告解除後(可能是使用者按下了「解除」按鈕,或重新上傳一個不符合觸發條件的資料點),則會顯示下一等級的警告「Medium」。
3.場景圖
在場景圖中,警告標籤的呈現方式與測試裝置列表ㄧ樣。
在通知內容中使用變數
MCS 預先定義了多個變數,讓使用者可在通知的名稱與內容欄位中使用,這些變數代表的是動作被觸發時,當下的真實數據。目前支援的變數包含有:
- ${deviceId}:設備的 ID
- ${deviceName}:設備的名稱
- ${value}:資料通道的數值
舉例來說,使用者可將Email的內容設定成:
目前 ${deviceName} 的溫度是 ${value}. |
當通知寄發給使用者時,其中的變數會被置換成當前的真實數據,例如:
目前 我的客廳 的溫度是 30. |
以上就是MCS新功能「觸發條件與動作」的教學,盼望透過這篇教學文,使讀者們未來建構物聯網應用時,可以更加得心應手。