Co to są szablony urządzeń?

Szablon urządzenia w usłudze Azure IoT Central to strategia, która definiuje cechy i zachowania typu urządzenia, które łączy się z aplikacją. Na przykład szablon urządzenia definiuje dane telemetryczne wysyłane przez urządzenie, aby usługa IoT Central mogła tworzyć wizualizacje korzystające z prawidłowych jednostek i typów danych.

Konstruktor rozwiązań dodaje szablony urządzeń do aplikacji usługi IoT Central. Deweloper urządzenia zapisuje kod urządzenia, który implementuje zachowania zdefiniowane w szablonie urządzenia. Aby dowiedzieć się więcej o danych wymienianych przez urządzenie za pomocą usługi IoT Central, zobacz Telemetria, właściwość i ładunki poleceń.

Szablon urządzenia zawiera następujące sekcje:

  • Model urządzenia. Ta część szablonu urządzenia definiuje sposób interakcji urządzenia z aplikacją. Każdy model urządzenia ma unikatowy identyfikator. Deweloper urządzenia implementuje zachowania zdefiniowane w modelu.
    • Składnik główny. Każdy model urządzenia ma składnik główny. Interfejs głównego składnika opisuje możliwości specyficzne dla modelu urządzenia.
    • Elementy. Model urządzenia może zawierać składniki oprócz składnika głównego w celu opisania możliwości urządzenia. Każdy składnik ma interfejs opisujący możliwości składnika. Interfejsy składników mogą być ponownie używane w innych modelach urządzeń. Na przykład kilka modeli urządzeń telefonicznych może używać tego samego interfejsu aparatu.
    • Dziedziczone interfejsy. Model urządzenia zawiera co najmniej jeden interfejs, który rozszerza możliwości składnika głównego.
  • Wyświetlenia. Ta część szablonu urządzenia umożliwia deweloperowi rozwiązania definiowanie wizualizacji w celu wyświetlania danych z urządzenia oraz formularzy do zarządzania urządzeniem i kontrolowania go. Widoki nie mają wpływu na kod zapisywany przez dewelopera urządzenia w celu zaimplementowania modelu urządzenia.

Przypisywanie urządzenia do szablonu urządzenia

Aby urządzenie wchodziło w interakcję z usługą IoT Central, musi zostać przypisane do szablonu urządzenia. To przypisanie odbywa się na jeden z czterech sposobów:

  • Podczas rejestrowania urządzenia na stronie Urządzenia można zidentyfikować szablon, którego powinno używać urządzenie.
  • Podczas zbiorczego importowania listy urządzeń można wybrać szablon urządzenia, którego powinny używać wszystkie urządzenia na liście.
  • Po nawiązaniu połączenia można ręcznie przypisać nieprzypisane urządzenie do szablonu urządzenia.
  • Urządzenie można automatycznie przypisać do szablonu urządzenia, wysyłając identyfikator modelu po pierwszym połączeniu urządzenia z aplikacją.

Automatyczne przypisywanie

Usługa IoT Central może automatycznie przypisywać urządzenie do szablonu urządzenia podczas nawiązywania połączenia z urządzeniem. Urządzenie powinno wysłać identyfikator modelu podczas nawiązywania połączenia. Usługa IoT Central używa identyfikatora modelu do identyfikowania szablonu urządzenia dla tego konkretnego modelu urządzenia. Proces odnajdywania działa w następujący sposób:

  1. Jeśli szablon urządzenia został już opublikowany w aplikacji usługi IoT Central, urządzenie zostanie przypisane do szablonu urządzenia.

  2. Jeśli szablon urządzenia nie został jeszcze opublikowany w aplikacji usługi IoT Central, usługa IoT Central wyszukuje model urządzenia w repozytorium modelu urządzeń publicznych. Jeśli usługa IoT Central znajdzie model, używa go do generowania podstawowego szablonu urządzenia.

  3. Jeśli usługa IoT Central nie znajdzie modelu w repozytorium modelu publicznego, urządzenie zostanie oznaczone jako Nieprzypisane. Operator może wykonywać następujące czynności:

    • Utwórz szablon urządzenia dla urządzenia, a następnie zmigruj nieprzypisane urządzenie do nowego szablonu urządzenia.
    • Automatycznie wygeneruj szablon urządzenia na podstawie danych wysyłanych przez urządzenie.

Poniższy zrzut ekranu przedstawia sposób wyświetlania identyfikatora modelu szablonu urządzenia w usłudze IoT Central. W szablonie urządzenia wybierz składnik, a następnie wybierz pozycję Edytuj tożsamość:

