IoT Hub ve IoT Tak Çalıştır için Cihaz Güncelleştirmesi
IoT Hub için Cihaz Güncelleştirmesi, havadan güncelleştirme özelliğine sahip cihazları bulmak ve yönetmek için IoT Tak Çalıştır kullanır. Cihaz Güncelleştirme hizmeti, IoT Tak Çalıştır arabirimleri kullanarak cihazlara ve cihazlardan özellik ve ileti gönderir ve alır.
Daha fazla bilgi için:
- IoT Tak Çalıştır cihaz istemcisini anlama.
- Cihaz Güncelleştirme aracısının nasıl uygulandığını görün.
Cihaz Güncelleştirme Modelleri
Model Kimliği, akıllı cihazların özelliklerini IoT Tak Çalıştır ile Azure IoT uygulamalarına tanıtma yöntemidir. Azure IoT uygulamalarına özelliklerini tanıtacak akıllı cihazlar oluşturma hakkında daha fazla bilgi edinmek için cihaz geliştirici kılavuzu IoT Tak Çalıştır ziyaret edin.
IoT Hub için Cihaz Güncelleştirmesi, IoT Tak Çalıştır akıllı cihazın cihaz bağlantısının bir parçası olarak model kimliğini duyurmasını gerektirir. Model kimliğini nasıl duyuracağınızı öğrenin.
Cihaz Güncelleştirmesi'nde DU özelliklerini destekleyen birkaç PnP modeli tanımlanmıştır. Cihaz Güncelleştirmesi modeli, 'dtmi:azure:iot:deviceUpdateContractModel; 3', temel işlevselliği destekler ve cihazlara güncelleştirme eylemleri ve meta veriler göndermek ve cihazlardan güncelleştirme durumunu almak için cihaz güncelleştirme çekirdek arabirimini kullanır.
Desteklenen diğer model ise dtmi:azure:iot:deviceUpdateModel; deviceUpdateContractModel'i genişleten 3; 3 ve ayrıca cihaz özelliklerini ve bilgilerini gönderen ve tanılama özelliklerini etkinleştiren diğer PnP arabirimlerini kullanır. [Cihaz Güncelleştirme Modelleri ve Arabirim Sürümleri] (https://github.com/Azure/iot-plugandplay-models/tree/main/dtmi/azure/iot) hakkında daha fazla bilgi edinin.
Cihaz Güncelleştirme aracısı dtmi:azure:iot:deviceUpdateModel; 1.1.0 sürümündeki tüm en son özellikleri destekleyen 3. Bu model V5 bildirim sürümünü destekler. Eski bildirimler en son aracılarla çalışır ancak yeni özellikler için en son bildirim sürümünün kullanılması gerekir.
Aracı meta verileri
Cihaz Güncelleştirme aracısı, Cihaz Güncelleştirme hizmetlerine bilgi göndermek için aracı meta veri alanlarını kullanır.
Veri Akışı Adı | Şema | Yön | Açıklama | Örnek |
---|---|---|---|---|
deviceProperties | Harita | cihazdan buluta | Üretici, model ve diğer cihaz bilgilerini içeren özellikler kümesi. | Ayrıntılar için Cihaz özellikleri bölümüne bakın. |
compatPropertyNames | Dize (virgülle ayrılmış) | cihazdan buluta | Cihaz, güncelleştirme dağıtımını hedeflemek için cihazın uyumluluğunu denetlemek için kullanılan özellikleri bildirdi. Beş cihaz özelliğiyle sınırlıdır. | "compatPropertyNames": "manufacturer,model" |
lastInstallResult | Harita | cihazdan buluta | Aracı tarafından bildirilen sonuç. Ana güncelleştirme ve diğer adım güncelleştirmeleri için sonuç kodunu, genişletilmiş sonuç kodunu ve sonuç ayrıntılarını içerir. | |
Resultcode | integer | cihazdan buluta | Son güncelleştirme eyleminin sonucu hakkında bilgi içeren bir kod. Başarı veya başarısızlık için doldurulabilir. | 700 |
extendedResultCode | integer | cihazdan buluta | Sonuç hakkında ek bilgiler içeren bir kod. Başarı veya başarısızlık için doldurulabilir. | 0x80004005 |
resultDetails | Dize | cihazdan buluta | Ek sonuç ayrıntıları sağlamak için müşteri tanımlı serbest form dizesi. Ayrıştırmadan ikize döndürülür | |
stepResults | map | cihazdan buluta | Sonuç kodu, genişletilmiş sonuç kodu ve adım güncelleştirmeleri için sonuç ayrıntılarını içeren aracı tarafından bildirilen sonuç. | "step_1": { "resultCode": 0,"extendedResultCode": 0, "resultDetails": ""} |
semt | integer | cihazdan buluta | Cihaz Güncelleştirme aracısının geçerli durumunu gösteren tamsayı. | Ayrıntılar için Durum bölümüne bakın. |
iş akışı | complex | cihazdan buluta | Aracının şu anda hangi dağıtımda çalıştığını, geçerli dağıtımın kimliğini ve hizmetten aracıya gönderilen tüm yeniden deneme isteklerini onaylayan bir değer kümesi. Dağıtım iptal edildikten sonra iş akışı kimliğinin bir "nodeployment" değeri bildirdiğini unutmayın. | "workflow": {"action": 3,"ID": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01","retryTimestamp": "2022-01-26T11:33:29.9680598Z"} |
installedUpdateId | Dize | cihazdan buluta | Şu anda yüklü olan güncelleştirmenin kimliği (Cihaz Güncelleştirmesi aracılığıyla). Bu değer, Cihaz Güncelleştirmesi aracılığıyla hiç güncelleştirme almamış bir cihaz için Güncelleştirme Kimliği JSON veya null değerini yakalayan bir dizedir. | installedUpdateID{"provider":"contoso","name":"image-update","version":"1.0.0"}" |
Cihaz özellikleri
deviceProperties alanı, bir cihazın üretici ve model bilgilerini içerir.
Veri Akışı Adı | Şema | Yön | Açıklama |
---|---|---|---|
üretici | Dize | cihazdan buluta | aracılığıyla bildirilen deviceProperties cihazın cihaz üreticisi. Bu özellik iki yerden birinden okunur. İlk olarak DeviceUpdateCore arabirimi Yapılandırma dosyasından 'aduc_manufacturer' değerini okumaya çalışır. Değer yapılandırma dosyasında doldurulmazsa, varsayılan olarak ADUC_DEVICEPROPERTIES_MANUFACTURER için derleme zamanı tanımını raporlamak olur. Bu özellik yalnızca önyükleme zamanında bildirilir. Varsayılan değer: 'Contoso'. |
model | Dize | cihazdan buluta | aracılığıyla bildirilen deviceProperties cihazın cihaz modeli. Bu özellik iki yerden birinden okunur. İlk olarak DeviceUpdateCore arabirimi Yapılandırma dosyasından 'aduc_model' değerini okumaya çalışır. Değer yapılandırma dosyasında doldurulmazsa, varsayılan olarak ADUC_DEVICEPROPERTIES_MODEL için derleme zamanı tanımını raporlamak olur. Bu özellik yalnızca önyükleme zamanında bildirilir. Varsayılan değer: 'Video' |
contractModelId | Dize | cihazdan buluta | Bu özellik, aracıyı yönetmek ve aracıyla iletişim kurmak için Cihaz Güncelleştirme aracısı tarafından kullanılan temel model sürümünü tanımlamak için hizmet tarafından kullanılır. Değer: 'dtmi:azure:iot:deviceUpdateContractModel; DU aracısı sürüm 1.1.0 kullanan cihazlar için 3'. Not: 'dtmi:azure:iot:deviceUpdateModel' kullanan aracılar; 2' contractModelId değerini 'dtmi:azure:iot:deviceUpdateContractModel; 3' as deviceUpdateModel; 3, deviceUpdateContractModel'den genişletilmiştir; 3 |
aduVer | Dize | cihazdan buluta | Cihazda çalışan Cihaz Güncelleştirme aracısının sürümü. Bu değer yalnızca derleme sırasında ENABLE_ADU_TELEMETRY_REPORTING 1 (true) olarak ayarlandığında derlemeden okunur. Müşteriler, değeri 0 (false) olarak ayarlayarak sürüm raporlamasını geri çevirmeyi tercih edebilir. Cihaz Güncelleştirme aracısı özelliklerini özelleştirme. |
Dover | Dize | cihazdan buluta | Cihazda çalışan Teslim İyileştirme aracısının sürümü. Değer derlemeden yalnızca derleme sırasında ENABLE_ADU_TELEMETRY_REPORTING 1 (true) olarak ayarlanmışsa okunur. Müşteriler, değeri 0 (false) olarak ayarlayarak sürüm raporlamasını geri çevirmeyi tercih edebilir. Teslim İyileştirme aracısı özelliklerini özelleştirme. |
Özel uyumluluk Özellikleri | Kullanıcı Tanımlı | cihazdan buluta | Uygulayıcı, güncelleştirme dağıtımını hedeflerken uyumluluk denetimi için kullanılacak diğer cihaz özelliklerini tanımlayabilir. |
IoT Hub cihaz ikizi örneği:
"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\"}"
},
Not
Cihazın veya modülün {"__t": "c"}
, öğenin bir bileşene başvurduğunu belirtmek için işaretçiyi eklemesi gerekir. Daha fazla bilgi için bkz. IoT Tak Çalıştır kuralları.
Durum
Durum alanı, Cihaz Güncelleştirmesi hizmetinden bir eylem aldıktan sonra Cihaz Güncelleştirmesi (DU) aracısı tarafından bildirilen durumdur. Durum, Cihaz Güncelleştirme hizmetinden Cihaz Güncelleştirmesi aracısına gönderilen bir Eyleme yanıt olarak bildirilir (ayrıntılar için eylem bölümüne bakın). Cihaz Güncelleştirme hizmeti ile Cihaz Güncelleştirmesi aracısı arasında akan istekler hakkında daha fazla bilgi için genel bakış iş akışına bakın.
Veri Akışı Adı | Değer | Açıklama |
---|---|---|
Boş | 0 | Cihaz, Cihaz Güncelleştirme hizmetinden bir eylem almaya hazırdır. Başarılı bir güncelleştirmeden sonra durum duruma döndürülür Idle . |
DeploymentInprogress | 6 | Dağıtım devam ediyor. |
Başarısız | 255 | Güncelleştirme sırasında bir hata oluştu. |
İndirilenler | 2 | Başarılı bir indirme. Bu durum yalnızca aracı sürümü 0.7.0 veya daha eski olan cihazlar tarafından bildirilir. |
InstallSucceeded | 4 | Başarılı bir yükleme. Bu durum yalnızca aracı sürümü 0.7.0 veya daha eski olan cihazlar tarafından bildirilir. |
Hizmet meta verileri
Hizmet meta verileri, Cihaz Güncelleştirme hizmetlerinin Cihaz Güncelleştirmesi aracısına eylem ve veri iletmek için kullandığı alanları içerir.
Veri Akışı Adı | Şema | Yön | Açıklama |
---|---|---|---|
eylem | integer | buluttan cihaza | Aracının gerçekleştirmesi gereken bir eyleme karşılık gelen tamsayı. Ayrıntılar için Eylem bölümüne bakın. |
Updatemanifest | Dize | buluttan cihaza | Güncelleştirmenin içeriğini açıklamak için kullanılır. İçeri Aktarma bildiriminden oluşturulur. |
updateManifestSignature | JSON Nesnesi | buluttan cihaza | Kaynak doğrulama için kullanılan JSON Web Anahtarları ile JSON Web İmzası (JWS). |
fileUrls | Harita | buluttan cihaza | ile eşle FileID DownloadUrl . Aracıya hangi dosyaların indirildiğini ve dosyaların doğru indirildiğini doğrulamak için kullanılacak karmayı bildirir. |
Eylem
Eylem alanı, Cihaz Güncelleştirme hizmeti tarafından açıklandığı gibi Cihaz Güncelleştirmesi aracısı tarafından gerçekleştirilen eylemleri temsil eder. Cihaz Güncelleştirme aracısı, alınan eylemi işlemek için bir durum bildirir. Cihaz Güncelleştirme hizmeti ile Cihaz Güncelleştirmesi aracısı arasında akan istekler hakkında daha fazla bilgi için genel bakış iş akışına bakın.
Veri Akışı Adı | Değer | Açıklama |
---|---|---|
applyDeployment | 3 | Güncelleştirmeyi uygulayın. Dağıtılan güncelleştirmeyi uygulamak için cihaza sinyal gönderir |
İptal | 255 | Geçerli eylemi işlemeyi durdurun ve öğesine Idle geri dönün veya durumundaki Failed bir aracıya öğesine geri Idle dönmesini söyleyin. |
download | 0 | Yayımlanan içeriği veya güncelleştirmeyi ve gereken diğer içerikleri indirin. Bu eylem yalnızca aracı sürümü 0.7.0 veya daha eski olan cihazlara gönderilir. |
yükle | 1 | İçeriği veya güncelleştirmeyi yükleyin. Bu eylem genellikle içerik veya güncelleştirme için yükleyiciyi çağırmak anlamına gelir. Bu eylem yalnızca aracı sürümü 0.7.0 veya daha eski olan cihazlara gönderilir. |
apply | 2 | Güncelleştirmeyi sonlandırın. Gerekirse sistemin yeniden başlatılmasını bildirir. Bu eylem yalnızca aracı sürümü 0.7.0 veya daha eski olan cihazlara gönderilir. |
Cihaz bilgileri arabirimi
Cihaz bilgileri arabirimi, IoT Tak Çalıştır mimarisinde kullanılan bir kavramdır. Cihazın donanım ve işletim sistemi hakkında bilgi sağlayan cihazdan buluta özellikleri içerir. IoT Hub için Cihaz Güncelleştirmesi, telemetri ve tanılama için ve DeviceInformation.model
özelliklerini kullanırDeviceInformation.manufacturer
. Daha fazla bilgi edinmek için cihaz bilgileri arabiriminin bu örneğine bakın.
Modelinizde beklenen bileşen adı, bu arabirim uygulandığında deviceInformation değeridir. Azure IoT Tak Çalıştır Bileşenleri hakkında bilgi edinin
Adı | Tip | Şema | Yön | Açıklama | Örnek |
---|---|---|---|---|---|
üretici | Özellik | Dize | cihazdan buluta | Cihaz üreticisinin şirket adı. Bu özellik, özgün ekipman üreticisinin (OEM) adıyla aynı olabilir. | Contoso |
model | Özellik | Dize | cihazdan buluta | Cihaz modeli adı veya kimliği. | IoT Edge Cihazı |
swVersion | Özellik | Dize | cihazdan buluta | Cihazınızdaki yazılımın sürümü. swVersion, üretici yazılımınızın sürümü olabilir. | 4.15.0-122 |
osName | Özellik | Dize | cihazdan buluta | Cihazdaki işletim sisteminin adı. | Ubuntu Server 18.04 |
processorArchitecture | Özellik | Dize | cihazdan buluta | Cihazdaki işlemcinin mimarisi. | ARM64 |
processorManufacturer | Özellik | Dize | cihazdan buluta | Cihazdaki işlemci üreticisinin adı. | Microsoft |
toplam Depolama | Özellik | Dize | cihazdan buluta | Cihazda kilobayt cinsinden toplam kullanılabilir depolama alanı. | 2048 |
totalMemory | Özellik | Dize | cihazdan buluta | Cihazda kilobayt cinsinden toplam kullanılabilir bellek. | Kategori 256 |