ما هي قوالب الجهاز؟
قالب الجهاز في IoT Central هو مخطط يحدد خصائص نوع الجهاز الذي يتصل تطبيقك وسلوكياته. على سبيل المثال، يحدد قالب الجهاز بيانات تتبع الاستخدام التي يرسلها الجهاز بحيث يمكن لـ 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 لإنشاء نموذج جهاز أو تحريره.
لمعرفة المزيد حول تحرير طراز جهاز، راجع تحرير قالب جهاز موجود
كما يمكن تصدير مطور حل ملف JSON الذي يحتوي على نموذج الجهاز. يمكن لمطور الجهاز استخدام مستند JSON المذكور لفهم طريقة اتصال الجهاز بتطبيق IoT Central.
يستخدم ملف JSON الذي يحدد طراز الجهاز لغة التعريف الرقمي المزدوج (DTDL) V2. يتوقع IoT Central ملف JSON لاحتواء نموذج الجهاز مع واجهات تعريف مضمنة بدلا من الملفات المنفصلة. لمعرفة المزيد، راجع دليل نمذجة أجهزة التوصيل و التشغيل إنترنت الأشياء.
يتكوّن جهاز IoT النموذجي من:
- الأجزاء المخصصة، وهي الأشياء التي تجعل جهازك فريدا من نوعه.
- الأجزاء القياسية، وهي أشياء مشتركة بين جميع الأجهزة.
تسمى هذه الأجزاء واجهات في طراز الجهاز. تحدد الواجهات تفاصيل كل جزء ينفذه الجهاز. الواجهات قابلة لإعادة الاستخدام عبر نماذج الأجهزة. في DTDL، يشير المكوّن إلى واجهة أخرى، والتي قد يتم تحديدها في ملف DTDL منفصل أو في مقطع منفصل من الملف.
يوضح المثال التالي المخطط التفصيلي لطراز الجهاز لجهاز التحكم في درجة الحرارة. يتضمن المكون الجذر تعريفات ل workingSet، serialNumberو reboot. يتضمن طراز الجهاز أيضا مكونين thermostat ومكونا deviceInformation . تمت إزالة محتويات المكونات الثلاثة من أجل الإيجاز:
[
{
"@context": [
"dtmi:iotcentral:context;2",
"dtmi:dtdl:context;2"
],
"@id": "dtmi:com:example:TemperatureController;2",
"@type": "Interface",
"contents": [
{
"@type": [
"Telemetry",
"DataSize"
],
"description": {
"en": "Current working set of the device memory in KiB."
},
"displayName": {
"en": "Working Set"
},
"name": "workingSet",
"schema": "double",
"unit": "kibibit"
},
{
"@type": "Property",
"displayName": {
"en": "Serial Number"
},
"name": "serialNumber",
"schema": "string",
"writable": false
},
{
"@type": "Command",
"commandType": "synchronous",
"description": {
"en": "Reboots the device after waiting the number of seconds specified."
},
"displayName": {
"en": "Reboot"
},
"name": "reboot",
"request": {
"@type": "CommandPayload",
"description": {
"en": "Number of seconds to wait before rebooting the device."
},
"displayName": {
"en": "Delay"
},
"name": "delay",
"schema": "integer"
}
},
{
"@type": "Component",
"displayName": {
"en": "thermostat1"
},
"name": "thermostat1",
"schema": "dtmi:com:example:Thermostat;2"
},
{
"@type": "Component",
"displayName": {
"en": "thermostat2"
},
"name": "thermostat2",
"schema": "dtmi:com:example:Thermostat;2"
},
{
"@type": "Component",
"displayName": {
"en": "DeviceInfo"
},
"name": "deviceInformation",
"schema": "dtmi:azure:DeviceManagement:DeviceInformation;1"
}
],
"displayName": {
"en": "Temperature Controller"
}
},
{
"@context": "dtmi:dtdl:context;2",
"@id": "dtmi:com:example:Thermostat;2",
"@type": "Interface",
"displayName": "Thermostat",
"description": "Reports current temperature and provides desired temperature control.",
"contents": [
...
]
},
{
"@context": "dtmi:dtdl:context;2",
"@id": "dtmi:azure:DeviceManagement:DeviceInformation;1",
"@type": "Interface",
"displayName": "Device Information",
"contents": [
...
]
}
]
تحتوي الواجهة على بعض الحقول المطلوبة:
@idمعرف فريد في شكل اسم مورد موحد بسيط.:@typeيعلن أن هذا الكائن عبارة عن واجهة.:@contextيحدد إصدار DTDL المستخدم للواجهة.:contentsيسرد الخصائص والقياس عن بعد والأوامر التي تشكل جهازك.: يمكن تعريف القدرات في واجهات متعددة.
هناك بعض الحقول الاختيارية التي يمكنك استخدامها لإضافة مزيد من التفاصيل إلى نموذج القدرة، مثل اسم العرض والوصف.
يحتوي كل إدخال في قائمة الواجهات في قسم التطبيقات على:
nameاسم برمجة الواجهة.:schemaالواجهة التي ينفذها نموذج القدرة.:
الواجهات
يتيح لك DTDL وصف قدرات جهازك. يتم تجميع القدرات ذات الصلة في واجهات. تصف الواجهات الخصائص والقياس عن بعد والأوامر التي ينفذها جزء من جهازك:
Properties. الخصائص هي حقول بيانات تمثل حالة جهازك. استخدم الخصائص لتمثيل الحالة المتينة للجهاز، مثل حالة التشغيل والإيقاف لمضخة سائل التبريد. يمكن أن تمثل الخصائص أيضا خصائص الجهاز الأساسية، مثل إصدار البرنامج الثابت للجهاز. يمكنك الإعلان عن الخصائص للقراءة فقط أو قابلة للكتابة. يمكن للأجهزة فقط تحديث قيمة خاصية للقراءة فقط. يمكن للمشغل تعيين قيمة خاصية قابلة للكتابة لإرسالها إلى جهاز.Telemetry. تمثل حقول القياس عن بعد قياسات من أجهزة الاستشعار. عندما يأخذ جهازك قياس المستشعر، يجب أن يرسل حدث قياس عن بعد يحتوي على بيانات المستشعر.Commands. تمثل الأوامر الطرق التي يمكن لمستخدمي جهازك تنفيذها على الجهاز. على سبيل المثال، أمر إعادة تعيين أو أمر لتشغيل مروحة أو إيقاف تشغيلها.
يوضح المثال التالي تعريف واجهة منظم الحرارة:
{
"@context": "dtmi:dtdl:context;2",
"@id": "dtmi:com:example:Thermostat;2",
"@type": "Interface",
"displayName": "Thermostat",
"description": "Reports current temperature and provides desired temperature control.",
"contents": [
{
"@type": [
"Telemetry",
"Temperature"
],
"name": "temperature",
"displayName": "Temperature",
"description": "Temperature in degrees Celsius.",
"schema": "double",
"unit": "degreeCelsius"
},
{
"@type": [
"Property",
"Temperature"
],
"name": "targetTemperature",
"schema": "double",
"displayName": "Target Temperature",
"description": "Allows to remotely specify the desired target temperature.",
"unit": "degreeCelsius",
"writable": true
},
{
"@type": [
"Property",
"Temperature"
],
"name": "maxTempSinceLastReboot",
"schema": "double",
"unit": "degreeCelsius",
"displayName": "Max temperature since last reboot.",
"description": "Returns the max temperature since last device reboot."
},
{
"@type": "Command",
"name": "getMaxMinReport",
"displayName": "Get Max-Min report.",
"description": "This command returns the max, min and average temperature from the specified time to the current time.",
"request": {
"name": "since",
"displayName": "Since",
"description": "Period to return the max-min report.",
"schema": "dateTime"
},
"response": {
"name": "tempReport",
"displayName": "Temperature Report",
"schema": {
"@type": "Object",
"fields": [
{
"name": "maxTemp",
"displayName": "Max temperature",
"schema": "double"
},
{
"name": "minTemp",
"displayName": "Min temperature",
"schema": "double"
},
{
"name": "avgTemp",
"displayName": "Average Temperature",
"schema": "double"
},
{
"name": "startTime",
"displayName": "Start Time",
"schema": "dateTime"
},
{
"name": "endTime",
"displayName": "End Time",
"schema": "dateTime"
}
]
}
}
}
]
}
يوضح هذا المثال خاصيتين (واحدة للقراءة فقط والأخرى قابلة للكتابة) ونوع القياس عن بعد وأمر. يحتوي الحد الأدنى من وصف الحقل على:
@typeلتحديد نوع القدرة:Telemetry،PropertyأوCommand. في بعض الحالات، يتضمن النوع نوعا دلاليا لتمكين IoT Central من وضع بعض الافتراضات حول كيفية التعامل مع القيمة.nameلقيمة القياس عن بعد.schemaلتحديد نوع البيانات للقياس عن بعد أو الخاصية. يمكن أن تكون هذه القيمة نوعا بدائيا، مثل مزدوج أو عدد صحيح أو منطقي أو سلسلة. يتم دعم أنواع الكائنات المعقدة والخرائط أيضا.
تتيح لك الحقول الاختيارية، مثل اسم العرض والوصف، إضافة المزيد من التفاصيل إلى الواجهة والقدرات.
الخصائص
بشكل افتراضي، تكون الخصائص للقراءة فقط. تعني خصائص القراءة فقط أن الجهاز يبلغ عن تحديثات قيمة الخاصية لتطبيق IoT Central الخاص بك. لا يمكن لتطبيق IoT Central تعيين قيمة خاصية للقراءة فقط.
يمكنك أيضا وضع علامة على خاصية على أنها قابلة للكتابة على واجهة. يمكن أن يتلقى الجهاز تحديثا لخاصية قابلة للكتابة من تطبيق IoT Central بالإضافة إلى الإبلاغ عن تحديثات قيمة الخاصية لتطبيقك.
لا يلزم توصيل الأجهزة لتعيين قيم الخصائص. يتم نقل القيم المحدثة عندما يتصل الجهاز التالي بالتطبيق. ينطبق هذا السلوك على كل من الخصائص للقراءة فقط والقابلة للكتابة.
لا تستخدم الخصائص لإرسال القياس عن بعد من جهازك. على سبيل المثال، تعني خاصية للقراءة فقط مثل temperatureSetting=80 يجب أن تعني أنه تم ضبط درجة حرارة الجهاز على 80، وأن الجهاز يحاول الوصول إلى درجة الحرارة هذه أو البقاء فيها.
بالنسبة للخصائص القابلة للكتابة، يقوم تطبيق الجهاز بإرجاع رمز حالة الحالة المطلوب والإصدار والوصف للإشارة إلى ما إذا كان قد تلقى قيمة الخاصية وطبقها أم لا.
بيانات تتبع الاستخدام
يتيح لك IoT Central عرض القياس عن بعد في طرق عرض الجهاز ومخططاته، واستخدام القواعد لتشغيل الإجراءات عند الوصول إلى العتبات. يستخدم IoT Central المعلومات الموجودة في طراز الجهاز، مثل أنواع البيانات والوحدات وأسماء العرض، لتحديد كيفية عرض قيم القياس عن بعد. يمكنك أيضا عرض قيم القياس عن بعد على لوحات معلومات التطبيقات ولوحات المعلومات الشخصية.
يمكنك استخدام ميزة تصدير بيانات IoT Central لدفق القياس عن بعد إلى وجهات أخرى مثل التخزين أو مراكز الأحداث.
الأوامر
يجب تنفيذ الأمر في غضون 30 ثانية بشكل افتراضي، ويجب توصيل الجهاز عند وصول الأمر. إذا استجاب الجهاز في الوقت المناسب، أو لم يكن الجهاز متصلا، فشل الأمر.
يمكن أن تحتوي الأوامر على معلمات الطلب وإرجاع استجابة.
الأوامر غير المتصلة بالإنترنت
يمكنك اختيار أوامر قائمة الانتظار إذا كان الجهاز غير متصل حاليا عن طريق تمكين خيار قائمة الانتظار إذا كان غير متصل بالإنترنت لأمر في قالب الجهاز.
الأوامر غير المتصلة بالإنترنت هي إشعارات أحادية الاتجاه إلى الجهاز من الحل الخاص بك. يمكن أن تحتوي الأوامر غير المتصلة بالإنترنت على معلمات طلب ولكنها لا ترجع استجابة.
ملاحظة
يتوفر هذا الخيار فقط في واجهة مستخدم الويب IoT Central. لا يتم تضمين هذا الإعداد إذا قمت بتصدير طراز أو واجهة من قالب الجهاز.
خصائص السحابة
تعد الخصائص السحابية جزءا من قالب الجهاز، ولكنها ليست جزءا من طراز الجهاز. تتيح الخصائص السحابية لمطور الحلول تحديد أي بيانات وصفية للجهاز لتخزينها في تطبيق IoT Central. لا تؤثر خصائص شبكة النظير على التعليمات البرمجية التي يصيغها مطور الجهاز لتنفيذ نموذج الجهاز.
يمكن لمطور الحلول إضافة خصائص سحابية إلى طرق عرض الجهاز ونماذجه إلى جانب خصائص الجهاز لتمكين المشغل من إدارة الأجهزة المتصلة بالتطبيق. يمكن لمطور الحلول أيضا استخدام خصائص السحابة كجزء من تعريف القاعدة لجعل قيمة العتبة قابلة للتحرير بواسطة المشغل.
التخصيصات
تعد التخصيصات جزءا من قالب الجهاز، ولكنها ليست جزءا من طراز الجهاز. تتيح التخصيصات لمطور الحلول تحسين بعض التعريفات في طراز الجهاز أو تجاوزها. على سبيل المثال، يمكن لمطور الحلول تغيير اسم العرض لنوع أو خاصية القياس عن بعد. يمكن لمطور الحلول أيضا استخدام التخصيصات لإضافة التحقق من الصحة مثل الحد الأدنى أو الأقصى لطول خاصية جهاز سلسلة.
قد تؤثر التخصيصات على التعليمة البرمجية التي يكتبها مطور الجهاز لتنفيذ طراز الجهاز. على سبيل المثال، يمكن للتخصيص تعيين الحد الأدنى والحد الأقصى لأطوال السلاسل أو القيم الرقمية الدنيا والقصوى للقياس عن بعد.
طرق العرض
يقوم مطور الحلول بإنشاء طرق عرض تسمح للمشغلين بمراقبة الأجهزة المتصلة وإدارتها. تعد طرق العرض جزءا من قالب الجهاز، لذا يتم إقران طريقة العرض بنوع جهاز معين. يمكن أن تتضمن طريقة العرض ما يلي:
- الرسوم البيانية لرسم القياس عن بعد.
- لوحات لعرض خصائص الجهاز للقراءة فقط.
- لوحات للسماح للمشغل بتحرير خصائص الجهاز القابل للكتابة.
- لوحات للسماح للمشغل بتحرير خصائص السحابة.
- لوحات للسماح للمشغل باستدعاء الأوامر، بما في ذلك الأوامر التي تتوقع حمولة.
- تجانبات لعرض التسميات أو الصور أو نص تخفيض السعر.
يتم تحديد القياس عن بعد والخصائص والأوامر التي يمكنك إضافتها إلى طريقة عرض بواسطة طراز الجهاز وخصائص السحابة والتخصيصات في قالب الجهاز.
الخطوات التالية
الآن بعد أن تعرفت على قوالب الأجهزة، تتمثل إحدى الخطوات التالية المقترحة في قراءة القياس عن بعد والخصائص وحمولات الأوامر لمعرفة المزيد حول البيانات التي يتبادلها الجهاز مع IoT Central.