Implementasi perangkat dan praktik terbaik untuk IoT central

Artikel ini menyediakan informasi tentang cara mengimplementasikan perangkat yang terhubung ke aplikasi pusat IoT Anda. Ini juga mencakup beberapa praktik terbaik. Untuk mempelajari selengkapnya tentang proses koneksi secara keseluruhan, lihat Koneksi perangkat.

Untuk contoh kode implementasi perangkat, lihat Tutorial: Membuat dan menyambungkan aplikasi klien ke aplikasi Azure IoT Central Anda.

Terapkan perangkat

Perangkat yang tersambung ke IoT Central harus mengikuti konvensi IoT Plug and Play. Salah satu konvensi ini adalah bahwa perangkat harus mengirim ID model dari model perangkat yang disebarkannya saat tersambung. ID model memungkinkan aplikasi IoT Central menetapkan perangkat ke templat perangkat yang benar.

Templat perangkat IoT Central menyertakan model yang menentukan perilaku yang harus diterapkan perangkat jenis tersebut. Perilakunya termasuk telemetri, properti, dan perintah.

Setiap model memiliki pengidentifikasi model kembar digital (DTMI) yang unik, seperti dtmi:com:example:Thermostat;1. Ketika perangkat terhubung ke IoT Central, perangkat akan mengirimkan DTMI dari model yang diterapkannya. IoT Central kemudian dapat menetapkan templat perangkat yang benar ke perangkat.

IoT Plug and Play mendefinisikan serangkaian konvensi yang harus diikuti perangkat saat menerapkan model Digital Twin Definition Language (DTDL).

SDK perangkat Azure IoT menyertakan dukungan untuk konvensi IoT Plug and Play.

Model perangkat

Model perangkat ditentukan dengan menggunakan bahasa pemodelan DTDL V2 . Bahasa ini memungkinkan Anda mendefinisikan:

  • Data telemetri yang dikirim perangkat. Definisi ini mencakup nama dan jenis data telemetri. Misalnya, perangkat mengirimkan telemetri suhu bersifat ganda.
  • Properti yang dilaporkan perangkat ke IoT Central. Definisi properti menyertakan nama dan jenis datanya. Misalnya, perangkat melaporkan keadaan katup sebagai Boolean.
  • Properti yang bisa diterima perangkat dari IoT Central. Atau, Anda dapat menandai properti sebagai bisa-tulis. Misalnya, IoT Central mengirimkan suhu target bersifat ganda ke perangkat.
  • Perintah yang ditanggapi perangkat. Definisi mencakup nama perintah, dan nama dan jenis data dari parameter apa pun. Misalnya, perangkat merespons perintah reboot yang menentukan berapa detik untuk menunggu sebelum reboot.

Catatan

IoT Central mendefinisikan beberapa ekstensi ke bahasa DTDL v2. Untuk mempelajari lebih lanjut, lihat Ekstensi IoT Central.

Model DTDL dapat menjadi model tanpa komponen atau multi-komponen:

  • Model tanpa komponen: Model sederhana tidak menggunakan komponen tersemat atau bertingkat. Semua telemetri, properti, dan perintah didefinisikan sebagai satu komponen akar. Misalnya, lihat model Termostat.
  • Model multi-komponen. Model lebih kompleks yang mencakup dua komponen atau lebih. Komponen-komponen ini mencakup satu komponen akar, dan satu atau beberapa komponen berlapis. Misalnya, lihat model Pengontrol Suhu.

Tip

Anda dapat mengimpor dan mengekspor model perangkat lengkap atau antarmuka individual dari templat perangkat IoT Central sebagai file DTDL v2.

Untuk mempelajari selengkapnya tentang model perangkat, lihat panduan pemodelan IoT Plug and Play

Konvensi

Perangkat harus mengikuti konvensi IoT Plug and Play saat bertukar data dengan IoT Central. Konvensi tersebut meliputi:

  • Mengirim DTMI ketika terhubung ke IoT Central.
  • Mengirim payload dan metadata JSON yang diformat dengan benar ke IoT Central.
  • Merespons properti dan perintah bisa-tulis dengan benar dari IoT Central.
  • Mengikuti konvensi penamaan untuk perintah komponen.

Catatan

Saat ini, IoT Central tidak sepenuhnya mendukung jenis data DTDL Array dan Geospasial.

Untuk mempelajari selengkapnya tentang konvensi IoT Plug and Play, lihat konvensi IoT Plug and Play.

Untuk mempelajari selengkapnya tentang format pesan JSON yang ditukar perangkat dengan IoT Central, lihat Payload telemetri, properti, dan perintah.

SDK Perangkat

Gunakan salah satu SDK perangkat Azure IoT untuk mengimplementasikan perilaku perangkat Anda. Kodenya harus:

  • Mendaftarkan perangkat dengan DPS dan menggunakan informasi dari DPS untuk terhubung ke IoT hub internal di aplikasi IoT Central Anda.
  • Mengumumkan DTMI model yang diterapkan perangkat.
  • Mengirim telemetri dalam format yang ditentukan model perangkat. IoT Central menggunakan model dalam templat perangkat untuk menentukan cara menggunakan telemetri untuk visualisasi dan analisis.
  • Menyinkronkan nilai properti antara perangkat dan IoT Central. Model menentukan nama properti dan jenis data sehingga IoT Central dapat menampilkan informasi.
  • Terapkan handler perintah untuk perintah yang ditentukan dalam model. Model menentukan nama perintah dan parameter yang harus digunakan perangkat.

