Felsök varför data från dina enheter inte visas i Azure IoT Central

Det här dokumentet hjälper dig att ta reda på varför de data som dina enheter skickar till IoT Central kanske inte visas i programmet.

Det finns två huvudområden att undersöka:

  • Problem med enhetsanslutning
    • Autentiseringsproblem som att enheten har ogiltiga autentiseringsuppgifter
    • Problem med nätverksanslutning
    • Enheten är inte godkänd eller blockerad
  • Problem med nyttolastform för enhet

Den här felsökningsguiden fokuserar på problem med enhetsanslutningar och problem med enhetens nyttolastform.

Problem med enhetsanslutning

Det här avsnittet hjälper dig att avgöra om dina data når IoT Central.

Installera verktyget och tillägget om du inte redan az cli har azure-iot gjort det.

Information om hur du installerar az cli finns i Installera Azure CLI.

Kör följande kommando azure-iot för att installera tillägget:

az extension add --name azure-iot

Anteckning

Du kan uppmanas att installera biblioteket uamqp första gången du kör ett tilläggskommando.

När du har installerat tillägget startar du enheten för att se om de meddelanden som den skickar kommer azure-iot IoT Central.

Använd följande kommandon för att logga in på prenumerationen där du har IoT Central program:

az login
az account set --subscription <your-subscription-id>

Använd följande kommando för att övervaka telemetrin som enheten skickar:

az iot central diagnostics monitor-events --app-id <app-id> --device-id <device-name>

Om enheten har anslutits till IoT Central visas utdata som liknar följande:

Monitoring telemetry.
Filtering on device: device-001
{
    "event": {
        "origin": "device-001",
        "module": "",
        "interface": "",
        "component": "",
        "payload": {
            "temp": 65.57910343679293,
            "humid": 36.16224660107426
        }
    }
}

Om du vill övervaka egenskapsuppdateringar som din enhet utbyter IoT Central använder du följande förhandsgranskningskommando:

az iot central diagnostics monitor-properties --app-id <app-id> --device-id <device-name>

Om enheten skickar egenskapsuppdateringar visas utdata som liknar följande:

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'}

Om du ser data i terminalen kommer data att ta sig så långt som IoT Central program.

Om inga data visas efter några minuter kan du försöka trycka på tangenten eller på tangentbordet Enter om utdatan return har fastnat.

Om du fortfarande inte ser några data i terminalen är det troligt att enheten har problem med nätverksanslutningen eller inte skickar data korrekt till IoT Central.

Kontrollera enhetens etableringsstatus

Om dina data inte visas på övervakaren kontrollerar du enhetens etableringsstatus genom att köra följande kommando:

az iot central device registration-info --app-id <app-id> --device-id <device-name>

Följande utdata visar ett exempel på en enhet som har blockerats från att ansluta:

{
  "@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
  }
}
Enhetsetableringsstatus Description Möjlig åtgärd
Etablerad Inget omedelbart identifierbart problem. Ej tillämpligt
Registrerad Enheten har ännu inte anslutit till IoT Central. Kontrollera enhetsloggarna för att se om det finns anslutningsproblem.
Blockerad Enheten blockeras från att ansluta till IoT Central. Enheten blockeras från att ansluta till IoT Central program. Avblockera enheten i IoT Central och försök igen. Mer information finns i Blockera enheter.
Ej godkänd Enheten är inte godkänd. Enheten är inte godkänd för att ansluta till IoT Central program. Godkänn enheten i IoT Central och försök igen. Mer information finns i Godkänn enheter
Oassocierade Enheten är inte associerad med en enhetsmall. Associera enheten med en enhetsmall så att IoT Central vet hur data ska parsas.

Läs mer om enhetsstatuskoder.

Felkoder

Om du fortfarande inte kan diagnostisera varför dina data inte visas i är nästa steg att söka efter felkoder som rapporteras monitor-events av enheten.

Starta en felsökningssession på enheten eller samla in loggar från enheten. Sök efter eventuella felkoder som enheten rapporterar.

I följande tabeller visas vanliga felkoder och möjliga åtgärder att åtgärda.

Om du får problem som rör ditt autentiseringsflöde:

