تمرين - إضافة قوالب الجهاز والأجهزة إلى تطبيقك برمجياً
لإدارة قوالب الجهاز والأجهزة برمجياً، يُمكنك استخدام واجهة برمجة تطبيقات REST الخاصة بـ IoT Central
تريد تمكين تطبيق إدارة أسطولك الحالي لإدارة قوالب الجهاز وأجهزة تطبيق IoT Central لديك برمجياً.
في هذه الوحدة، تستخدم واجهة برمجة تطبيقات REST الخاصة بـ IoT Central لإضافة قالب جهاز إلى التطبيق ثم إضافة بعض الأجهزة الحقيقية وأجهزة المحاكاة.
إضافة قالب الجهاز
عادةً ما يوفر لك مطور الجهاز نموذج الجهاز وتعريفات الواجهة للجهاز الذي تستخدمه. يُمكنك استيراد التعريفات يدوياً في واجهة مستخدم الويب أو استخدام واجهة برمجة تطبيقات REST لإضافتها برمجيًا.
يعرف قالب الجهاز في هذه الوحدة جهاز شاحنة مبرد يرسل درجة الحرارة وبيانات تتبع استخدام الموقع، ويحتوي على خاصية درجة حرارة مستهدفة، ويستجيب لأوامر تطلب معلومات إضافية لدرجة الحرارة وإعادة تشغيل الجهاز. يتم تخزين تعريف قالب الجهاز في ملف JSON.
تنسيق ملف JSON لقالب الجهاز الملف ليس نفس تنسيق ملف نموذج الجهاز. يعرف ملف قالب الجهاز خصائص السحابة ونموذج الجهاز للجهاز.
شغّل الأوامر التالية في Cloud Shell لإضافة قالب جهاز إلى تطبيق IoT Central لديك:
# Download the device template JSON file
DEVICE_TEMPLATE=`curl https://raw.githubusercontent.com/Azure-Samples/iot-central-docs-samples/master/learn-rest-api/Refrigerated%20Truck.json`
# Add the device template to your IoT Central application
az rest -m put -u https://$APP_NAME.azureiotcentral.com/api/deviceTemplates/dtmi:contoso:refrigerated_truck \
--url-parameters api-version=1.0 \
--headers Authorization="$ADMIN_TOKEN" Content-Type=application/json \
--body "$DEVICE_TEMPLATE"
# List the display names of all your device templates
az rest -m get -u https://$APP_NAME.azureiotcentral.com/api/deviceTemplates \
--url-parameters api-version=1.0 \
--headers Authorization="$ADMIN_TOKEN" \
--query 'value[].displayName'
إضافة أجهزة المحاكاة
الآن بعد أن أضفت قالب جهاز يحدد إمكانيات جهاز شاحنة التبريد الذي تستخدمه، يُمكنك البدء في إضافة أجهزة إلى تطبيقك.
شغّل الأوامر التالية في Cloud Shell لإضافة ثلاثة أجهزة محاكاة باستخدام قالب الجهاز الذي أضفته. يسرد الأمر الأخير الأجهزة التي أضفتها ويستخدم استعلاماً لتبسيط الناتج:
az rest -m put -u https://$APP_NAME.azureiotcentral.com/api/devices/sim-truck-001 \
--url-parameters api-version=1.0 \
--headers Authorization="$OPERATOR_TOKEN" --body \
'{
"template": "dtmi:contoso:refrigerated_truck",
"simulated": true,
"displayName": "Simulated refrigerated truck - 001"
}'
az rest -m put -u https://$APP_NAME.azureiotcentral.com/api/devices/sim-truck-002 \
--url-parameters api-version=1.0 \
--headers Authorization="$OPERATOR_TOKEN" --body \
'{
"template": "dtmi:contoso:refrigerated_truck",
"simulated": true,
"displayName": "Simulated refrigerated truck - 002"
}'
az rest -m put -u https://$APP_NAME.azureiotcentral.com/api/devices/sim-truck-003 \
--url-parameters api-version=1.0 \
--headers Authorization="$OPERATOR_TOKEN" --body \
'{
"template": "dtmi:contoso:refrigerated_truck",
"simulated": true,
"displayName": "Simulated refrigerated truck - 003"
}'
az rest -m get -u https://$APP_NAME.azureiotcentral.com/api/devices \
--url-parameters api-version=1.0 \
--headers Authorization="$OPERATOR_TOKEN" \
--query 'value[].{ID:id, Type:template, Simulated:simulated, Provisioned:provisioned}' -o table
إضافة أجهزة حقيقية
شغّل الأوامر التالية في Cloud Shell لإضافة ثلاثة أجهزة حقيقية باستخدام قالب الجهاز الذي أضفته. يسرد الأمر الأخير الأجهزة التي أضفتها ويستخدم استعلاماً لتبسيط الناتج:
az rest -m put -u https://$APP_NAME.azureiotcentral.com/api/devices/real-truck-001 \
--url-parameters api-version=1.0 \
--headers Authorization="$OPERATOR_TOKEN" --body \
'{
"template": "dtmi:contoso:refrigerated_truck",
"simulated": false,
"displayName": "Real refrigerated truck - 001"
}'
az rest -m put -u https://$APP_NAME.azureiotcentral.com/api/devices/real-truck-002 \
--url-parameters api-version=1.0 \
--headers Authorization="$OPERATOR_TOKEN" --body \
'{
"template": "dtmi:contoso:refrigerated_truck",
"simulated": false,
"displayName": "Real refrigerated truck - 002"
}'
az rest -m put -u https://$APP_NAME.azureiotcentral.com/api/devices/real-truck-003 \
--url-parameters api-version=1.0 \
--headers Authorization="$OPERATOR_TOKEN" --body \
'{
"template": "dtmi:contoso:refrigerated_truck",
"simulated": false,
"displayName": "Real refrigerated truck - 003"
}'
az rest -m get -u https://$APP_NAME.azureiotcentral.com/api/devices \
--url-parameters api-version=1.0 \
--headers Authorization="$OPERATOR_TOKEN" \
--query 'value[].{ID:id, Type:template, Simulated:simulated, Provisioned:provisioned}' -o table
توصيل جهاز حقيقي
لتوصيل جهاز حقيقي بتطبيق IoT Central الخاص بك، تحتاج إلى بيانات اعتماد الجهاز الحقيقي. يُمكنك استخدام واجهة برمجة تطبيقات REST لاسترداد مفتاح SAS لجهاز من IoT Central على النحو التالي:
az rest -m get -u https://$APP_NAME.azureiotcentral.com/api/devices/real-truck-003/credentials \
--url-parameters api-version=1.0 \
--headers Authorization="$OPERATOR_TOKEN"
حظر جهاز
يمكنك استخدام واجهة برمجة تطبيقات REST لحظر الأجهزة وإلغاء حظرها. حظر جهاز يمنعه من الاتصال بتطبيقك. يمكنك تشغيل الأوامر التالية لحظر جهاز ثم تحقق من قيم الحالة لأجهزتك:
az rest -m patch -u https://$APP_NAME.azureiotcentral.com/api/devices/sim-truck-002 \
--url-parameters api-version=1.0 \
--headers Authorization="$OPERATOR_TOKEN" \
--body \
'{
"enabled": false
}'
az rest -m get -u https://$APP_NAME.azureiotcentral.com/api/devices \
--url-parameters api-version=1.0 \
--headers Authorization="$OPERATOR_TOKEN" \
--query 'value[].{ID:id, Type:instanceOf, Unblocked:enabled, Simulated:simulated, Provisioned:provisioned}' -o table
هل تحتاج إلى مساعدة؟ راجع دليل استكشاف الأخطاء وإصلاحها الذي نقدمه أو يمكنك توفير ملاحظات معينة عبر الإبلاغ عن مشكلة.