Eszközmegvalósítás és ajánlott eljárások az IoT Centralhoz

Ez a cikk az IoT central-alkalmazáshoz csatlakozó eszközök implementálásáról nyújt tájékoztatást. Néhány ajánlott eljárást is tartalmaz. Az általános kapcsolati folyamatról az eszköz Csatlakozás című témakörben olvashat bővebben.

Az eszközmegvalósítási mintakódért tekintse meg az oktatóanyagot: Ügyfélalkalmazás létrehozása és csatlakoztatása az Azure IoT Central-alkalmazáshoz.

Az eszköz implementálása

Az IoT Centralhoz csatlakozó eszközöknek követnie kell az IoT Plug and Play konvenciót. Az egyik ilyen konvenció, hogy az eszköznek el kell küldenie annak az eszközmodellnek a modellazonosítóját , amelyet a csatlakozáskor implementál. A modellazonosító lehetővé teszi, hogy az IoT Central-alkalmazás a megfelelő eszközsablonhoz rendelje az eszközt.

Az IoT Central-eszközsablonok olyan modellt tartalmaznak, amely meghatározza az ilyen típusú eszközök implementálandó viselkedését. A viselkedések közé tartozik a telemetria, a tulajdonságok és a parancsok.

Minden modell egyedi digitális ikermodell-azonosítóval (DTMI) rendelkezik, például dtmi:com:example:Thermostat;1. Amikor egy eszköz csatlakozik az IoT Centralhoz, elküldi az általa implementálandó modell DTMI-ját. Az IoT Central ezután hozzárendelheti a megfelelő eszközsablont az eszközhöz.

Az IoT Plug and Play olyan konvenciók készletét határozza meg, amelyeket az eszköznek követnie kell a Digital Twin Definition Language (DTDL) modell megvalósításakor.

Az Azure IoT-eszköz SDK-k támogatják az IoT Plug and Play konvencióinak támogatását.

Eszközmodell

Az eszközmodell a DTDL V2 modellezési nyelv használatával van definiálva. Ezzel a nyelvvel definiálhatja a következőket:

  • Az eszköz által küldött telemetriai adatok. A definíció tartalmazza a telemetria nevét és adattípusát. Egy eszköz például a hőmérsékleti telemetriát duplaként küldi el.
  • Az eszköz által az IoT Centralnak jelentéssel rendelkező tulajdonságok. A tulajdonságdefiníciók tartalmazzák a nevét és az adattípust. Egy eszköz például logikai értékként jelenti egy szelep állapotát.
  • Az eszköz által az IoT Centraltól kapott tulajdonságok. Egy tulajdonságot írhatóként is megjelölhet. Az IoT Central például dupla hőmérsékletet küld egy eszköznek.
  • Azokra a parancsokra, amelyekre az eszköz válaszol. A definíció tartalmazza a parancs nevét, valamint a paraméterek nevét és adattípusait. Egy eszköz például egy újraindítási parancsra válaszol, amely megadja, hogy hány másodpercet kell várni az újraindítás előtt.

Feljegyzés

Az IoT Central definiál néhány bővítményt a DTDL v2 nyelvhez. További információ: IoT Central-bővítmény.

A DTDL-modell lehet nem összetevő vagy többkomponensűmodell:

  • Nincs összetevőmodell: Az egyszerű modellek nem használnak beágyazott vagy kaszkádolt összetevőket. Az összes telemetria, tulajdonság és parancs egyetlen gyökérösszetevőt definiál. Például tekintse meg a termosztátmodellt .
  • Többkomponensű modell. Összetettebb modell, amely két vagy több összetevőt tartalmaz. Ezek az összetevők egyetlen gyökérösszetevőt és egy vagy több beágyazott összetevőt tartalmaznak. Például tekintse meg a Hőmérséklet-vezérlő modelljét.

Tipp.

Egy teljes eszközmodellt vagy egyéni felületet importálhat és exportálhat egy IoT Central-eszközsablonból DTDL v2-fájlként.

