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:
- Informacje o kliencie urządzenia IoT Plug and Play.
- Zobacz, jak zaimplementowano agenta usługi Device Update.
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 deviceProperties polecenia . 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 FileID DownloadUrl . 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 Idle elementu lub poinformuj agenta w Failed stanie, aby wrócić do Idle elementu . |
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.