دوقلوهای دستگاه را در IoT Hub درک و استفاده کنید

ساخت وبلاگ

دوقلوهای دستگاه اسناد JSON هستند که اطلاعات وضعیت دستگاه از جمله ابرداده ، تنظیمات و شرایط را ذخیره می کنند. Azure IoT Hub برای هر دستگاهی که به IoT Hub متصل می شوید ، یک دوقلوی دستگاه را حفظ می کند.

ویژگی های شرح داده شده در این مقاله فقط در ردیف استاندارد IoT Hub موجود است. برای کسب اطلاعات بیشتر در مورد ردیف های اصلی و استاندارد/رایگان IoT Hub ، برای راه حل خود به عنوان IoT Hub Tier مناسب را انتخاب کنید.

در این مقاله توضیح داده شده است:

  • ساختار دستگاه دوقلوی: برچسب ها ، خواص مورد نظر و گزارش شده.
  • عملیاتی که برنامه های دستگاه و انتهای عقب می توانند بر روی دوقلوهای دستگاه انجام دهند.

از دوقلوهای دستگاه استفاده کنید:

ابرداده اختصاصی دستگاه را در ابر ذخیره کنید. به عنوان مثال ، محل استقرار یک دستگاه فروش.

اطلاعات وضعیت فعلی مانند قابلیت ها و شرایط موجود را از برنامه دستگاه خود گزارش دهید. به عنوان مثال ، آیا یک دستگاه به مرکز IoT شما از طریق سلولی یا WiFi متصل است.

همگام سازی وضعیت گردش کار طولانی مدت بین برنامه دستگاه و برنامه Back-End. به عنوان مثال ، هنگامی که Solution Back End نسخه جدید سیستم عامل را برای نصب مشخص می کند ، و برنامه دستگاه مراحل مختلف فرآیند به روزرسانی را گزارش می کند.

از ابرداده ، پیکربندی یا حالت خود استفاده کنید.

برای راهنمایی در مورد استفاده از خصوصیات گزارش شده ، پیام های دستگاه به ابر یا بارگذاری پرونده ، به راهنمایی ارتباطات دستگاه به ابر مراجعه کنید.

برای راهنمایی در مورد استفاده از خصوصیات مورد نظر ، روشهای مستقیم یا پیام های ابر به دستگاه ، به راهنمایی ارتباطات ابر به دستگاه مراجعه کنید.

برای یادگیری چگونگی ارتباط دوقلوهای دستگاه با مدل دستگاه مورد استفاده توسط یک پلاگین و دستگاه بازی Azure IoT ، به درک IoT Plug و بازی دوقلوهای دیجیتال مراجعه کنید.

دوقلوهای دستگاه

دوقلوهای دستگاه اطلاعات مربوط به دستگاه را ذخیره می کنند که:

دستگاه و انتهای عقب می توانند برای همگام سازی شرایط و پیکربندی دستگاه استفاده کنند.

Solution Back End می تواند برای پرس و جو و هدف قرار دادن عملیات طولانی مدت استفاده کند.

چرخه عمر یک دوقلوی دستگاه به هویت دستگاه مربوطه مرتبط است. دوقلوهای دستگاه به طور ضمنی ایجاد می شوند و هنگام ایجاد هویت دستگاه در IoT Hub ایجاد و حذف می شوند.

یک دوقلوی دستگاه یک سند JSON است که شامل موارد زیر است:

برچسب هابخشی از سند JSON که Solution Back End می تواند از آن بخواند و بنویسد. برچسب ها برای برنامه های دستگاه قابل مشاهده نیستند.

خواص مورد نظربه همراه خصوصیات گزارش شده برای همگام سازی پیکربندی یا شرایط دستگاه استفاده می شود. Solution Back End می تواند خصوصیات مورد نظر را تنظیم کند ، و برنامه دستگاه می تواند آنها را بخواند. برنامه دستگاه همچنین می تواند اعلان های تغییرات در خصوصیات مورد نظر را دریافت کند.

خواص گزارش شدهبرای همگام سازی پیکربندی یا شرایط دستگاه به همراه خصوصیات مورد نظر استفاده می شود. برنامه دستگاه می تواند خصوصیات گزارش شده را تنظیم کند ، و انتهای راه حل می تواند آنها را بخواند و پرس و جو کند.

