Aktualizacja urządzenia dla usług IoT Hub i IoT Plug and Play

Usługa Device Update dla usługi IoT Hub używa technologii IoT Plug and Play do odnajdywania urządzeń obsługujących aktualizację za pośrednictwem powietrza i zarządzania nimi. Usługa Device Update wysyła i odbiera właściwości oraz komunikaty do i z urządzeń przy użyciu interfejsów IoT Plug and Play.

Więcej informacji można znaleźć na stronie

  • Zapoznaj się z klientem urządzenia IoT Plug and Play.
  • Zobacz, jak zaimplementowano agenta usługi Device Update.

Modele aktualizacji urządzeń

Identyfikator modelu to sposób, w jaki inteligentne urządzenia anonsują swoje możliwości w aplikacjach usługi Azure IoT za pomocą usługi IoT Plug i Play.To dowiedzieć się więcej na temat tworzenia inteligentnych urządzeń w celu anonsowania ich możliwości w aplikacjach usługi Azure IoT, odwiedź przewodnik dewelopera rozwiązań IoT Plug and Play.

Aktualizacja urządzenia dla usługi IoT Hub wymaga, aby inteligentne urządzenie IoT Plug and Play ogłosiło identyfikator modelu w ramach połączenia urządzenia. Dowiedz się, jak ogłosić identyfikator modelu.

W usłudze Device Update zdefiniowano kilka modeli PnP, które obsługują funkcje DU. Model aktualizacji urządzeń "dtmi:azure:iot:deviceUpdateContractModel; 3" obsługuje podstawowe funkcje i używa podstawowego interfejsu aktualizacji urządzenia do wysyłania akcji aktualizacji i metadanych do urządzeń i odbierania stanu aktualizacji z urządzeń.

