Telemetri, egenskaper och kommandonyttolaster
En enhetsmall i Azure IoT Central är en skiss som definierar:
- Telemetri som en enhet skickar till IoT Central.
- Egenskaper som en enhet synkroniserar med IoT Central.
- Kommandon som IoT Central anropar på en enhet.
I den här artikeln beskrivs JSON-nyttolaster som enheter skickar och tar emot för telemetri, egenskaper och kommandon som definierats i en enhetsmall.
Artikeln beskriver inte alla möjliga typer av telemetri, egenskap och nyttolast för kommandon, men exemplen illustrerar alla nyckeltyper.
Varje exempel visar ett kodfragment från enhetsmodellen som definierar typen och JSON-exempelnyttolaster för att illustrera hur enheten ska interagera med IoT Central program.
Anteckning
IoT Central accepterar alla giltiga JSON,men de kan bara användas för visualiseringar om de matchar en definition i enhetsmodellen. Du kan exportera data som inte matchar en definition. Mer information finns i Exportera IoT-data till mål i Azure.
JSON-filen som definierar enhetsmodellen använder Digital Twin Definition Language (DTDL) v2.
Exempel på enhetskod som visar några av dessa nyttolaster som används finns i självstudien Skapa och ansluta ett klientprogram till Azure IoT Central program.
Visa rådata
IoT Central kan du visa rådata som en enhet skickar till ett program. Den här vyn är användbar för felsökning av problem med nyttolasten som skickas från en enhet. Så här visar du rådata som en enhet skickar:
Gå till enheten från sidan Enheter.
Välj fliken Rådata:
I den här vyn kan du välja vilka kolumner som ska visas och ange ett tidsperiod för visning. Kolumnen Omodeled data visar data från enheten som inte matchar några egenskaps- eller telemetridefinitioner i enhetsmallen.
Telemetri
Telemetri i komponenter
Om telemetrin definieras i en komponent lägger du till en anpassad meddelandeegenskap med namnet med namnet på komponenten enligt $.sub definitionen i enhetsmodellen. Mer information finns i Självstudie: Skapa och ansluta ett klientprogram till ditt Azure IoT Central program.
Primitiva typer
Det här avsnittet visar exempel på primitiva telemetrityper som en enhet strömmar till ett IoT Central program.
Följande kodfragment från en enhetsmodell visar definitionen av boolean en telemetrityp:
{
"@type": "Telemetry",
"displayName": {
"en": "BooleanTelemetry"
},
"name": "BooleanTelemetry",
"schema": "boolean"
}
En enhetsklient ska skicka telemetrin som JSON som ser ut som i följande exempel:
{ "BooleanTelemetry": true }
Följande kodfragment från en enhetsmodell visar definitionen av string en telemetrityp:
{
"@type": "Telemetry",
"displayName": {
"en": "StringTelemetry"
},
"name": "StringTelemetry",
"schema": "string"
}
En enhetsklient ska skicka telemetrin som JSON som ser ut som i följande exempel:
{ "StringTelemetry": "A string value - could be a URL" }
Följande kodfragment från en enhetsmodell visar definitionen av integer en telemetrityp:
{
"@type": "Telemetry",
"displayName": {
"en": "IntegerTelemetry"
},
"name": "IntegerTelemetry",
"schema": "integer"
}
En enhetsklient ska skicka telemetrin som JSON som ser ut som i följande exempel:
{ "IntegerTelemetry": 23 }
Följande kodfragment från en enhetsmodell visar definitionen av double en telemetrityp:
{
"@type": "Telemetry",
"displayName": {
"en": "DoubleTelemetry"
},
"name": "DoubleTelemetry",
"schema": "double"
}
En enhetsklient ska skicka telemetrin som JSON som ser ut som i följande exempel:
{ "DoubleTelemetry": 56.78 }
Följande kodfragment från en enhetsmodell visar definitionen av dateTime en telemetrityp:
{
"@type": "Telemetry",
"displayName": {
"en": "DateTimeTelemetry"
},
"name": "DateTimeTelemetry",
"schema": "dateTime"
}
En enhetsklient ska skicka telemetrin som JSON som ser ut som i följande exempel – typerna måste vara DateTime i ISO 8061-format:
{ "DateTimeTelemetry": "2020-08-30T19:16:13.853Z" }
Följande kodfragment från en enhetsmodell visar definitionen av duration en telemetrityp:
{
"@type": "Telemetry",
"displayName": {
"en": "DurationTelemetry"
},
"name": "DurationTelemetry",
"schema": "duration"
}
En enhetsklient ska skicka telemetrin som JSON som ser ut som i följande exempel – varaktigheterna måste vara i ISO 8601-format:
{ "DurationTelemetry": "PT10H24M6.169083011336625S" }
Komplexa typer
Det här avsnittet visar exempel på komplexa telemetrityper som en enhet strömmar till ett IoT Central program.
Följande kodfragment från en enhetsmodell visar definitionen av geopoint en telemetrityp:
{
"@type": "Telemetry",
"displayName": {
"en": "GeopointTelemetry"
},
"name": "GeopointTelemetry",
"schema": "geopoint"
}
Anteckning
Geopoint-schematypen är inte en del av Digital Twins Definition Language-specifikationen. IoT Central stöder för närvarande schematypen geopunkt och platsens semantiska typ för bakåtkompatibilitet.
En enhetsklient ska skicka telemetrin som JSON som ser ut som i följande exempel. IoT Central visar värdet som en kartnål på en karta:
{
"GeopointTelemetry": {
"lat": 47.64263,
"lon": -122.13035,
"alt": 0
}
}
Följande kodfragment från en enhetsmodell visar definitionen av Enum en telemetrityp:
{
"@type": "Telemetry",
"displayName": {
"en": "EnumTelemetry"
},
"name": "EnumTelemetry",
"schema": {
"@type": "Enum",
"displayName": {
"en": "Enum"
},
"valueSchema": "integer",
"enumValues": [
{
"displayName": {
"en": "Item1"
},
"enumValue": 0,
"name": "Item1"
},
{
"displayName": {
"en": "Item2"
},
"enumValue": 1,
"name": "Item2"
},
{
"displayName": {
"en": "Item3"
},
"enumValue": 2,
"name": "Item3"
}
]
}
}
En enhetsklient ska skicka telemetrin som JSON som ser ut som i följande exempel. Möjliga värden är 0 , och som visas i IoT Central som , och 1 2 Item1 Item2 Item3 :
{ "EnumTelemetry": 1 }
Följande kodfragment från en enhetsmodell visar definitionen av Object en telemetrityp. Det här objektet har tre fält med dateTime typerna integer , och Enum :
{
"@type": "Telemetry",
"displayName": {
"en": "ObjectTelemetry"
},
"name": "ObjectTelemetry",
"schema": {
"@type": "Object",
"displayName": {
"en": "Object"
},
"fields": [
{
"displayName": {
"en": "Property1"
},
"name": "Property1",
"schema": "dateTime"
},
{
"displayName": {
"en": "Property2"
},
"name": "Property2",
"schema": "integer"
},
{
"displayName": {
"en": "Property3"
},
"name": "Property3",
"schema": {
"@type": "Enum",
"displayName": {
"en": "Enum"
},
"valueSchema": "integer",
"enumValues": [
{
"displayName": {
"en": "Item1"
},
"enumValue": 0,
"name": "Item1"
},
{
"displayName": {
"en": "Item2"
},
"enumValue": 1,
"name": "Item2"
},
{
"displayName": {
"en": "Item3"
},
"enumValue": 2,
"name": "Item3"
}
]
}
}
]
}
}
En enhetsklient ska skicka telemetrin som JSON som ser ut som i följande exempel. DateTime -typer måste vara ISO 8061-kompatibla. Möjliga värden Property3 för är , och som visas i IoT Central som , och 0 1 Item1 Item2 Item3 :
{
"ObjectTelemetry": {
"Property1": "2020-09-09T03:36:46.195Z",
"Property2": 37,
"Property3": 2
}
}
Följande kodfragment från en enhetsmodell visar definitionen av vector en telemetrityp:
{
"@type": "Telemetry",
"displayName": {
"en": "VectorTelemetry"
},
"name": "VectorTelemetry",
"schema": "vector"
}
En enhetsklient ska skicka telemetrin som JSON som ser ut som i följande exempel:
{
"VectorTelemetry": {
"x": 74.72395045538597,
"y": 74.72395045538597,
"z": 74.72395045538597
}
}
Händelse- och tillståndstyper
Det här avsnittet visar exempel på telemetrihändelser och anger att en enhet skickar till en IoT Central program.
Följande kodfragment från en enhetsmodell visar definitionen av en integer händelsetyp:
{
"@type": [
"Telemetry",
"Event"
],
"displayName": {
"en": "IntegerEvent"
},
"name": "IntegerEvent",
"schema": "integer"
}
En enhetsklient ska skicka händelsedata som JSON som ser ut som i följande exempel:
{ "IntegerEvent": 74 }
Följande kodfragment från en enhetsmodell visar definitionen av en integer tillståndstyp:
{
"@type": [
"Telemetry",
"State"
],
"displayName": {
"en": "IntegerState"
},
"name": "IntegerState",
"schema": {
"@type": "Enum",
"valueSchema": "integer",
"enumValues": [
{
"displayName": {
"en": "Level1"
},
"enumValue": 1,
"name": "Level1"
},
{
"displayName": {
"en": "Level2"
},
"enumValue": 2,
"name": "Level2"
},
{
"displayName": {
"en": "Level3"
},
"enumValue": 3,
"name": "Level3"
}
]
}
}
En enhetsklient ska skicka tillståndet som JSON som ser ut som i följande exempel. Möjliga värden för heltalstillstånd 1 är 2 , eller 3 :
{ "IntegerState": 2 }
Egenskaper
Anteckning
Nyttolastformaten för egenskaper gäller för program som skapats på eller efter 2020-07-14.
Egenskaper i komponenter
Om egenskapen definieras i en komponent omsluter du egenskapen i komponentnamnet. I följande exempel anges maxTempSinceLastReboot i thermostat2 komponenten . Markören __t anger att det här är en komponent:
{
"thermostat2" : {
"__t" : "c",
"maxTempSinceLastReboot" : 38.7
}
}
Mer information finns i Självstudie: Skapa och ansluta ett klientprogram till ditt Azure IoT Central program.
Primitiva typer
I det här avsnittet visas exempel på primitiva egenskapstyper som en enhet skickar till IoT Central program.
Följande kodfragment från en enhetsmodell visar definitionen av en boolean egenskapstyp:
{
"@type": "Property",
"displayName": {
"en": "BooleanProperty"
},
"name": "BooleanProperty",
"schema": "boolean",
"writable": false
}
En enhetsklient ska skicka en JSON-nyttolast som ser ut som i följande exempel som en rapporterad egenskap i enhetstvillingen:
{ "BooleanProperty": false }
Följande kodfragment från en enhetsmodell visar definitionen av en long egenskapstyp:
{
"@type": "Property",
"displayName": {
"en": "LongProperty"
},
"name": "LongProperty",
"schema": "long",
"writable": false
}
En enhetsklient ska skicka en JSON-nyttolast som ser ut som i följande exempel som en rapporterad egenskap i enhetstvillingen:
{ "LongProperty": 439 }
Följande kodfragment från en enhetsmodell visar definitionen av en date egenskapstyp:
{
"@type": "Property",
"displayName": {
"en": "DateProperty"
},
"name": "DateProperty",
"schema": "date",
"writable": false
}
En enhetsklient ska skicka en JSON-nyttolast som ser ut som i följande exempel som en rapporterad egenskap i enhetstvillingen. Date -typer måste vara ISO 8061-kompatibla:
{ "DateProperty": "2020-05-17" }
Följande kodfragment från en enhetsmodell visar definitionen av en duration egenskapstyp:
{
"@type": "Property",
"displayName": {
"en": "DurationProperty"
},
"name": "DurationProperty",
"schema": "duration",
"writable": false
}
En enhetsklient ska skicka en JSON-nyttolast som ser ut som i följande exempel som en rapporterad egenskap i enhetstvillingen – varaktigheten måste vara ISO 8601-varaktigheten kompatibel:
{ "DurationProperty": "PT10H24M6.169083011336625S" }
Följande kodfragment från en enhetsmodell visar definitionen av en float egenskapstyp:
{
"@type": "Property",
"displayName": {
"en": "FloatProperty"
},
"name": "FloatProperty",
"schema": "float",
"writable": false
}
En enhetsklient ska skicka en JSON-nyttolast som ser ut som i följande exempel som en rapporterad egenskap i enhetstvillingen:
{ "FloatProperty": 1.9 }
Följande kodfragment från en enhetsmodell visar definitionen av en string egenskapstyp:
{
"@type": "Property",
"displayName": {
"en": "StringProperty"
},
"name": "StringProperty",
"schema": "string",
"writable": false
}
En enhetsklient ska skicka en JSON-nyttolast som ser ut som i följande exempel som en rapporterad egenskap i enhetstvillingen:
{ "StringProperty": "A string value - could be a URL" }
Komplexa typer
I det här avsnittet visas exempel på komplexa egenskapstyper som en enhet skickar till IoT Central program.
Följande kodfragment från en enhetsmodell visar definitionen av en geopoint egenskapstyp:
{
"@type": "Property",
"displayName": {
"en": "GeopointProperty"
},
"name": "GeopointProperty",
"schema": "geopoint",
"writable": false
}
Anteckning
Geopoint-schematypen är inte en del av Digital Twins Definition Language-specifikationen. IoT Central stöder för närvarande schematypen geopunkt och platsens semantiska typ för bakåtkompatibilitet.
En enhetsklient ska skicka en JSON-nyttolast som ser ut som i följande exempel som en rapporterad egenskap i enhetstvillingen:
{
"GeopointProperty": {
"lat": 47.64263,
"lon": -122.13035,
"alt": 0
}
}
Följande kodfragment från en enhetsmodell visar definitionen av en Enum egenskapstyp:
{
"@type": "Property",
"displayName": {
"en": "EnumProperty"
},
"name": "EnumProperty",
"writable": false,
"schema": {
"@type": "Enum",
"displayName": {
"en": "Enum"
},
"valueSchema": "integer",
"enumValues": [
{
"displayName": {
"en": "Item1"
},
"enumValue": 0,
"name": "Item1"
},
{
"displayName": {
"en": "Item2"
},
"enumValue": 1,
"name": "Item2"
},
{
"displayName": {
"en": "Item3"
},
"enumValue": 2,
"name": "Item3"
}
]
}
}
En enhetsklient ska skicka en JSON-nyttolast som ser ut som i följande exempel som en rapporterad egenskap i enhetstvillingen. Möjliga värden är 0 , och som visas i IoT Central som , och 1 Item1 Item2 Item3 :
{ "EnumProperty": 1 }
Följande kodfragment från en enhetsmodell visar definitionen av en Object egenskapstyp. Det här objektet har två fält med typerna string och integer :
{
"@type": "Property",
"displayName": {
"en": "ObjectProperty"
},
"name": "ObjectProperty",
"writable": false,
"schema": {
"@type": "Object",
"displayName": {
"en": "Object"
},
"fields": [
{
"displayName": {
"en": "Field1"
},
"name": "Field1",
"schema": "integer"
},
{
"displayName": {
"en": "Field2"
},
"name": "Field2",
"schema": "string"
}
]
}
}
En enhetsklient ska skicka en JSON-nyttolast som ser ut som i följande exempel som en rapporterad egenskap i enhetstvillingen:
{
"ObjectProperty": {
"Field1": 37,
"Field2": "A string value"
}
}
Följande kodfragment från en enhetsmodell visar definitionen av en vector egenskapstyp:
{
"@type": "Property",
"displayName": {
"en": "VectorProperty"
},
"name": "VectorProperty",
"schema": "vector",
"writable": false
}
En enhetsklient bör skicka en JSON-nyttolast som ser ut som i följande exempel som en rapporterad egenskap i enhetstvillingen:
{
"VectorProperty": {
"x": 74.72395045538597,
"y": 74.72395045538597,
"z": 74.72395045538597
}
}
Skrivbara egenskapstyper
Det här avsnittet visar exempel på skrivbara egenskapstyper som en enhet tar emot från IoT Central program.
Om den skrivbara egenskapen definieras i en komponent innehåller det önskade egenskapsmeddelandet komponentnamnet. I följande exempel visas meddelandet som begär att enheten ska uppdatera targetTemperature i thermostat2 komponenten. Markören __t anger att detta är en komponent:
{
"thermostat2": {
"targetTemperature": {
"value": 57
},
"__t": "c"
},
"$version": 3
}
Mer information finns i Självstudie: Skapa och ansluta ett klientprogram till ditt Azure IoT Central program.
IoT Central förväntar sig ett svar från enheten på skrivbara egenskapsuppdateringar. Svarsmeddelandet ska innehålla ac fälten av och . Fältet ad är valfritt. Se följande kodfragment för exempel.
ac är ett numeriskt fält som använder värdena i följande tabell:
| Värde | Etikett | Description |
|---|---|---|
'ac': 200 |
Slutförd | Åtgärden för egenskapsändring slutfördes. |
'ac': 202 Eller 'ac': 201 |
Väntar | Åtgärden för egenskapsändring väntar eller pågår |
'ac': 4xx |
Fel | Den begärda egenskapsändringen var inte giltig eller hade ett fel |
'ac': 5xx |
Fel | Ett oväntat fel uppstod på enheten vid bearbetningen av den begärda ändringen. |
av är versionsnumret som skickas till enheten.
ad är en beskrivning av alternativsträngen.
Följande kodfragment från en enhetsmodell visar definitionen av en skrivbar string egenskapstyp:
{
"@type": "Property",
"displayName": {
"en": "StringPropertyWritable"
},
"name": "StringPropertyWritable",
"writable": true,
"schema": "string"
}
Enheten tar emot följande nyttolast från IoT Central:
{
"StringPropertyWritable": "A string from IoT Central", "$version": 7
}
Enheten bör skicka följande JSON-nyttolast till IoT Central den har bearbetar uppdateringen. Det här meddelandet innehåller versionsnumret för den ursprungliga uppdateringen som togs emot från IoT Central. När IoT Central tar emot det här meddelandet, markerar den egenskapen som synkroniserad i användargränssnittet:
{
"StringPropertyWritable": {
"value": "A string from IoT Central",
"ac": 200,
"ad": "completed",
"av": 7
}
}
Följande kodfragment från en enhetsmodell visar definitionen av en skrivbar Enum egenskapstyp:
{
"@type": "Property",
"displayName": {
"en": "EnumPropertyWritable"
},
"name": "EnumPropertyWritable",
"writable": true,
"schema": {
"@type": "Enum",
"displayName": {
"en": "Enum"
},
"valueSchema": "integer",
"enumValues": [
{
"displayName": {
"en": "Item1"
},
"enumValue": 0,
"name": "Item1"
},
{
"displayName": {
"en": "Item2"
},
"enumValue": 1,
"name": "Item2"
},
{
"displayName": {
"en": "Item3"
},
"enumValue": 2,
"name": "Item3"
}
]
}
}
Enheten tar emot följande nyttolast från IoT Central:
{
"EnumPropertyWritable": 1 , "$version": 10
}
Enheten bör skicka följande JSON-nyttolast till IoT Central den har bearbetar uppdateringen. Det här meddelandet innehåller versionsnumret för den ursprungliga uppdateringen som togs emot från IoT Central. När IoT Central tar emot det här meddelandet, markerar den egenskapen som synkroniserad i användargränssnittet:
{
"EnumPropertyWritable": {
"value": 1,
"ac": 200,
"ad": "completed",
"av": 10
}
}
Kommandon
Om kommandot definieras i en komponent innehåller namnet på det kommando som enheten tar emot komponentnamnet. Om kommandot till exempel anropas och komponenten heter , tar enheten emot en begäran om getMaxMinReport att köra ett kommando med namnet thermostat2 thermostat2*getMaxMinReport .
Följande kodfragment från en enhetsmodell visar definitionen av ett kommando som inte har några parametrar och som inte förväntar sig att enheten ska returnera något:
{
"@type": "Command",
"displayName": {
"en": "CommandBasic"
},
"name": "CommandBasic"
}
Enheten tar emot en tom nyttolast i begäran och bör returnera en tom nyttolast i svaret med en 200 HTTP-svarskod för att indikera att det lyckades.
Följande kodfragment från en enhetsmodell visar definitionen av ett kommando som har en heltalsparameter och som förväntar sig att enheten ska returnera ett heltalsvärde:
{
"@type": "Command",
"request": {
"@type": "CommandPayload",
"displayName": {
"en": "RequestParam"
},
"name": "RequestParam",
"schema": "integer"
},
"response": {
"@type": "CommandPayload",
"displayName": {
"en": "ResponseParam"
},
"name": "ResponseParam",
"schema": "integer"
},
"displayName": {
"en": "CommandSimple"
},
"name": "CommandSimple"
}
Enheten tar emot ett heltalsvärde som nyttolast för begäran. Enheten bör returnera ett heltalsvärde som svarsnyttolast med en 200 HTTP-svarskod för att visa att det lyckades.
Följande kodfragment från en enhetsmodell visar definitionen av ett kommando som har en objektparameter och som förväntar sig att enheten ska returnera ett -objekt. I det här exemplet har båda objekten heltals- och strängfält:
{
"@type": "Command",
"request": {
"@type": "CommandPayload",
"displayName": {
"en": "RequestParam"
},
"name": "RequestParam",
"schema": {
"@type": "Object",
"displayName": {
"en": "Object"
},
"fields": [
{
"displayName": {
"en": "Field1"
},
"name": "Field1",
"schema": "integer"
},
{
"displayName": {
"en": "Field2"
},
"name": "Field2",
"schema": "string"
}
]
}
},
"response": {
"@type": "CommandPayload",
"displayName": {
"en": "ResponseParam"
},
"name": "ResponseParam",
"schema": {
"@type": "Object",
"displayName": {
"en": "Object"
},
"fields": [
{
"displayName": {
"en": "Field1"
},
"name": "Field1",
"schema": "integer"
},
{
"displayName": {
"en": "Field2"
},
"name": "Field2",
"schema": "string"
}
]
}
},
"displayName": {
"en": "CommandComplex"
},
"name": "CommandComplex"
}
Följande kodfragment visar ett exempel på en nyttolast för begäran som skickas till enheten:
{ "Field1": 56, "Field2": "A string value" }
Följande kodfragment visar ett exempel på en svarsnyttolast som skickas från enheten. Använd en 200 HTTP-svarskod för att visa att det lyckades:
{ "Field1": 87, "Field2": "Another string value" }
Långvariga kommandon
Följande kodfragment från en enhetsmodell visar definitionen av ett kommando. Kommandot har en heltalsparameter och förväntar sig att enheten returnerar ett heltalsvärde:
{
"@type": "Command",
"request": {
"@type": "CommandPayload",
"displayName": {
"en": "RequestParam"
},
"name": "RequestParam",
"schema": "integer"
},
"response": {
"@type": "CommandPayload",
"displayName": {
"en": "ResponseParam"
},
"name": "ResponseParam",
"schema": "integer"
},
"displayName": {
"en": "LongRunningCommandSimple"
},
"name": "LongRunningCommandSimple"
}
Enheten tar emot ett heltalsvärde som nyttolast för begäran. Om enheten behöver tid för att bearbeta det här kommandot bör den returnera en tom svarsnyttolast med en HTTP-svarskod för att indikera att enheten har accepterat 202 begäran om bearbetning.
När enheten har bearbetat begäran bör den skicka en egenskap till IoT Central som ser ut som i följande exempel. Egenskapsnamnet måste vara samma som kommandonamnet:
{
"LongRunningCommandSimple": {
"value": 87
}
}
Offlinekommandon
I IoT Central webbgränssnittet kan du välja alternativet Kö om offline för ett kommando. Offlinekommandon är enkelvägsmeddelanden till enheten från din lösning som levereras så fort en enhet ansluter. Offlinekommandon kan ha en begärandeparameter men returnerar inget svar.
Inställningen Köa om offline inte ingår om du exporterar en modell eller ett gränssnitt från enhetsmallen. Du kan inte se genom att titta på en exporterad modell eller ett gränssnitts-JSON att ett kommando är ett offlinekommando.
Offlinekommandon använder IoT Hub meddelanden från moln till enhet för att skicka kommandot och nyttolasten till enheten.
Nyttolasten för meddelandet som enheten tar emot är raw-värdet för parametern. En anpassad egenskap med method-name namnet lagrar namnet på IoT Central kommandot. I följande tabell visas några exempel på nyttolaster:
| IoT Central schema för begäran | Exempel på nyttolast som tas emot av enheten |
|---|---|
| Ingen parameter för begäran | @ |
| Double | 1.23 |
| Sträng | sample string |
| Objekt | {"StartTime":"2021-01-05T08:00:00.000Z","Bank":2} |
Följande kodfragment från en enhetsmodell visar definitionen av ett kommando. Kommandot har en objektparameter med ett datetime-fält och en uppräkning:
{
"@type": "Command",
"displayName": {
"en": "Generate Diagnostics"
},
"name": "GenerateDiagnostics",
"request": {
"@type": "CommandPayload",
"displayName": {
"en": "Payload"
},
"name": "Payload",
"schema": {
"@type": "Object",
"displayName": {
"en": "Object"
},
"fields": [
{
"displayName": {
"en": "StartTime"
},
"name": "StartTime",
"schema": "dateTime"
},
{
"displayName": {
"en": "Bank"
},
"name": "Bank",
"schema": {
"@type": "Enum",
"displayName": {
"en": "Enum"
},
"enumValues": [
{
"displayName": {
"en": "Bank 1"
},
"enumValue": 1,
"name": "Bank1"
},
{
"displayName": {
"en": "Bank2"
},
"enumValue": 2,
"name": "Bank2"
},
{
"displayName": {
"en": "Bank3"
},
"enumValue": 3,
"name": "Bank3"
}
],
"valueSchema": "integer"
}
}
]
}
}
}
Om du aktiverar alternativet Kö om offline i användargränssnittet för enhetsmallen för kommandot i föregående kodfragment innehåller meddelandet som enheten tar emot följande egenskaper:
| Egenskapsnamn | Exempelvärde |
|---|---|
custom_properties |
{'method-name': 'GenerateDiagnostics'} |
data |
{"StartTime":"2021-01-05T08:00:00.000Z","Bank":2} |
Nästa steg
Nu när du har lärt dig om enhetsmallar föreslår vi att du läser Anslut till Azure IoT Central för att lära dig mer om hur du registrerar enheter med IoT Central och hur IoT Central skyddar enhetsanslutningar.