IoT Central uygulamaları oluşturmak ve yönetmek için REST API'yi kullanma

IoT Central uygulamaları oluşturmak ve yönetmek için denetim düzlemi REST API'sini kullanabilirsiniz. REST API'yi kullanarak şunları da yapabilirsiniz:

  • Uygulamanıza yönetilen kimlik ekleyin.
  • Uygulamanızdaki panoları yönetme

Bu API'yi kullanmak için kaynak için taşıyıcı belirteci management.azure.com gerekir. Taşıyıcı belirteci almak için Azure CLI'yı kullanabilirsiniz:

az account get-access-token --resource https://management.azure.com

IoT Central kullanıcı arabirimini kullanarak IoT Central uygulamasını yönetmeyi öğrenmek için bkz . IoT Central uygulaması oluşturma.

Uygulamalarınızı listeleme

Bir abonelikteki IoT Central uygulamalarının listesini almak için:

GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.IoTCentral/iotApps?api-version=2021-06-01

Bir kaynak grubundaki IoT Central uygulamalarının listesini almak için:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTCentral/iotApps?api-version=2021-06-01

Tek bir uygulamanın ayrıntılarını alabilirsiniz:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTCentral/iotApps/{applicationName}?api-version=2021-06-01

IoT Central uygulaması oluşturma

Sistem tarafından atanan yönetilen kimliğe sahip bir IoT Central uygulaması oluşturmak için:

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

Aşağıdaki yük, yönetilen kimlik de dahil olmak üzere yeni uygulamanın yapılandırmasını gösterir:

{
  "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"
  }
}

IoT Central uygulamasını değiştirme

Mevcut bir IoT Central uygulamasını değiştirebilirsiniz. Aşağıdaki örnekte görünen adın nasıl değiştirileceği ve sistem tarafından atanan yönetilen kimliğin nasıl etkinleştirileceği gösterilmektedir:

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

Görünen adı değiştirmek ve sistem tarafından atanan yönetilen kimliği etkinleştirmek için aşağıdaki yükü kullanın:

{
  "properties": {
    "displayName": "Contoso IoT Central App"
  },
  "identity": {
    "type": "SystemAssigned"
  }
}

Not

Yönetilen kimliği yalnızca bir bölgede oluşturulmuş bir IoT Central uygulamasına ekleyebilirsiniz. Tüm yeni uygulamalar bir bölgede oluşturulur.

IoT Central uygulamasını silme

IoT Central uygulamasını silmek için şunu kullanın:

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

Panolar

Belirli bir kuruluşla ilişkili panolar oluşturabilirsiniz. Kuruluş panosu yalnızca panonun ilişkili olduğu kuruluşa erişimi olan kullanıcılar tarafından görülebilir. Yalnızca kuruluş panosu izinlerine sahip bir roldeki kullanıcılar kuruluş panoları oluşturabilir, düzenleyebilir ve silebilir.

Tüm kullanıcılar kişisel panolar oluşturabilir ve yalnızca kendileri tarafından görülebilir. Kullanıcılar kuruluş ve kişisel panolar arasında geçiş yapabilir.

Not

API kullanarak kişisel panolar oluşturma şu anda desteklenmemektedir.

IoT Central kullanıcı arabirimini kullanarak panoları yönetmeyi öğrenmek için bkz . Panoları yönetme.

Panolar REST API

IoT Central REST API şunları yapmanızı sağlar:

  • Uygulamanıza pano ekleme
  • Uygulamanızdaki bir panoyu güncelleştirme
  • Uygulamadaki panonun listesini alma
  • Kimliğine göre pano alma
  • Uygulamanızdaki bir panoyu silme

Pano ekleme

Pano oluşturmak için aşağıdaki isteği kullanın.

PUT https://{your app subdomain}.azureiotcentral.com/api/dashboards/{dashboardId}?api-version=2022-10-31-preview

dashboardId - Pano için benzersiz bir DTMI tanımlayıcısı.

İstek gövdesinde bazı gerekli alanlar vardır:

  • @displayName: Panonun görünen adı.
  • @favorite: Pano sık kullanılanlar listesinde mi?
  • group: Cihaz grubu kimliği.
  • Tile : Düzen, görünen ad ve yapılandırma dahil olmak üzere kutucuk nesnesini belirten yapılandırma.

Kutucukta bazı gerekli alanlar vardır:

Veri Akışı Adı Açıklama
displayName Kutucuğun görünen adı
height Kutucuğun yüksekliği
width Kutucuğun genişliği
x Kutucuğun yatay konumu
y Kutucuğun dikey konumu

