[ 教學技術文 ] MCS事件觸發功能進階教學——如何用更新後的 Webhook 功能連動外部服務?

作者/攝影

本文改編自聯發科技Cloud Sandbox(MCS)官方部落格上的文章,特此感謝聯發科技的授權,圖文版權均屬於聯發科技。

文章分類教學技術文

 

在之前的文章中,聯發科技的工程師介紹了在原型開發階段,事件觸發功能的最佳化,包含支援觸發條件的資料通道新增網頁警告的視覺化提示,以及如何自行定義該警告提示的嚴重性名稱而在這一篇文章,他們要教讀者們如何使用最佳化的 Webhook 功能,並以一個實例進行教學。若您尚未閱讀之前的文章,建議可看完後再回本文閱讀,以利交互搭配新功能一起使用。一起來閱讀吧!

延續之前的介紹,讀者們可看見連接MCS的工廠機台,在分別發生警告嚴重性為橘色 / 警告名稱為 Medium,以及警告嚴重性為紅色 / 警告名稱為High 兩種事件時,在測試裝置頁面的呈現,請參考下面2張圖:

圖1 顯示各別資料通道的網頁警示 | mcs.mediatek.com

 

圖2 在裝置列表頁面,僅顯示該裝置所有資料通到中警告嚴重性最高的警示燈號。 | mcs.mediatek.com

 

現在,除了網頁警告提示外,如果讀者們希望在事件發生的同時,能更進一步連動到某個遠端的實體裝置,例如智能音箱、無線燈泡⋯⋯等等,以提示在該地點的管理者,能否透過MCS實現呢?答案是可以的。

 

首先,我們必須選擇想要連動的物聯網裝置。除了挑選情境適合的裝置外,這個物聯網裝置在技術上必須滿足以下條件:

  1. 有對外開放的 API 接口

  2. API 支援 HTTP Restful 的通訊協定

 

讓我們假設情境設定如下:

工廠機台發生上述兩種事件觸發的緊急狀況時,透過 MCS 連動到管理者家中臥房的無線燈泡,而且燈泡直接顯示紅色或橘色燈光。在這個案例中,我選擇使用彩色的Wifi LED智能燈泡——美國LIFX 燈泡(也可選擇較常見的Philip Hue,只是筆者 2 年多前剛好為嘗鮮而購入)。從該公司網站上,我們可以確定產品都支援HTTP Restful的 API 接口,以利外部服務並與其整合。

圖3 截圖來源:美國LIFX 官網 https://www.lifx.com/

 

回到MCS,我們以設定橘色警告燈的Medium 觸發事件1為例。回到原型下事件觸發設定的步驟三進行編輯,在動作類型的選項,下拉新增 Webhooks。

圖4

 

如果過去曾用過Webhook這個功能,眼尖的讀者應該發現目前的Webhook 設定介面,我們新增了三個欄位:動作(Actions)標頭(Headers)內文(Body),這樣的格式也是今日普遍的HTTP Restful 請求格式。

圖5 上圖左為舊版 Webhook功能設定,上圖右為新版 Webhook功能設定。 | mcs.mediatek.com

 

讓我們到LIFX 官方的開發者頁面,找到改變燈泡行為(Set State的教學頁面(https://api.developer.lifx.com/docs/set-state),並將觸發該燈泡所需必要資訊填入MCS上的 Webhook 觸發動作頁面:

圖6

 

圖7 動作類型選取Webhook後的設定選單,填入LIFX 開發者頁面相關資訊。 | mcs.mediatek.com

 

動作:PUT

 

控制此燈泡的 HTTP 要求動作:

URL: https://api.lifx.com/v1/lights/:selector/state

其中selector為變數,可為all、label:[value]、id:[value] 任一種識別資訊指定想要連動的燈泡。

 

標頭Authorization:Bearer XXXXXXXXXXXX Content-Type:application

其中 Authorization 的值為使用者的識別碼,需在登入 LIFX cloud Home 頁面後,創建該 personal access tokens(LIFX 教學頁面有說明如何創建)。內文格式則為json。

 

內文

{
“power”: “on”,
“color”: “orange”
}

 

LIFX 的官方文件中有針對燈光的細節,例如亮度、燈光持續時間、模式等提供更完整說明,且對應的物件都可以放入內文。此情境中僅放入 power 及 color 兩個物件。接著,按下寄發 Webhook 按鈕,測試打到 LIFX服務的 Webhook 是否成功觸發燈泡開啟橘色燈光。讀者們可看見下圖中燈泡成功開啟橘光,按下儲存便完成這個事件觸發設定的更新。

圖8 按下測試按鈕,確認該燈泡有正確開啟橘色燈光。 | mcs.mediatek.com

 

依此類推,讓我們複製同樣設定在高警告嚴重性的 High事件——即當機台運轉狀態轉為弱時,同時觸發家中臥房的 LIFX 燈泡,開啟紅色燈光。在此設定中,除了內文的 「color」修改為「red」外,其餘資訊皆和事件1相同。

圖9 事件2的觸發事件設定內容 | mcs.mediatek.com

 

完成後,可看到在觸發條件和動作列表中,兩個告警事件後方的觸發動作下,已新增 Webhooks。至此,我們完成了工廠機台發生狀況時,透過 MCS 遠端連動家中臥室燈光的設定。

圖10

 

透過MCS事件觸發中的簡單設定,我們可輕鬆遠端連動除了智能燈泡外不同的物聯網裝置。除本文中的 LIFX燈泡或其它物聯網的硬體裝置外,當然也可透過 Webhook 的功能,在事件發生時連動到其他支援HTTP Restful 的軟體服務,如IFTTT、Slack 或 Line⋯⋯等等,讀者們可針對您所需的應用,選擇適當軟硬體產品,並參照該服務網站上的相關說明。

 

最後特別說明一下,這個案例是透過 MCS 本身的 Webhook功能控制 / 連動遠端軟硬體服務;相反地,若要透過第三方的軟體服務和MCS互動,則需透過申請appId及appSecret的方式,並透過該服務的webhook來和MCS互動。有興趣的讀者,可以複習此篇教學。

 

現在,馬上開始建立您的事件觸發情境吧!

 

相關文章

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *