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:
- Az oktatóanyag elvégzése Ügyfélalkalmazás létrehozása és csatlakoztatása az Azure IoT Central-alkalmazáshoz
- Eszközhitelesítési fogalmak áttekintése az IoT Centralban
- Megtudhatja, hogyan monitorozhat eszközkapcsolatokat az Azure CLI használatával
- További információ az Azure IoT Edge-eszközökről és az Azure IoT Centralról