Bir kutucuğun boyutları ve konumu tamsayı birimlerini kullanır. Mümkün olan en küçük kutucuğun yüksekliği ve genişliği birdir.

Birden çok veri türünü görüntülemek için bir kutucuk nesnesi yapılandırabilirsiniz. Bu makalede çizgi grafikleri, markdown'ı ve bilinen son değeri gösteren kutucuk örnekleri yer almaktadır. Panoya ekleyebileceğiniz farklı kutucuk türleri hakkında daha fazla bilgi edinmek için bkz . Kutucuk türleri.

Çizgi grafik kutucuğu

Bir süre içinde bir veya daha fazla cihaz için bir veya daha fazla toplu telemetri değeri çizin. Örneğin, son bir saat içinde bir veya daha fazla cihazın ortalama sıcaklığını ve basıncını çizmek için bir çizgi grafik görüntüleyebilirsiniz.

Çizgi grafik kutucuğu aşağıdaki yapılandırmaya sahiptir:

Veri Akışı Adı Açıklama
capabilities Görüntülenecek telemetrinin toplam değerini belirtir.
devices Görüntülenecek cihazların listesi.
format Kullanılacak eksenler gibi grafiğin biçim yapılandırması.
group Görüntülenecek cihaz grubunun kimliği.
queryRange Görüntülenecek zaman aralığı ve çözünürlük.
type lineChart

Markdown kutucuğu

Markdown'da biçimlendirilmiş başlık ve açıklama metnini görüntüleyen tıklanabilir kutucuklar. URL, uygulamadaki başka bir sayfaya göreli bir bağlantı veya bir dış sitenin mutlak bağlantısı olabilir. Markdown kutucuğu aşağıdaki yapılandırmaya sahiptir:

Veri Akışı Adı Açıklama
description Kutucuğun içinde işlenmek için markdown dizesi.
href Kutucuk seçildiğinde ziyaret etmek için bağlantı.
image Görüntülenecek base64 kodlu görüntü.
type markdown

Bilinen son değer kutucuğu

Bir veya daha fazla cihaz için en son telemetri değerlerini görüntüleyin. Örneğin, bir veya daha fazla cihazın en son sıcaklık, basınç ve nem değerlerini görüntülemek için bu kutucuğu kullanabilirsiniz.

Bilinen son değer (LKV) kutucuğu aşağıdaki yapılandırmaya sahiptir:

Veri Akışı Adı Açıklama
capabilities Görüntülenecek telemetriyi belirtir.
devices Görüntülenecek cihazların listesi.
format Sözcük kaydırmanın metin boyutu gibi LKV kutucuğunun biçim yapılandırması.
group Görüntülenecek cihaz grubunun kimliği.
showTrend Bilinen son değerle önceki değer arasındaki farkı gösterir.
type lkv

Aşağıdaki örnekte çizgi grafik, markdown ve bilinen son değer kutucukları içeren yeni bir pano ekleyen bir istek gövdesi gösterilmektedir. LKV ve çizgi grafik kutucukları kutucuklardır 2x2 . Markdown kutucuğu bir 1x1 kutucuk. Kutucuklar panonun üst satırına yerleştirilmiştir:

{
    "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
}

Bu isteğin yanıtı aşağıdaki örneğe benzer:

{
    "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
}

Pano alma

Pano kimliğini kullanarak bir panonun ayrıntılarını almak için aşağıdaki isteği kullanın.

GET https://{your app subdomain}.azureiotcentral.com/api/dashboards/{dashboardId}?api-version=2022-10-31-preview

Bu isteğin yanıtı aşağıdaki örneğe benzer:

{
    "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
}

Panoyu güncelleştirme

PATCH https://{your app subdomain}.azureiotcentral.com/api/dashboards/{dashboardId}?api-version=2022-10-31-preview

Aşağıdaki örnek, bir panonun görünen adını güncelleştiren ve panoyu sık kullanılanlar listesine ekleyen bir istek gövdesini gösterir:


{
    "displayName": "New Dashboard Name",
    "favorite": true
}

Bu isteğin yanıtı aşağıdaki örneğe benzer:

{
    "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
}

Bir panoyu silme

Pano kimliğini kullanarak bir panoyu silmek için aşağıdaki isteği kullanın:

DELETE https://{your app subdomain}.azureiotcentral.com/api/dashboards/{dashboardId}?api-version=2022-10-31-preview

Panoları listeleme

Uygulamanızdan pano listesini almak için aşağıdaki isteği kullanın:

GET https://{your app subdomain}.azureiotcentral.com/api/dashboards?api-version=2022-10-31-preview

Bu isteğin yanıtı aşağıdaki örneğe benzer:

{
    "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
        }
    ]
}