Untuk informasi selengkapnya tentang peran templat perangkat, lihat Apa itu templat perangkat?.

Tabel berikut merangkum bagaimana fitur perangkat Azure IoT Central dipetakan ke fitur IoT Hub:

Azure IoT Central Azure IoT Hub
telemetri Olahpesan perangkat ke cloud
Perintah offline Pesan cloud ke perangkat
Properti Properti yang dilaporkan kembar perangkat
Properti (bisa ditulis) Properti yang diinginkan dan dilaporkan kembar perangkat
Perintah Metode langsung

Protokol komunikasi

Protokol komunikasi yang dapat digunakan perangkat untuk terhubung ke IoT Central termasuk MQTT, AMQP, dan HTTPS. Secara internal, IoT Central menggunakan IoT hub untuk mengaktifkan konektivitas perangkat. Untuk informasi selengkapnya tentang protokol komunikasi yang didukung IoT Hub untuk konektivitas perangkat, lihat Pilih protokol komunikasi.

Jika perangkat Anda tidak dapat menggunakan salah satu protokol yang didukung, gunakan Azure IoT Edge untuk melakukan konversi protokol. IoT Edge mendukung skenario intelijen-on-the-edge lainnya untuk membongkar pemrosesan dari aplikasi Azure IoT Central.

Tanda waktu telemetri

Secara default, IoT Central menggunakan waktu antrean pesan saat menampilkan telemetri pada dasbor dan bagan. Waktu antrean pesan diatur secara internal saat IoT Central menerima pesan dari perangkat.

Perangkat dapat mengatur iothub-creation-time-utc properti saat membuat pesan untuk dikirim ke IoT Central. Jika properti ini ada, IoT Central menggunakannya saat menampilkan telemetri pada dasbor dan bagan.

Anda dapat mengekspor waktu antrean dan iothub-creation-time-utc properti saat mengekspor telemetri dari aplikasi IoT Central Anda.

Untuk mempelajari selengkapnya tentang properti pesan, lihat Properti Sistem pesan IoT Hub perangkat-ke-cloud.

Praktik terbaik

Rekomendasi ini menunjukkan cara menerapkan perangkat untuk memanfaatkan ketersediaan tinggi bawaan , pemulihan bencana, dan penskalaan otomatis di IoT Central.

Menangani kegagalan sambungan

Untuk tujuan penskalaan atau pemulihan bencana, IoT Central dapat memperbarui hub IoT yang mendasar. Untuk mempertahankan konektivitas, kode perangkat Anda harus menangani kesalahan koneksi tertentu dengan membuat koneksi ke titik akhir IoT Hub baru.

Jika perangkat mendapatkan salah satu kesalahan berikut saat tersambung, perangkat harus menyediakan kembali perangkat dengan DPS untuk mendapatkan string koneksi baru. Kesalahan ini berarti string koneksi tidak lagi valid:

  • Titik akhir IoT Hub yang tidak dapat dijangkau.
  • Token keamanan kedaluwarsa.
  • Perangkat dinonaktifkan di IoT Hub.

Jika perangkat mendapatkan salah satu kesalahan berikut saat tersambung, perangkat harus menggunakan strategi back-off untuk mencoba kembali koneksi. Kesalahan ini berarti string koneksi masih valid, tetapi kondisi sementara menghentikan perangkat tersambung:

  • Perangkat yang diblokir operator.
  • Kesalahan internal 500 dari layanan.

Untuk mempelajari selengkapnya tentang kode kesalahan perangkat, lihat Pemecahan masalah koneksi perangkat.

Untuk mempelajari selengkapnya tentang menerapkan koneksi ulang otomatis, lihat Mengelola koneksi ulang perangkat untuk membuat aplikasi yang tangguh.

Menguji kemampuan failover

Azure CLI memungkinkan Anda menguji kemampuan failover kode perangkat Anda. Perintah CLI bekerja dengan mengalihkan sementara pendaftaran perangkat ke hub IoT internal yang berbeda. Untuk memverifikasi bahwa failover perangkat berfungsi, periksa apakah perangkat masih mengirim telemetri dan merespons perintah.

Untuk menjalankan uji failover untuk perangkat Anda, jalankan perintah berikut:

az iot central device manual-failover \
    --app-id {Application ID of your IoT Central application} \
    --device-id {Device ID of the device you're testing} \
    --ttl-minutes {How to wait before moving the device back to it's original IoT hub}

Tip

Untuk menemukan ID Aplikasi, navigasikan ke Manajemen Aplikasi > di aplikasi IoT Central Anda.

Jika perintah berhasil, Anda akan melihat output yang terlihat seperti contoh berikut:

Command group 'iot central device' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
{
  "hubIdentifier": "6bd4...bafa",
  "message": "Success! This device is now being failed over. You can check your device'’'s status using 'iot central device registration-info' command. The device will revert to its original hub at Tue, 18 May 2021 11:03:45 GMT. You can choose to failback earlier using device-manual-failback command. Learn more: https://aka.ms/iotc-device-test"
}

Untuk mempelajari selengkapnya tentang perintah CLI, lihat Az iot central device manual-failover.

Anda sekarang dapat memeriksa bahwa telemetri dari perangkat masih mencapai aplikasi IoT Central Anda.

Tip

Untuk melihat contoh kode perangkat yang menangani failover dalam berbagai bahasa pemrograman, lihat Klien ketersediaan tinggi IoT Central.

Langkah berikutnya

Beberapa langkah berikutnya yang disarankan adalah: