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 a az cli eszközt és a azure-iot bővítményt.

Az az cli telepítésének módját a Azure CLI telepítési útmutatójában találja.

A telepítéséhez futtassa a következő parancsot.

az extension add --name azure-iot

Megjegyzés

Előfordulhat, hogy a rendszer arra kéri, hogy telepítse a uamqp tárat a bővítményparancs első futtatásakor.

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 Enterreturn 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 beállítási állapotának ellenőrzése

Ha az adatok nem jelennek meg az CLI monitorban, ellenőrizze az eszköz konfigurációs á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
Nincs hozzárendelve 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.

A felhasználói felületen és a REST API-ban található eszközállapot-értékekkel kapcsolatos további információkért tekintse meg az eszközállapot-értékeket és az Eszköz lekérése című témakört.

Hibakódok

Ha továbbra sem tudja diagnosztizálni, hogy miért nem jelennek meg monitor-eventsaz 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 tartalma é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, mint például egy regisztráció, nem létezik. Nyújtson be egy jegyet az ügyfélszolgálatnak.
412 A ETag a kérésben nem egyezik a ETag-vel a meglévő erőforrás esetében, az RFC7232 szerint. Nyújtson be egy jegyet az ügyfélszolgálatnak.
429 A szolgáltatás csökkenti a műveletek sebességét. Konkrét szolgáltatási korlátokat az Azure 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álathoz hogy megtudja, segíthetnek-e a továbbiakban.

Részletes engedélyezési hibakódok

Hiba Alsó szintű hibakó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 IoTHubNem engedélyezett Az eszköz lejárt biztonsági jogkivonatot használ. Az IoT Hub jelenti ezt a hibát.
401 IoTHubNem engedélyezett ESZKÖZ LETILTVA Az eszköz le van tiltva ebben az IoT Hubban, és át lett helyezve egy másik IoT Hubra. Az eszköz újrakonfigurálása.
401 IoTHubNem engedélyezett ESZKÖZ BLOKKOLVA 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 kisebbre állítani a kérés időkorlátját.

Nem modellezett adatokkal kapcsolatos problémák

Miután meggyőződett arról, 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 telepítse a uamqp könyvtárat az első alkalommal, amikor egy validate parancsot futtat.

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, mint nem modellezett adatok.

Eszközsablon és eszköz adatai közötti eltérés

Az eszköznek az eszközsablonban használt nevet és névformát kell használnia az általa küldött terhelés telemetriai mezőneveihez. Az alábbi kimenet egy figyelmeztető üzenetet mutat be, amelyben az eszköz egy telemetriaértéket küld jelenleg Temperature, pedig helyette temperature-nek kellene lennie.

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 kettősként definiált tulajdonság sztringértékét használja:

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.

Az IoT Central-alkalmazások nyers adatnézetét bemutató képernyőkép.

A probléma észlelésekor 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ó: Az egyes eszközök kezelése az Azure IoT Central-alkalmazásban.

Érvénytelen JSON

Ha nincsenek jelentett hibák, de egy érték nem látható, akkor valószínűleg hibás JSON formátumú az eszköz által küldött adat. További információért, lásd: Telemetria, tulajdonság és parancs adatcsomagok.

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 _unmodeleddataként jelennek meg.

Felügyelt identitással kapcsolatos adatexportálási problémák

Kezelt azonosítóval engedélyezi a csatlakozást egy exportálási célállomáshoz. 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 adatküldő
    Azure Event Hubs 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.

Megjegyzé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ó: IoT-adatok exportálása a Blob Storage-ba.

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:

Képernyőkép egy példa exportálási hibáról.

Webhook célhelye: "A webhook nem érhető el"

Ha webhook-célhelyet konfigurál, és a következő hibaüzenet jelenik meg : "A webhook nem érhető el. Győződjön meg arról, hogy a webhook online állapotban van és elérhető." Az IoT Central megpróbálta ellenőrizni a visszahívási URL-címet, amikor mentette a célhelyet, és nem tudott sikeres kapcsolatot létesíteni.

Gyakori okok:

  • A végpont nem érhető el a nyilvános internetről. Az IoT Central csak nyilvános DNS-névvel és IP-címmel rendelkező végpontokra tud kézbesíteni.
  • A kiszolgálótanúsítvány nem megbízható. Az IoT Central elutasítja a magánhálózati hitelesítésszolgáltató által kibocsátott önaláírt tanúsítványokat és tanúsítványokat. A tanúsítványt egy nyilvánosan megbízható hitelesítésszolgáltatónak kell aláírnia, és a tanúsítvány tulajdonosának vagy tulajdonosának alternatív nevének meg kell egyeznie a visszahívási URL-cím állomásnevével.
  • A tanúsítvány lejárt, vagy a gazdagépnév nem egyezik az URL-címével.
  • A végpont nem 2xx választ ad vissza az IoT Central által a cél mentésekor küldött érvényesítési kérelemre.

A webhook-végpontok TLS-követelményeiről további információt a HTTPS-végpontok és a TLS-követelmények című témakörben talál.

Hiányzó adatok miatti exportá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. Alternatív megoldásként nyithat egy Azure támogatási jegyet.

További információ: Mik az Azure IoT támogatási és súgóbeállításai?