Zrzut ekranu przedstawiający identyfikator modelu w szablonie urządzenia termostatu.

Model termostatu można wyświetlić w repozytorium modelu publicznego. Definicja identyfikatora modelu wygląda następująco:

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

Użyj następującego ładunku usługi DPS, aby przypisać urządzenie do szablonu urządzenia:

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

Aby dowiedzieć się więcej o ładunku usługi DPS, zobacz przykładowy kod używany w artykule Samouczek: tworzenie i łączenie aplikacji klienckiej z aplikacją usługi Azure IoT Central.

Modele urządzeń

Model urządzenia definiuje sposób interakcji urządzenia z aplikacją usługi IoT Central. Deweloper urządzenia musi upewnić się, że urządzenie implementuje zachowania zdefiniowane w modelu urządzenia, aby usługa IoT Central mogła monitorować urządzenie i zarządzać nim. Model urządzenia składa się z co najmniej jednego interfejsu, a każdy interfejs może definiować kolekcję typów telemetrii , właściwości urządzeń i poleceń. Deweloper rozwiązań może wykonywać następujące czynności:

  • Zaimportuj plik JSON, który definiuje kompletny model urządzenia lub pojedynczy interfejs do szablonu urządzenia.
  • Użyj internetowego interfejsu użytkownika w usłudze IoT Central, aby utworzyć lub edytować model urządzenia.

Uwaga

Usługa IoT Central akceptuje dowolny prawidłowy ładunek JSON z urządzenia, ale może używać danych tylko do wizualizacji, jeśli pasuje do definicji w modelu urządzenia. Możesz wyeksportować dane, które nie są zgodne z definicją, zobacz Eksportowanie danych IoT do miejsc docelowych w chmurze przy użyciu usługi Blob Storage.

Aby dowiedzieć się więcej na temat edytowania modelu urządzenia, zobacz Edytowanie istniejącego szablonu urządzenia

Deweloper rozwiązań może również wyeksportować plik JSON z szablonu urządzenia, który zawiera kompletny model urządzenia lub pojedynczy interfejs. Deweloper urządzenia może użyć tego dokumentu JSON, aby zrozumieć, jak urządzenie powinno komunikować się z aplikacją usługi IoT Central.

Plik JSON definiujący model urządzenia korzysta z języka DTDL (Digital Twin Definition Language) w wersji 2. Usługa IoT Central oczekuje, że plik JSON będzie zawierać model urządzenia z interfejsami zdefiniowanymi w tekście, a nie w oddzielnych plikach. Modele utworzone w usłudze IoT Central mają zdefiniowany kontekst dtmi:iotcentral:context;2 wskazujący, że model został utworzony w usłudze IoT Central:

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

Aby dowiedzieć się więcej na temat modeli DTDL, zobacz Przewodnik modelowania technologii IoT Plug and Play.

Uwaga

Usługa IoT Central definiuje niektóre rozszerzenia języka DTDL w wersji 2. Aby dowiedzieć się więcej, zobacz Rozszerzenie usługi IoT Central.

Właściwości

Domyślnie właściwości są tylko do odczytu. Właściwości tylko do odczytu oznaczają, że urządzenie zgłasza aktualizacje wartości właściwości do aplikacji usługi IoT Central. Aplikacja usługi IoT Central nie może ustawić wartości właściwości tylko do odczytu.

Właściwość można również oznaczyć jako zapisywalną w interfejsie. Urządzenie może otrzymać aktualizację właściwości zapisywalnej z aplikacji usługi IoT Central i zaktualizować wartość właściwości raportu do aplikacji.

Urządzenia nie muszą być połączone, aby ustawić wartości właściwości. Zaktualizowane wartości są przenoszone po następnym połączeniu urządzenia z aplikacją. To zachowanie ma zastosowanie zarówno do właściwości tylko do odczytu, jak i zapisywalnych.

Nie używaj właściwości do wysyłania danych telemetrycznych z urządzenia. Na przykład właściwość readonly, taka jak temperatureSetting=80 powinna oznaczać, że temperatura urządzenia została ustawiona na 80, a urządzenie próbuje dostać się do lub pozostać w tej temperaturze.

W przypadku właściwości zapisywalnych aplikacja urządzenia zwraca kod stanu żądanego stanu, wersję i opis, aby wskazać, czy odebrała i zastosowała wartość właściwości.

Właściwości chmury

Możesz również dodać właściwości chmury do głównego składnika modelu. Właściwości chmury umożliwiają określenie wszystkich metadanych urządzenia do przechowywania w aplikacji usługi IoT Central. Wartości właściwości w chmurze są przechowywane w aplikacji usługi IoT Central i nigdy nie są synchronizowane z urządzeniem. Właściwości chmury nie mają wpływu na kod zapisywany przez dewelopera urządzenia w celu zaimplementowania modelu urządzenia.

