IoT Hub Data Plane MQTT 5 API-Referenz (veraltet)
In diesem Dokument werden die verfügbaren Vorgänge in Version 2.0 (API-Version: 2020-10-01-preview
) der API auf IoT Hub-Datenebene definiert.
Hinweis
MQTT 5-Unterstützung in IoT Hub ist veraltet, und IoT Hub bietet nur eingeschränkte Featureunterstützung für MQTT. Wenn Ihre Lösung MQTT v3.1.1 oder v5 Unterstützung benötigt, empfehlen wir MQTT Unterstützung in Azure Event Grid. Weitere Informationen finden Sie unter Vergleichen der MQTT-Unterstützung in IoT Hub und Event Grid.
Operations
Get Twin
Abrufen des Zwillingsstatus
Anfordern
Themenname: $iothub/twin/get
Eigenschaften: keine
Payload: leer
Antwort bei Erfolg
Eigenschaften: keine
Nutzlast: Zwilling
Alternative Antworten
Status | Name | BESCHREIBUNG |
---|---|---|
0100 | Ungültige Anforderung | Die Vorgangsnachricht ist falsch formatiert und kann nicht verarbeitet werden. |
0101 | Nicht autorisiert | Der Client ist nicht zum Ausführen des Vorgangs autorisiert. |
0102 | Nicht zulässig | Vorgang ist nicht zulässig. |
0501 | Gedrosselt | Die Anforderungsrate ist für die SKU zu hoch. |
0502 | Quote überschritten | Das tägliche Kontingent der aktuellen SKU wurde überschritten. |
0601 | Serverfehler | Interner Serverfehler |
0602 | Timeout | Beim Vorgang ist vor dem Abschluss ein Timeout aufgetreten. |
0603 | Server ausgelastet | Der Server ist ausgelastet. |
Pseudobeispielcode
-> PUBLISH
QoS: 0
Topic: $iothub/twin/get
<- PUBLISH
QoS: 0
Topic: $iothub/responses
Gemeldete Patchzwillinge
Status der gemeldeten Patchzwillinge
Anfordern
Themenname: $iothub/twin/patch/reported
Eigenschaften:
Name | Type | Erforderlich | BESCHREIBUNG |
---|---|---|---|
if-version | u64 | nein |
Nutzlast: TwinState
Antwort bei Erfolg
Eigenschaften:
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
version | u64 | ja | Version des gemeldeten Status nach dem Anwenden des Patches |
Payload: leer
Alternative Antworten
Status | Name | BESCHREIBUNG |
---|---|---|
0104 | Vorbedingung nicht erfüllt | Anforderung wurde abgebrochen, da die Vorbedingung nicht erfüllt war. |
0100 | Ungültige Anforderung | Die Vorgangsnachricht ist falsch formatiert und kann nicht verarbeitet werden. |
0101 | Nicht autorisiert | Der Client ist nicht zum Ausführen des Vorgangs autorisiert. |
0102 | Nicht zulässig | Vorgang ist nicht zulässig. |
0501 | Gedrosselt | Die Anforderungsrate ist für die SKU zu hoch. |
0502 | Quote überschritten | Das tägliche Kontingent der aktuellen SKU wurde überschritten. |
0601 | Serverfehler | Interner Serverfehler |
0602 | Timeout | Beim Vorgang ist vor dem Abschluss ein Timeout aufgetreten. |
0603 | Server ausgelastet | Der Server ist ausgelastet. |
Pseudobeispielcode
-> PUBLISH
QoS: 0
Topic: $iothub/twin/patch/reported
[if-version: <u64>]
<- PUBLISH
QoS: 0
Topic: $iothub/responses
Empfangen von Befehlen
Empfangen und Verarbeiten von Befehlen
`Message`
Themenname: $iothub/commands
Eigenschaften:
Name | Type | Erforderlich | BESCHREIBUNG |
---|---|---|---|
sequence-no | u64 | ja | Sequenznummer der Nachricht |
enqueued-time | time | ja | Zeitstempel des Zeitpunkts, zu dem die Nachricht in das System gelangt ist |
delivery-count | u32 | ja | Häufigkeit, mit der die Nachrichtenübermittlung versucht wurde |
creation-time | time | nein | Zeitstempel des Zeitpunkts, zu dem die Nachricht erstellt wurde (vom Absender bereitgestellt) |
message-id | Zeichenfolge | nein | Nachrichtenidentität (vom Absender bereitgestellt) |
user-id | Zeichenfolge | nein | Benutzeridentität (vom Absender bereitgestellt) |
correlation-id | Zeichenfolge | nein | Korrelationsidentität (vom Absender bereitgestellt) |
Inhaltstyp | Zeichenfolge | nein | Gibt den Inhaltstyp der Payload an |
content-encoding | Zeichenfolge | nein | Gibt die Inhaltscodierung der Payload an |
Payload: beliebige Bytesequenz
Bestätigung bei Erfolg
Gibt an, dass der Befehl für die Verarbeitung durch den Client akzeptiert wurde
Eigenschaften: keine
Payload: leer
Alternative Bestätigungen
Ursachencode | Status | Name | BESCHREIBUNG |
---|---|---|---|
131 | 0603 | Abandon | Gibt an, dass der Befehl zu diesem Zeitpunkt nicht verarbeitet wird und in der Zukunft erneut übermittelt werden sollte. |
131 | 0100 | Reject | Gibt an, dass der Client den Befehl abgelehnt hat, und er sollte nicht erneut versucht werden. |
Pseudobeispielcode
-> SUBSCRIBE
- Topic: $iothub/commands
QoS: 1
<- PUBLISH
QoS: 1
Topic: $iothub/commands
sequence-no: <u64>enqueued-time: <time>delivery-count: <u32>[creation-time: <time>][message-id: <string>][user-id: <string>][correlation-id: <string>][Content Type: <string>][content-encoding: <string>]
Payload: ...
-> PUBACK
Empfangen von direkten Methoden
Empfangen und Verarbeiten von Aufrufen direkter Methoden
Anfordern
Themenname: $iothub/methods/{name}
Eigenschaften: keine
Payload: beliebige Bytesequenz
Antwort bei Erfolg
Eigenschaften:
Name | Type | Erforderlich | BESCHREIBUNG |
---|---|---|---|
response-code | u32 | ja |
Payload: beliebige Bytesequenz
Alternative Antworten
Status | Name | BESCHREIBUNG |
---|---|---|
06A0 | Nicht verfügbar | Gibt an, dass der Client über diese Verbindung nicht erreichbar ist. |
Pseudobeispielcode
-> SUBSCRIBE
- Topic: methods/{name}
QoS: 0
<- SUBACK
<- PUBLISH
QoS: 0
Topic: $iothub/methods/{name}
-> PUBLISH
QoS: 0
Topic: $iothub/responses
Empfangen von Änderungen am gewünschten Status von Zwillingen
Empfangen von Updates am gewünschten Zustand des Zwillings
`Message`
Themenname: $iothub/twin/patch/desired
Eigenschaften:
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
version | u64 | ja | Version des gewünschten Status zu diesem Update |
Nutzlast: TwinState
Pseudobeispielcode
-> SUBSCRIBE
- Topic: $iothub/twin/patch/desired
QoS: 0
<- PUBLISH
QoS: 0
Topic: $iothub/twin/patch/desired
version: <u64>
Payload: ...
Senden von Telemetriedaten
Senden Sie eine Nachricht an den Telemetriekanal. Standardmäßig ist dies Event Hubs, Sie können aber über die Routingkonfiguration einen anderen Endpunkt festlegen.
`Message`
Themenname: $iothub/telemetry
Eigenschaften:
Name | Type | Erforderlich | BESCHREIBUNG |
---|---|---|---|
Inhaltstyp | Zeichenfolge | nein | Wird in der übermittelten Nachricht in eine content-type -Systemeigenschaft übersetzt |
content-encoding | Zeichenfolge | nein | Wird in der übermittelten Nachricht in eine content-encoding -Systemeigenschaft übersetzt |
message-id | Zeichenfolge | nein | Wird in der übermittelten Nachricht in eine message-id -Systemeigenschaft übersetzt |
user-id | Zeichenfolge | nein | Wird in der übermittelten Nachricht in eine user-id -Systemeigenschaft übersetzt |
correlation-id | Zeichenfolge | nein | Wird in der übermittelten Nachricht in eine correlation-id -Systemeigenschaft übersetzt |
creation-time | time | nein | Wird in der übermittelten Nachricht in eine iothub-creation-time-utc -Eigenschaft übersetzt |
Tipp
Das Format von creation-time
muss UTC ohne Zeitzoneninformationen sein. Beispiel: 2021-04-21T11:30:16Z
ist gültig, 2021-04-21T11:30:16-07:00
ist ungültig.
Payload: beliebige Bytesequenz
Bestätigung bei Erfolg
Die Nachricht wurde an den Telemetriekanal übermittelt.
Eigenschaften: keine
Payload: leer
Alternative Bestätigungen
Ursachencode | Status | Name | BESCHREIBUNG |
---|---|---|---|
131 | 0100 | Ungültige Anforderung | Die Vorgangsnachricht ist falsch formatiert und kann nicht verarbeitet werden. |
135 | 0101 | Nicht autorisiert | Der Client ist nicht zum Ausführen des Vorgangs autorisiert. |
131 | 0102 | Nicht zulässig | Vorgang ist nicht zulässig. |
131 | 0601 | Serverfehler | Interner Serverfehler |
151 | 0501 | Gedrosselt | Die Anforderungsrate ist für die SKU zu hoch. |
151 | 0502 | Quote überschritten | Das tägliche Kontingent der aktuellen SKU wurde überschritten. |
131 | 0602 | Timeout | Beim Vorgang ist vor dem Abschluss ein Timeout aufgetreten. |
131 | 0603 | Server ausgelastet | Der Server ist ausgelastet. |
Pseudobeispielcode
-> PUBLISH
QoS: 1
Topic: $iothub/telemetry
[Content Type: <string>]
[content-encoding: <string>]
[message-id: <string>]
[user-id: <string>]
[correlation-id: <string>]
[creation-time: <time>]
<- PUBACK
Antworten
Ungültige Anforderung
Die Vorgangsnachricht ist falsch formatiert und kann nicht verarbeitet werden.
Ursachencode: 131
Status: 0100
Eigenschaften:
Name | Type | Erforderlich | BESCHREIBUNG |
---|---|---|---|
reason | Zeichenfolge | Nein | enthält Informationen darüber, was speziell an dieser Nachricht nicht gültig ist |
Payload: leer
Konflikt:
Der Vorgang steht im Konflikt mit einem anderen laufenden Vorgang.
Ursachencode: 131
Status: 0103
Eigenschaften:
Name | Type | Erforderlich | BESCHREIBUNG |
---|---|---|---|
trace-id | Zeichenfolge | Nein | Ablaufverfolgungs-ID für die Korrelation mit weiteren Diagnoseinformationen zum Fehler |
reason | Zeichenfolge | Nein | enthält Informationen darüber, was speziell an dieser Nachricht nicht gültig ist |
Payload: leer
Nicht zulässig
Vorgang ist nicht zulässig.
Ursachencode: 131
Status: 0102
Eigenschaften:
Name | Type | Erforderlich | BESCHREIBUNG |
---|---|---|---|
reason | Zeichenfolge | Nein | enthält Informationen darüber, was speziell an dieser Nachricht nicht gültig ist |
Payload: leer
Nicht autorisiert
Der Client ist nicht zum Ausführen des Vorgangs autorisiert.
Ursachencode: 135
Status: 0101
Eigenschaften:
Name | Type | Erforderlich | BESCHREIBUNG |
---|---|---|---|
trace-id | Zeichenfolge | Nein | Ablaufverfolgungs-ID für die Korrelation mit weiteren Diagnoseinformationen zum Fehler |
Payload: leer
Nicht gefunden
Die angeforderte Ressource ist nicht vorhanden.
Ursachencode: 131
Status: 0504
Eigenschaften:
Name | Type | Erforderlich | BESCHREIBUNG |
---|---|---|---|
reason | Zeichenfolge | Nein | enthält Informationen darüber, was speziell an dieser Nachricht nicht gültig ist |
Payload: leer
Nicht geändert
Die Ressource wurde hinsichtlich der angegebenen Vorbedingung nicht geändert.
Ursachencode: 0
Status: 0001
Eigenschaften: keine
Payload: leer
Vorbedingung nicht erfüllt
Anforderung wurde abgebrochen, da die Vorbedingung nicht erfüllt war.
Ursachencode: 131
Status: 0104
Eigenschaften: keine
Payload: leer
Quote überschritten
Das tägliche Kontingent der aktuellen SKU wurde überschritten.
Ursachencode: 151
Status: 0502
Eigenschaften: keine
Payload: leer
Ressource erschöpft
Die Ressource verfügt nicht über die Kapazitäten zum Abschließen des Vorgangs.
Ursachencode: 131
Status: 0503
Eigenschaften:
Name | Type | Erforderlich | BESCHREIBUNG |
---|---|---|---|
reason | Zeichenfolge | Nein | enthält Informationen darüber, was speziell an dieser Nachricht nicht gültig ist |
Payload: leer
Server ausgelastet
Der Server ist ausgelastet.
Ursachencode: 131
Status: 0603
Eigenschaften:
Name | Type | Erforderlich | BESCHREIBUNG |
---|---|---|---|
trace-id | Zeichenfolge | Nein | Ablaufverfolgungs-ID für die Korrelation mit weiteren Diagnoseinformationen zum Fehler |
Payload: leer
Serverfehler
Interner Serverfehler
Ursachencode: 131
Status: 0601
Eigenschaften:
Name | Type | Erforderlich | BESCHREIBUNG |
---|---|---|---|
trace-id | Zeichenfolge | Nein | Ablaufverfolgungs-ID für die Korrelation mit weiteren Diagnoseinformationen zum Fehler |
Payload: leer
Zielfehler
Das Ziel hat geantwortet, aber die Antwort war ungültig oder falsch formatiert.
Ursachencode: 131
Status: 06A2
Eigenschaften:
Name | Type | Erforderlich | BESCHREIBUNG |
---|---|---|---|
reason | Zeichenfolge | Nein | enthält Informationen darüber, was speziell an dieser Nachricht nicht gültig ist |
Payload: leer
Timeout beim Ziel
Beim Warten auf den Abschluss der Anforderung durch das Ziel ist ein Timeout aufgetreten.
Ursachencode: 131
Status: 06A1
Eigenschaften:
Name | Type | Erforderlich | BESCHREIBUNG |
---|---|---|---|
trace-id | Zeichenfolge | Nein | Ablaufverfolgungs-ID für die Korrelation mit weiteren Diagnoseinformationen zum Fehler |
reason | Zeichenfolge | Nein | enthält Informationen darüber, was speziell an dieser Nachricht nicht gültig ist |
Payload: leer
Ziel nicht verfügbar
Das Ziel ist nicht erreichbar und kann die Anforderung nicht abschließen.
Ursachencode: 131
Status: 06A0
Eigenschaften: keine
Payload: leer
Gedrosselt
Die Anforderungsrate ist für die SKU zu hoch.
Ursachencode: 151
Status: 0501
Eigenschaften: keine
Payload: leer
Timeout
Beim Vorgang ist vor dem Abschluss ein Timeout aufgetreten.
Ursachencode: 131
Status: 0602
Eigenschaften:
Name | Type | Erforderlich | BESCHREIBUNG |
---|---|---|---|
trace-id | Zeichenfolge | Nein | Ablaufverfolgungs-ID für die Korrelation mit weiteren Diagnoseinformationen zum Fehler |
Payload: leer