خصوصیات هویت دستگاه. ریشه سند دوقلوی دستگاه Twin JSON شامل خصوصیات خواندنی فقط از هویت دستگاه مربوطه ذخیره شده در رجیستری هویت است. Properties CoectionStateUpdatedTime و GenerationID گنجانده نمی شوند.

مثال زیر یک سند Twin JSON دستگاه را نشان می دهد:

در شیء ریشه خصوصیات هویت دستگاه و اشیاء کانتینر برای برچسب ها و هر دو خاصیت گزارش شده و مورد نظر است. ظروف Properties شامل برخی از عناصر فقط خواندنی (ابرداده $ و نسخه $) است که در بخش ابرداده دوقلوی و بخش های همزمانی خوش بینانه شرح داده شده است.

نمونه املاک گزارش شده

در مثال قبلی ، دوقلوی دستگاه حاوی یک ویژگی battylevel است که توسط برنامه دستگاه گزارش شده است. این ویژگی باعث می شود که بر اساس آخرین سطح باتری گزارش شده ، پرس و جو و کار بر روی دستگاه ها را انجام دهد. مثالهای دیگر شامل قابلیت های دستگاه گزارش دستگاه یا گزینه های اتصال است.

خصوصیات گزارش شده سناریوهایی را که در آن راه حل برگشت به آخرین مقدار شناخته شده یک ملک علاقه مند است ، ساده می کند. در صورت نیاز به پایان راه حل ، از پیام های دستگاه به ابر استفاده کنید.

مثال خاص

در مثال قبلی ، از ویژگی های TelemetryConfig Twin Twin مورد نظر و گزارش شده توسط Solution Back End و برنامه دستگاه برای همگام سازی پیکربندی Telemetry برای این دستگاه استفاده می شود. مثلا:

Solution Back End ویژگی مورد نظر را با مقدار پیکربندی مورد نظر تنظیم می کند. در اینجا بخشی از سند با مجموعه خاصیت مورد نظر است:

در صورت اتصال دستگاه ، برنامه دستگاه بلافاصله از تغییر مطلع می شود. در صورت اتصال ، برنامه دستگاه هنگام اتصال ، جریان اتصال مجدد دستگاه را دنبال می کند. برنامه دستگاه سپس پیکربندی به روز شده (یا یک خطای خطایی را با استفاده از ویژگی وضعیت) گزارش می دهد. در اینجا بخشی از خواص گزارش شده است:

Solution Back End می تواند نتایج عملکرد پیکربندی را در بسیاری از دستگاه ها با پرس و جو دوقلوهای دستگاه ردیابی کند.

قطعه های قبلی نمونه هایی هستند که برای خوانایی بهینه شده اند ، از یک راه برای رمزگذاری پیکربندی دستگاه و وضعیت آن. IoT Hub یک طرح خاص برای دستگاه مورد نظر دوقلو و خواص گزارش شده در دوقلوهای دستگاه تحمیل نمی کند.

IoT Plug and Play یک طرح را تعریف می کند که از چندین ویژگی اضافی برای همگام سازی تغییرات در خصوصیات مورد نظر و گزارش شده استفاده می کند. اگر راه حل شما از IoT Plug و Play استفاده می کند ، هنگام بروزرسانی ویژگی های دوقلوی ، باید کنوانسیون های پلاگین و بازی را دنبال کنید. برای اطلاعات بیشتر و یک مثال ، به ویژگی های قابل نوشتن در IoT Plug and Play مراجعه کنید.

می توانید از دوقلوها برای همگام سازی عملیات طولانی مدت مانند به روزرسانی سیستم عامل استفاده کنید. برای کسب اطلاعات بیشتر در مورد نحوه استفاده از خصوصیات برای همگام سازی و ردیابی یک کار طولانی در دستگاه ها ، به استفاده از ویژگی های مورد نظر برای پیکربندی دستگاه ها مراجعه کنید.

عملیات پشتی

انتهای راه حل با استفاده از عملیات اتمی زیر بر روی دوقلوی دستگاه کار می کند ، در معرض HTTPS قرار می گیرد:

دوقلو دستگاه را با شناسه بازیابی کنید. این عملیات سند دوقلوی دستگاه ، از جمله برچسب ها و خصوصیات سیستم مورد نظر و گزارش شده را برمی گرداند.

