ما هي قوالب الجهاز؟
قالب الجهاز في IoT Central هو مخطط يحدد خصائص نوع الجهاز الذي يتصل تطبيقك وسلوكياته. على سبيل المثال، يحدد قالب الجهاز بيانات تتبع الاستخدام التي يرسلها الجهاز بحيث يمكن لـ IoT Central إنشاء مرئيات تستخدم الوحدات الصحيحة وأنواع البيانات. يشار إلى بيانات تتبع الاستخدام التي تطابق تعريف قالب الجهاز باسم البيانات النموذجية . يشار إلى القياس عن بعد الذي لا يتطابق مع تعريف قالب الجهاز على أنه بيانات غير محسوبة .
يضيف منشئ الحلول قوالب الأجهزة إلى تطبيق IoT Central. يصيغ مطور الجهاز التعليمات البرمجية للجهاز الذي يطبّق السلوكيات المحددة في قالب الجهاز. لمعرفة المزيد حول كيفية إنشاء قالب جهاز أو إنشاء قالب تلقائي، راجع إنشاء قالب جهاز في تطبيق Azure IoT Central. لمعرفة المزيد حول البيانات التي يتبادلها الجهاز مع IoT Central، راجع بيانات تتبع الاستخدام والخصائص حمولات الأوامر.
يتضمن قالب الجهاز الأقسام التالية:
- نموذج جهاز. يحدد هذا الجزء من قالب الجهاز كيفية تفاعل الجهاز مع التطبيق. يحتوي كل طراز جهاز على معرف فريد. ينفّذ مطور الجهاز السلوكيات المحددة في النموذج.
- المكون الجذر. يحتوي كل نموذج جهاز على مكوّن جذري. توضح واجهة المكون الجذري القدرات الخاصة بنموذج الجهاز.
- المكونات. يمكن أن يتضمن نموذج الجهاز مكونات بالإضافة إلى المكون الجذر لوصف قدرات الجهاز. يحتوي كل مكوّن على واجهة توضح إمكانيات المكون. يمكن إعادة استخدام واجهات المكونات في نماذج الأجهزة الأخرى. على سبيل المثال، يمكن للعديد من نماذج أجهزة الهاتف استخدام نفس واجهة الكاميرا.
- الواجهات الموروثة. يحتوي نموذج الجهاز على واجهة واحدة أو أكثر من الواجهات التي توسع إمكانيات المكون الجذري.
- طرق العرض. يتيح هذا الجزء من قالب الجهاز لمطور الحل تحديد المرئيات لعرض البيانات من الجهاز والنماذج لإدارة الجهاز والتحكم فيه. لا تؤثر طرق العرض على التعليمات البرمجية التي يصيغها مطور الجهاز لتنفيذ نموذج الجهاز.
تعيين جهاز إلى قالب جهاز
لكي يتفاعل الجهاز مع IoT Central، يجب تعيينه إلى قالب جهاز. يتم هذا التعيين بإحدى الطرق الأربع:
- عند تسجيل جهاز على صفحة الأجهزة ، يمكنك تحديد القالب الذي يجب أن يستخدمه الجهاز.
- عند استيراد قائمة أجهزة بشكل مجمع، يمكنك اختيار قالب الجهاز الذي يجب أن تستخدمه جميع الأجهزة الموجودة في القائمة.
- يمكنك تعيين جهاز غير معين يدويا إلى قالب جهاز بعد توصيله.
- يمكنك تعيين جهاز تلقائيا إلى قالب جهاز عن طريق إرسال معرف نموذج عند اتصال الجهاز بتطبيقك لأول مرة.
التعيين التلقائي
يمكن ل IoT Central تعيين جهاز تلقائيا إلى قالب جهاز عند اتصال الجهاز. يجب أن يرسل الجهاز معرف نموذج عند الاتصال. يستخدم IoT Central معرّف الطراز لتحديد قالب الجهاز لطراز الجهاز المحدد. تعمل عملية الاكتشاف على النحو التالي:
إذا تم نشر قالب الجهاز بالفعل في تطبيق IoT Central، يتم تعيين الجهاز إلى قالب الجهاز.
إذا لم يتم نشر قالب الجهاز بالفعل في تطبيق IoT Central، فإن IoT Central يبحث عن نموذج الجهاز في مستودع نموذج الجهاز العام. إذا عثر IoT Central على النموذج، فسيستخدمه لإنشاء قالب جهاز أساسي.
إذا لم يعثر IoT Central على النموذج في مستودع النموذج العام، يتم وضع علامة على الجهاز على أنه غير محدد. يمكن لعامل التشغيل:
- أنشئ قالب جهاز للجهاز ثم قم بترحيل الجهاز غير المعين إلى قالب الجهاز الجديد.
- إنشاء قالب جهاز تلقائيا استنادا إلى البيانات التي يرسلها الجهاز.
توضح لك لقطة الشاشة التالية كيفية عرض معرف النموذج لقالب جهاز في IoT Central. في قالب الجهاز، حدد مكونا، ثم حدد تحرير الهوية:
يمكنك عرض نموذج منظم الحرارة في مستودع النموذج العام. يبدو تعريف معرف النموذج كما يلي:
"@id": "dtmi:com:example:Thermostat;1"
استخدم حمولة DPS التالية لتعيين الجهاز إلى قالب جهاز:
{
"modelId":"dtmi:com:example:TemperatureController;2"
}
لمعرفة المزيد حول حمولة DPS، راجع نموذج التعليمات البرمجية المستخدمة في البرنامج التعليمي: إنشاء تطبيق عميل وتوصيله بتطبيق Azure IoT Central.
نماذج الجهاز
يحدد نموذج الجهاز كيفية تفاعل الجهاز مع تطبيق IoT Central. يجب على مطور الجهاز التأكد من أن الجهاز يطبق السلوكيات المحددة في نموذج الجهاز بحيث يمكن لـ IoT Central مراقبة الجهاز وإدارته. يتكون نموذج الجهاز من واجهة واحدة أو أكثر، ويمكن لكل واجهة تحديد مجموعة من أنواع بيانات تتبع الاستخدام وخصائص الجهاز والأوامر. يمكن لمطور الحلول:
- قم باستيراد ملف JSON الذي يحدد نموذج جهاز كامل أو واجهة فردية إلى قالب جهاز.
- استخدم واجهة مستخدم الويب في IoT Central لإنشاء نموذج جهاز أو تحريره.
إشعار
يقبل IoT Central أي حمولة JSON صالحة من جهاز ولكن لا يمكنه استخدام البيانات للتصورات إلا إذا كان يطابق تعريفا في طراز الجهاز. يمكنك تصدير البيانات التي لا تتطابق مع تعريف، راجع تصدير بيانات IoT إلى الوجهات السحابية باستخدام Blob Storage.
لمعرفة المزيد حول تحرير نموذج جهاز، راجع تحرير قالب جهاز موجود
يمكن لمطور الحلول أيضا تصدير ملف JSON من قالب الجهاز الذي يحتوي على نموذج جهاز كامل أو واجهة فردية. يمكن لمطور الجهاز استخدام مستند JSON المذكور لفهم طريقة اتصال الجهاز بتطبيق IoT Central.
يستخدم ملف JSON الذي يعرف نموذج الجهاز لغة تعريف التوأم الرقمي (DTDL) v2. يتوقع IoT Central ملف JSON لاحتواء نموذج الجهاز مع واجهات تعريف مضمنة بدلا من الملفات المنفصلة. تحتوي النماذج التي تم إنشاؤها في IoT Central على السياق dtmi:iotcentral:context;2
المحدد للإشارة إلى أنه تم إنشاء النموذج في IoT Central:
"@context": [
"dtmi:iotcentral:context;2",
"dtmi:dtdl:context;2"
]
لمعرفة المزيد حول نماذج DTDL، راجع دليل نمذجة أجهزة التوصيل و التشغيل IoT.
إشعار
يعرف IoT Central بعض الملحقات للغة DTDL v2. لمعرفة المزيد، راجع ملحق IoT Central.
خصائص
بشكل افتراضي، تكون الخصائص للقراءة فقط. تعني خصائص القراءة فقط أن الجهاز يبلغ عن تحديثات قيمة الخاصية لتطبيق IoT Central. لا يمكن لتطبيق IoT Central تعيين قيمة خاصية للقراءة فقط.
يمكنك أيضا وضع علامة على خاصية على أنها قابلة للكتابة على واجهة. يمكن للجهاز تلقي تحديث لخاصية قابلة للكتابة من تطبيق IoT Central الخاص بك والإبلاغ عن تحديثات قيمة الخاصية للتطبيق الخاص بك.
لا تحتاج الأجهزة إلى الاتصال لتعيين قيم الخصائص. يتم نقل القيم المحدثة عند اتصال الجهاز التالي بالتطبيق. ينطبق هذا السلوك على كل من خصائص القراءة فقط والكتابة.
لا تستخدم الخصائص لإرسال بيانات تتبع الاستخدام من جهازك. على سبيل المثال، يجب أن تعني خاصية للقراءة فقط مثل temperatureSetting=80
تعيين درجة حرارة الجهاز إلى 80، ويحاول الجهاز الوصول إلى درجة الحرارة المستهدفة هذه أو البقاء عليها.
بالنسبة للخصائص القابلة للكتابة، يقوم تطبيق الجهاز بإرجاع رمز الحالة المطلوب والإصدار والوصف للإشارة إلى ما إذا كان قد تلقى قيمة الخاصية وتطبيقها.
خصائص السحابة
يمكنك أيضا إضافة خصائص السحابة إلى المكون الجذر للنموذج. تتيح لك خصائص السحابة تحديد أي بيانات تعريف للجهاز لتخزينها في تطبيق IoT Central. يتم تخزين قيم خصائص السحابة في تطبيق IoT Central ولا تتم مزامنتها أبدا مع جهاز. لا تؤثر خصائص شبكة النظير على التعليمات البرمجية التي يصيغها مطور الجهاز لتنفيذ نموذج الجهاز.
يمكن لمطور الحلول إضافة خصائص السحابة إلى طرق عرض الجهاز والنماذج إلى جانب خصائص الجهاز لتمكين عامل التشغيل من إدارة الأجهزة المتصلة بالتطبيق. يمكن لمطور الحلول أيضا استخدام خصائص السحابة كجزء من تعريف القاعدة لجعل قيمة الحد قابلة للتحرير من قبل عامل التشغيل.
تعرض القصاصة البرمجية DTDL التالية مثالا لتعريف خاصية السحابة:
{
"@id": "dtmi:azureiot:Thermostat:CustomerName",
"@type": [
"Property",
"Cloud",
"StringValue"
],
"displayName": {
"en": "Customer Name"
},
"name": "CustomerName",
"schema": "string"
}
القياس عن بعد
يتيح لك IoT Central عرض القياس عن بعد في طرق عرض الجهاز والمخططات، واستخدام القواعد لتشغيل الإجراءات عند الوصول إلى الحدود. يستخدم IoT Central المعلومات الموجودة في نموذج الجهاز، مثل أنواع البيانات والوحدات وأسماء العرض، لتحديد كيفية عرض قيم بيانات تتبع الاستخدام. يمكنك أيضا عرض قيم بيانات تتبع الاستخدام على لوحات معلومات التطبيق ولوحات المعلومات الشخصية.
يمكنك استخدام ميزة تصدير بيانات IoT Central لدفق بيانات تتبع الاستخدام إلى وجهات أخرى مثل التخزين أو مراكز الأحداث.
الأوامر
يجب تنفيذ الأمر في غضون 30 ثانية بشكل افتراضي، ويجب توصيل الجهاز عند وصول الأمر. إذا استجاب الجهاز في الوقت المناسب، أو لم يكن الجهاز متصلا، فسيفشل الأمر.
يمكن أن تحتوي الأوامر على معلمات طلب وإرجاع استجابة.
الأوامر غير المتصلة
يمكنك اختيار أوامر قائمة الانتظار إذا كان الجهاز غير متصل حاليا عن طريق تمكين الخيار قائمة الانتظار إذا كان غير متصل لأمر في قالب الجهاز.
الأوامر غير المتصلة هي إعلامات أحادية الاتجاه للجهاز من الحل الخاص بك. يمكن أن تحتوي الأوامر دون اتصال على معلمات طلب ولكن لا ترجع استجابة.
إشعار
يتم وضع علامة على الأوامر دون اتصال كما durable
لو كنت تقوم بتصدير النموذج ك DTDL.
تستخدم الأوامر دون اتصال رسائل من السحابة إلى الجهاز في IoT Hub لإرسال الأمر والحمولة إلى الجهاز.
حمولة الرسالة التي يتلقاها الجهاز هي القيمة الأولية للمعلمة. تخزن خاصية مخصصة تسمى method-name
اسم أمر IoT Central. يعرض الجدول التالي بعض أمثلة الحمولات:
مخطط طلب IoT Central | مثال على الحمولة التي تم تلقيها بواسطة الجهاز |
---|---|
لا توجد معلمة طلب | @ |
مزدوج | 1.23 |
السلسلة | sample string |
الكائن | {"StartTime":"2021-01-05T08:00:00.000Z","Bank":2} |
تعرض القصاصة البرمجية التالية من نموذج الجهاز تعريف الأمر. يحتوي الأمر على معلمة كائن مع حقل التاريخ والوقت والتعداد:
{
"@type": "Command",
"displayName": {
"en": "Generate Diagnostics"
},
"name": "GenerateDiagnostics",
"request": {
"@type": "CommandPayload",
"displayName": {
"en": "Payload"
},
"name": "Payload",
"schema": {
"@type": "Object",
"displayName": {
"en": "Object"
},
"fields": [
{
"displayName": {
"en": "StartTime"
},
"name": "StartTime",
"schema": "dateTime"
},
{
"displayName": {
"en": "Bank"
},
"name": "Bank",
"schema": {
"@type": "Enum",
"displayName": {
"en": "Enum"
},
"enumValues": [
{
"displayName": {
"en": "Bank 1"
},
"enumValue": 1,
"name": "Bank1"
},
{
"displayName": {
"en": "Bank2"
},
"enumValue": 2,
"name": "Bank2"
},
{
"displayName": {
"en": "Bank3"
},
"enumValue": 3,
"name": "Bank3"
}
],
"valueSchema": "integer"
}
}
]
}
}
}
إذا قمت بتمكين الخيار Queue iffline في واجهة مستخدم قالب الجهاز للأمر في القصاصة البرمجية السابقة، فإن الرسالة التي يتلقاها الجهاز تتضمن الخصائص التالية:
اسم الخاصية | مثال للقيمة |
---|---|
custom_properties |
{'method-name': 'GenerateDiagnostics'} |
data |
{"StartTime":"2021-01-05T08:00:00.000Z","Bank":2} |
طرق العرض
ينشئ مطور الحلول طرق عرض تسمح للمشغلين بمراقبة الأجهزة المتصلة وإدارتها. تعد طرق العرض جزءا من قالب الجهاز، لذلك ترتبط طريقة العرض بنوع جهاز معين. يمكن أن تتضمن طريقة العرض ما يلي:
- مخططات لرسم بيانات تتبع الاستخدام.
- الإطارات المتجانبة لعرض خصائص الجهاز للقراءة فقط.
- الإطارات المتجانبة للسماح للمشغل بتحرير خصائص الجهاز القابلة للكتابة.
- الإطارات المتجانبة للسماح للمشغل بتحرير خصائص السحابة.
- الإطارات المتجانبة للسماح لعامل التشغيل باستدعاء الأوامر، بما في ذلك الأوامر التي تتوقع حمولة.
- الإطارات المتجانبة لعرض التسميات أو الصور أو نص markdown.
الخطوة التالية
الآن بعد أن تعرفت على قوالب الأجهزة، فإن الخطوة التالية المقترحة هي قراءة بيانات تتبع الاستخدام والخصائص وحمولة الأوامر لمعرفة المزيد حول البيانات التي يتبادلها الجهاز مع IoT Central.