Definisi input untuk model detektor di AWS IoT Events - AWS IoT Events

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Definisi input untuk model detektor di AWS IoT Events

Kami ingin membuat satu model detektor yang dapat kami gunakan untuk memantau dan mengontrol suhu di beberapa area berbeda. Setiap area dapat memiliki beberapa sensor yang melaporkan suhu. Kami berasumsi setiap area dilayani oleh satu unit pemanas dan satu unit pendingin yang dapat dinyalakan atau dimatikan untuk mengontrol suhu di area tersebut. Setiap area dikendalikan oleh satu instance detektor.

Karena area berbeda yang kami pantau dan kontrol mungkin memiliki karakteristik berbeda yang menuntut parameter kontrol yang berbeda, kami mendefinisikan 'seedTemperatureInput' untuk menyediakan parameter tersebut untuk setiap area. Ketika kami mengirim salah satu pesan input ini AWS IoT Events, contoh model detektor baru dibuat yang memiliki parameter yang ingin kami gunakan di area itu. Berikut adalah definisi dari masukan tersebut.

CLIperintah:

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

Berkas: 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" } ] } }

Respons:

{ "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." } }
Catatan
  • Sebuah instance detektor baru dibuat untuk setiap unik yang 'areaId' diterima dalam pesan apa pun. Lihat 'key' bidang dalam 'areaDetectorModel' definisi.

  • Suhu rata-rata dapat bervariasi dari 'desiredTemperature' 'allowedError' sebelum unit pemanas atau pendingin diaktifkan untuk area tersebut.

  • Jika ada sensor yang melaporkan suhu di atas'rangeHigh', detektor melaporkan lonjakan dan segera memulai unit pendingin.

  • Jika ada sensor yang melaporkan suhu di bawah'rangeLow', detektor melaporkan lonjakan dan segera memulai unit pemanas.

  • Jika ada sensor yang melaporkan suhu di atas 'anomalousHigh' atau di bawah'anomalousLow', detektor melaporkan pembacaan sensor anomali, tetapi mengabaikan pembacaan suhu yang dilaporkan.

  • Ini 'sensorCount' memberi tahu detektor berapa banyak sensor yang melaporkan untuk area tersebut. Detektor menghitung suhu rata-rata di area tersebut dengan memberikan faktor berat yang sesuai untuk setiap pembacaan suhu yang diterimanya. Karena itu, detektor tidak perlu melacak apa yang dilaporkan setiap sensor, dan jumlah sensor dapat diubah secara dinamis, sesuai kebutuhan. Namun, jika sensor individu offline, detektor tidak akan mengetahui hal ini atau memberikan kelonggaran untuk itu. Kami menyarankan Anda membuat model detektor lain khusus untuk memantau status koneksi setiap sensor. Memiliki dua model detektor komplementer menyederhanakan desain keduanya.

  • 'noDelay'Nilainya bisa true ataufalse. Setelah unit pemanas atau pendingin dihidupkan, unit harus tetap menyala selama waktu minimum tertentu untuk melindungi integritas unit dan memperpanjang masa operasinya. Jika 'noDelay' disetel kefalse, instance detektor memberlakukan penundaan sebelum mematikan unit pendingin dan pemanas, untuk memastikan bahwa mereka dijalankan untuk waktu minimum. Jumlah detik penundaan telah di-hardcode dalam definisi model detektor karena kami tidak dapat menggunakan nilai variabel untuk mengatur timer.

'temperatureInput'Ini digunakan untuk mengirimkan data sensor ke instance detektor.

CLIperintah:

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

Berkas: temperatureInput.json

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

Respons:

{ "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." } }
Catatan
  • 'sensorId'Ini tidak digunakan oleh instance detektor contoh untuk mengontrol atau memantau sensor secara langsung. Ini secara otomatis diteruskan ke notifikasi yang dikirim oleh instance detektor. Dari sana, dapat digunakan untuk mengidentifikasi sensor yang gagal (misalnya, sensor yang secara teratur mengirimkan pembacaan anomali mungkin akan gagal), atau yang telah offline (ketika digunakan sebagai input ke model detektor tambahan yang memantau detak jantung perangkat). Ini juga 'sensorId' dapat membantu mengidentifikasi zona hangat atau dingin di suatu daerah jika pembacaannya secara teratur berbeda dari rata-rata.

  • 'areaId'Ini digunakan untuk merutekan data sensor ke instance detektor yang sesuai. Sebuah instance detektor dibuat untuk setiap unik yang 'areaId' diterima dalam pesan apa pun. Lihat 'key' bidang dalam 'areaDetectorModel' definisi.