تا حدی دوقلوی دستگاه را به روز کنید. این عملیات راه حل برگشت را برای به روزرسانی جزئی برچسب ها یا خصوصیات مورد نظر در یک دوقلوی دستگاه امکان پذیر می کند. به روزرسانی جزئی به عنوان یک سند JSON بیان شده است که هر ویژگی را اضافه یا به روز می کند. خواص تنظیم شده روی تهی حذف می شوند. مثال زیر یک خاصیت مورد نظر جدید را با ارزش ایجاد می کند ، ارزش موجود موجودات موجود را با "OtherNewValue" بازنویسی می کند و OtherOlDProperty را حذف می کند. هیچ تغییر دیگری در خصوصیات یا برچسب های مورد نظر موجود ایجاد نمی شود:

خواص مورد نظر را جایگزین کنید. این عملیات راه حل را قادر می سازد تا تمام خواص مورد نظر موجود را به طور کامل بازنویسی کرده و یک سند جدید JSON را برای خواص/مورد نظر جایگزین کند.

برچسب ها را جایگزین کنید. این عملیات راه حل را قادر می سازد تا تمام برچسب های موجود را به طور کامل بازنویسی کرده و یک سند جدید JSON را برای برچسب ها جایگزین کند.

اعلان های دوقلوی دریافت کنید. این عملیات اجازه می دهد تا هنگام اصلاح دوقلو ، انتهای راه حل به آن اطلاع داده شود. برای انجام این کار ، راه حل IoT شما نیاز به ایجاد یک مسیر و تنظیم منبع داده برابر با TwinChangeEvents دارد. به طور پیش فرض ، چنین مسیری وجود ندارد ، بنابراین هیچ اعلان دوقلو ارسال نمی شود. اگر نرخ تغییر بیش از حد زیاد باشد ، یا به دلایل دیگری مانند خرابی های داخلی ، IoT Hub ممکن است فقط یک اعلان را ارسال کند که حاوی تمام تغییرات باشد. بنابراین ، اگر برنامه شما نیاز به حسابرسی قابل اعتماد و ورود به سیستم تمام حالتهای واسطه دارد ، باید از پیام های دستگاه به ابر استفاده کنید. برای کسب اطلاعات بیشتر در مورد خواص و بدنه های برگشتی در پیام اعلان دوقلوی ، به طرح های رویداد غیرقانونی مراجعه کنید.

تمام عملیات قبلی از همزمانی خوش بینانه پشتیبانی می کنند و به مجوز ServiceCoect نیاز دارند ، همانطور که در کنترل کنترل به IoT HUB تعریف شده است.

علاوه بر این عملیات ، راه حل برگشت می تواند:

دوقلوهای دستگاه را با استفاده از زبان پرس و جو توپی شبیه SQL مانند SQL جستجو کنید.

با استفاده از مشاغل ، روی مجموعه های بزرگی از دوقلوهای دستگاه عمل کنید.

عملیات دستگاه

برنامه دستگاه با استفاده از عملیات اتمی زیر بر روی دوقلوی دستگاه کار می کند:

دوقلو دستگاه را بازیابی کنید. این عملیات سند دوقلوی دستگاه (از جمله خصوصیات سیستم مورد نظر و گزارش شده) را برای دستگاه متصل در حال حاضر باز می گرداند.(برچسب ها برای برنامه های دستگاه قابل مشاهده نیستند.)

تا حدی خواص گزارش شده را به روز کنید. این عملیات به روزرسانی جزئی از خصوصیات گزارش شده دستگاه در حال حاضر متصل را امکان پذیر می کند. این عملیات از همان قالب به روزرسانی JSON استفاده می کند که Solution Back End برای به روزرسانی جزئی از خصوصیات مورد نظر استفاده می کند.

خصوصیات مورد نظر را رعایت کنید. دستگاه متصل در حال حاضر می تواند در هنگام وقوع ، از به روزرسانی های خواص مورد نظر مطلع شود. دستگاه همان شکل بروزرسانی (جایگزینی جزئی یا کامل) را که توسط انتهای راه حل اجرا شده است ، دریافت می کند.

تمام عملیات قبلی به مجوز DeviceCoect نیاز دارند ، همانطور که در کنترل کنترل به IoT Hub تعریف شده است.