Az eszközmodellekkel kapcsolatos további információkért tekintse meg az IoT Plug and Play modellezési útmutatóját

Szabályok

Az eszközöknek követnie kell az IoT Plug and Play konvencióit, amikor adatokat cserél az IoT Centrallal. A konvenciók a következők:

  • Küldje el a DTMI-t, amikor csatlakozik az IoT Centralhoz.
  • Megfelelően formázott JSON-hasznos adatok és metaadatok küldése az IoT Centralnak.
  • Megfelelően válaszolhat az IoT Central írható tulajdonságaira és parancsaira.
  • Kövesse az összetevőparancsok elnevezési konvencióit.

Feljegyzés

Az IoT Central jelenleg nem támogatja teljes mértékben a DTDL tömb - és térinformatikai adattípusokat.

Az IoT Plug and Play konvencióiról további információt az IoT Plug and Play konvencióiban talál.

Az eszköz által az IoT Centralnal kicserélt JSON-üzenetek formátumáról további információt a telemetriai adatok, a tulajdonság és a parancs hasznos adatai című témakörben talál.

Eszköz SDK-k

Az eszköz viselkedésének implementálásához használja az Azure IoT-eszköz SDK-k egyikét. A kódnak a következőnek kell lennie:

  • Regisztrálja az eszközt a DPS-ben, és használja a DPS információit az IoT Central-alkalmazás belső IoT Hubjához való csatlakozáshoz.
  • Az eszköz által implementálva lévő modell DTMI-jének bejelentése.
  • Telemetria küldése az eszközmodell által megadott formátumban. Az IoT Central az eszközsablonban található modellt használja annak meghatározására, hogyan használható a telemetria vizualizációkhoz és elemzésekhez.
  • A tulajdonságértékek szinkronizálása az eszköz és az IoT Central között. A modell megadja a tulajdonságneveket és az adattípusokat, hogy az IoT Central megjeleníthesse az információkat.
  • A modellben megadott parancsok parancskezelőinek implementálása. A modell megadja az eszköz által használandó parancsneveket és paramétereket.

Az eszközsablonok szerepkörével kapcsolatos további információkért lásd: Mik azok az eszközsablonok?

Az alábbi táblázat összefoglalja, hogy az Azure IoT Central eszközfunkciói hogyan képezik le az IoT Hub funkcióit:

Azure IoT Central Azure IoT Hub
Telemetria Eszközről felhőbe irányuló üzenetkezelés
Offline parancsok Felhőből eszközre irányuló üzenetkezelés
Tulajdonság Ikereszköz jelentett tulajdonságai
Tulajdonság (írható) Ikereszköz kívánt és jelentett tulajdonságai
Parancs Közvetlen metódusok

Kommunikációs protokollok

Az eszközök által az IoT Centralhoz való csatlakozáshoz használható kommunikációs protokollok közé tartozik az MQTT, az AMQP és a HTTPS. Az IoT Central belsőleg egy IoT Hubot használ az eszközkapcsolat engedélyezéséhez. Az IoT Hub által az eszközkapcsolathoz támogatott kommunikációs protokollokról további információt a Kommunikációs protokoll kiválasztása című témakörben talál.

Ha az eszköz nem tudja használni a támogatott protokollokat, az Azure IoT Edge használatával végezze el a protokollkonverziót. Az IoT Edge támogatja a peremhálózati intelligenciával kapcsolatos egyéb forgatókönyveket is az Azure IoT Central-alkalmazásból történő feldolgozás kiszervezéséhez.

Telemetriai időbélyegek

Az IoT Central alapértelmezés szerint a lekérdezett időt használja, amikor telemetriát jelenít meg az irányítópultokon és diagramokon. Az üzenetbe foglalt idő belsőleg van beállítva, amikor az IoT Central megkapja az üzenetet az eszközről.

Egy eszköz beállíthatja a iothub-creation-time-utc tulajdonságot, amikor létrehoz egy üzenetet, amely elküldhető az IoT Centralnak. Ha ez a tulajdonság jelen van, az IoT Central akkor használja, amikor telemetriát jelenít meg az irányítópultokon és diagramokon.