Innym obsługiwanym modelem jest dtmi:azure:iot:deviceUpdateModel; 3 , które rozszerza model deviceUpdateContractModel; 3 , a także używa innych interfejsów PnP, które wysyłają właściwości i informacje o urządzeniu oraz włączają funkcje diagnostyczne. Dowiedz się więcej o [Modelach aktualizacji urządzeń i wersjach interfejsów] (https://github.com/Azure/iot-plugandplay-models/tree/main/dtmi/azure/iot).

Agent usługi Device Update używa elementu dtmi:azure:iot:deviceUpdateModel; 3 , które obsługuje wszystkie najnowsze funkcje w wersji 1.1.0. Ten model obsługuje wersję manifestu V5. Starsze manifesty będą działać z najnowszymi agentami, ale nowe funkcje wymagają użycia najnowszej wersji manifestu.

Metadane agenta

Agent usługi Device Update używa pól metadanych agenta do wysyłania informacji do usług Device Update.

Nazwisko Schemat Kierunek opis Przykład
deviceProperties Mapowanie urządzenie do chmury Zestaw właściwości, które zawierają informacje o producentach, modelu i innych urządzeniach. Aby uzyskać szczegółowe informacje, zobacz sekcję Właściwości urządzenia.
compatPropertyNames Ciąg (rozdzielony przecinkami) urządzenie do chmury Urządzenie zgłosiło właściwości, które są używane do sprawdzania zgodności urządzenia pod kątem wdrożenia aktualizacji. Ograniczone do pięciu właściwości urządzenia. "compatPropertyNames": "manufacturer,model"
lastInstallResult Mapowanie urządzenie do chmury Wynik zgłoszony przez agenta. Zawiera on kod wyników, rozszerzony kod wyników i szczegóły wyników dla głównej aktualizacji i innych aktualizacji kroków.
resultCode integer urządzenie do chmury Kod zawierający informacje o wyniku ostatniej akcji aktualizacji. Może zostać wypełniony powodzeniem lub niepowodzeniem. 700
extendedResultCode integer urządzenie do chmury Kod zawierający dodatkowe informacje o wyniku. Może zostać wypełniony powodzeniem lub niepowodzeniem. 0x80004005
resultDetails string urządzenie do chmury Dowolny ciąg formularza zdefiniowany przez klienta w celu podania dodatkowych szczegółów wyników. Powrót do bliźniaczej reprezentacji bez analizowania
stepResults map urządzenie do chmury Wynik zgłoszony przez agenta zawierającego kod wyniku, rozszerzony kod wyniku i szczegóły wyniku dotyczące aktualizacji kroków. "step_1": { "resultCode": 0,"extendedResultCode": 0, "resultDetails": ""}
stan integer urządzenie do chmury Liczba całkowita wskazująca bieżący stan agenta usługi Device Update. Aby uzyskać szczegółowe informacje, zobacz sekcję Stan .
przepływ pracy complex urządzenie do chmury Zestaw wartości wskazujących, nad którym wdrożeniem aktualnie pracuje agent, identyfikator bieżącego wdrożenia i potwierdzenie każdego żądania ponawiania próby wysłanego z usługi do agenta. Należy pamiętać, że identyfikator przepływu pracy zgłasza wartość "nodeployment" po anulowaniu wdrożenia. "workflow": {"action": 3,"ID": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01","retryTimestamp": "2022-01-26T11:33:29.9680598Z"}
installedUpdateId string urządzenie do chmury Identyfikator aktualnie zainstalowanej aktualizacji (za pośrednictwem usługi Device Update). Ta wartość to ciąg przechwytujący kod JSON aktualizacji identyfikatora aktualizacji lub wartość null dla urządzenia, które nigdy nie dokonało aktualizacji za pośrednictwem usługi Device Update. installedUpdateID{"provider":"contoso","name":"image-update","version":"1.0.0"}"

Właściwości urządzenia

Pole deviceProperties zawiera informacje o producencie i modelu dla urządzenia.

Nazwisko Schemat Kierunek opis
manufacturer string urządzenie do chmury Producent urządzenia zgłaszany za pośrednictwem devicePropertiespolecenia . Ta właściwość jest odczytywana z jednego z dwóch miejsc — najpierw interfejs DeviceUpdateCore próbuje odczytać wartość "aduc_manufacturer" z pliku konfiguracji. Jeśli wartość nie zostanie wypełniona w pliku konfiguracji, domyślną wartością jest raportowanie definicji czasu kompilacji dla ADUC_DEVICEPROPERTIES_MANUFACTURER. Ta właściwość jest zgłaszana tylko w czasie rozruchu.

Wartość domyślna: "Contoso".
model string urządzenie do chmury Model urządzenia zgłoszony za pośrednictwem devicePropertieselementu . Ta właściwość jest odczytywana z jednego z dwóch miejsc — najpierw interfejs DeviceUpdateCore próbuje odczytać wartość "aduc_model" z pliku konfiguracji. Jeśli wartość nie zostanie wypełniona w pliku konfiguracji, wartość domyślna to raportowanie definicji czasu kompilacji dla ADUC_DEVICEPROPERTIES_MODEL. Ta właściwość jest zgłaszana tylko w czasie rozruchu.

Wartość domyślna: "Wideo"
contractModelId string urządzenie do chmury Ta właściwość jest używana przez usługę do identyfikowania podstawowej wersji modelu używanej przez agenta usługi Device Update do zarządzania agentem i komunikowania się z nim.
Wartość: "dtmi:azure:iot:deviceUpdateContractModel; 3' dla urządzeń korzystających z agenta DU w wersji 1.1.0.
Uwaga: Agenci korzystający z elementu "dtmi:azure:iot:deviceUpdateModel; 2" musi zgłosić identyfikator contractModelId jako "dtmi:azure:iot:deviceUpdateContractModel; 3' jako deviceUpdateModel; 3 zostało rozszerzone z elementu deviceUpdateContractModel; 3
aduVer string urządzenie do chmury Wersja agenta usługi Device Update uruchomionego na urządzeniu. Ta wartość jest odczytywana z kompilacji tylko wtedy, gdy ENABLE_ADU_TELEMETRY_REPORTING jest ustawiona na 1 (true) w czasie kompilacji. Klienci mogą zrezygnować z raportowania wersji, ustawiając wartość 0 (false). Jak dostosować właściwości agenta usługi Device Update.
Dover string urządzenie do chmury Wersja agenta optymalizacji dostarczania uruchomionego na urządzeniu. Wartość jest odczytywana z kompilacji tylko wtedy, gdy ENABLE_ADU_TELEMETRY_REPORTING jest ustawiona na 1 (true) w czasie kompilacji. Klienci mogą zrezygnować z raportowania wersji, ustawiając wartość 0 (false). Jak dostosować właściwości agenta optymalizacji dostarczania.
Właściwości zgodności niestandardowej Zdefiniowane przez użytkownika urządzenie do chmury Implementator może zdefiniować inne właściwości urządzenia, które mają być używane do sprawdzania zgodności podczas określania celu wdrożenia aktualizacji.

Przykład bliźniaczej reprezentacji urządzenia usługi IoT Hub:

"deviceUpdate": {
                "__t": "c",
                "agent": {
                    "deviceProperties": {
                        "manufacturer": "contoso",
                        "model": "virtual-vacuum-v1",
                        "contractModelId": "dtmi:azure:iot:deviceUpdateContractModel;3",
                        "aduVer": "DU;agent/1.1.0",
                        },
                    "compatPropertyNames": "manufacturer,model",
                    "lastInstallResult": {
                        "resultCode": 700,
                        "extendedResultCode": 0,
                        "resultDetails": "",
                        "stepResults": {
                            "step_0": {
                                "resultCode": 700,
                                "extendedResultCode": 0,
                                "resultDetails": ""
                            }
                        }
                    },
                    "state": 0,
                    "workflow": {
                        "action": 3,
                        "id": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01",
                        "retryTimestamp": "2022-01-26T11:33:29.9680598Z"
                    },
                    "installedUpdateId": "{\"provider\":\"Contoso\",\"name\":\"Virtual-Vacuum\",\"version\":\"5.0\"}"
                },

Uwaga

Urządzenie lub moduł musi dodać {"__t": "c"} znacznik, aby wskazać, że element odwołuje się do składnika. Aby uzyskać więcej informacji, zobacz Konwencje IoT Plug and Play.

Stan

Pole Stan to stan zgłaszany przez agenta aktualizacji urządzenia (DU) po otrzymaniu akcji z usługi Device Update. Stan jest zgłaszany w odpowiedzi na akcję (zobacz sekcjęAkcja, aby uzyskać szczegółowe informacje) wysyłany do agenta usługi Device Update z usługi Device Update. Aby uzyskać więcej informacji na temat żądań przepływu między usługą Device Update i agentem usługi Device Update, zobacz przepływ pracy przeglądu.

Nazwa/nazwisko Wartość Opis
Okresy 0 Urządzenie jest gotowe do otrzymania akcji z usługi Device Update. Po pomyślnej aktualizacji stan jest zwracany do Idle stanu.
DeploymentInprogress 6 Wdrożenie jest w toku.
Niepowodzenie 255 Wystąpił błąd podczas aktualizowania.
DownloadSucceed 2 Pomyślne pobranie. Ten stan jest zgłaszany tylko przez urządzenia z agentem w wersji 0.7.0 lub starszej.
InstallSucceeded 100 Pomyślna instalacja. Ten stan jest zgłaszany tylko przez urządzenia z agentem w wersji 0.7.0 lub starszej.

Metadane usługi

Metadane usługi zawierają pola używane przez usługi Device Update do przekazywania akcji i danych agentowi usługi Device Update.

Nazwisko Schemat Kierunek opis
action integer chmura-urządzenie Liczba całkowita odpowiadająca akcji, którą powinien wykonać agent. Aby uzyskać szczegółowe informacje, zobacz sekcję Akcja .
updateManifest string chmura-urządzenie Służy do opisywania zawartości aktualizacji. Wygenerowany na podstawie manifestu importu.
updateManifestSignature Obiekt JSON chmura-urządzenie Sygnatura internetowa JSON (JWS) z kluczami sieci Web JSON używanymi do weryfikacji źródła.
fileUrls Mapowanie chmura-urządzenie Mapuj na FileIDDownloadUrl. Informuje agenta, które pliki mają być pobierane, a skrót do użycia w celu sprawdzenia, czy pliki zostały pobrane poprawnie.

Akcja

Pole akcji reprezentuje akcje wykonywane przez agenta usługi Device Update zgodnie z instrukcją usługi Device Update. Agent usługi Device Update zgłosi stan przetwarzania odebranej akcji. Aby uzyskać więcej informacji na temat żądań przepływu między usługą Device Update i agentem usługi Device Update, zobacz przepływ pracy przeglądu.

Nazwa/nazwisko Wartość Opis
applyDeployment 3 Zastosuj aktualizację. Sygnały do urządzenia w celu zastosowania wdrożonej aktualizacji
Anuluj 255 Zatrzymaj przetwarzanie bieżącej akcji i wróć do Idle, lub poinformuj agenta Failed w stanie, aby wrócić do Idle.
download 0 Pobierz opublikowaną zawartość lub aktualizację i wymaganą inną zawartość. Ta akcja jest wysyłana tylko do urządzeń z agentem w wersji 0.7.0 lub starszej.
instalacja 1 Zainstaluj zawartość lub aktualizację. Zazwyczaj ta akcja oznacza wywołanie instalatora zawartości lub aktualizacji. Ta akcja jest wysyłana tylko do urządzeń z agentem w wersji 0.7.0 lub starszej.
apply 2 Finalizuj aktualizację. W razie potrzeby sygnalizuje ponowne uruchomienie systemu. Ta akcja jest wysyłana tylko do urządzeń z agentem w wersji 0.7.0 lub starszej.

Interfejs informacji o urządzeniu

Interfejs informacyjny urządzenia jest koncepcją używaną w architekturze IoT Plug and Play. Zawiera on właściwości urządzenia do chmury, które zawierają informacje o sprzęcie i systemie operacyjnym urządzenia. Usługa Device Update dla usługi IoT Hub używa DeviceInformation.manufacturer właściwości i DeviceInformation.model do telemetrii i diagnostyki. Aby dowiedzieć się więcej, zobacz ten przykład interfejsu informacji o urządzeniu.

Oczekiwana nazwa składnika w modelu to deviceInformation po zaimplementowaniu tego interfejsu. Dowiedz się więcej o składnikach usługi Azure IoT Plug and Play

Nazwisko Typ Schemat Kierunek opis Przykład
manufacturer Właściwości string urządzenie do chmury Nazwa firmy producenta urządzenia. Ta właściwość może być taka sama jak nazwa producenta oryginalnego sprzętu (OEM). Contoso
model Właściwości string urządzenie do chmury Nazwa lub identyfikator modelu urządzenia. Urządzenie usługi IoT Edge
swVersion Właściwości string urządzenie do chmury Wersja oprogramowania na urządzeniu. swVersion może być wersją oprogramowania układowego. 4.15.0-122
osName Właściwości string urządzenie do chmury Nazwa systemu operacyjnego na urządzeniu. Ubuntu Server 18.04
processorArchitecture Właściwości string urządzenie do chmury Architektura procesora na urządzeniu. ARM64
processorManufacturer Właściwości string urządzenie do chmury Nazwa producenta procesora na urządzeniu. Microsoft
totalStorage Właściwości string urządzenie do chmury Łączna ilość dostępnego miejsca na urządzeniu w kilobajtach. 2048
totalMemory Właściwości string urządzenie do chmury Łączna ilość dostępnej pamięci na urządzeniu w kilobajtach. 256

Następne kroki