Cihaz şablonları nedir?

Azure IoT Central'daki cihaz şablonu, uygulamanıza bağlanan bir cihaz türünün özelliklerini ve davranışlarını tanımlayan bir şemadır. Örneğin cihaz şablonu, IoT Central'ın doğru birimleri ve veri türlerini kullanan görselleştirmeler oluşturabilmesi için cihazın gönderdiği telemetriyi tanımlar.

Çözüm oluşturucu bir IoT Central uygulamasına cihaz şablonları ekler. Cihaz geliştiricisi, cihaz şablonunda tanımlanan davranışları uygulayan cihaz kodunu yazar. Bir cihazın IoT Central ile alışveriş yaptığı veriler hakkında daha fazla bilgi edinmek için bkz . Telemetri, özellik ve komut yükleri.

Cihaz şablonu aşağıdaki bölümleri içerir:

  • Cihaz modeli. Cihaz şablonunun bu bölümü, cihazın uygulamanızla nasıl etkileşime geçtiğini tanımlar. Her cihaz modelinin benzersiz bir kimliği vardır. Cihaz geliştiricisi modelde tanımlanan davranışları uygular.
    • Kök bileşen. Her cihaz modelinin bir kök bileşeni vardır. Kök bileşenin arabirimi, cihaz modeline özgü özellikleri açıklar.
    • Bileşenler. Cihaz modeli, cihaz özelliklerini açıklamak için kök bileşene ek olarak bileşenler içerebilir. Her bileşenin, bileşenin özelliklerini açıklayan bir arabirimi vardır. Bileşen arabirimleri diğer cihaz modellerinde yeniden kullanılabilir. Örneğin, birkaç telefon cihazı modeli aynı kamera arabirimini kullanabilir.
    • Devralınan arabirimler. Cihaz modeli, kök bileşenin özelliklerini genişleten bir veya daha fazla arabirim içerir.
  • Görünümler. Cihaz şablonunun bu bölümü, çözüm geliştiricisinin cihazdan verileri görüntülemek için görselleştirmeler ve bir cihazı yönetmek ve denetlemek için formlar tanımlamasına olanak tanır. Görünümler, cihaz geliştiricisinin cihaz modelini uygulamak için yazdığı kodu etkilemez.

Cihaz şablonuna cihaz atama

Bir cihazın IoT Central ile etkileşim kurabilmesi için cihaz şablonuna atanması gerekir. Bu atama dört yoldan biriyle yapılır:

  • Cihazlar sayfasına bir cihaz kaydettiğinizde, cihazın kullanması gereken şablonu tanımlayabilirsiniz.
  • Bir cihaz listesini toplu içeri aktardığınızda, listedeki tüm cihazların kullanması gereken cihaz şablonunu seçebilirsiniz.
  • Atanmamış bir cihazı bağlandıktan sonra cihaz şablonuna el ile atayabilirsiniz.
  • Cihaz, uygulamanıza ilk kez bağlandığında model kimliği göndererek bir cihazı otomatik olarak cihaz şablonuna atayabilirsiniz.

Otomatik atama

IoT Central, cihaz bağlandığında cihaz şablonuna otomatik olarak cihaz atayabilir. Cihaz bağlandığında model kimliği göndermelidir. IoT Central, ilgili cihaz modeli için cihaz şablonunu tanımlamak için model kimliğini kullanır. Bulma işlemi aşağıdaki gibi çalışır:

  1. Cihaz şablonu IoT Central uygulamasında zaten yayımlanmışsa cihaz, cihaz şablonuna atanır.

  2. Cihaz şablonu IoT Central uygulamasında henüz yayımlanmamışsa, IoT Central genel cihaz modeli deposunda cihaz modelini arar. IoT Central modeli bulursa temel bir cihaz şablonu oluşturmak için kullanır.

  3. IoT Central modeli ortak model deposunda bulamazsa cihaz Atanmamış olarak işaretlenir. Bir işleç:

Aşağıdaki ekran görüntüsünde IoT Central'da bir cihaz şablonunun model kimliğini nasıl görüntüleyebileceğiniz gösterilmektedir. Cihaz şablonunda bir bileşen seçin ve ardından Kimliği düzenle'yi seçin:

Termostat cihaz şablonunda model kimliğini gösteren ekran görüntüsü.

Termostat modelini genel model deposunda görüntüleyebilirsiniz. Model kimliği tanımı şöyle görünür:

"@id": "dtmi:com:example:Thermostat;1"

Cihazı bir cihaz şablonuna atamak için aşağıdaki DPS yükünü kullanın:

{
  "modelId":"dtmi:com:example:TemperatureController;2"
}

