でのディテクターモデルの入力定義 AWS IoT Events - AWS IoT Events

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

でのディテクターモデルの入力定義 AWS IoT Events

いくつかの異なる領域の温度をモニタリングおよび制御するために使用できる 1 つのディテクターモデルを作成したいと思います。各エリアには、温度を報告する複数のセンサーを含めることができます。各エリアには、エリア内の温度を制御するためにオンまたはオフにできる 1 つの加熱単位と 1 つの冷却単位があります。各エリアは、1 つのディテクターインスタンスによって制御されます。

モニタリングおよび制御するさまざまな領域には、さまざまな制御パラメータを必要とするさまざまな特性がある可能性があるため、'seedTemperatureInput' を定義して、各領域にそれらのパラメータを提供します。これらの入力メッセージの 1 つを 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' フィールドを参照してください。

  • 平均気温は、その地域の暖房または冷房単位が作動する前に、'allowedError' によって 'desiredTemperature' とは異なる場合があります。

  • センサーが 'rangeHigh' を超える温度を報告すると、ディテクターはスパイクを報告し、すぐに冷却単位をスタートします。

  • センサーが 'rangeLow' 未満の温度を報告すると、ディテクターはスパイクを報告し、すぐに加熱単位をスタートします。

  • センサーが 'anomalousHigh' より上または 'anomalousLow' より下の温度を報告した場合、ディテクターは異常なセンサー読み取り値を報告しますが、報告された温度読み取り値を無視します。

  • 'sensorCount' は、エリアについて報告しているセンサーの数をディテクターに通知します。ディテクターは、受信した各温度測定値に適切な重み係数を与えることにより、その領域の平均温度を計算します。このため、ディテクターは各センサーが報告する内容を追跡する必要がなく、センサーの数は必要に応じて動的に変更できます。ただし、個々のセンサーがオフラインになると、ディテクターはこれを認識したり、それを考慮したりしません。各センサーの接続状態をモニタリングするために、特別に別のディテクターモデルを作成することをお勧めします。2 つの補完的なディテクターモデルを使用すると、両方の設計が簡素化されます。

  • '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' フィールドを参照してください。