Deweloper rozwiązań może dodać właściwości chmury do widoków urządzeń i formularzy wraz z właściwościami urządzenia, aby umożliwić operatorowi zarządzanie urządzeniami połączonymi z aplikacją. Deweloper rozwiązań może również używać właściwości chmury w ramach definicji reguły, aby wartość progowa mogła być edytowana przez operatora.

Poniższy fragment kodu DTDL przedstawia przykładową definicję właściwości chmury:

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

Telemetria

Usługa IoT Central umożliwia wyświetlanie danych telemetrycznych w widokach i wykresach urządzeń oraz używanie reguł do wyzwalania akcji po osiągnięciu progów. Usługa IoT Central używa informacji w modelu urządzenia, takich jak typy danych, jednostki i nazwy wyświetlane, w celu określenia sposobu wyświetlania wartości telemetrycznych. Możesz również wyświetlać wartości telemetryczne na osobistych pulpitach nawigacyjnych aplikacji i aplikacji.

Za pomocą funkcji eksportowania danych usługi IoT Central można przesyłać strumieniowo dane telemetryczne do innych miejsc docelowych, takich jak magazyn lub event hubs.

Polecenia

Polecenie musi zostać wykonane domyślnie w ciągu 30 sekund, a urządzenie musi być połączone po nadejściu polecenia. Jeśli urządzenie odpowiada w czasie lub urządzenie nie jest połączone, polecenie zakończy się niepowodzeniem.

Polecenia mogą mieć parametry żądania i zwracać odpowiedź.

Polecenia w trybie offline

Polecenia kolejki można wybrać, jeśli urządzenie jest obecnie w trybie offline, włączając opcję Kolejka, jeśli w trybie offline dla polecenia w szablonie urządzenia.

Polecenia w trybie offline to jednokierunkowe powiadomienia do urządzenia z rozwiązania. Polecenia w trybie offline mogą mieć parametry żądania, ale nie zwracają odpowiedzi.

Uwaga

Polecenia w trybie offline są oznaczane tak, jakby durable model był eksportowany jako DTDL.

Polecenia w trybie offline używają komunikatów z chmury do urządzenia usługi IoT Hub w celu wysłania polecenia i ładunku do urządzenia.

Ładunek komunikatu odbieranego przez urządzenie to nieprzetworzona wartość parametru. Właściwość niestandardowa o nazwie method-name przechowuje nazwę polecenia usługi IoT Central. W poniższej tabeli przedstawiono przykładowe ładunki:

Schemat żądania usługi IoT Central Przykładowy ładunek odebrany przez urządzenie
Brak parametru żądania @
Liczba rzeczywista 1.23
String sample string
Objekt {"StartTime":"2021-01-05T08:00:00.000Z","Bank":2}

Poniższy fragment kodu z modelu urządzenia przedstawia definicję polecenia. Polecenie ma parametr obiektu z polem datetime i wyliczeniem:

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

Jeśli włączysz opcję Kolejka, jeśli tryb offline w interfejsie użytkownika szablonu urządzenia dla polecenia w poprzednim fragmencie kodu, otrzymany komunikat zawiera następujące właściwości:

Nazwa właściwości Przykładowa wartość
custom_properties {'method-name': 'GenerateDiagnostics'}
data {"StartTime":"2021-01-05T08:00:00.000Z","Bank":2}

Widoki

Deweloper rozwiązań tworzy widoki, które umożliwiają operatorom monitorowanie połączonych urządzeń i zarządzanie nimi. Widoki są częścią szablonu urządzenia, więc widok jest skojarzony z określonym typem urządzenia. Widok może obejmować:

  • Wykresy do wykreślinia danych telemetrycznych.
  • Kafelki do wyświetlania właściwości urządzenia tylko do odczytu.
  • Kafelki umożliwiające operatorowi edytowanie zapisywalnych właściwości urządzenia.
  • Kafelki, które umożliwiają operatorowi edytowanie właściwości chmury.
  • Kafelki umożliwiające operatorowi wywoływanie poleceń, w tym poleceń, które oczekują ładunku.
  • Kafelki do wyświetlania etykiet, obrazów lub tekstu markdown.

Następne kroki

Teraz, po zapoznaniu się z szablonami urządzeń, sugerowanym następnym krokiem jest odczytanie danych telemetrycznych, właściwości i ładunków poleceń, aby dowiedzieć się więcej o danych wymienianych przez urządzenie z usługą IoT Central.