Eszközkapcsolat állapotának figyelése

Az Azure IoT Hub számos módszert támogat az eszközök állapotának monitorozására. Ez a cikk bemutatja a különböző monitorozási módszereket, és útmutatást nyújt az IoT-megoldás legjobb megoldásának kiválasztásához.

Az alábbi táblázat három módszert mutat be az eszköz kapcsolati állapotának monitorozására:

Metódus Állapot gyakorisága Költség Létrehozási erőfeszítések
Ikereszköz connectionState tulajdonsága Intermittent Alacsony Alacsony
Event Grid 60 másodperc Alacsony Alacsony
Egyéni eszköz szívverési mintája Egyéni Magas Magas

Megbízhatósága, alacsony költsége és egyszerű használata miatt az Event Gridet javasoljuk a legtöbb ügyfél számára előnyben részesített monitorozási megoldásként.

Vannak azonban bizonyos korlátozások az Event Griddel való monitorozásra, amelyek bizonyos IoT-megoldások esetében kizárhatják azt. Ebből a cikkből megismerheti az egyes lehetőségek előnyeit és korlátait.

Ikereszköz-kapcsolatstate

Minden IoT Hub-eszközidentitás tartalmaz egy connectionState nevű tulajdonságot, amely csatlakoztatott vagy leválasztott állapotot jelent. Ez a tulajdonság azt jelzi, hogy az IoT Hub tisztában van az eszköz kapcsolati állapotával.

A kapcsolatállapot-tulajdonság több korlátozással is rendelkezik:

  • A kapcsolat állapota csak az MQTT-t vagy AMQP-t használó eszközök esetében frissül.
  • Frissítések tulajdonság protokollszintű pingelésekre támaszkodik, és akár öt percet is késleltethet.

Ezért azt javasoljuk, hogy csak a connectionState mezőt használja a fejlesztés és a hibakeresés során. Az IoT-megoldások nem kérdezik le a mezőt futásidőben. Ne kérdezze le például a connectionState mezőt, hogy ellenőrizze, csatlakozik-e egy eszköz, mielőtt felhőből eszközre irányuló üzenetet vagy SMS-t küld.

Event Grid

A legtöbb ügyfél számára az Event Gridet javasoljuk előnyben részesített monitorozási megoldásként.

Iratkozzon fel az eszközre Csatlakozás ésa deviceDisconnected eseményekre az Event Griden a riasztások lekéréséhez és az eszköz kapcsolati állapotának figyeléséhez.

Az alábbi cikkekből megtudhatja, hogyan integrálhatja az eszközhöz csatlakoztatott és leválasztott eseményeket az IoT-megoldásba:

Az eszközkapcsolati állapot eseményei az MQTT vagy AMQP protokollt használó, vagy a WebSocketeken keresztüli protokollokat használó eszközökhöz érhetők el. A csak HTTPS-lel küldött kérések nem aktiválják az eszköz kapcsolati állapotának értesítéseit.

  • Java, Node vagy Python Azure IoT SDK-kat használó eszközök esetén:
    • MQTT: a rendszer automatikusan elküldi a kapcsolatállapot-eseményeket.
    • AMQP: létre kell hozni egy felhőről eszközre mutató hivatkozást a jelentéskészítési kapcsolatállapotok késésének csökkentése érdekében.
  • Az Azure IoT SDK-kkal .NET-hez vagy C-hez csatlakozó eszközök esetében a kapcsolatállapot-események csak akkor lesznek jelentettek, ha az eszközről a felhőbe irányuló kezdeti üzenet nem érkezik, vagy nem érkezik felhőből eszközre üzenet.

Az Azure IoT SDK-kon kívül az MQTT-ben ezek a műveletek egyenértékűek a FELIRATKOZÁS vagy KÖZZÉTÉTEL műveletekkel a megfelelő üzenetkezelési témakörökben. Az AMQP-n keresztül ezek a műveletek egyenértékűek egy üzenet csatolásával vagy átvitelével a megfelelő hivatkozási útvonalakon.

