Udostępnij za pośrednictwem


Aktualizacja urządzenia dla IoT Hub i IoT Plug and Play

Usługa Device Update dla IoT Hub używa IoT Plug and Play do odnajdywania urządzeń obsługujących aktualizację 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. Aktualizacja urządzenia dla IoT Hub wymaga, aby urządzenia IoT zaimplementowały następujące interfejsy i identyfikator modelu.

Więcej informacji:

Interfejs podstawowy usługi Device Update

Interfejs DeviceUpdateCore służy do wysyłania akcji aktualizacji i metadanych do urządzeń i odbierania stanu aktualizacji z urządzeń. Interfejs DeviceUpdateCore jest podzielony na dwie właściwości obiektu.

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

Metadane agenta

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

Nazwa Schemat Kierunek Opis Przykład
deviceProperties Mapa urządzenie do chmury Zestaw właściwości zawierających 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 używane do sprawdzania zgodności urządzenia w celu wdrożenia aktualizacji. Ograniczone do pięciu właściwości urządzenia. "compatPropertyNames": "producent,model"
lastInstallResult Mapa urządzenie do chmury Wynik zgłoszony przez agenta. Zawiera kod wyniku, kod rozszerzony wyników i szczegóły wyników dla głównej aktualizacji i innych aktualizacji kroków.
resultCode liczba całkowita urządzenie do chmury Kod zawierający informacje o wyniku ostatniej akcji aktualizacji. Może zostać wypełniony pod kątem powodzenia lub niepowodzenia. 700
extendedResultCode liczba całkowita urządzenie do chmury Kod zawierający dodatkowe informacje o wyniku. Może zostać wypełniony pod kątem powodzenia lub niepowodzenia. 0x80004005
resultDetails ciąg 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 (mapa) urządzenie do chmury Wynik zgłoszony przez agenta zawierającego kod wyniku, kod wyników rozszerzony i szczegóły wyników aktualizacji kroków. "step_1": { "resultCode": 0,"extendedResultCode": 0, "resultDetails": ""}
stan liczba całkowita urządzenie do chmury Liczba całkowita wskazująca bieżący stan agenta aktualizacji urządzeń. Aby uzyskać szczegółowe informacje, zobacz sekcję Stan .
przepływ pracy Złożonych urządzenie do chmury Zestaw wartości wskazujący, nad którym wdrożeniem aktualnie pracuje agent, identyfikator bieżącego wdrożenia i potwierdzenie dowolnego żądania ponawiania wysłanego z usługi do agenta. "workflow": {"action": 3,"ID": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01","retryTimestamp": "2022-01-26T11:33:29.9680598Z"}
installedUpdateId ciąg 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 lub wartość null dla urządzenia, które nigdy nie wykonał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 producenta i modelu dla urządzenia.

Nazwa Schemat Kierunek Opis
manufacturer ciąg 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 została wypełniona w pliku konfiguracji, domyślnie jest to raportowanie definicji czasu kompilacji dla ADUC_DEVICEPROPERTIES_MANUFACTURER. Ta właściwość jest zgłaszana tylko w czasie rozruchu.

Wartość domyślna: "Contoso".
model ciąg urządzenie do chmury Model urządzenia zgłoszony za pośrednictwem usługi deviceProperties. 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, domyślnie będzie zgłaszać definicję czasu kompilacji dla ADUC_DEVICEPROPERTIES_MODEL. Ta właściwość jest zgłaszana tylko w czasie rozruchu.

Wartość domyślna: "Wideo"
interfaceId ciąg urządzenie do chmury Ta właściwość jest używana przez usługę do identyfikowania wersji interfejsu używanej przez agenta usługi Device Update. Identyfikator interfejsu jest wymagany przez usługę Device Update, aby zarządzać agentem i komunikować się z nim.

Wartość domyślna: "dtmi:azure:iot:deviceUpdate;1" dla urządzeń korzystających z agenta DU w wersji 0.8.0.
aduVer ciąg 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ść na 0 (fałsz). Jak dostosować właściwości agenta usługi Device Update.
Dover ciąg 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ść na 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 wartości docelowej wdrożenia aktualizacji.

przykład bliźniaczej reprezentacji urządzenia IoT Hub:

"deviceUpdate": {
                "__t": "c",
                "agent": {
                    "deviceProperties": {
                        "manufacturer": "contoso",
                        "model": "virtual-vacuum-v1",
                        "interfaceId": "dtmi:azure:iot:deviceUpdateModel;1",
                        "aduVer": "DU;agent/0.8.0-rc1-public-preview",
                        "doVer": "DU;lib/v0.6.0+20211001.174458.c8c4051,DU;agent/v0.6.0+20211001.174418.c8c4051"
                    },
                    "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 jest stanem zgłaszanym 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) wysłany do agenta aktualizacji urządzenia z usługi Device Update. Aby uzyskać więcej informacji na temat żądań przepływów między usługą Device Update i agentem usługi Device Update, zobacz przepływ pracy przeglądu.

Nazwa 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.
DownloadSucceeded 2 Pomyślne pobranie. Ten stan jest zgłaszany tylko przez urządzenia z agentem w wersji 0.7.0 lub starszej.
InstallSucceeded 4 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 services do przekazywania akcji i danych agentowi usługi Device Update.

Nazwa Schemat Kierunek Opis
action liczba całkowita chmura do urządzenia Liczba całkowita odpowiadająca akcji, którą powinien wykonać agent. Aby uzyskać szczegółowe informacje, zobacz sekcję Akcja .
updateManifest ciąg chmura do urządzenia Służy do opisywania zawartości aktualizacji. Wygenerowane na podstawie manifestu importu.
updateManifestSignature JSON, obiekt chmura do urządzenia Podpis internetowy JSON (JWS) z kluczami sieci Web JSON używanymi do weryfikacji źródła.
fileUrls Mapa chmura do urządzenia Mapuj na FileIDDownloadUrl. Informuje agenta, które pliki mają być pobierane, a skrót do użycia w celu sprawdzenia, czy pliki zostały poprawnie pobrane.

Akcja

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

Nazwa 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 Idleelementu lub poinformuj agenta w Failed stanie, aby wrócić do Idleelementu .
pobieranie 0 Pobierz opublikowaną zawartość lub aktualizację oraz dowolną inną wymaganą zawartość. Ta akcja jest wysyłana tylko do urządzeń z agentem w wersji 0.7.0 lub starszej.
install 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ę. Sygnalizuje ponowne uruchomienie systemu w razie potrzeby. 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 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

Nazwa Typ Schemat Kierunek Opis Przykład
manufacturer Właściwość ciąg 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ąg urządzenie do chmury Nazwa lub identyfikator modelu urządzenia. urządzenie IoT Edge
swVersion Właściwość ciąg 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ąg urządzenie do chmury Nazwa systemu operacyjnego na urządzeniu. Ubuntu Server 18.04
processorArchitecture Właściwość ciąg urządzenie do chmury Architektura procesora na urządzeniu. ARM64
processorManufacturer Właściwość ciąg urządzenie do chmury Nazwa producenta procesora na urządzeniu. Microsoft
totalStorage Właściwość ciąg urządzenie do chmury Łączna ilość dostępnego miejsca na urządzeniu w kilobajtach. 2048
totalMemory Właściwość ciąg urządzenie do chmury Łączna ilość dostępnej pamięci na urządzeniu w kilobajtach. 256

Identyfikator modelu

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

Aktualizacja urządzenia dla IoT Hub wymaga IoT Plug and Play inteligentnego urządzenia do ogłaszania identyfikatora modelu o wartości "dtmi:azure:iot:deviceUpdateModel;1" w ramach połączenia urządzenia. Dowiedz się, jak ogłosić identyfikator modelu.