Hibaelhárítás az Azure IoT Centralban
Ez a cikk hibaelhárítási útmutatót tartalmaz az IoT Central-alkalmazások eszközkapcsolati és adatexportálási konfigurációs problémáihoz.
Eszközkapcsolati problémák
Ez a szakasz segít megállapítani, hogy az adatok elérik-e az IoT Centralt.
Ha még nem tette meg, telepítse az eszközt és azure-iot
a az cli
bővítményt.
A telepítésről további információt az az cli
Azure CLI telepítése című témakörben talál.
A azure-iot
bővítmény telepítéséhez futtassa a következő parancsot:
az extension add --name azure-iot
Feljegyzés
Előfordulhat, hogy a bővítményparancsok első futtatásakor a rendszer kérni fogja a uamqp
kódtár telepítését.
Amikor telepítette a azure-iot
bővítményt, indítsa el az eszközt, és ellenőrizze, hogy az általa küldött üzenetek eljutnak-e az IoT Centralhoz.
Az alábbi parancsokkal jelentkezzen be arra az előfizetésre, amelyben az IoT Central-alkalmazás található:
az login
az account set --subscription <your-subscription-id>
Az eszköz által küldött telemetriai adatok figyeléséhez használja a következő parancsot:
az iot central diagnostics monitor-events --app-id <iot-central-app-id> --device-id <device-name>
Ha az eszköz sikeresen csatlakozott az IoT Centralhoz, az alábbi példához hasonló kimenet jelenik meg:
Monitoring telemetry.
Filtering on device: device-001
{
"event": {
"origin": "device-001",
"module": "",
"interface": "",
"component": "",
"payload": {
"temp": 65.57910343679293,
"humid": 36.16224660107426
}
}
}
Az eszköz által az IoT Centrallal kicserélt tulajdonságfrissítések figyeléséhez használja az alábbi előzetes verziójú parancsot:
az iot central diagnostics monitor-properties --app-id <iot-central-app-id> --device-id <device-name>
Ha az eszköz sikeresen elküldi a tulajdonságfrissítéseket, az alábbi példához hasonló kimenet jelenik meg:
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'}
Ha az adatok megjelennek a terminálban, akkor az adatok az IoT Central-alkalmazásig érnek.
Ha néhány perc múlva nem jelenik meg adat, próbálja meg lenyomni a Enter
return
billentyűzeten a billentyűt, ha a kimenet elakad.
Ha továbbra sem jelenik meg adat a terminálon, valószínű, hogy az eszköz hálózati csatlakozási problémái vannak, vagy nem küld megfelelően adatokat az IoT Centralnak.
Az eszköz kiépítési állapotának ellenőrzése
Ha az adatok nem jelennek meg a PARANCSSOR-figyelőben, ellenőrizze az eszköz kiépítési állapotát az alábbi parancs futtatásával:
az iot central device registration-info --app-id <iot-central-app-id> --device-id <device-name>
Az alábbi kimenet egy olyan eszköz példáját mutatja be, amely nem csatlakozik:
{
"@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
}
}
Eszközkiépítés állapota | Leírás | Lehetséges kockázatcsökkentés |
---|---|---|
Kiépítve | Nincs azonnal felismerhető probléma. | n/a |
Regisztrálva | Az eszköz még nem csatlakozott az IoT Centralhoz. | Ellenőrizze az eszköznaplókban a csatlakozási problémákat. |
Blokkolva | Az eszköz nem tud csatlakozni az IoT Centralhoz. | Az eszköz nem tud csatlakozni az IoT Central-alkalmazáshoz. Oldja fel az eszköz letiltását az IoT Centralban, és próbálkozzon újra. További információ: Eszközállapot-értékek. |
Jóvá nem hagyott | Az eszköz nincs jóváhagyva. | Az eszköz nincs jóváhagyva az IoT Central-alkalmazáshoz való csatlakozáshoz. Hagyja jóvá az eszközt az IoT Centralban, és próbálkozzon újra. További információ: Eszközállapot-értékek |
Hozzá nem rendelt | Az eszköz nincs eszközsablonhoz rendelve. | Rendelje hozzá az eszközt egy eszközsablonhoz, hogy az IoT Central tudja, hogyan kell elemezni az adatokat. |
További információ a REST API felhasználói felületi és eszközállapot-értékeinek eszközállapot-értékeiről.
Hibakódok
Ha továbbra sem tudja diagnosztizálni, hogy miért nem jelennek meg monitor-events
az adatok, a következő lépés az eszköz által jelentett hibakódok keresése.
Indítsa el a hibakeresési munkamenetet az eszközön, vagy gyűjtsön naplókat az eszközről. Ellenőrizze, hogy vannak-e hibakódok, amelyeket az eszköz jelent.
Az alábbi táblázatok a gyakori hibakódokat és a mérséklésre szolgáló lehetséges műveleteket mutatják be.
Ha a hitelesítési folyamattal kapcsolatos problémákat tapasztal:
Hibakód | Leírás | Lehetséges kockázatcsökkentés |
---|---|---|
400 | A kérelem törzse érvénytelen. Például nem elemezhető, vagy az objektum nem érvényesíthető. | Győződjön meg arról, hogy a megfelelő kérelemtörzset küldi el az igazolási folyamat részeként, vagy használjon eszköz SDK-t. |
401 | Az engedélyezési jogkivonat nem érvényesíthető. Például lejárt, vagy nem vonatkozik a kérelem URI-jára. Ezt a hibakódot a rendszer a TPM-igazolási folyamat részeként is visszaadja az eszközöknek. | Győződjön meg arról, hogy az eszköz rendelkezik a megfelelő hitelesítő adatokkal. |
404 | A Device Provisioning Service-példány vagy egy erőforrás, például egy regisztráció nem létezik. | Küldjön egy jegyet az ügyfélszolgálattal. |
412 | A ETag kérelem nem egyezik meg a ETag meglévő erőforrás RFC7232 szerint. |
Küldjön egy jegyet az ügyfélszolgálattal. |
429 | A szolgáltatás szabályozza a műveleteket. Konkrét szolgáltatási korlátokat az IoT Hub Device Provisioning Service korlátai című témakörben talál. | Csökkentse az üzenetek gyakoriságát, és ossza fel a felelősségi köröket több eszköz között. |
500 | Belső hiba történt. | Küldjön be egy jegyet az ügyfélszolgálattal , hogy lássa, segíthetnek-e a továbbiakban. |
Részletes engedélyezési hibakódok
Hiba | Alhibakód | Jegyzetek |
---|---|---|
401 Nem engedélyezett | 401002 | Az eszköz érvénytelen vagy lejárt hitelesítő adatokat használ. A DPS jelenti ezt a hibát. |
401 Nem engedélyezett | 400209 | Az eszköz vagy egy operátor jóváhagyására vár, vagy egy operátor letiltotta azt. |
401 IoTHubUnauthorized | Az eszköz lejárt biztonsági jogkivonatot használ. Az IoT Hub jelenti ezt a hibát. | |
401 IoTHubUnauthorized | DEVICE_DISABLED | Az eszköz le van tiltva ebben az IoT Hubban, és át lett helyezve egy másik IoT Hubra. Az eszköz újraépítése. |
401 IoTHubUnauthorized | DEVICE_BLOCKED | Egy operátor letiltotta ezt az eszközt. |
Fájlfeltöltési hibakódok
Az alábbiakban felsoroljuk azokat a gyakori hibakódokat, amikor egy eszköz megpróbál fájlokat feltölteni a felhőbe. Ne feledje, hogy mielőtt az eszköz feltölthet egy fájlt, konfigurálnia kell az eszközfájl-feltöltéseket az alkalmazásban.
Hibakód | Leírás | Lehetséges kockázatcsökkentés |
---|---|---|
403006 | Túllépte az egyidejű fájlfeltöltési műveletek számát. Minden eszközügyfél legfeljebb 10 egyidejű fájlfeltöltésre korlátozódik. | Győződjön meg arról, hogy az eszköz azonnal értesíti az IoT Centralt a fájlfeltöltési művelet befejezéséről. Ha ez nem működik, próbálja meg csökkenteni a kérés időtúllépését. |
Nem átalakított adatokkal kapcsolatos problémák
Amikor megállapította, hogy az eszköz adatokat küld az IoT Centralnak, a következő lépés annak biztosítása, hogy az eszköz érvényes formátumban küldjön adatokat.
A probléma kategóriáinak észleléséhez futtassa a forgatókönyvéhez legmegfelelőbb Azure CLI-parancsot:
A telemetriai adatok ellenőrzéséhez használja az előnézeti parancsot:
az iot central diagnostics validate-messages --app-id <iot-central-app-id> --device-id <device-name>
A tulajdonságfrissítések érvényesítéséhez használja az előnézeti parancsot:
az iot central diagnostics validate-properties --app-id <iot-central-app-id> --device-id <device-name>
Előfordulhat, hogy a rendszer arra kéri, hogy a uamqp
parancs első futtatásakor telepítse a tárat validate
.
A három gyakori problématípus, amely miatt az eszközadatok nem jelennek meg az IoT Centralban:
- Az eszközsablon és az eszköz adatai nem egyeznek.
- Az adatok érvénytelen JSON-adatok.
- Az IoT Edge régi verziói miatt az összetevők telemetriai adatai helytelenül jelennek meg nem módosított adatokként.
Eszközsablon és eszközadatok eltérése
Az eszköznek az eszközsablonban használt nevet és burkolatot kell használnia az általa küldött hasznos adat telemetriai mezőneveihez. Az alábbi kimenet egy figyelmeztető példaüzenetet jelenít meg, amelyben az eszköz egy telemetriaértéket küld, amelynek neve Temperature
a következő:temperature
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']}'.
Az eszköznek ugyanazt a nevet és burkolatot kell használnia, mint amelyet az eszközsablonban használ az általa küldött hasznos adatban lévő tulajdonságnevekhez. Az alábbi kimenet egy figyelmeztető példaüzenetet jelenít meg, amelyben a tulajdonság osVersion
nincs definiálva az eszközsablonban:
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']}'.
Az eszköznek az eszközsablonban meghatározott adattípusokat kell használnia minden telemetriai vagy tulajdonságértékhez. A sémaeltérés például akkor jelenik meg, ha az eszközsablonban definiált típus logikai, de az eszköz sztringet küld. Az alábbi kimenet egy példa hibaüzenetet jelenít meg, amelyben az eszköz egy sztringértéket használ egy kettősként definiált tulajdonsághoz:
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
Az érvényesítési parancsok hibát is jeleznek, ha ugyanaz a telemetriai név több felületen van definiálva, de az eszköz nem IoT Plug and Play-kompatibilis.
Ha inkább grafikus felhasználói felületet szeretne használni, az IoT Central Raw adatnézetével ellenőrizze, hogy nincs-e modellezve valami.
Ha észlelte a problémát, előfordulhat, hogy frissítenie kell az eszköz belső vezérlőprogramját, vagy létre kell hoznia egy új eszközsablont, amely korábban nem használt adatokat modellez.
Ha úgy döntött, hogy létrehoz egy új sablont, amely megfelelően modellezi az adatokat, migrálja az eszközöket a régi sablonból az új sablonba. További információ: Eszközök kezelése az Azure IoT Central-alkalmazásban.
Érvénytelen JSON
Ha nincsenek jelentett hibák, de egy érték nem jelenik meg, akkor valószínűleg hibás JSON van az eszköz által küldött hasznos adatban. További információ: Telemetria, tulajdonság és parancs hasznos adatok.
A felhasználói felületen nem használhatja az érvényesítési parancsokat vagy a Nyers adatnézetet annak észlelésére, hogy az eszköz helytelenül formázott JSON-t küld-e.
IoT Edge-verzió
Az IoT Edge-modulokban üzemeltetett összetevők telemetriájának helyes megjelenítéséhez használja az IoT Edge 1.2.4-es vagy újabb verzióját. Ha korábbi verziót használ, az IoT Edge-modulok összetevőiből származó telemetriai adatok _unmodeleddata jelennek meg.
Felügyelt identitással kapcsolatos adatexportálási problémák
Felügyelt identitással engedélyezi az exportálási célhoz való csatlakozást. Az adatok nem érkeznek meg az exportálási célhelyre.
Mielőtt konfigurálja vagy engedélyezi az exportálási célhelyet, győződjön meg arról, hogy végrehajtja az alábbi lépéseket:
Engedélyezze a felügyelt identitást az IoT Central-alkalmazáshoz. A felügyelt identitás engedélyezésének ellenőrzéséhez nyissa meg az alkalmazás Identitás lapját az Azure Portalon, vagy használja a következő CLI-parancsot:
az iot central app identity show --name {your app name} --resource-group {your resource group name}
Konfigurálja a felügyelt identitás engedélyeit. A hozzárendelt engedélyek megtekintéséhez válassza ki az Azure-szerepkör-hozzárendeléseket az alkalmazás Identitás lapján az Azure Portalon, vagy használja a
az role assignment list
CLI parancsot. A szükséges engedélyek a következők:Cél Engedély Azure Blob Storage Storage blobadat-közreműködő Azure Service Bus Azure Service Bus-adatfeladó Azure-eseményközpontok Azure Event Hubs-adatküldő Azure Data Explorer Rendszergazda Ha az engedélyek nem lettek megfelelően beállítva, mielőtt létrehozta volna a célhelyet az IoT Central-alkalmazásban, próbálja meg eltávolítani a célhelyet, majd újból hozzáadni.
Konfiguráljon bármilyen virtuális hálózatot, privát végpontot és tűzfalszabályzatot.
Feljegyzés
Ha felügyelt identitással engedélyezi az exportálási célhoz való csatlakozást, az IoT Central nem exportál adatokat szimulált eszközökről.
További információ: Adatok exportálása.
Adatexportálási célkapcsolattal kapcsolatos problémák
Az exportálás definíciós lapján az exportálási célhoz való sikertelen kapcsolatokra vonatkozó információk láthatók:
Hiányzó adatexportálási problémák
Az adatexportálás csak az adatok exportálásának engedélyezése után az alkalmazásba érkező adatokat exportálja. Ha olyan előzményadatokat vagy adatokat kell exportálnia, amelyek kimaradtak az adatexportálás ideiglenes kikapcsolásakor, az IoT Central REST API-val lekérdezheti az eszköz telemetriáját. Lekérdezéssel lekérheti a hiányzó adatokat, majd hozzáadhatja az adatokat az exportálási célhelyhez. További információ: Az IoT Central REST API használata az eszközök lekérdezéséhez.
Következő lépések
Ha további segítségre van szüksége, forduljon az Azure szakértőihez a Microsoft Q&A és a Stack Overflow fórumain. Másik lehetőségként Azure-támogatás jegyet is beszúrhat.
További információt az Azure IoT támogatási és súgóbeállításai között talál.