Event Grid-korlátozások

Az eszköz állapotának figyelésére az Event Grid az alábbi korlátozásokkal rendelkezik:

  • Az Event Grid nem jelenti az egyes eszközök kapcsolódási és leválasztási eseményét. Ehelyett 60 másodpercenként lekérdezi az eszköz állapotát, és állapotváltozás esetén közzéteszi a legutóbbi kapcsolati állapotot. Emiatt előfordulhat, hogy az állapotváltozási jelentések legfeljebb egy percet késnek, és az egyes állapotváltozások nem lesznek bejelentve, ha több esemény is történik a 60 másodperces ablakban.
  • Az AMQP-t használó eszközöknek felhő–eszköz kapcsolatra van szükségük ahhoz, hogy jelentést tudjanak tenni az eszköz állapotáról.
  • Az Event Grid olyan nyilvános végpontot tesz elérhetővé, amely nem rejthető el.

Ha ezek közül a korlátozások közül bármelyik hatással van az Event Grid eszközállapot-monitorozásra való használatára, érdemes inkább egyéni eszköz szívverési mintát létrehoznia.

Eszköz szívverési mintája

Ha ismernie kell az eszközök kapcsolati állapotát, de az Event Grid korlátozásai túl korlátozottak a megoldáshoz, implementálhatja a szívverési mintát. A szívverési mintában az eszköz rögzített időközönként (például óránként legalább egyszer) küld eszközről felhőbe irányuló üzeneteket. Még akkor is, ha egy eszköznek nincs küldendő adata, továbbra is üres, általában szívverési üzenetként azonosító tulajdonsággal rendelkező, üres eszközről felhőbe irányuló üzenetet küld. A szolgáltatás oldalán a megoldás egy térképet tart fenn az egyes eszközökhöz kapott utolsó szívveréssel. Ha a megoldás a várt időn belül nem kap szívverési üzenetet az eszközről, feltételezi, hogy probléma van az eszközzel.

Eszköz szívverésének korlátozásai

Mivel a szívverési üzenetek eszközről felhőbe irányuló üzenetként vannak implementálva, az IoT Hub-üzenetkvótához és a szabályozás korlátaihoz számítanak.

Rövid lejárati idő minta

Ha egy IoT-megoldás kizárólag a kapcsolati állapotot használja annak meghatározására, hogy szeretne-e felhőből eszközre üzeneteket küldeni egy eszközre, és az üzeneteket nem nagy eszközökre küldi, érdemes lehet a szívverési minta egyszerűbb alternatívájaként használni a rövid lejárati időmintát . A rövid lejárati idő minta segítségével meghatározhatja, hogy a felhőből az eszközre irányuló üzeneteket küldjön-e, ha rövid üzenet lejárati idővel rendelkező üzeneteket küld, és üzenetek nyugtázását kéri az eszközöktől.

További információ: Üzenet lejárata (élettartam).

Egyéb figyelési lehetőségek

Egy összetettebb implementáció az Azure Monitor és az Azure Resource Health információi alapján azonosíthatja azokat az eszközöket, amelyek csatlakozni próbálnak vagy kommunikálni próbálnak, de sikertelenek. Az Azure Monitor-irányítópultok hasznosak az eszközök összesített állapotának megtekintéséhez, míg az Event Grid és a szívverési minták megkönnyítik az egyes eszközkimaradásokra való reagálást.

A szolgáltatások IoT Hubbal való használatáról további információt az IoT Hub monitorozása és az IoT Hub erőforrás-állapotának ellenőrzése című témakörben talál. Az Azure Monitor vagy az Event Grid eszközkapcsolatok monitorozására való használatával kapcsolatos további információkért tekintse meg az eszközkapcsolat figyelése, diagnosztizálása és hibaelhárítása című témakört.