SDK های دستگاه Azure IoT استفاده از عملیات قبلی بسیاری از زبانها و سیستم عامل ها را آسان می کند. برای کسب اطلاعات بیشتر در مورد جزئیات IoT Hub Primitives برای هماهنگ سازی خصوصیات مورد نظر ، به جریان اتصال مجدد دستگاه مراجعه کنید.

برچسب ها و ویژگی ها

برچسب ها ، خصوصیات مورد نظر و خواص گزارش شده اشیاء JSON با محدودیت های زیر هستند:

کلیدها: تمام کلیدهای موجود در اشیاء JSON UTF-8 رمزگذاری شده ، حساس به مورد و طول تا 1 کیلوبایت هستند. شخصیت های مجاز شخصیت های کنترل یونیکد (بخش های C0 و C1) را حذف می کنند ، و.، $ ، و sp.

IoT Hub Queries که در مسیریابی پیام استفاده می شود از فضای سفید یا هر یک از شخصیت های زیر به عنوان بخشی از یک نام اصلی پشتیبانی نمی کند: ()<>@,;:"/?=<> .

مقادیر: تمام مقادیر در اشیاء JSON می توانند از انواع JSON زیر باشند: بولی ، شماره ، رشته ، شی. آرایه ها نیز پشتیبانی می شوند.

اعداد صحیح می توانند حداقل مقدا ر-450359627370496 و حداکثر مقدار 4503599627370495 داشته باشند.

مقادیر رشته ای UTF-8 رمزگذاری شده و می توانند حداکثر طول 4 کیلوبایت داشته باشند.

عمق: حداکثر عمق اشیاء JSON در برچسب ها ، خصوصیات مورد نظر و خصوصیات گزارش شده 10 است. به عنوان مثال ، شی زیر معتبر است:

اندازه دوقلوی دستگاه

IoT HUB محدودیت اندازه 8 کیلوبایت را در مقدار برچسب ها و محدودیت اندازه 32 کیلوبایت هر یک بر مقدار خواص/خواسته ها و خواص/گزارش شده اعمال می کند. این جمع منحصر به فرد از عناصر فقط خواندنی مانند نسخه $ و ابرداده $/$ LastUpdated است.

اندازه دوقلوی به شرح زیر محاسبه می شود:

برای هر خاصیت در سند JSON ، IoT Hub به صورت تجمعی محاسبه و طول کلید و مقدار خاصیت را اضافه می کند.

کلیدهای دارایی به عنوان رشته های رمزگذاری شده UTF8 در نظر گرفته می شوند.

مقادیر خاص خاص به عنوان رشته های رمزگذاری شده UTF8 ، مقادیر عددی (8 بایت) یا مقادیر بولی (4 بایت) در نظر گرفته می شوند.

اندازه رشته های رمزگذاری شده UTF8 با شمارش همه کاراکترها ، به استثنای کاراکترهای کنترل یونیکد (بخش های C0 و C1) محاسبه می شود.

مقادیر خاص خاصیت (اشیاء تو در تو) بر اساس اندازه کل کلیدهای خاصیت و مقادیر خاصیت موجود در آنها محاسبه می شود.

IoT HUB با خطایی که تمام عملیاتی را که می تواند اندازه برچسب ها ، خواص/مورد نظر یا خواص/اسناد گزارش شده بالاتر از حد را افزایش دهد ، رد می کند.

ابرداده دوقلوی دستگاه

IoT Hub زمان آخرین بروزرسانی را برای هر شیء JSON در ویژگی های دوقلو مورد نظر و خواص گزارش شده حفظ می کند. Timestamps در UTC است و در قالب ISO8601 YYYY-MM-DDTHH رمزگذاری شده است: MM: SS. MMMZ.

این اطلاعات در هر سطح (نه فقط برگهای ساختار JSON) نگهداری می شود تا به روزرسانی هایی را که کلیدهای شی را از بین می برد ، حفظ کند.

همزمانی خوش بین

برچسب ها ، خصوصیات مورد نظر و خواص گزارش شده همه از همزمانی خوش بینانه پشتیبانی می کنند. اگر نیاز به تضمین سفارش به روزرسانی های دوقلوی دارید ، قبل از ارسال به روزرسانی بعدی ، هماهنگ سازی را در سطح برنامه در نظر بگیرید.

