1
votes

Comment obtenir l'état des appareils en ligne et hors ligne dans Azure iot Hub à l'aide des fonctions Azure

obtenir l'état des appareils en ligne et hors ligne dans azure iot Hub à l'aide des fonctions azure


1 commentaires

Azure IoT Hub gère le jumeau d'appareil pour chaque appareil qu'il enregistre. Ce jumeau d'appareil est une information au format JSON sur l'appareil et il contient la propriété «connectionState» qui peut être vérifiée dans votre fonction Azure si elle est «Connecté» ou «Déconnecté».


3 Réponses :



0
votes

Commencez par configurer les événements à publier depuis votre hub IoT. Plus spécifiquement, les événements DeviceConnected et DeviceDisconnected résoudront votre objectif.

Ensuite, implémentez enfin EventHub Trigger dans la fonction Azure pour obtenir les événements.


0 commentaires

0
votes

@claymodel Je pense que c'est en fait la même chose que l'implémentation interne de connectionState dans la section Appareils IoT du portail Azure.

La raison pour laquelle je pense qu'il en est ainsi est que l'événement DeviceDisconnected atteint la fonction Azure à peu près au même moment où il est affiché dans la section des propriétés DeviceTwin .

Cela signifie que c'est fondamentalement aussi peu fiable que l'implémentation sous-jacente. Je n'ai été informé de la déconnexion qu'au bout de quelques minutes - donc inutile

Je dois maintenant interroger l'appareil à chaque fois avant d'effectuer une opération, juste pour m'assurer que l'appareil est réellement connecté.

C'est un vrai cauchemar! Une autre chose à savoir: il existe deux façons d'être notifié des événements du cycle de vie de l'appareil:

  1. de la section Routage des messages mais qui envoie en fait uniquement les événements créés et supprimés dans une sorte de format à l'intérieur de la classe EventData
  2. dans la section Événements de l'IoT Hub, vous créez un abonnement et pointez vers votre hub d'événements pour gérer DeviceCreated , DeviceDeleted , DeviceConnected et DeviceDisconnected - qui envoient un type de format différent dans la classe EventData.

Il y a donc un énorme désalignement entre les sections sur l'IoT Hub.

Pour être honnête, je n'ai aucune idée s'il existe une bonne réponse pour vérifier la connectivité des appareils de manière fiable. J'espère qu'ils feront réellement quelque chose à ce sujet dans un proche avenir


0 commentaires