Använda REST API för att skapa och hantera IoT Central-program
Du kan använda rest-API:et för kontrollplanet för att skapa och hantera IoT Central-program. Du kan också använda REST-API:et för att:
- Lägg till en hanterad identitet i ditt program.
- Hantera instrumentpaneler i ditt program
Om du vill använda det här API:et behöver du en ägartoken för resursen management.azure.com
. Om du vill hämta en ägartoken kan du använda Azure CLI:
az account get-access-token --resource https://management.azure.com
Mer information om hur du hanterar IoT Central-program med hjälp av IoT Central-användargränssnittet finns i Skapa ett IoT Central-program.
Visa en lista över dina program
Så här hämtar du en lista över IoT Central-programmen i en prenumeration:
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.IoTCentral/iotApps?api-version=2021-06-01
Så här hämtar du en lista över IoT Central-programmen i en resursgrupp:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTCentral/iotApps?api-version=2021-06-01
Du kan hämta information om ett enskilt program:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTCentral/iotApps/{applicationName}?api-version=2021-06-01
Skapa ett IoT Central-program
Så här skapar du ett IoT Central-program med en systemtilldelad hanterad identitet:
PUT https://management.azure.com/subscriptions/<your subscription id>/resourceGroups/<your resource group name>/providers/Microsoft.IoTCentral/iotApps/<your application name>?api-version=2021-06-01
Följande nyttolast visar konfigurationen för det nya programmet, inklusive den hanterade identiteten:
{
"location": "eastus",
"sku": {
"name": "ST2"
},
"properties": {
"displayName": "Contoso IoT Central App",
"subdomain": "my-iot-central-app",
"template": "iotc-pnp-preview@1.0.0"
},
"identity": {
"type": "SystemAssigned"
}
}
Ändra ett IoT Central-program
Du kan ändra ett befintligt IoT Central-program. I följande exempel visas hur du ändrar visningsnamnet och aktiverar den systemtilldelade hanterade identiteten:
PATCH https://management.azure.com/subscriptions/<your subscription id>/resourceGroups/<your resource group name>/providers/Microsoft.IoTCentral/iotApps/<your application name>?api-version=2021-06-01
Använd följande nyttolast för att ändra visningsnamnet och aktivera den systemtilldelade hanterade identiteten:
{
"properties": {
"displayName": "Contoso IoT Central App"
},
"identity": {
"type": "SystemAssigned"
}
}
Kommentar
Du kan bara lägga till en hanterad identitet i ett IoT Central-program som har skapats i en region. Alla nya program skapas i en region.
Ta bort ett IoT Central-program
Om du vill ta bort ett IoT Central-program använder du:
DELETE https://management.azure.com/subscriptions/<your subscription id>/resourceGroups/<your resource group name>/providers/Microsoft.IoTCentral/iotApps/<your application name>?api-version=2021-06-01
Instrumentpaneler
Du kan skapa instrumentpaneler som är associerade med en viss organisation. En organisationsinstrumentpanel är bara synlig för användare som har åtkomst till den organisation som instrumentpanelen är associerad med. Endast användare i en roll som har behörigheter för organisationsinstrumentpaneler kan skapa, redigera och ta bort organisationsinstrumentpaneler.
Alla användare kan skapa personliga instrumentpaneler, endast synliga för sig själva. Användare kan växla mellan organisationsinstrumentpaneler och personliga instrumentpaneler.
Kommentar
Det går för närvarande inte att skapa personliga instrumentpaneler med HJÄLP av API: et.
Mer information om hur du hanterar instrumentpaneler med hjälp av IoT Central-användargränssnittet finns i Hantera instrumentpaneler.
REST API för instrumentpaneler
I REST-API:et för IoT Central kan du göra följande:
- Lägga till en instrumentpanel i ditt program
- Uppdatera en instrumentpanel i ditt program
- Hämta en lista över instrumentpanelen i programmet
- Hämta en instrumentpanel efter ID
- Ta bort en instrumentpanel i ditt program
Lägg till instrumentpanel
Använd följande begäran för att skapa en instrumentpanel.
PUT https://{your app subdomain}.azureiotcentral.com/api/dashboards/{dashboardId}?api-version=2022-10-31-preview
dashboardId
– En unik DTMI-identifierare för instrumentpanelen.
Begärandetexten innehåller några obligatoriska fält:
@displayName
: Instrumentpanelens visningsnamn.@favorite
: Finns instrumentpanelen i listan favoriter?group
: Enhetsgrupps-ID.Tile
: Konfiguration som anger ett panelobjekt, inklusive layout, visningsnamn och konfiguration.
Panelen har några obligatoriska fält:
Name | beskrivning |
---|---|
displayName |
Visningsnamn för panelen |
height |
Panelens höjd |
width |
Panelens bredd |
x |
Panelens vågräta position |
y |
Panelens lodräta position |
Dimensionerna och platsen för en panel använder båda heltalsenheter. Den minsta möjliga panelen har en höjd och bredd på en.
Du kan konfigurera ett panelobjekt så att det visar flera typer av data. Den här artikeln innehåller exempel på paneler som visar linjediagram, markdown och senaste kända värde. Mer information om de olika paneltyper som du kan lägga till på en instrumentpanel finns i Paneltyper.
Linjediagramspanel
Rita upp ett eller flera aggregerade telemetrivärden för en eller flera enheter under en tidsperiod. Du kan till exempel visa ett linjediagram för att rita genomsnittstemperaturen och trycket för en eller flera enheter under den senaste timmen.
Linjediagrampanelen har följande konfiguration:
Name | beskrivning |
---|---|
capabilities |
Anger det aggregerade värdet för telemetrin som ska visas. |
devices |
Listan över enheter som ska visas. |
format |
Formatkonfigurationen för diagrammet, till exempel de axlar som ska användas. |
group |
ID:t för den enhetsgrupp som ska visas. |
queryRange |
Tidsintervall och upplösning som ska visas. |
type |
lineChart |
Markdown-panel
Klickbara paneler som visar en rubrik och en beskrivningstext formaterad i Markdown. URL:en kan vara en relativ länk till en annan sida i programmet eller en absolut länk till en extern webbplats. Markdown-panelen har följande konfiguration:
Name | beskrivning |
---|---|
description |
Markdown-strängen som ska återges i panelen. |
href |
Länken som ska besökas när panelen är markerad. |
image |
En base64-kodad bild som ska visas. |
type |
markdown |
Senast kända värdepanel
Visa de senaste telemetrivärdena för en eller flera enheter. Du kan till exempel använda den här panelen för att visa de senaste temperatur-, tryck- och luftfuktighetsvärdena för en eller flera enheter.
Panelen för det senast kända värdet (LKV) har följande konfiguration:
Name | beskrivning |
---|---|
capabilities |
Anger telemetrin som ska visas. |
devices |
Listan över enheter som ska visas. |
format |
Formatkonfigurationen för LKV-panelen, till exempel textstorlek för ordomslutning. |
group |
ID:t för den enhetsgrupp som ska visas. |
showTrend |
Visa skillnaden mellan det senast kända värdet och det tidigare värdet. |
type |
lkv |
I följande exempel visas en begärandetext som lägger till en ny instrumentpanel med linjediagram, markdown och senast kända värdepaneler. Panelerna LKV och linjediagram är 2x2
paneler. Markdown-panelen är en 1x1
panel. Panelerna är ordnade på den översta raden på instrumentpanelen:
{
"displayName": "My Dashboard ",
"tiles": [
{
"displayName": "LKV Temperature",
"configuration": {
"type": "lkv",
"capabilities": [
{
"capability": "temperature",
"aggregateFunction": "avg"
}
],
"group": "0fb6cf08-f03c-4987-93f6-72103e9f6100",
"devices": [
"3xksbkqm8r",
"1ak6jtz2m5q",
"h4ow04mv3d"
],
"format": {
"abbreviateValue": false,
"wordWrap": false,
"textSize": 14
}
},
"x": 0,
"y": 0,
"width": 2,
"height": 2
},
{
"displayName": "Documentation",
"configuration": {
"type": "markdown",
"description": "Comprehensive help articles and links to more support.",
"href": "https://aka.ms/iotcentral-pnp-docs",
"image": "4d6c6373-0220-4191-be2e-d58ca2a289e1"
},
"x": 2,
"y": 0,
"width": 1,
"height": 1
},
{
"displayName": "Average temperature",
"configuration": {
"type": "lineChart",
"capabilities": [
{
"capability": "temperature",
"aggregateFunction": "avg"
}
],
"devices": [
"3xksbkqm8r",
"1ak6jtz2m5q",
"h4ow04mv3d"
],
"group": "0fb6cf08-f03c-4987-93f6-72103e9f6100",
"format": {
"xAxisEnabled": true,
"yAxisEnabled": true,
"legendEnabled": true
},
"queryRange": {
"type": "time",
"duration": "PT30M",
"resolution": "PT1M"
}
},
"x": 3,
"y": 0,
"width": 2,
"height": 2
}
],
"favorite": false
}
Svaret på den här begäran ser ut som i följande exempel:
{
"id": "dtmi:kkfvwa2xi:p7pyt5x38",
"displayName": "My Dashboard",
"personal": false,
"tiles": [
{
"displayName": "lineChart",
"configuration": {
"type": "lineChart",
"capabilities": [
{
"capability": "temperature",
"aggregateFunction": "avg"
}
],
"devices": [
"1cfqhp3tue3",
"mcoi4i2qh3"
],
"group": "da48c8fe-bac7-42bc-81c0-d8158551f066",
"format": {
"xAxisEnabled": true,
"yAxisEnabled": true,
"legendEnabled": true
},
"queryRange": {
"type": "time",
"duration": "PT30M",
"resolution": "PT1M"
}
},
"x": 5,
"y": 0,
"width": 2,
"height": 2
}
],
"favorite": false
}
Lägga till en lagringskontokonfiguration för filuppladdning
Använd följande begäran för att skapa en konfiguration av bloblagringskontot för filuppladdning i ditt IoT Central-program:
PUT https://{your-app-subdomain}.azureiotcentral.com/api/fileUploads?api-version=2022-07-31
Begärandetexten har följande fält:
account
: Namnet på lagringskontot där filen ska laddas upp till.connectionString
: Niska veze för att ansluta till lagringskontot.container
: Namnet på containern i lagringskontot. I följande exempel används namnetfileuploads
.etag
: ETag för att förhindra konflikt med flera uppladdningarsasTtl
: ISO 8601 duration standard, Den tid som enhetens begäran om att ladda upp en fil är giltig innan den upphör att gälla.
{
"account": "yourAccountName",
"connectionString": "DefaultEndpointsProtocol=https;AccountName=yourAccountName;AccountKey=*****;BlobEndpoint=https://yourAccountName.blob.core.windows.net/",
"container": "fileuploads",
"sasTtl": "PT1H"
}
Svaret på den här begäran ser ut som i följande exempel:
{
"account": "yourAccountName",
"connectionString": "DefaultEndpointsProtocol=https;AccountName=yourAccountName;AccountKey=*****;BlobEndpoint=https://yourAccountName.blob.core.windows.net/",
"container": "fileuploads",
"sasTtl": "PT1H",
"state": "pending",
"etag": "\"7502ac89-0000-0300-0000-627eaf100000\""
}
Hämta konfigurationen av lagringskontot för filuppladdning
Använd följande begäran för att hämta information om en konfiguration av ett bloblagringskonto för filuppladdning i ditt IoT Central-program:
GET https://{your-app-subdomain}.azureiotcentral.com/api/fileUploads?api-version=2022-07-31
Svaret på den här begäran ser ut som i följande exempel:
{
"account": "yourAccountName",
"connectionString": "DefaultEndpointsProtocol=https;AccountName=yourAccountName;AccountKey=*****;BlobEndpoint=https://yourAccountName.blob.core.windows.net/",
"container": "yourContainerName",
"state": "succeeded",
"etag": "\"7502ac89-0000-0300-0000-627eaf100000\""
}
Uppdatera konfigurationen av lagringskontot för filuppladdning
Använd följande begäran för att uppdatera ett bloblagringskonto för filuppladdning niska veze i ditt IoT Central-program:
PATCH https://{your-app-subdomain}.azureiotcentral.com/api/fileUploads?api-version=2022-07-31
{
"connectionString": "DefaultEndpointsProtocol=https;AccountName=yourAccountName;AccountKey=*****;BlobEndpoint=https://yourAccountName.blob.core.windows.net/"
}
Svaret på den här begäran ser ut som i följande exempel:
{
"account": "yourAccountName",
"connectionString": "DefaultEndpointsProtocol=https;AccountName=yourAccountName;AccountKey=*****;BlobEndpoint=https://yourAccountName.blob.core.windows.net/",
"container": "yourContainerName",
"sasTtl": "PT1H",
"state": "succeeded",
"etag": "\"7502ac89-0000-0300-0000-627eaf100000\""
}
Ta bort konfigurationen av lagringskontot för filuppladdning
Använd följande begäran för att ta bort en konfiguration av lagringskontot:
DELETE https://{your-app-subdomain}.azureiotcentral.com/api/fileUploads?api-version=2022-07-31
Hämta en instrumentpanel
Använd följande begäran för att hämta information om en instrumentpanel med hjälp av ett instrumentpanels-ID.
GET https://{your app subdomain}.azureiotcentral.com/api/dashboards/{dashboardId}?api-version=2022-10-31-preview
Svaret på den här begäran ser ut som i följande exempel:
{
"id": "dtmi:kkfvwa2xi:p7pyt5x38",
"displayName": "My Dashboard",
"personal": false,
"tiles": [
{
"displayName": "lineChart",
"configuration": {
"type": "lineChart",
"capabilities": [
{
"capability": "AvailableMemory",
"aggregateFunction": "avg"
}
],
"devices": [
"1cfqhp3tue3",
"mcoi4i2qh3"
],
"group": "da48c8fe-bac7-42bc-81c0-d8158551f066",
"format": {
"xAxisEnabled": true,
"yAxisEnabled": true,
"legendEnabled": true
},
"queryRange": {
"type": "time",
"duration": "PT30M",
"resolution": "PT1M"
}
},
"x": 5,
"y": 0,
"width": 2,
"height": 2
}
],
"favorite": false
}
Uppdatera en instrumentpanel
PATCH https://{your app subdomain}.azureiotcentral.com/api/dashboards/{dashboardId}?api-version=2022-10-31-preview
I följande exempel visas en begärandetext som uppdaterar visningsnamnet för en instrumentpanel och lägger till instrumentpanelen i listan med favoriter:
{
"displayName": "New Dashboard Name",
"favorite": true
}
Svaret på den här begäran ser ut som i följande exempel:
{
"id": "dtmi:kkfvwa2xi:p7pyt5x38",
"displayName": "New Dashboard Name",
"personal": false,
"tiles": [
{
"displayName": "lineChart",
"configuration": {
"type": "lineChart",
"capabilities": [
{
"capability": "AvailableMemory",
"aggregateFunction": "avg"
}
],
"devices": [
"1cfqhp3tue3",
"mcoi4i2qh3"
],
"group": "da48c8fe-bac7-42bc-81c0-d8158551f066",
"format": {
"xAxisEnabled": true,
"yAxisEnabled": true,
"legendEnabled": true
},
"queryRange": {
"type": "time",
"duration": "PT30M",
"resolution": "PT1M"
}
},
"x": 5,
"y": 0,
"width": 5,
"height": 5
}
],
"favorite": true
}
Ta bort en instrumentpanel
Använd följande begäran för att ta bort en instrumentpanel med hjälp av instrumentpanelens ID:
DELETE https://{your app subdomain}.azureiotcentral.com/api/dashboards/{dashboardId}?api-version=2022-10-31-preview
Lista instrumentpaneler
Använd följande begäran för att hämta en lista över instrumentpaneler från ditt program:
GET https://{your app subdomain}.azureiotcentral.com/api/dashboards?api-version=2022-10-31-preview
Svaret på den här begäran ser ut som i följande exempel:
{
"value": [
{
"id": "dtmi:kkfvwa2xi:p7pyt5x3o",
"displayName": "Dashboard",
"personal": false,
"tiles": [
{
"displayName": "Device templates",
"configuration": {
"type": "markdown",
"description": "Get started by adding your first device.",
"href": "/device-templates/new/devicetemplates",
"image": "f5ba1b00-1d24-4781-869b-6f954df48736"
},
"x": 1,
"y": 0,
"width": 1,
"height": 1
},
{
"displayName": "Quick start demo",
"configuration": {
"type": "markdown",
"description": "Learn how to use Azure IoT Central in minutes.",
"href": "https://aka.ms/iotcentral-pnp-video",
"image": "9eb01d71-491a-44e5-8fac-7af3bc9f9acd"
},
"x": 2,
"y": 0,
"width": 1,
"height": 1
},
{
"displayName": "Tutorials",
"configuration": {
"type": "markdown",
"description": "Step-by-step articles teach you how to create apps and devices.",
"href": "https://aka.ms/iotcentral-pnp-tutorials",
"image": "7d9fc12c-d46e-41c6-885f-0a67c619366e"
},
"x": 3,
"y": 0,
"width": 1,
"height": 1
},
{
"displayName": "Documentation",
"configuration": {
"type": "markdown",
"description": "Comprehensive help articles and links to more support.",
"href": "https://aka.ms/iotcentral-pnp-docs",
"image": "4d6c6373-0220-4191-be2e-d58ca2a289e1"
},
"x": 4,
"y": 0,
"width": 1,
"height": 1
},
{
"displayName": "IoT Central Image",
"configuration": {
"type": "image",
"format": {
"backgroundColor": "#FFFFFF",
"fitImage": true,
"showTitle": false,
"textColor": "#FFFFFF",
"textSize": 0,
"textSizeUnit": "px"
},
"image": ""
},
"x": 0,
"y": 0,
"width": 1,
"height": 1
},
{
"displayName": "Contoso Image",
"configuration": {
"type": "image",
"format": {
"backgroundColor": "#FFFFFF",
"fitImage": true,
"showTitle": false,
"textColor": "#FFFFFF",
"textSize": 0,
"textSizeUnit": "px"
},
"image": "c9ac5af4-f38e-4cd3-886a-e0cb107f391c"
},
"x": 0,
"y": 1,
"width": 5,
"height": 3
},
{
"displayName": "Available Memory",
"configuration": {
"type": "lineChart",
"capabilities": [
{
"capability": "AvailableMemory",
"aggregateFunction": "avg"
}
],
"devices": [
"1cfqhp3tue3",
"mcoi4i2qh3"
],
"group": "da48c8fe-bac7-42bc-81c0-d8158551f066",
"format": {
"xAxisEnabled": true,
"yAxisEnabled": true,
"legendEnabled": true
},
"queryRange": {
"type": "time",
"duration": "PT30M",
"resolution": "PT1M"
}
},
"x": 5,
"y": 0,
"width": 2,
"height": 2
}
],
"favorite": false
}
]
}