دوقلوهای دستگاه دارای ETAG (خاصیت ETAG) هستند ، طبق RFC7232 ، این نمایانگر نمایندگی JSON دوقلو است. برای اطمینان از قوام می توانید از ویژگی ETAG در عملیات به روزرسانی مشروط از انتهای راه حل استفاده کنید. این تنها گزینه برای اطمینان از سازگاری در عملیاتی است که شامل کانتینر برچسب ها است.

ویژگی های دوقلوی مورد نظر و گزارش شده همچنین دارای یک نسخه $ است که تضمین می شود افزایشی است. به طور مشابه با ETAG ، نسخه می تواند توسط طرف به روزرسانی برای اجرای سازگاری به روزرسانی ها استفاده شود. به عنوان مثال ، یک برنامه دستگاه برای یک ویژگی گزارش شده یا پایان راه حل برای یک ویژگی مورد نظر.

نسخه ها همچنین هنگامی مفید هستند که یک عامل مشاهده کننده (مانند برنامه دستگاه مشاهده خصوصیات مورد نظر) باید نژادهای بین نتیجه عملیات بازیابی و یک اعلان به روزرسانی را آشتی دهد. بخش جریان اتصال مجدد دستگاه اطلاعات بیشتری را ارائه می دهد.

جریان اتصال مجدد دستگاه

IoT HUB اعلان های به روزرسانی خواص مورد نظر را برای دستگاه های قطع شده حفظ نمی کند. نتیجه می گیرد که دستگاهی که در حال اتصال است علاوه بر مشترک شدن برای اعلان های به روزرسانی ، باید سند ویژگی های کامل مورد نظر را نیز بازیابی کند. با توجه به احتمال مسابقه بین اعلان های به روزرسانی و بازیابی کامل ، باید جریان زیر تضمین شود:

  1. برنامه دستگاه به یک مرکز IoT متصل می شود.
  2. برنامه دستگاه برای اعلان های به روزرسانی ویژگی های مورد نظر مشترک است.
  3. برنامه دستگاه سند کامل را برای خواص مورد نظر بازیابی می کند.

برنامه دستگاه می تواند تمام اعلان ها را با نسخه $ کمتر یا مساوی از نسخه سند بازیابی کامل نادیده بگیرد. این رویکرد امکان پذیر است زیرا IoT HUB تضمین می کند که نسخه ها همیشه افزایش می یابد.

ماده مرجع اضافی

سایر مباحث مرجع در راهنمای توسعه دهنده IoT Hub عبارتند از:

مقاله IOT Hub Endpoints نقاط پایانی مختلفی را توصیف می کند که هر توپی IoT در زمان اجرا و عملیات مدیریتی در معرض دید قرار می گیرد.

مقاله پرتاب و سهمیه ، سهمیه هایی را که در مورد سرویس IoT Hub و رفتار پرتاب کننده اعمال می شود ، توصیف می کند که هنگام استفاده از سرویس انتظار دارید.

مقاله Azure IoT و مقاله SDKS SDKS SDK های مختلف زبان را که می توانید هنگام تهیه برنامه های دستگاه و سرویس که با IoT Hub تعامل دارند ، می توانید از آنها استفاده کنید.

IOT Hub Query Language برای دوقلوهای دستگاه ، مشاغل و مقاله مسیریابی پیام ، زبان پرس و جو توپی IoT را که می توانید برای بازیابی اطلاعات از IoT Hub در مورد دوقلوها و مشاغل دستگاه خود استفاده کنید ، توصیف می کند.

مقاله پشتیبانی IoT Hub MQTT اطلاعات بیشتری در مورد پشتیبانی IoT Hub برای پروتکل MQTT ارائه می دهد.

مراحل بعدی

اکنون شما در مورد دوقلوهای دستگاه آموخته اید ، ممکن است به موضوعات راهنمای راهنمای توسعه دهنده IoT Hub زیر علاقه مند باشید:

برای امتحان کردن برخی از مفاهیم شرح داده شده در این مقاله ، به آموزش های Iot Hub زیر مراجعه کنید:

آموزش فارکس برای مبتدی ها...
ما را در سایت آموزش فارکس برای مبتدی ها دنبال می کنید

برچسب : نویسنده : Mihayloo بازدید : <-PostHit-> تاريخ : سه شنبه 9 اسفند 1401 ساعت: 15:03