Gebeurtenisschema's voor niet-telemetriegegevens in Azure IoT Hub
Dit artikel bevat de eigenschappen en schema's voor niet-telemetriegebeurtenissen die worden verzonden door Azure IoT Hub. Niet-telemetriegebeurtenissen verschillen van apparaat-naar-cloud- en cloud-naar-apparaat-berichten in die IoT Hub deze gebeurtenissen verzendt als reactie op specifieke statuswijzigingen die zijn gekoppeld aan uw apparaten. Bijvoorbeeld wijzigingen in de levenscyclus, zoals een apparaat of module die wordt gemaakt of verwijderd, of wijzigingen in de verbindingsstatus, zoals een apparaat of module die verbinding maakt of de verbinding verbreekt.
U kunt niet-telemetriegebeurtenissen routeren met behulp van berichtroutering of bereiken naar niet-telemetriegebeurtenissen met behulp van Azure Event Grid. Zie IoT Hub-berichtroutering en React to IoT Hub-gebeurtenissen met behulp van Event Grid voor meer informatie over ioT Hub-berichtroutering.
De gebeurtenisvoorbeelden in dit artikel zijn vastgelegd met behulp van de az iot hub monitor-events
Azure CLI-opdracht. Mogelijk ziet u een subset eigenschappen die zijn opgenomen in de gebeurtenissen die binnenkomen bij een eindpunt voor berichtroutering.
Beschikbare gebeurtenistypen
Azure IoT Hub verzendt de niet-telemetriegebeurtenissen in de volgende categorieën:
Gebeurteniscategorie | Beschrijving |
---|---|
Status van apparaatverbindingsevenementen | Verzonden wanneer een apparaat verbinding maakt met of de verbinding met een IoT-hub verbreekt. |
Gebeurtenissen voor de levenscyclus van apparaten | Wordt verzonden wanneer een apparaat of module wordt gemaakt op of verwijderd uit een IoT-hub. |
Wijzigingen van apparaatdubbels | Verzonden wanneer een apparaat of moduledubbel wordt gewijzigd of vervangen. |
Gebeurtenissen met wijziging van dubbel | Verzonden wanneer de digitale dubbel van een apparaat of module wordt gewijzigd of vervangen. |
Algemene gebeurteniseigenschappen
Niet-telemetriegebeurtenissen delen verschillende algemene eigenschappen.
Systeemeigenschappen
IoT Hub stelt de volgende systeemeigenschappen voor elke gebeurtenis in.
Eigenschap | Type | Description | Trefwoord voor routeringsquery |
---|---|---|---|
inhoudscodering | tekenreeks | utf-8 | $contentEncoding |
inhoudstype | tekenreeks | application/json | $contentType |
correlatie-id | tekenreeks | Een unieke id die de gebeurtenis identificeert. | $correlationId |
user-id | tekenreeks | De naam van IoT Hub die de gebeurtenis heeft gegenereerd. | $userId |
iothub-verbinding-apparaat-id | tekenreeks | De apparaat-id. | $connectionDeviceId |
iothub-connection-module-id | tekenreeks | De module-id. Deze eigenschap is alleen uitvoer voor modulelevenscyclus- en dubbel-gebeurtenissen. | $connectionModuleId |
iothub-enqueuedtime | Nummer | Datum en tijd waarop de melding is verzonden. Gebruik in routeringsquery's een ISO8601 tijdstempel, bijvoorbeeld $enqueuedTime > "2022-06-06T22:56:06Z" |
$enqueuedTime |
iothub-message-source | tekenreeks | De gebeurteniscategorie die de berichtbron identificeert. Bijvoorbeeld deviceLifecycleEvents. | N.v.t. |
Toepassingseigenschappen
IoT Hub stelt de volgende toepassingseigenschappen voor elke gebeurtenis in.
Eigenschap | Type | Description |
---|---|---|
deviceId | tekenreeks | De apparaat-id. |
hubName | tekenreeks | De naam van de IoT Hub die de gebeurtenis heeft gegenereerd. |
iothub-message-schema | tekenreeks | Het berichtschema dat is gekoppeld aan de gebeurteniscategorie; bijvoorbeeld deviceLifecycleNotification. |
moduleId | tekenreeks | De module-id. Deze eigenschap is alleen uitvoer voor modulelevenscyclus- en dubbelwijzigingsevenementen. |
operationTimestamp | tekenreeks | De ISO8601 tijdstempel van de bewerking. |
opType | tekenreeks | De id voor de bewerking die de gebeurtenis heeft gegenereerd. Maak bijvoorbeeldDeviceIdentity of deleteDeviceIdentity. |
Gebruik in routeringsquery's de naam van de eigenschap. Bijvoorbeeld: deviceId = "my-device"
.
Verbindingsstatus-gebeurtenissen
Verbindingsstatus-gebeurtenissen worden verzonden wanneer een apparaat of module verbinding maakt of de verbinding met de IoT-hub verbreekt.
Toepassingseigenschappen: In de volgende tabel ziet u hoe toepassingseigenschappen worden ingesteld voor verbindingsstatus gebeurtenissen:
Eigenschappen | Weergegeven als |
---|---|
iothub-message-schema | deviceConnectionStateNotification |
opType | deviceConnected of deviceDisconnected |
Systeemeigenschappen: In de volgende tabel ziet u hoe systeemeigenschappen worden ingesteld voor verbindingsstatus gebeurtenissen:
Eigenschappen | Weergegeven als |
---|---|
iothub-message-source | deviceConnectionStateEvents |
Hoofdtekst: De hoofdtekst bevat een volgnummer. Het volgnummer is een tekenreeksweergave van een hexadecimaal getal. U kunt tekenreeksen vergelijken om het grotere getal te identificeren. Als u de tekenreeks converteert naar hex, is het getal een 256-bits getal. Het volgnummer neemt strikt toe, dus de laatste gebeurtenis heeft een hoger aantal dan oudere gebeurtenissen. Dit is handig als u regelmatig verbinding maakt met het apparaat en de verbinding verbreekt en ervoor wilt zorgen dat alleen de meest recente gebeurtenis wordt gebruikt om een downstreamactie te activeren.
Opmerking
In de volgende JSON ziet u een gebeurtenis van de verbindingsstatus van het apparaat die wordt gegenereerd wanneer een apparaat wordt verbroken.
{
"event": {
"origin": "contoso-device-1",
"module": "",
"interface": "",
"component": "",
"properties": {
"system": {
"content_encoding": "utf-8",
"content_type": "application/json",
"correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd",
"user_id": "contoso-routing-hub"
},
"application": {
"hubName": "contoso-routing-hub",
"deviceId": "contoso-device-1",
"opType": "deviceDisconnected",
"iothub-message-schema": "deviceConnectionStateNotification",
"operationTimestamp": "2022-06-01T18:43:04.5561024Z"
}
},
"annotations": {
"iothub-connection-device-id": "contoso-device-1",
"iothub-enqueuedtime": 1654109018051,
"iothub-message-source": "deviceConnectionStateEvents",
"x-opt-sequence-number": 72,
"x-opt-offset": "37344",
"x-opt-enqueued-time": 1654109018176
},
"payload": {
"sequenceNumber": "000000000000000001D8713FF7E0851400000002000000000000000000000007"
}
}
}
Gebeurtenissen voor de levenscyclus van apparaten
Gebeurtenissen voor de levenscyclus van apparaten worden verzonden wanneer een apparaat of module wordt gemaakt of verwijderd uit het identiteitsregister. Zie meldingen over de levenscyclus van apparaten en modules voor meer informatie over wanneer gebeurtenissen voor de levenscyclus van apparaten worden gegenereerd.
Toepassingseigenschappen: In de volgende tabel ziet u hoe toepassingseigenschappen worden ingesteld voor levenscyclus-gebeurtenissen van apparaten:
Eigenschappen | Weergegeven als |
---|---|
iothub-message-schema | deviceLifecycleNotification |
opType | Een van de volgende waarden: createDeviceIdentity, deleteDeviceIdentity, createModuleIdentity of deleteModuleIdentity. |
Systeemeigenschappen: In de volgende tabel ziet u hoe systeemeigenschappen worden ingesteld voor levenscyclus-gebeurtenissen van apparaten:
Eigenschappen | Weergegeven als |
---|---|
iothub-message-source | deviceLifecycleEvents |
Hoofdtekst: De hoofdtekst bevat een weergave van de apparaatdubbel of moduledubbel. Het bevat de apparaat-id en module-id, de tweeling-etag, de versie-eigenschap en de tags, eigenschappen en gekoppelde metagegevens van de dubbel.
Opmerking
In de volgende JSON ziet u een gebeurtenis voor de levenscyclus van apparaten die wordt gegenereerd wanneer een module wordt gemaakt. De gebeurtenis wordt vastgelegd met behulp van de az iot hub monitor-events
Azure CLI-opdracht.
{
"event": {
"origin": "contoso-device-2",
"module": "module-1",
"interface": "",
"component": "",
"properties": {
"system": {
"content_encoding": "utf-8",
"content_type": "application/json",
"correlation_id": "c5a4e6986c",
"user_id": "contoso-routing-hub"
},
"application": {
"hubName": "contoso-routing-hub",
"deviceId": "contoso-device-2",
"operationTimestamp": "2022-05-27T18:49:38.4904785Z",
"moduleId": "module-1",
"opType": "createModuleIdentity",
"iothub-message-schema": "moduleLifecycleNotification"
}
},
"annotations": {
"iothub-connection-device-id": "contoso-device-2",
"iothub-connection-module-id": "module-1",
"iothub-enqueuedtime": 1653677378534,
"iothub-message-source": "deviceLifecycleEvents",
"x-opt-sequence-number": 62,
"x-opt-offset": "31768",
"x-opt-enqueued-time": 1653677378643
},
"payload": {
"deviceId": "contoso-device-2",
"moduleId": "module-1",
"etag": "AAAAAAAAAAE=",
"version": 2,
"properties": {
"desired": {
"$metadata": {
"$lastUpdated": "0001-01-01T00:00:00Z"
},
"$version": 1
},
"reported": {
"$metadata": {
"$lastUpdated": "0001-01-01T00:00:00Z"
},
"$version": 1
}
}
}
}
}
Wijzigingen van apparaatdubbels
Wijzigingsgebeurtenissen voor apparaatdubbels worden verzonden wanneer een apparaatdubbel of een moduledubbel wordt bijgewerkt of vervangen. In sommige gevallen kunnen verschillende wijzigingen in één gebeurtenis worden verpakt. Zie back-endbewerkingen voor apparaatdubbels of back-endbewerkingen van moduledubbels voor meer informatie.
Toepassingseigenschappen: In de volgende tabel ziet u hoe toepassingseigenschappen worden ingesteld voor wijzigingsactiviteiten van apparaatdubbels:
Eigenschappen | Weergegeven als |
---|---|
iothub-message-schema | twinChangeNotification |
opType | Een van de volgende waarden: replaceTwin of updateTwin. |
Systeemeigenschappen: In de volgende tabel ziet u hoe systeemeigenschappen worden ingesteld voor wijzigingsactiviteiten van apparaatdubbels:
Eigenschappen | Weergegeven als |
---|---|
iothub-message-source | twinChangeEvents |
Hoofdtekst: Bij een update bevat de hoofdtekst de versie-eigenschap van de dubbel en de bijgewerkte tags en eigenschappen en de bijbehorende metagegevens. Bij een vervanging bevat de hoofdtekst de apparaat-id en module-id, de tweeling-etag, de versie-eigenschap en alle tags, eigenschappen en gekoppelde metagegevens van het apparaat of de moduledubbel.
Opmerking
In de volgende JSON ziet u een wijzigings gebeurtenis van een dubbel die is verzonden voor een update van een gewenste eigenschap en een tag op een moduledubbel. De gebeurtenis wordt vastgelegd met behulp van de az iot hub monitor-events
Azure CLI-opdracht.
{
"event": {
"origin": "contoso-device-3",
"module": "module-1",
"interface": "",
"component": "",
"properties": {
"system": {
"content_encoding": "utf-8",
"content_type": "application/json",
"correlation_id": "4d1f1e2e74f",
"user_id": "contoso-routing-hub"
},
"application": {
"hubName": "contoso-routing-hub",
"deviceId": "contoso-device-3",
"operationTimestamp": "2022-06-01T22:27:50.2612586Z",
"moduleId": "module-1",
"iothub-message-schema": "twinChangeNotification",
"opType": "updateTwin"
}
},
"annotations": {
"iothub-connection-device-id": "contoso-device-3",
"iothub-connection-module-id": "module-1",
"iothub-enqueuedtime": 1654122470282,
"iothub-message-source": "twinChangeEvents",
"x-opt-sequence-number": 17,
"x-opt-offset": "12352",
"x-opt-enqueued-time": 1654122470329
},
"payload": {
"version": 7,
"tags": {
"tag1": "new value"
},
"properties": {
"desired": {
"property1": "new value",
"$metadata": {
"$lastUpdated": "2022-06-01T22:27:50.2612586Z",
"$lastUpdatedVersion": 6,
"property1": {
"$lastUpdated": "2022-06-01T22:27:50.2612586Z",
"$lastUpdatedVersion": 6
}
},
"$version": 6
}
}
}
}
}
Volgende stappen
Zie IoT Hub-berichtroutering voor meer informatie over berichtroutering.
Zie de syntaxis van ioT Hub-berichtroutering voor meer informatie over het toevoegen van query's aan uw berichtroutes.