DPS yükü hakkında daha fazla bilgi edinmek için Öğretici: İstemci uygulaması oluşturma ve Azure IoT Central uygulamanıza bağlama bölümünde kullanılan örnek koda bakın.

Cihaz modelleri

Cihaz modeli, bir cihazın IoT Central uygulamanızla nasıl etkileşime geçtiğini tanımlar. Cihaz geliştiricisi, IoT Central'ın cihazı izleyebilmesi ve yönetebilmesi için cihazın cihaz modelinde tanımlanan davranışları uyguladığından emin olmalıdır. Cihaz modeli bir veya daha fazla arabirimden oluşur ve her arabirim telemetri türleri, cihaz özellikleri ve komutlardan oluşan bir koleksiyon tanımlayabilir. Çözüm geliştiricisi yapabilecekleri:

  • Eksiksiz bir cihaz modelini veya tek bir arabirimi tanımlayan bir JSON dosyasını bir cihaz şablonuna aktarabilirsiniz.
  • Cihaz modeli oluşturmak veya düzenlemek için IoT Central'daki web kullanıcı arabirimini kullanın.

Not

IoT Central bir cihazdan gelen geçerli JSON yüklerini kabul eder, ancak verileri yalnızca cihaz modelindeki bir tanımla eşleşiyorsa görselleştirmeler için kullanabilir. Tanımla eşleşmeyen verileri dışarı aktarabilirsiniz. Bkz. Blob Depolama kullanarak IoT verilerini bulut hedeflerine aktarma.

Cihaz modelini düzenleme hakkında daha fazla bilgi edinmek için bkz . Mevcut cihaz şablonunu düzenleme

Çözüm geliştiricisi, tam bir cihaz modeli veya tek bir arabirim içeren cihaz şablonundan bir JSON dosyasını da dışarı aktarabilir. Cihaz geliştiricisi, cihazın IoT Central uygulamasıyla nasıl iletişim kurması gerektiğini anlamak için bu JSON belgesini kullanabilir.

Cihaz modelini tanımlayan JSON dosyası Dijital İkiz Tanım Dili (DTDL) V2'yi kullanır. IoT Central, JSON dosyasının ayrı dosyalar yerine satır içinde tanımlanan arabirimlere sahip cihaz modelini içermesini bekler. IoT Central'da oluşturulan modeller, modelin IoT Central'da oluşturulduğunu belirtmek için tanımlanan bağlama dtmi:iotcentral:context;2 sahiptir:

"@context": [
  "dtmi:iotcentral:context;2",
  "dtmi:dtdl:context;2"
]

DTDL modelleri hakkında daha fazla bilgi edinmek için IoT Tak Çalıştır modelleme kılavuzuna bakın.

Not

IoT Central, DTDL v2 dilinin bazı uzantılarını tanımlar. Daha fazla bilgi edinmek için bkz . IoT Central uzantısı.

Properties

Varsayılan olarak, özellikler salt okunur olur. Salt okunur özellikler, cihazın IoT Central uygulamanıza özellik değeri güncelleştirmeleri bildirdiğini gösterir. IoT Central uygulamanız salt okunur bir özelliğin değerini ayarlayamaz.

Ayrıca bir özelliği bir arabirimde yazılabilir olarak işaretleyebilirsiniz. Bir cihaz, IoT Central uygulamanızdan yazılabilir bir özellik güncelleştirmesi alabilir ve uygulamanıza özellik değeri güncelleştirmelerini bildirebilir.

Özellik değerlerini ayarlamak için cihazların bağlanması gerekmez. Cihaz bir sonraki uygulamaya bağlandığında güncelleştirilmiş değerler aktarılır. Bu davranış hem salt okunur hem de yazılabilir özellikler için geçerlidir.

Cihazınızdan telemetri göndermek için özellikleri kullanmayın. Örneğin, gibi temperatureSetting=80 salt okunur bir özellik, cihaz sıcaklığının 80 olarak ayarlandığı ve cihazın bu sıcaklığa ulaşmaya veya kalmaya çalıştığı anlamına gelmelidir.

Yazılabilir özellikler için cihaz uygulaması, özellik değerini alıp almadığını ve uygulayıp uygulamadığını belirtmek için istenen durum kodu, sürüm ve açıklamayı döndürür.

Bulut özellikleri

Modelin kök bileşenine bulut özellikleri de ekleyebilirsiniz. Bulut özellikleri, IoT Central uygulamasında depoladığınız tüm cihaz meta verilerini belirtmenize olanak tanır. Bulut özelliği değerleri IoT Central uygulamasında depolanır ve hiçbir zaman bir cihazla eşitlenmez. Bulut özellikleri, bir cihaz geliştiricisinin cihaz modelini uygulamak için yazdığı kodu etkilemez.

