Sdílet prostřednictvím


Monitorování stavu připojení zařízení

Azure IoT Hub podporuje několik metod monitorování stavu vašich zařízení. Tento článek představuje různé metody monitorování a poskytuje pokyny, které vám pomůžou zvolit nejlepší možnost pro vaše řešení IoT.

Následující tabulka uvádí tři způsoby monitorování stavu připojení zařízení:

metoda Frekvence stavu Náklady Úsilí o sestavení
Vlastnost ConnectionState dvojčete zařízení Občasně Nízká Nízká
Event Grid 60 sekund Nízká Nízká
Vlastní vzor prezenčních signálů zařízení Vlastní Vysoká Vysoká

Kvůli spolehlivosti, nízké ceně a snadnému použití doporučujeme Event Grid jako upřednostňované řešení monitorování pro většinu zákazníků.

Existují však určitá omezení monitorování pomocí Event Gridu, která ho můžou v některých řešeních IoT odřadit. V tomto článku se můžete seznámit s výhodami a omezeními jednotlivých možností.

Stav připojení dvojčete zařízení

Každá identita zařízení IoT Hubu obsahuje vlastnost s názvem connectionState , která hlásí připojení nebo odpojení. Tato vlastnost představuje pochopení stavu připojení zařízení službou IoT Hub.

Vlastnost stavu připojení má několik omezení:

  • Stav připojení se aktualizuje jenom pro zařízení, která používají MQTT nebo AMQP.
  • Aktualizace této vlastnosti se spoléhají na příkazy ping na úrovni protokolu a mohou být zpožděny až pět minut.

Z těchto důvodů doporučujeme použít pouze pole connectionState během vývoje a ladění. Řešení IoT by se neměla dotazovat na pole za běhu. Například dotaz na pole connectionState zkontrolujte, jestli je zařízení připojené před odesláním zprávy typu cloud-zařízení nebo sms.

Event Grid

Jako upřednostňované řešení monitorování pro většinu zákazníků doporučujeme Event Grid.

Přihlaste se k odběru událostí deviceConnected a deviceDisconnected ve službě Event Grid, abyste získali výstrahy a monitorovali stav připojení zařízení.

V následujících článcích se dozvíte, jak integrovat události připojené k zařízení a odpojené události ve vašem řešení IoT:

Události stavu připojení zařízení jsou k dispozici pro zařízení, která se připojují pomocí protokolu MQTT nebo AMQP, nebo pomocí některého z těchto protokolů přes WebSockets. Požadavky provedené pouze pomocí PROTOKOLU HTTPS neaktivují oznámení o stavu připojení zařízení.

  • Pro zařízení připojující se pomocí sad SDK Azure IoT pro Javu, Node nebo Python:
    • MQTT: Události stavu připojení se odesílají automaticky.
    • AMQP: Měl by se vytvořit odkaz typu cloud-zařízení, aby se snížila zpoždění ve stavech hlášení připojení.
  • U zařízení připojujících se pomocí sad SDK Azure IoT pro .NET nebo C se události stavu připojení neoznamují, dokud se neodesílají počáteční zpráva typu zařízení-cloud nebo se přijme zpráva typu cloud-zařízení.

Mimo sady SDK Azure IoT se v MQTT tyto operace shodují s operacemi PŘIHLÁŠENÍ K ODBĚRu nebo PUBLIKOVÁNÍ v příslušných tématech zasílání zpráv. Přes AMQP se tyto operace připojují nebo přenesou zprávu na příslušných cestách propojení.

Omezení služby Event Grid

Monitorování stavu zařízení pomocí Služby Event Grid má následující omezení:

  • Event Grid nehlásí každou jednotlivou událost připojení a odpojení zařízení. Místo toho se každých 60 sekund dotazuje na stav zařízení a publikuje nejnovější stav připojení, pokud došlo ke změně stavu. Z tohoto důvodu mohou být zprávy o změnách stavu zpožděny až o jednu minutu a změny jednotlivých stavů mohou být nesdělené, pokud v 60sekundovém okně dojde k více událostem.
  • Zařízení, která používají AMQP, potřebují před hlášením stavu zařízení odkaz cloud-zařízení.
  • Event Grid zveřejňuje veřejný koncový bod, který nemůže být skrytý.

Pokud některá z těchto omezení ovlivňuje vaši schopnost používat Event Grid pro monitorování stavu zařízení, měli byste místo toho zvážit vytvoření vlastního vzoru prezenčních signálů zařízení.

Model prezenčních signálů zařízení

Pokud potřebujete znát stav připojení zařízení, ale omezení služby Event Grid jsou pro vaše řešení příliš omezená, můžete implementovat vzor prezenčního signálu. V modelu prezenčních signálů zařízení odesílá zprávy typu zařízení-cloud alespoň jednou za určitou dobu (například alespoň jednou za hodinu). I když zařízení nemá žádná data k odeslání, přesto odešle prázdnou zprávu typu zařízení-cloud, obvykle s vlastností, která ji identifikuje jako zprávu prezenčních signálů. Na straně služby řešení udržuje mapu s posledním přijatým prezenčních signálem pro každé zařízení. Pokud řešení neobdrží zprávu prezenčních signálů v očekávaném čase od zařízení, předpokládá se, že je problém se zařízením.

Omezení prezenčních signálů zařízení

Vzhledem k tomu, že se zprávy prezenčních signálů implementují jako zprávy typu zařízení-cloud, započítávají se do vaší kvóty zpráv ioT Hubu a limitů omezování.

Vzor krátké doby vypršení platnosti

Pokud řešení IoT používá stav připojení výhradně k určení, jestli se mají odesílat zprávy typu cloud-zařízení do zařízení a zprávy se nevysílají do velkých sad zařízení, zvažte použití krátkého vzorce doby vypršení platnosti jako jednodušší alternativy k modelu prezenčních signálů. Vzor krátké doby vypršení platnosti představuje způsob, jak určit, jestli se mají zprávy typu cloud-zařízení posílat odesláním zpráv s krátkou dobou vypršení platnosti zprávy a žádostí o potvrzení zpráv ze zařízení.

Další informace najdete v tématu Vypršení platnosti zprávy (doba do provozu).a0>

Další možnosti monitorování

Složitější implementace může zahrnovat informace ze služby Azure Monitor a Azure Resource Health k identifikaci zařízení, která se pokoušejí připojit nebo komunikovat, ale selhávají. Řídicí panely služby Azure Monitor jsou užitečné pro zobrazení agregovaného stavu vašich zařízení, zatímco vzorce event Gridu a prezenčního signálu usnadňují reakci na výpadky jednotlivých zařízení.

Další informace o používání těchto služeb se službou IoT Hub najdete v tématu Monitorování služby IoT Hub a kontrola stavu prostředků služby IoT Hub. Konkrétnější informace o používání služby Azure Monitor nebo Event Grid k monitorování připojení zařízení najdete v tématu Monitorování, diagnostika a řešení potíží s připojením zařízení.