Share via


Verbindingsstatus van apparaat bewaken

Azure IoT Hub ondersteunt verschillende methoden voor het bewaken van de status van uw apparaten. Dit artikel bevat de verschillende bewakingsmethoden en biedt richtlijnen om u te helpen bij het kiezen van de beste optie voor uw IoT-oplossing.

In de volgende tabel worden drie manieren geïntroduceerd om de verbindingsstatus van uw apparaat te bewaken:

Wijze Statusfrequentie Kosten Moeite om te bouwen
Eigenschap ConnectionState van apparaatdubbel Onregelmatig Laag Laag
Event Grid 60 seconden Laag Laag
Aangepast heartbeatpatroon voor apparaten Aanpassen Hoog Hoog

Vanwege de betrouwbaarheid, lage kosten en gebruiksgemak raden we Event Grid aan als de voorkeursbewakingsoplossing voor de meeste klanten.

Er zijn echter bepaalde beperkingen voor bewaking met Event Grid die deze mogelijk voor sommige IoT-oplossingen diskwalificeren. Gebruik dit artikel om inzicht te hebben in de voordelen en beperkingen van elke optie.

Apparaatdubbel connectionState

Elke IoT Hub-apparaat-id bevat een eigenschap met de naam connectionState die verbonden of verbroken rapporteert. Deze eigenschap vertegenwoordigt het begrip van de verbindingsstatus van een apparaat in IoT Hub.

De eigenschap verbindingsstatus heeft verschillende beperkingen:

  • De verbindingsstatus wordt alleen bijgewerkt voor apparaten die gebruikmaken van MQTT of AMQP.
  • Updates voor deze eigenschap zijn afhankelijk van pings op protocolniveau en kunnen maximaal vijf minuten worden vertraagd.

Daarom raden we u aan alleen het connectionState-veld te gebruiken tijdens de ontwikkeling en foutopsporing. IoT-oplossingen mogen tijdens runtime geen query's uitvoeren op het veld. Voer bijvoorbeeld geen query's uit op het connectionState-veld om te controleren of een apparaat is verbonden voordat u een cloud-naar-apparaat-bericht of sms verzendt.

Event Grid

We raden Event Grid aan als de voorkeursbewakingsoplossing voor de meeste klanten.

Abonneer u op het apparaat Verbinding maken ed- en deviceDisconnected-gebeurtenissen in Event Grid om waarschuwingen te ontvangen en de verbindingsstatus van het apparaat te bewaken.

Gebruik de volgende artikelen voor meer informatie over het integreren van verbonden en losgekoppelde gebeurtenissen in uw IoT-oplossing:

Statusgebeurtenissen voor apparaatverbindingen zijn beschikbaar voor apparaten die verbinding maken met het MQTT- of AMQP-protocol, of met behulp van een van deze protocollen via WebSockets. Aanvragen die alleen zijn gedaan met HTTPS, activeren geen meldingen over de verbindingsstatus van het apparaat.

  • Voor apparaten die verbinding maken met behulp van de Azure IoT SDK's voor Java, Node of Python:
    • MQTT: verbindingsstatus gebeurtenissen worden automatisch verzonden.
    • AMQP: er moet een cloud-naar-apparaat-koppeling worden gemaakt om vertragingen in de rapportagestatussen te verminderen.
  • Voor apparaten die verbinding maken met behulp van de Azure IoT SDK's voor .NET of C, worden verbindingsstatusgebeurtenissen pas gerapporteerd wanneer een eerste apparaat-naar-cloud-bericht wordt verzonden of een cloud-naar-apparaat-bericht wordt ontvangen.

Buiten de Azure IoT SDK's zijn deze bewerkingen in MQTT gelijk aan ABONNEREN- of PUBLISH-bewerkingen voor de betreffende berichtenonderwerpen. Via AMQP zijn deze bewerkingen gelijk aan het koppelen of overdragen van een bericht op de juiste koppelingspaden.

Beperkingen voor Event Grid

Het gebruik van Event Grid om de status van uw apparaat te bewaken, heeft de volgende beperkingen:

  • Event Grid rapporteert niet elk afzonderlijk apparaat verbinden en de verbinding verbreken. In plaats daarvan wordt elke 60 seconden gecontroleerd op de apparaatstatus en wordt de meest recente verbindingsstatus gepubliceerd als er een statuswijziging is. Om deze reden kunnen statuswijzigingsrapporten tot één minuut worden uitgesteld en kunnen afzonderlijke statuswijzigingen niet worden gerapporteerd als er meerdere gebeurtenissen plaatsvinden binnen het venster van 60 seconden.
  • Apparaten die AMQP gebruiken, hebben een koppeling naar de cloud naar het apparaat nodig voordat ze de apparaatstatus kunnen rapporteren.
  • Event Grid maakt een openbaar eindpunt beschikbaar dat niet kan worden verborgen.

Als een van deze beperkingen van invloed is op de mogelijkheid om Event Grid te gebruiken voor apparaatstatusbewaking, kunt u in plaats daarvan een aangepast heartbeatpatroon voor apparaten maken.

Heartbeatpatroon van apparaat

Als u de verbindingsstatus van uw apparaten wilt weten, maar de beperkingen van Event Grid te beperken zijn voor uw oplossing, kunt u het heartbeat-patroon implementeren. In het heartbeat-patroon verzendt het apparaat ten minste één keer per vaste tijd (bijvoorbeeld ten minste één keer per uur). Zelfs als een apparaat geen gegevens heeft om te verzenden, wordt er nog steeds een leeg apparaat-naar-cloud-bericht verzonden, meestal met een eigenschap die het identificeert als een heartbeat-bericht. Aan de servicezijde onderhoudt de oplossing een kaart met de laatste heartbeat die voor elk apparaat is ontvangen. Als de oplossing geen heartbeatbericht ontvangt binnen de verwachte tijd van het apparaat, wordt ervan uitgegaan dat er een probleem is met het apparaat.

Heartbeatbeperkingen voor apparaten

Omdat heartbeat-berichten worden geïmplementeerd als apparaat-naar-cloud-berichten, tellen ze mee voor uw IoT Hub-berichtquotum en beperkingslimieten.

Korte verlooptijdpatroon

Als een IoT-oplossing alleen de verbindingsstatus gebruikt om te bepalen of cloud-naar-apparaat-berichten naar een apparaat moeten worden verzonden en berichten niet worden uitgezonden naar grote sets apparaten, kunt u overwegen om het patroon voor korte verlooptijd te gebruiken als een eenvoudiger alternatief voor het heartbeat-patroon. Het patroon voor korte verlooptijd is een manier om te bepalen of cloud-naar-apparaat-berichten moeten worden verzonden door berichten met een korte verlooptijd te verzenden en bevestigingen van berichten van de apparaten aan te vragen.

Zie voor meer informatie de verlooptijd van berichten (time to live).

Andere bewakingsopties

Een complexere implementatie kan de informatie van Azure Monitor en Azure Resource Health bevatten om apparaten te identificeren die verbinding proberen te maken of te communiceren, maar mislukken. Azure Monitor-dashboards zijn handig voor het bekijken van de cumulatieve status van uw apparaten, terwijl Event Grid- en heartbeatpatronen het gemakkelijker maken om te reageren op storingen van afzonderlijke apparaten.

Zie IoT Hub bewaken en de resourcestatus van IoT Hub controleren voor meer informatie over het gebruik van deze services met IoT Hub. Zie Voor meer specifieke informatie over het gebruik van Azure Monitor of Event Grid voor het bewaken van apparaatconnectiviteit, monitor , diagnose en probleemoplossing van apparaatconnectiviteit.