設定規則
IoT Central 中的規則是可自訂的回應工具,會觸發來自已連線裝置的主動監視事件。 下列各節說明如何評估規則。 您可以定義規則觸發時所發生的一或多個動作。本文描述電子郵件、Webhook 和 Azure 監視器動作群組。 若要了解其他動作類型,請參閱使用工作流程整合您的 Azure IoT Central 應用程式與其他雲端服務。
選取目標裝置
使用目標裝置區段,即可選取要套用此規則的裝置種類。 篩選可讓您進一步精簡應包含的裝置。 篩選會使用裝置範本上的屬性來篩選一組裝置。 篩選本身不會觸發動作。 在下列螢幕擷取畫面中,規則的目標是冰箱裝置。 此篩選會指出規則應該只包含冰箱,其中製造州/省屬性等於華盛頓州。
使用多重條件
條件會決定規則觸發的裝置。 您可將多個條件新增至規則,並指定當所有條件皆成立或任一條件成立時,是否應觸發規則。
在下列螢幕擷取畫面中,條件會檢查何時溫度大於 70°,濕度小於 10%。 當這些陳述式全都是 True 時,規則會評估為 True 並觸發動作。
注意
目前僅支援遙測條件。
在值欄位中使用雲端屬性
您可以在條件的 [值] 欄位中,從裝置範本參考雲端屬性。 雲端屬性和遙測值必須具有類似的類型。 例如,如果溫度為雙精度浮點數,則只有雙精度浮點數類型的雲端屬性會顯示為 [值] 下拉式清單中的選項。
如果您選擇事件類型遙測值,[值] 下拉式清單會包含 [任何] 選項。 [任何] 選項表示當您的應用程式收到該類型的事件時,就會引發規則,無論承載為何。
使用彙總時間範圍
您可以指定時間彙總,以根據時間範圍觸發規則。 規則條件會將遙測資料上的彙總時間範圍評估為輪轉視窗。 若在規則中有任何屬性篩選條件,則會在時間範圍結束時套用。 在下列螢幕擷取畫面中,時間範圍為 5 分鐘。 規則會每隔五分鐘評估一次最後五分鐘的遙測資料。 資料僅在其對應的時間範圍內評估一次。
建立電子郵件動作
當您建立電子郵件動作時,電子郵件地址必須是應用程式中的使用者識別碼,而且使用者至少必須已登入應用程式一次。 您也可以指定要包括在電子郵件中的附註。 IoT Central 顯示電子郵件在觸發規則時的外觀範例:
建立 Webhook 動作
Webhook 可讓您將 IoT Central 應用程式連線至其他應用程式和服務,以進行遠端監視和通知。 Webhook 會在 IoT Central 應用程式中觸發規則時,自動通知您所連線的其他應用程式和服務。 您的 IoT Central 應用程式會在規則觸發時,將 POST 要求傳送至其他應用程式的 HTTP 端點。 承載包含裝置詳細資料和規則觸發程序詳細資料。
在此範例中,您會連線至 RequestBin,以測試通知:
瀏覽至 RequestBin。
選取 [建立 RequestBin]。
使用其中一個可用方法登入。
複製 RequestBin 端點的 URL。
將動作新增到您的規則:
選擇 Webhook 動作、輸入顯示名稱,然後貼上 RequestBin URL 作為回呼 URL。
儲存規則。
現在,當規則觸發時,您會看到新的要求出現在 RequestBin 中。
承載
當規則觸發時,其會對回呼 URL 提出 HTTP POST 要求。 要求包含一個具有遙測、裝置、規則和應用程式詳細資料的 JSON 承載。 承載看起來像下列 JSON 程式碼片段:
{
"timestamp": "2020-04-06T00:20:15.06Z",
"action": {
"id": "<id>",
"type": "WebhookAction",
"rules": [
"<rule_id>"
],
"displayName": "Webhook 1",
"url": "<callback_url>"
},
"application": {
"id": "<application_id>",
"displayName": "Contoso",
"subdomain": "contoso",
"host": "contoso.azureiotcentral.com"
},
"device": {
"id": "<device_id>",
"etag": "<etag>",
"displayName": "Refrigerator Monitor - 1yl6vvhax6c",
"instanceOf": "<device_template_id>",
"simulated": true,
"provisioned": true,
"approved": true,
"cloudProperties": {
"City": {
"value": "Seattle"
}
},
"properties": {
"deviceinfo": {
"firmwareVersion": {
"value": "1.0.0"
}
}
},
"telemetry": {
"<interface_instance_name>": {
"humidity": {
"value": 47.33228889360127
}
}
}
},
"rule": {
"id": "<rule_id>",
"displayName": "Humidity monitor"
}
}
如果規則會監視一段時間的彙總遙測,承載會包含如下所示的遙測區段:
{
"telemetry": {
"<interface_instance_name>": {
"Humidity": {
"avg": 39.5
}
}
}
}
資料格式變更通知
如果您已在 2020 年 4 月 3 日之前建立並儲存一或多個 Webhook,請刪除 Webhook 並建立新的 Webhook。 較舊的 Webhook 會使用已被取代的承載格式:
{
"id": "<id>",
"displayName": "Webhook 1",
"timestamp": "2019-10-24T18:27:13.538Z",
"rule": {
"id": "<id>",
"displayName": "High temp alert",
"enabled": true
},
"device": {
"id": "rm1",
"displayName": "Refrigerator Monitor - rm1",
"instanceOf": "<device-template-id>",
"simulated": true,
"provisioned": true,
"approved": true
},
"data": [{
"@id": "<id>",
"@type": ["Telemetry"],
"name": "temperature",
"displayName": "Temperature",
"value": 66.27310467496761,
"interfaceInstanceName": "sensors"
}],
"application": {
"id": "<id>",
"displayName": "x - Store Analytics Checkout",
"subdomain": "<subdomain>",
"host": "<host>"
}
}
建立 Azure 監視器群組動作
本節描述如何使用 Azure 監視器 動作群組,將多個動作附加至 IoT Central 規則。 您可以將一個動作群組附加至多個規則。 動作群組是由 Azure 訂用帳戶的「擁有者」所定義的通知喜好設定集合。
您可以在 Azure 入口網站中建立和管理動作群組,或使用 Azure Resource Manager 範本建立和管理動作群組。
動作群組可以:
- 傳送電子郵件、SMS 等通知或撥打語音電話。
- 執行呼叫 Webhook 之類的動作。
下列螢幕擷取畫面顯示一個動作群組,其會傳送電子郵件和 SMS 通知,並呼叫 Webhook:
若要在 IoT Central 規則中使用動作群組,動作群組必須與 IoT Central 應用程式位於相同的 Azure 訂用帳戶中。
當您將動作新增至 IoT Central 中的規則時,請選取 [Azure 監視器動作群組]。
從您的 Azure 訂用帳戶中選擇動作群組:
選取 [儲存]。 動作群組現在會出現在規則觸發時要執行的動作清單中。
下表總結傳送至所支援動作類型的資訊:
動作類型 | 輸出格式 |
---|---|
電子郵件 | 標準 IoT Central 電子郵件範本 |
SMS | Azure IoT Central 警示:${applicationName} - "${ruleName}" triggered on "${deviceName}" at ${triggerDate} ${triggerTime} |
語音 | Azure IoT Central 警示:規則 "${ruleName}" triggered on device "${deviceName}" at ${triggerDate} ${triggerTime}, in application ${applicationName} |
Webhook | { "schemaId" : "AzureIoTCentralRuleWebhook", "data": {"regular webhook payload"}} |
下列文字是來自動作群組的範例 SMS 訊息:
iotcentral: Azure IoT Central alert: Contoso - "Low pressure alert" triggered on "Motion sensor 2" at March 20, 2019 10:12 UTC
使用含有 IoT Edge 模組的規則
A 限制適用於應用於 IoT Edge 模組的規則。 來自不同模組的遙測規則並不會評估為有效規則。 以下列範例為例,規則的第一個條件是來自模組 A 的溫度遙測。規則的第二個條件是模組 B 上的濕度遙測。因為這兩個條件來自不同的模組,所以您有一組無效的條件。 規則無效,且會在嘗試儲存規則時擲回錯誤。
下一步
既然您已了解如何在 Azure IoT Central 應用程式中設定規則,您可以了解如何使用 Power Automate 或 Azure Logic Apps 來設定進階規則。