A telemetriai adatok IoT Central-alkalmazásból való exportálásakor a lekérdezett időt és a iothub-creation-time-utc tulajdonságot is exportálhatja.

Az üzenettulajdonságokról további információt az eszközről a felhőbe irányuló IoT Hub-üzenetek rendszertulajdonságairól talál.

Ajánlott eljárások

Ezek a javaslatok bemutatják, hogyan implementálhatók az eszközök a beépített magas rendelkezésre állás, a vészhelyreállítás és az automatikus skálázás előnyeinek kihasználásához az IoT Centralban.

Kapcsolati hibák kezelése

Skálázás vagy vészhelyreállítás céljából az IoT Central frissítheti a mögöttes IoT Hubokat. A kapcsolat fenntartása érdekében az eszközkódnak kezelnie kell bizonyos csatlakozási hibákat egy új IoT Hub-végponttal létesített kapcsolat létrehozásával.

Ha az eszköz a csatlakozáskor az alábbi hibák bármelyikét kapja, az új kapcsolati sztring beszerzéséhez a DPS-sel kell újra létrehoznia az eszközt. Ezek a hibák azt jelentik, hogy a kapcsolati sztring már nem érvényes:

  • Nem elérhető IoT Hub-végpont.
  • Lejárt biztonsági jogkivonat.
  • Az eszköz le van tiltva az IoT Hubban.

Ha az eszköz a csatlakozáskor az alábbi hibák valamelyikét kapja, a kapcsolat újrapróbálkozásához használjon egy háttérstratégiát. Ezek a hibák azt jelentik, hogy a kapcsolati sztring továbbra is érvényes, de átmeneti feltételek miatt az eszköz nem csatlakozik:

  • Az operátor letiltotta az eszközt.
  • 500-os belső hiba a szolgáltatásból.

Az eszköz hibakódjaival kapcsolatos további információkért tekintse meg az eszközkapcsolatok hibaelhárítását ismertető témakört.

Az automatikus újracsatlakozások implementálásával kapcsolatos további információkért lásd : Eszköz-újracsatlakozások kezelése rugalmas alkalmazások létrehozásához.

Feladatátvételi képességek tesztelése

Az Azure CLI lehetővé teszi az eszközkód feladatátvételi képességeinek tesztelését. A CLI-parancs úgy működik, hogy ideiglenesen átállít egy eszközregisztrációt egy másik belső IoT Hubra. Annak ellenőrzéséhez, hogy az eszköz feladatátvétele működött-e, ellenőrizze, hogy az eszköz továbbra is telemetriát küld-e, és válaszol-e a parancsokra.

Az eszköz feladatátvételi tesztjének futtatásához futtassa a következő parancsot:

az iot central device manual-failover \
    --app-id {Application ID of your IoT Central application} \
    --device-id {Device ID of the device you're testing} \
    --ttl-minutes {How to wait before moving the device back to it's original IoT hub}

Tipp.

Az alkalmazásazonosító megkereséséhez keresse meg az Alkalmazáskezelést > az IoT Central-alkalmazásban.

Ha a parancs sikeres, a következő példához hasonló kimenet jelenik meg:

Command group 'iot central device' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
{
  "hubIdentifier": "6bd4...bafa",
  "message": "Success! This device is now being failed over. You can check your device'’'s status using 'iot central device registration-info' command. The device will revert to its original hub at Tue, 18 May 2021 11:03:45 GMT. You can choose to failback earlier using device-manual-failback command. Learn more: https://aka.ms/iotc-device-test"
}

A CLI-paranccsal kapcsolatos további információkért tekintse meg az iot central device manual-failover című témakört.

Most már ellenőrizheti, hogy az eszköz telemetriai adatai továbbra is elérik-e az IoT Central-alkalmazást.

Tipp.

A feladatátvételeket különböző programnyelveken kezelő eszközkódmintát az IoT Central magas rendelkezésre állású ügyfelei című témakörben tekintheti meg.

Következő lépések

Néhány javasolt következő lépés: