

支援終止通知：2026 年 5 月 20 日， AWS 將終止對 的支援 AWS IoT Events。2026 年 5 月 20 日之後，您將無法再存取 AWS IoT Events 主控台或 AWS IoT Events 資源。如需詳細資訊，請參閱[AWS IoT Events 終止支援](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-end-of-support.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 中的偵測器模型輸入定義 AWS IoT Events
<a name="iotevents-commented-example-inputs"></a>

我們希望建立一個偵測器模型，可用來監控和控制數個不同區域的溫度。每個區域都可以有數個報告溫度的感應器。我們假設每個區域都由一個加熱單元和一個冷卻單元提供，可以開啟或關閉以控制區域中的溫度。每個區域都由一個偵測器執行個體控制。

由於我們監控和控制的不同區域可能會有不同的特性，需要不同的控制參數，因此我們定義 `'seedTemperatureInput'`來為每個區域提供這些參數。當我們傳送其中一個輸入訊息到 時 AWS IoT Events，會建立新的偵測器模型執行個體，其中包含我們在該區域中要使用的參數。以下是該輸入的定義。

CLI 命令：

```
aws iotevents create-input --cli-input-json file://seedInput.json
```

檔案： `seedInput.json`

```
{
  "inputName": "seedTemperatureInput",
  "inputDescription": "Temperature seed values.",
  "inputDefinition": {
    "attributes": [
      { "jsonPath": "areaId" },
      { "jsonPath": "desiredTemperature" },
      { "jsonPath": "allowedError" },
      { "jsonPath": "rangeHigh" },
      { "jsonPath": "rangeLow" },
      { "jsonPath": "anomalousHigh" },
      { "jsonPath": "anomalousLow" },
      { "jsonPath": "sensorCount" },
      { "jsonPath": "noDelay" }
    ]
  }
}
```

回應：

```
{
    "inputConfiguration": {
        "status": "ACTIVE", 
        "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/seedTemperatureInput", 
        "lastUpdateTime": 1557519620.736, 
        "creationTime": 1557519620.736, 
        "inputName": "seedTemperatureInput", 
        "inputDescription": "Temperature seed values."
    }
}
```

**備註**
+ 系統會針對任何訊息中`'areaId'`收到的每個唯一 建立新的偵測器執行個體。請參閱 `'areaDetectorModel'`定義中的 `'key'` 欄位。
+ 在為區域啟用加熱或冷卻裝置`'desiredTemperature'``'allowedError'`之前， 的平均溫度可能會與 不同。
+ 如果有任何感應器報告高於 的溫度`'rangeHigh'`，偵測器會報告峰值並立即啟動冷卻裝置。
+ 如果有任何感應器報告低於 的溫度`'rangeLow'`，偵測器會報告峰值並立即啟動加熱裝置。
+ 如果有任何感應器報告高於 `'anomalousHigh'` 或低於 的溫度`'anomalousLow'`，偵測器會報告異常感應器讀數，但會忽略報告的溫度讀數。
+ `'sensorCount'` 告訴偵測器該區域報告了多少個感應器。偵測器透過為每個接收到的溫度提供適當的權重因數來計算區域中的平均溫度。因此，偵測器不需要追蹤每個感應器報告的內容，並視需要動態變更感應器的數量。不過，如果個別感應器離線，偵測器就不會知道這一點或為其提供限額。我們建議您建立另一個偵測器模型，專門用於監控每個感應器的連線狀態。有兩個互補偵測器模型可簡化兩者的設計。
+ `'noDelay'` 值可以是 `true`或 `false`。開啟加熱或冷卻裝置後，應該保持開啟狀態一段最短時間，以保護裝置的完整性並延長其操作壽命。如果 `'noDelay'` 設定為 `false`，偵測器執行個體會在關閉冷卻和加熱單元之前強制執行延遲，以確保它們在最短時間內執行。由於我們無法使用變數值來設定計時器，因此偵測器模型定義中已硬式編碼延遲的秒數。

`'temperatureInput'` 用於將感應器資料傳輸到偵測器執行個體。

CLI 命令：

```
aws iotevents create-input --cli-input-json file://temperatureInput.json
```

檔案： `temperatureInput.json`

```
{
  "inputName": "temperatureInput",
  "inputDescription": "Temperature sensor unit data.",
  "inputDefinition": {
    "attributes": [
      { "jsonPath": "sensorId" },
      { "jsonPath": "areaId" },
      { "jsonPath": "sensorData.temperature" }
    ]
  }
}
```

回應：

```
{
    "inputConfiguration": {
        "status": "ACTIVE", 
        "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/temperatureInput", 
        "lastUpdateTime": 1557519707.399, 
        "creationTime": 1557519707.399, 
        "inputName": "temperatureInput", 
        "inputDescription": "Temperature sensor unit data."
    }
}
```

**備註**
+ 範例偵測器執行個體`'sensorId'`不會使用 來直接控制或監控感應器。它會自動傳遞到偵測器執行個體傳送的通知。從那裡，它可用於識別失敗的感應器 （例如，定期傳送異常讀數的感應器可能即將失敗） 或離線的感應器 （當它用作監控裝置活動訊號的其他偵測器模型的輸入時）。如果區域讀數定期與平均值不同， `'sensorId'`也有助於識別區域中的暖區域或冷區域。
+ `'areaId'` 用於將感應器的資料路由到適當的偵測器執行個體。系統會針對任何訊息中`'areaId'`接收的每個唯一 建立偵測器執行個體。請參閱 `'areaDetectorModel'`定義中的 `'key'` 欄位。