Çözüm geliştiricisi, operatörün uygulamaya bağlı cihazları yönetmesini sağlamak için cihaz özellikleriyle birlikte cihaz görünümlerine ve formlarına bulut özellikleri ekleyebilir. Çözüm geliştiricisi, bir eşik değerini işleç tarafından düzenlenebilir hale getirmek için kural tanımının parçası olarak bulut özelliklerini de kullanabilir.

Aşağıdaki DTDL kod parçacığı örnek bir bulut özelliği tanımı gösterir:

{
    "@id": "dtmi:azureiot:Thermostat:CustomerName",
    "@type": [
        "Property",
        "Cloud",
        "StringValue"
    ],
    "displayName": {
        "en": "Customer Name"
    },
    "name": "CustomerName",
    "schema": "string"
}

Telemetri

IoT Central, cihaz görünümlerinde ve grafiklerde telemetriyi görüntülemenize ve eşiklere ulaşıldığında eylemleri tetikleme kurallarını kullanmanıza olanak tanır. IoT Central, telemetri değerlerinin nasıl görüntüleneceğini belirlemek için cihaz modelindeki veri türleri, birimler ve görünen adlar gibi bilgileri kullanır. Telemetri değerlerini uygulama ve kişisel panolarda da görüntüleyebilirsiniz.

Depolama veya Event Hubs gibi diğer hedeflere telemetri akışı yapmak için IoT Central veri dışarı aktarma özelliğini kullanabilirsiniz.

Komutlar

Bir komut varsayılan olarak 30 saniye içinde yürütülmelidir ve komut geldiğinde cihaz bağlanmalıdır. Cihaz zamanında yanıt verirse veya cihaz bağlı değilse, komut başarısız olur.

Komutlar istek parametrelerine sahip olabilir ve yanıt döndürebilir.

Çevrimdışı komutlar

Cihaz şablonundaki bir komut için Çevrimdışıysa kuyruk seçeneğini etkinleştirerek cihaz şu anda çevrimdışıysa kuyruk komutlarını seçebilirsiniz.

Çevrimdışı komutlar, çözümünüzden cihaza tek yönlü bildirimlerdir. Çevrimdışı komutların istek parametreleri olabilir ancak yanıt döndürmez.

Not

Çevrimdışı komutlar, modeli DTDL olarak dışarı aktarıyorsanız olarak durable işaretlenir.

Çevrimdışı komutlar, komutu ve yükü cihaza göndermek için IoT Hub buluttan cihaza iletilerini kullanır.

Cihazın aldığı iletinin yükü, parametresinin ham değeridir. adlı method-name özel bir özellik, IoT Central komutunun adını depolar. Aşağıdaki tabloda bazı örnek yükler gösterilmektedir:

IoT Central istek şeması Cihaz tarafından alınan örnek yük
İstek parametresi yok @
Çift 1.23
String sample string
Object {"StartTime":"2021-01-05T08:00:00.000Z","Bank":2}

Bir cihaz modelinden alınan aşağıdaki kod parçacığı, komutun tanımını gösterir. Komutun datetime alanı ve numaralandırması olan bir nesne parametresi vardır:

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

Önceki kod parçacığındaki komutun cihaz şablonu kullanıcı arabiriminde Sıra çevrimdışıysa seçeneğini etkinleştirirseniz, cihazın aldığı ileti aşağıdaki özellikleri içerir:

Özellik adı Örnek değer
custom_properties {'method-name': 'GenerateDiagnostics'}
data {"StartTime":"2021-01-05T08:00:00.000Z","Bank":2}

Görünümler

Çözüm geliştiricisi, operatörlerin bağlı cihazları izlemesine ve yönetmesine olanak sağlayan görünümler oluşturur. Görünümler cihaz şablonunun bir parçasıdır, bu nedenle görünüm belirli bir cihaz türüyle ilişkilendirilir. Bir görünüm şunları içerebilir:

  • Telemetriyi çizmek için grafikler.
  • Salt okunur cihaz özelliklerini görüntülemek için kutucuklar.
  • Operatörün yazılabilir cihaz özelliklerini düzenlemesine izin vermek için kutucuklar.
  • Operatörün bulut özelliklerini düzenlemesine olanak sağlamak için kutucuklar.
  • Operatörün yük bekleyen komutlar da dahil olmak üzere komutları çağırmasına izin veren kutucuklar.
  • Etiketleri, resimleri veya markdown metnini görüntülemek için kutucuklar.

Sonraki adımlar

Cihaz şablonları hakkında bilgi edindiğinize göre, bir cihazın IoT Central ile yaptığı veriler hakkında daha fazla bilgi edinmek için Telemetri, özellik ve komut yüklerini okumak önerilen bir sonraki adımdır.