Jika Anda melihat data muncul di terminal, data membuatnya sejauh aplikasi IoT Central Anda.
Jika Anda tidak melihat data apa pun muncul setelah beberapa menit, coba tekan tombol Enter atau return pada keyboard Anda, jika output macet.
Jika Anda masih tidak melihat data apa pun muncul di terminal Anda, kemungkinan perangkat Anda mengalami masalah konektivitas jaringan, atau tidak mengirim data dengan benar ke IoT Central.
Periksa status provisi perangkat Anda
Jika data Anda tidak muncul di monitor CLI, periksa status provisi perangkat Anda dengan menjalankan perintah berikut:
Azure CLI
az iot central device registration-info --app-id<iot-central-app-id>--device-id<device-name>
Output berikut menunjukkan contoh perangkat yang diblokir agar tidak tersambung:
JSON
{
"@device_id": "v22upeoqx6",
"device_registration_info": {
"device_status": "blocked",
"display_name": "Environmental Sensor - v22upeoqx6",
"id": "v22upeoqx6",
"instance_of": "urn:krhsi_k0u:modelDefinition:w53jukkazs",
"simulated": false
},
"dps_state": {
"error": "Device is blocked from connecting to IoT Central application. Unblock the device in IoT Central and retry. Learn more:
https://aka.ms/iotcentral-docs-dps-SAS",
"status": null
}
}
Status provisi situs
Deskripsi
Kemungkinan mitigasi
Tersedia
Tidak ada masalah yang segera dikenali.
T/A
Terdaftar
Perangkat belum tersambung ke IoT Central.
Periksa log perangkat Anda untuk masalah konektivitas.
Terblokir
Perangkat diblokir agar tidak tersambung ke IoT Central.
Perangkat diblokir agar tidak tersambung ke aplikasi IoT Central. Buka blokir perangkat di IoT Central dan coba lagi. Untuk mempelajari selengkapnya, lihat Nilai status perangkat.
Tidak disetujui
Perangkat tidak disetujui.
Perangkat tidak disetujui untuk tersambung ke aplikasi IoT Central. Setujui perangkat di IoT Central dan coba lagi. Untuk mempelajari selengkapnya, lihat Nilai status perangkat
Tidak ditetapkan
Perangkat tidak ditetapkan ke templat perangkat.
Tetapkan perangkat ke templat perangkat sehingga IoT Central tahu cara mengurai data.
Jika Anda masih tidak dapat mendiagnosis alasan data Anda tidak muncul di monitor-events, langkah berikutnya adalah mencari kode kesalahan yang dilaporkan oleh perangkat Anda.
Mulai sesi penelusuran kesalahan di perangkat Anda, atau kumpulkan log dari perangkat Anda. Periksa kode kesalahan apa pun yang dilaporkan perangkat.
Tabel berikut ini menunjukkan kode kesalahan umum dan kemungkinan tindakan untuk mitigasi.
Jika Anda melihat masalah yang terkait dengan alur autentikasi Anda:
Kode kesalahan
Deskripsi
Kemungkinan Mitigasi
400
Isi permintaan tidak valid. Misalnya, objek tidak dapat diurai, atau objek tidak dapat divalidasi.
Pastikan Anda mengirim isi permintaan yang benar sebagai bagian dari alur pengesahan, atau gunakan SDK perangkat.
401
Token otorisasi tidak dapat divalidasi. Misalnya, telah kedaluwarsa atau tidak berlaku untuk URI permintaan. Kode kesalahan ini juga ditampilkan ke perangkat sebagai bagian dari alur pengesahan TPM.
Pastikan perangkat Anda memiliki info masuk yang benar.
404
Instans Device Provisioning Service, atau sumber daya seperti pendaftaran tidak ada.
Perangkat menggunakan kredensial yang tidak valid atau kedaluwarsa. DPS melaporkan kesalahan ini.
401 Tidak Sah
400209
Perangkat sedang menunggu persetujuan oleh operator atau operator telah memblokirnya.
401 IoTHubUnauthorized
Perangkat ini menggunakan token keamanan yang kedaluwarsa. IoT Hub melaporkan kesalahan ini.
401 IoTHubUnauthorized
DEVICE_DISABLED
Perangkat ini dinonaktifkan di IoT Hub ini dan telah pindah ke IoT Hub lain. Provisi ulang perangkat.
401 IoTHubUnauthorized
DEVICE_BLOCKED
Operator telah memblokir perangkat ini.
Kode kesalahan pengunggahan file
Berikut adalah daftar kode kesalahan umum yang mungkin Anda lihat saat perangkat mencoba mengunggah file ke cloud. Ingat bahwa sebelum perangkat Anda dapat mengunggah file, Anda harus mengonfigurasi unggahan file perangkat di aplikasi Anda.
Kode kesalahan
Deskripsi
Kemungkinan Mitigasi
403006
Anda telah melampaui jumlah operasi pengunggahan file bersamaan. Setiap klien perangkat dibatasi hingga 10 pengunggahan file bersamaan.
Pastikan perangkat segera memberi tahu IoT Central bahwa operasi pengunggahan file telah selesai. Jika tidak berhasil, coba kurangi batas waktu permintaan.
Masalah data yang tidak dimodelkan
Saat Anda telah menetapkan bahwa perangkat Anda mengirim data ke IoT Central, langkah selanjutnya adalah memastikan bahwa perangkat Anda mengirim data dalam format yang valid.
Untuk mendeteksi kategori mana masalah Anda berada, jalankan perintah Azure CLI yang paling tepat untuk skenario Anda:
Untuk memvalidasi telemetri, gunakan perintah pratinjau:
Azure CLI
az iot central diagnostics validate-messages --app-id<iot-central-app-id>--device-id<device-name>
Untuk memvalidasi pembaruan properti, gunakan perintah pratinjau:
Azure CLI
az iot central diagnostics validate-properties --app-id<iot-central-app-id>--device-id<device-name>
Anda mungkin diminta untuk menginstal pustaka uamqp saat pertama kali menjalankan perintah validate.
Tiga jenis masalah umum yang menyebabkan data perangkat tidak muncul di IoT Central adalah:
Templat perangkat untuk ketidakcocokan data perangkat.
Data tidak valid JSON.
Versi lama IoT Edge menyebabkan telemetri dari komponen ditampilkan dengan tidak benar sebagai data yang tidak dimodelkan.
Templat perangkat untuk ketidakcocokan data perangkat
Perangkat harus menggunakan nama dan casing yang sama seperti yang digunakan dalam templat perangkat untuk nama bidang telemetri apa pun dalam payload yang dikirimnya. Output berikut menunjukkan contoh pesan peringatan di mana perangkat mengirim nilai telemetri yang disebut Temperature, kapan seharusnya temperature:
Output
Validating telemetry.
Filtering on device: sample-device-01.
Exiting after 300 second(s), or 10 message(s) have been parsed (whichever happens first).
[WARNING] [DeviceId: sample-device-01] [TemplateId: urn:modelDefinition:ofhmazgddj:vmjwwjuvdzg] Device is sending data that has not been defined in the device template. Following capabilities have NOT been defined in the device template '['Temperature']'. Following capabilities have been defined in the device template (grouped by components) '{'thermostat1': ['temperature', 'targetTemperature', 'maxTempSinceLastReboot', 'getMaxMinReport'], 'thermostat2': ['temperature', 'targetTemperature', 'maxTempSinceLastReboot', 'getMaxMinReport'], 'deviceInformation': ['manufacturer', 'model', 'swVersion', 'osName', 'processorArchitecture', 'processorManufacturer', 'totalStorage', 'totalMemory']}'.
Perangkat harus menggunakan nama dan casing yang sama seperti yang digunakan dalam templat perangkat untuk nama properti apa pun dalam payload yang dikirimnya. Output berikut menunjukkan contoh pesan peringatan di mana properti osVersion tidak ditentukan dalam templat perangkat:
Output
Command group 'iot central diagnostics' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
[WARNING] [DeviceId: sample-device-01] [TemplateId: urn:modelDefinition:ofhmazgddj:vmjwwjuvdzg] Device is sending data that has not been defined in the device template. Following capabilities have NOT been defined in the device template '['osVersion']'. Following capabilities have been defined in the device template (grouped by components) '{'thermostat1': ['temperature', 'targetTemperature', 'maxTempSinceLastReboot', 'getMaxMinReport', 'rundiagnostics'], 'thermostat2': ['temperature', 'targetTemperature', 'maxTempSinceLastReboot', 'getMaxMinReport', 'rundiagnostics'], 'deviceInformation': ['manufacturer', 'model', 'swVersion', 'osName', 'processorArchitecture', 'processorManufacturer', 'totalStorage', 'totalMemory']}'.
Perangkat harus menggunakan jenis data yang ditentukan dalam templat perangkat untuk nilai telemetri atau properti apa pun. Misalnya, Anda melihat ketidakcocokan skema jika jenis yang ditentukan dalam templat perangkat boolean, tetapi perangkat mengirim string. Output berikut menunjukkan contoh pesan kesalahan di mana perangkat menggunakan nilai string untuk properti yang didefinisikan sebagai ganda:
Output
Command group 'iot central diagnostics' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Validating telemetry.
Filtering on device: sample-device-01.
Exiting after 300 second(s), or 10 message(s) have been parsed (whichever happens first).
[ERROR] [DeviceId: sample-device-01] [TemplateId: urn:modelDefinition:ofhmazgddj:vmjwwjuvdzg] Datatype of telemetry field 'temperature' does not match the datatype double. Data sent by the device : curr_temp. For more information, see: https://aka.ms/iotcentral-payloads
Perintah validasi juga melaporkan kesalahan jika nama telemetri yang sama ditentukan dalam beberapa antarmuka, tetapi perangkat tidak sesuai dengan IoT Plug and Play.
Jika Anda lebih suka menggunakan GUI, gunakan tampilan Data mentah IoT Central untuk melihat apakah ada sesuatu yang tidak dimodelkan.
Saat mendeteksi masalah, Anda mungkin perlu memperbarui firmware perangkat, atau membuat templat perangkat baru yang memodelkan data yang sebelumnya tidak dimodelkan.
Jika Anda memilih untuk membuat template baru yang memodelkan data dengan benar, migrasi perangkat dari templat lama Anda ke templat baru. Untuk mempelajari lebih lanjut, lihat Mengelola perangkat di aplikasi Azure IoT Central Anda.
JSON tidak valid
Jika tidak ada kesalahan yang dilaporkan, tetapi nilai tidak muncul, maka mungkin JSON cacat dalam payload yang dikirim perangkat. Untuk mempelajari selengkapnya, lihat Payload telemetri, properti, dan perintah.
Anda tidak dapat menggunakan perintah validasi atau tampilan Data mentah di UI untuk mendeteksi apakah perangkat mengirim JSON yang salah bentuk.
Versi IoT Edge
Untuk menampilkan telemetri dari komponen yang dihosting di modul IoT Edge dengan benar, gunakan IoT Edge versi 1.2.4 atau yang lebih baru. Jika Anda menggunakan versi yang lebih lama, telemetri dari komponen dalam modul IoT Edge ditampilkan sebagai _unmodeleddata.
Masalah identitas terkelola ekspor data
Anda menggunakan identitas terkelola untuk mengotorisasi koneksi ke tujuan ekspor. Data tidak tiba di tujuan ekspor.
Sebelum Anda mengonfigurasi atau mengaktifkan tujuan ekspor, pastikan Anda menyelesaikan langkah-langkah berikut:
Aktifkan identitas terkelola untuk aplikasi IoT Central. Untuk memverifikasi bahwa identitas terkelola diaktifkan, buka halaman Identitas untuk aplikasi Anda di portal Azure atau gunakan perintah CLI berikut:
Azure CLI
az iot central app identity show --name {your app name} --resource-group {your resource group name}
Konfigurasikan izin untuk identitas terkelola. Untuk melihat izin yang ditetapkan, pilih Penetapan peran Azure di halaman Identitas untuk aplikasi Anda di portal Azure atau gunakan az role assignment list perintah CLI. Izin yang diperlukan adalah:
Tujuan
Izin
Azure Blob Storage
Kontributor Data Blob Penyimpanan
Azure Service Bus
Azure Service Bus Data Sender
Azure Event Hubs
Azure Service Bus Data Sender
Azure Data Explorer
Admin
Jika izin tidak diatur dengan benar sebelum Anda membuat tujuan di aplikasi IoT Central Anda, coba hapus tujuan lalu tambahkan lagi.
Konfigurasikan setiap jaringan virtual, titik akhir privat, dan kebijakan firewall.
Catatan
Jika Anda menggunakan identitas terkelola untuk mengotorisasi koneksi ke tujuan ekspor, IoT Central tidak mengekspor data dari perangkat yang disimulasikan.
Untuk mempelajari selengkapnya, lihat Data ekspor.
Masalah koneksi tujuan ekspor data
Halaman definisi ekspor memperlihatkan informasi tentang koneksi yang gagal ke tujuan ekspor:
Masalah data yang hilang dalam ekspor data
Ekspor data hanya mengekspor data yang tiba di aplikasi Anda setelah Anda mengaktifkan ekspor data. Jika Anda perlu mengekspor data historis atau data yang terlewat saat ekspor data Anda dinonaktifkan sementara, Anda dapat menggunakan REST API IoT Central untuk mengkueri telemetri perangkat. Gunakan kueri untuk mengambil data yang hilang lalu tambahkan data ke tujuan ekspor Anda. Untuk mempelajari selengkapnya, lihat Cara menggunakan IoT Central REST API untuk mengkueri perangkat.
Menunjukkan pemahaman tentang tugas rekayasa data umum untuk menerapkan dan mengelola beban kerja rekayasa data di Microsoft Azure, menggunakan sejumlah layanan Azure.
Pelajari cara menggunakan properti baca-saja dan bisa-tulis dalam solusi Azure IoT Central. Tentukan properti di IoT Central dan gunakan properti secara terprogram.
Perangkat IoT mengirim data dalam berbagai format yang mungkin perlu Anda ubah. Artikel ini menjelaskan cara mengubah data di IoT Central sebelum mengekspornya.
Cara membuat templat perangkat. Anda menentukan telemetri, status, properti, dan perintah untuk templat Anda. Templat perangkat juga dapat dibuat secara otomatis.