Felkod Description Möjlig åtgärd
400 Brödtexten i begäran är inte giltig. Det kan till exempel inte parsas eller så går det inte att verifiera objektet. Se till att du skickar rätt begärandetext som en del av attestationsflödet eller använd en enhets-SDK.
401 Auktoriseringstoken kan inte verifieras. Den har till exempel upphört att gälla eller gäller inte för begärans URI. Den här felkoden returneras också till enheter som en del av TPM-attestationsflödet. Kontrollera att enheten har rätt autentiseringsuppgifter.
404 Device Provisioning Service-instansen eller en resurs som en registrering finns inte. Skapa en supportbiljett med kundsupporten.
412 i ETag begäran matchar inte för den befintliga resursen enligt ETag RFC7232. Skapa en supportbiljett med kundsupporten.
429 Åtgärder begränsas av tjänsten. Specifika tjänstbegränsningar finns i IoT Hub Device Provisioning Service gränser. Minska meddelandefrekvensen, dela upp ansvarsområden mellan fler enheter.
500 Ett internt fel inträffade. Skapa ett ärende hos kundsupporten för att se om de kan hjälpa dig ytterligare.

Detaljerade felkoder för auktorisering

Fel Underfelkod Kommentarer
401 – Ej behörig 401002 Enheten använder ogiltiga eller utgångna autentiseringsuppgifter. Det här felet rapporteras av DPS.
401 – Ej behörig 400209 Enheten väntar antingen på godkännande av en operatör eller har blockerats av en operatör.
401 IoTHubUnauthorized Enheten använder en säkerhetstoken som har upphört att gälla. Det här felet rapporteras av IoT Hub.
401 IoTHubUnauthorized DEVICE_DISABLED Enheten är inaktiverad i den här IoT-hubben och har flyttats till en annan IoT-hubb. Etablera om enheten.
401 IoTHubUnauthorized DEVICE_BLOCKED En operatör har blockerat den här enheten.

Felkoder för filuppladdning

Här är en lista över vanliga felkoder som kan visas när en enhet försöker ladda upp en fil till molnet. Kom ihåg att innan enheten kan ladda upp en fil måste du konfigurera enhetsfiluppladdningar i ditt program.

Felkod Description Möjlig åtgärd
403006 Du har överskridit antalet samtidiga filöverföringsåtgärder. Varje enhetsklient är begränsad till 10 samtidiga filuppladdningar. Kontrollera att enheten snabbt meddelar IoT Central filuppladdningen har slutförts. Om det inte fungerar kan du försöka minska tidsgränsen för begäran.

Problem med nyttolastform

När du har fastställt att enheten skickar data till IoT Central är nästa steg att se till att enheten skickar data i ett giltigt format.

Det finns två huvudkategorier av vanliga problem som gör att enhetsdata inte visas i IoT Central:

  • Enhetsmall till enhetsdatamatchningsfel:
    • Matchningsfel i namngivning, till exempel stavfel eller problem med fallmatchning.
    • Ej inbyggda egenskaper där schemat inte har definierats i enhetsmallen.
    • Schemamatchningsfel, till exempel en typ som definierats i boolean mallen som , men data är en sträng.
    • Samma telemetrinamn definieras i flera gränssnitt, men enheten är inte IoT-Plug and Play kompatibel.
  • Dataformen är ogiltig JSON. Mer information finns i Telemetri, egenskap och nyttolaster för kommandon.

Kör det lämpligaste kommandot för ditt scenario för att identifiera vilka kategorier problemet finns i:

  • Verifiera telemetrin med hjälp av förhandsgranskningskommandot:

    az iot central diagnostics validate-messages --app-id <app-id> --device-id <device-name>
    
  • Verifiera egenskapsuppdateringar med hjälp av förhandsgranskningskommandot

    az iot central diagnostics validate-properties --app-id <app-id> --device-id <device-name>
    

Du kan uppmanas att installera biblioteket uamqp första gången du kör ett validate kommando.

Följande utdata visar exempel på fel- och varningsmeddelanden från kommandot validate:

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.

Om du föredrar att använda ett grafiskt användargränssnitt använder du IoT Central raw-datavyn för att se om något inte modelleras. Vyn Rådata identifierar inte om enheten skickar felaktig JSON.

Skärmbild av vyn Rådata

När du har identifierat problemet kan du behöva uppdatera enhetens inbyggda programvara eller skapa en ny enhetsmall som modellerar tidigare omoderade data.

Om du väljer att skapa en ny mall som modellerar data korrekt migrerar du enheter från din gamla mall till den nya mallen. Mer information finns i Hantera enheter i ditt Azure IoT Central program.

Nästa steg

Om du behöver mer hjälp kan du kontakta Azure-experter på MSDN Azureoch Stack Overflow forumen . Du kan också skapa en Azure-supportbiljett.

Mer information finns i Support- och hjälpalternativ för Azure IoT.