Cihazlarınızdan gelen verilerin Azure IoT Central'da gösterilmemesi sorununu giderme
Bu belge, cihazlarınızın IoT Central gönderilen verilerinin uygulamada gösterilmediğini bulmanıza yardımcı olur.
Araştırmak için iki ana alan vardır:
- Cihaz bağlantısı sorunları
- Cihaz gibi kimlik doğrulama sorunları geçersiz kimlik bilgilerine sahip
- Ağ bağlantısı sorunları
- Cihaz onaylanmadı veya engellendi
- Cihaz yükü şekli sorunları
Bu sorun giderme kılavuzu cihaz bağlantısı sorunları ve cihaz yükü şekli sorunları üzerine odaklanır.
Cihaz bağlantısı sorunları
Bu bölüm, verilerinizin IoT Central ulaşmadığını belirlemenize yardımcı olur.
Daha önce yapmadıysanız, az cli Aracı ve azure-iot uzantıyı yükleyebilirsiniz.
' Nin nasıl yükleneceğini öğrenmek için az cli bkz. Azure CLI 'yı yüklemek.
Uzantıyı yüklemek için azure-iot Şu komutu çalıştırın:
az extension add --name azure-iot
Not
uamqpUzantı komutunu ilk kez çalıştırdığınızda kitaplığı yüklemeniz istenebilir.
azure-iotUzantıyı yükledikten sonra, gönderme iletilerinin IoT Central yolunu yapıp yapyüklenmediğini görmek için cihazınızı başlatın.
IoT Central uygulamanıza sahip olduğunuz abonelikte oturum açmak için aşağıdaki komutları kullanın:
az login
az account set --subscription <your-subscription-id>
Cihazınızın gönderdiği Telemetriyi izlemek için aşağıdaki komutu kullanın:
az iot central diagnostics monitor-events --app-id <app-id> --device-id <device-name>
Cihaz IoT Central başarıyla bağlanırsa aşağıdakine benzer bir çıktı görürsünüz:
Monitoring telemetry.
Filtering on device: device-001
{
"event": {
"origin": "device-001",
"module": "",
"interface": "",
"component": "",
"payload": {
"temp": 65.57910343679293,
"humid": 36.16224660107426
}
}
}
Cihazınızın IoT Central ile birlikte değişiminde olan özellik güncelleştirmelerini izlemek için aşağıdaki Önizleme komutunu kullanın:
az iot central diagnostics monitor-properties --app-id <app-id> --device-id <device-name>
Cihaz, özellik güncelleştirmelerini başarıyla gönderirse aşağıdakine benzer bir çıktı görürsünüz:
Changes in reported properties:
version : 32
{'state': 'true', 'name': {'value': {'value': 'Contoso'}, 'status': 'completed', 'desiredVersion': 7, 'ad': 'completed', 'av': 7, 'ac
': 200}, 'brightness': {'value': {'value': 2}, 'status': 'completed', 'desiredVersion': 7, 'ad': 'completed', 'av': 7, 'ac': 200}, 'p
rocessorArchitecture': 'ARM', 'swVersion': '1.0.0'}
Terminalinizde veriler görünürse, veriler IoT Central uygulamanız olarak bu duruma gelir.
Birkaç dakika sonra herhangi bir veri görünmüyorsa, Enter return çıktının takılı olması durumunda klavyenizdeki veya tuşuna basmayı deneyin.
Terminalinizde herhangi bir veri görünmüyorsa, büyük olasılıkla cihazınızda ağ bağlantısı sorunları yaşıyor veya IoT Central verileri doğru bir şekilde göndermiyor olabilir.
Cihazınızın sağlama durumunu denetleyin
Verileriniz izleyicisinde görünmüyorsa, aşağıdaki komutu çalıştırarak cihazınızın sağlama durumunu kontrol edin:
az iot central device registration-info --app-id <app-id> --device-id <device-name>
Aşağıdaki çıktıda, bağlantısı engellenen bir cihaz örneği gösterilmektedir:
{
"@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
}
}
| Cihaz sağlama durumu | Description | Olası risk azaltma |
|---|---|---|
| Sağlanan | Anında tanınabilir sorun yoktur. | Yok |
| Kaydedildi | Cihaz henüz IoT Central bağlanmadı. | Bağlantı sorunları için cihaz günlüklerinizi denetleyin. |
| Engellendi | Cihazın IoT Central 'e bağlanması engellendi. | Cihazın IoT Central uygulamasına bağlanması engellendi. IoT Central cihaz engelini kaldırın ve yeniden deneyin. Daha fazla bilgi için bkz. Cihazları engelleme. |
| Durumdaki | Cihaz onaylanmadı. | Cihaz IoT Central uygulamasına bağlanacak şekilde onaylanmadı. IoT Central cihazı onaylayın ve yeniden deneyin. Daha fazla bilgi için bkz. cihazları onaylama |
| İlişkilendirilmemiş | Cihaz bir cihaz şablonuyla ilişkilendirilmemiş. | IoT Central verileri ayrıştırmayı bilmesi için cihazı bir cihaz şablonuyla ilişkilendirin. |
Cihaz durum kodlarıhakkında daha fazla bilgi edinin.
Hata kodları
Hala verilerinizin neden gösterilmediğini tanılamadıysanız monitor-events , bir sonraki adım cihazınız tarafından bildirilen hata kodlarını aramaya yöneliktir.
Cihazınızda bir hata ayıklama oturumu başlatın veya cihazınızdan günlükleri toplayın. Cihazın rapor aldığı herhangi bir hata kodunu denetleyin.
Aşağıdaki tablolarda, genel hata kodları ve hafifletmek için olası eylemler gösterilmektedir.
Kimlik doğrulama akışla ilgili sorunlar görüyorsanız:
| Hata kodu | Description | Olası risk azaltma |
|---|---|---|
| 400 | İsteğin gövdesi geçerli değil. Örneğin, ayrıştırılamıyor veya nesne doğrulanamıyor. | Kanıtlama akışının bir parçası olarak doğru istek gövdesini gönderdiğinizden emin olun veya bir cihaz SDK 'Sı kullanın. |
| 401 | Yetkilendirme belirteci doğrulanamıyor. Örneğin, süresi sona ermiştir veya isteğin URI 'sine uygulanmaz. Bu hata kodu, TPM kanıtlama akışının bir parçası olarak cihazlara de döndürülür. | Cihazınızın doğru kimlik bilgilerine sahip olduğundan emin olun. |
| 404 | Cihaz sağlama hizmeti örneği veya kayıt gibi bir kaynak yok. | Müşteri desteği ile Bilet dosyası oluşturma. |
| 412 | ETagİstekteki, ETag RFC7232 başına mevcut kaynak ile eşleşmiyor. |
Müşteri desteği ile Bilet dosyası oluşturma. |
| 429 | İşlemler, hizmet tarafından kısıtlanıyor. Belirli hizmet limitleri için bkz. cihaz sağlama hizmeti sınırlarını IoT Hub. | İleti sıklığını azaltın, sorumlulukları daha fazla cihaz arasında ayırın. |
| 500 | Bir iç hata oluştu. | Size daha fazla yardımcı olup olmadığını görmek için müşteri desteğiyle bir bilet dosyası yapın. |
Ayrıntılı yetkilendirme hatası kodları
| Hata | Alt hata kodu | Notlar |
|---|---|---|
| 401 Yetkisiz | 401002 | Cihaz geçersiz veya kullanım dışı kimlik bilgileri kullanıyor. Bu hata, DPS tarafından raporlanır. |
| 401 Yetkisiz | 400209 | Cihaz bir operatör tarafından onay bekliyor veya bir operatör tarafından engellenmiş. |
| 401 Iothubyetkilendirilmemiş | Cihaz, zaman aşımına uğradı güvenlik belirtecini kullanıyor. Bu hata IoT Hub tarafından raporlanır. | |
| 401 Iothubyetkilendirilmemiş | DEVICE_DISABLED | Cihaz bu IoT Hub 'ında devre dışı bırakıldı ve başka bir IoT Hub 'ına taşındı. Cihazı yeniden sağlayın. |
| 401 Iothubyetkilendirilmemiş | DEVICE_BLOCKED | Bir işleç bu cihazı engelledi. |
Karşıya dosya yükleme hata kodları
Bir cihaz buluta dosya yüklemeye çalıştığında görebileceğiniz yaygın hata kodlarının listesi aşağıda verilmiştir. Cihazınızın bir dosyayı karşıya yükleyebilmesi için uygulamanızdaki cihaz dosya yüklemelerini yapılandırmanız gerektiğini unutmayın.
| Hata kodu | Description | Olası risk azaltma |
|---|---|---|
| 403006 | Eşzamanlı karşıya dosya yükleme işlemlerinin sayısını aştınız. Her cihaz istemcisi, 10 eşzamanlı dosya yükleme ile sınırlıdır. | Cihazın, karşıya dosya yükleme işleminin tamamlandığını IoT Central hemen bildirdiğinden emin olun. Bu işe yaramazsa, istek zaman aşımını azaltmayı deneyin. |
Yük şekli sorunları
Cihazınızın IoT Central veri gönderdiğini belirlediğinizde, sonraki adım cihazınızın verileri geçerli bir biçimde göndermesini sağlamaktır.
Cihaz verilerinin IoT Central görünmemesine neden olan genel sorunların iki ana kategorisi vardır:
- Cihaz şablonundan cihaza veri uyumsuzluğu:
- Yazım hataları veya büyük/küçük harf eşleştirme sorunları gibi adlandırırken uyumsuzluk.
- Şemanın cihaz şablonunda tanımlanmadığı Modellenmemiş Özellikler.
- Şablonda tanımlanmış tür gibi şema uyumsuzluğu
boolean, ancak veri bir dizedir. - Aynı telemetri adı birden çok arabirimde tanımlanmıştır, ancak cihaz IoT Tak ve Kullan uyumlu değildir.
- Veri şekli geçersiz JSON. Daha fazla bilgi için bkz. telemetri, özellik ve komut yükleri.
Sorununuzla ilgili hangi kategorilerin olduğunu saptamak için senaryonuz için en uygun komutu çalıştırın:
Telemetriyi doğrulamak için Önizleme komutunu kullanın:
az iot central diagnostics validate-messages --app-id <app-id> --device-id <device-name>Özellik güncelleştirmelerini doğrulamak için Önizleme komutunu kullanın
az iot central diagnostics validate-properties --app-id <app-id> --device-id <device-name>
uamqpBir komutu ilk kez çalıştırdığınızda kitaplığı yüklemeniz istenebilir validate .
Aşağıdaki çıktı, Validate komutundan örnek hata ve uyarı iletilerini gösterir:
Validating telemetry.
Filtering on device: v22upeoqx6.
Exiting after 300 second(s), or 10 message(s) have been parsed (whichever happens first).
[WARNING] [DeviceId: v22upeoqx6] No encoding found. Expected encoding 'utf-8' to be present in message header.
[WARNING] [DeviceId: v22upeoqx6] Content type '' is not supported. Expected Content type is 'application/json'.
[ERROR] [DeviceId: v22upeoqx6] [TemplateId: urn:krhsi_k0u:modelDefinition:w53jukkazs] Datatype of field 'humid' does not match the da
tatype 'double'. Data '56'. All dates/times/datetimes/durations must be ISO 8601 compliant.
Bir GUI kullanmayı tercih ediyorsanız, bir şeyin modellendirilmediğinden bakmak için IoT Central ham veri görünümünü kullanın. Ham veri görünümü, cihazın hatalı biçimlendirilmiş JSON gönderip göndermediğini algılamaz.
Sorunu tespit ettiğinizde cihaz bellenimini güncelleştirmeniz veya daha önce Modellenmemiş verileri modelleyen yeni bir cihaz şablonu oluşturmanız gerekebilir.
Verileri doğru şekilde modelleyen yeni bir şablon oluşturmayı seçerseniz, cihazları eski şablonlarınızdan yeni şablona geçirin. Daha fazla bilgi edinmek için bkz. Azure IoT Central uygulamanızda cihazları yönetme.
Sonraki adımlar
Daha fazla yardıma ihtiyacınız varsa, MSDN Azure ve Stack Overflow forumlarındaAzure uzmanlarıyla iletişim kurun. Alternatif olarak, bir Azure destek biletidosyası da oluşturabilirsiniz.
Daha fazla bilgi için bkz. Azure IoT desteği ve yardım seçenekleri.