action.devices.SYNC
يطلب هذا الغرض قائمة الأجهزة المرتبطة بالمستخدم المحدّد وإمكاناتها.
يتم تفعيلها أثناء ربط الحساب أو عندما يعيد المستخدم مزامنة أجهزته يدويًا. يجب أن يستجيب التنفيذ بالسمات والخصائص المتوافقة لكل جهاز.
يجب أن يعرض ردّك على طلب SYNC
جميع الأجهزة المرتبطة بالمستخدم.
لا يحدّد هذا الإعداد ما إذا كان يمكن الوصول إلى أي جهاز معيّن. ويتم التعامل مع ذلك من خلال الردود QUERY
وEXECUTE
.
لمزيد من التفاصيل، يمكنك الاطّلاع على التعرّف على الأغاني ومزامنتها.
تنسيق الطلب
الحقول | النوع | الوصف |
---|---|---|
requestId |
String |
مطلوبة معرّف الطلب. |
inputs |
المصفوفة |
مطلوبة قائمة بالمدخلات التي تتطابق مع طلب الهدف |
[item, ...] |
الكائن |
النوع والحمولة المرتبطان بطلب الهدف |
intent |
مطلوبة (القيمة الثابتة: نوع طلب الهدف |
أمثلة
طلب SYNC intent
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [ { "intent": "action.devices.SYNC" } ] }
تنسيق الردّ
الحقول | النوع | الوصف |
---|---|---|
requestId |
String |
مطلوبة معرّف الطلب ذي الصلة |
payload |
الكائن |
مطلوبة حمولة ردّ الهدف |
agentUserId |
String |
مطلوبة تعرض هذه السمة رقم تعريف المستخدم الفريد (والثابت) على منصة الوكيل. السلسلة غير شفافة بالنسبة إلى Google، لذا إذا كان هناك نموذج غير قابل للتغيير مقابل نموذج قابل للتغيير من جهة الوكيل، استخدِم النموذج غير القابل للتغيير (مثل رقم حساب بدلاً من عنوان البريد الإلكتروني). |
errorCode |
String |
بالنسبة إلى الأخطاء المنهجية في SYNC |
debugString |
String |
خطأ تفصيلي لن يتم عرضه أبدًا للمستخدمين ولكن قد يتم تسجيله أو استخدامه أثناء التطوير. |
devices |
المصفوفة |
مطلوبة قائمة بالأجهزة التي يملكها المستخدم يتم عرض صفر أو أكثر من الأجهزة (يشير صفر جهاز إلى أنّ المستخدم ليس لديه أي أجهزة أو أنّه ألغى ربطها جميعًا). |
[item, ...] |
الكائن |
البيانات الوصفية للجهاز |
id |
String |
مطلوبة رقم تعريف الجهاز في السحابة الإلكترونية الخاصة بالمطوّر يجب أن يكون هذا المعرّف فريدًا للمستخدم والمطوّر، لأنّه في حالات المشاركة، قد نستخدمه لإزالة تكرار المشاهدات المتعددة للجهاز نفسه. يجب أن يكون هذا المعرّف غير قابل للتغيير بالنسبة إلى الجهاز، وإذا تغيّر، سيتعامل معه "مساعد Google" على أنّه جهاز جديد. |
type |
String |
مطلوبة نوع معدّات الجهاز |
traits |
المصفوفة |
مطلوبة قائمة بالسمات التي يتضمّنها هذا الجهاز. تحدّد هذه السمة الأوامر والسمات والحالات التي يتيحها الجهاز. |
[item, ...] |
String |
اسم السمة المتوافقة |
name |
الكائن |
مطلوبة أسماء هذا الجهاز. |
defaultNames |
المصفوفة |
قائمة بالأسماء التي يقدّمها المطوّر وليس المستخدم، وغالبًا ما تكون أسماء الشركات المصنّعة أو رموز التخزين التعريفية أو غير ذلك |
[item, ...] |
String |
الاسم التلقائي للجهاز |
name |
String |
مطلوبة الاسم الأساسي للجهاز، ويقدّمه المستخدم عادةً. وهذا هو الاسم الذي يفضّله "مساعد Google" لوصف الجهاز في الردود. سيتم اقتطاع الأسماء إذا تجاوزت الحد الأقصى المسموح به وهو 60 نقطة رمز يونيكود (حرفًا)، ولن يتم عرض أي أخطاء. ويتحمّل المطوّرون مسؤولية التعامل مع الأسماء الطويلة. |
nicknames |
المصفوفة |
الأسماء الإضافية التي يقدّمها المستخدم للجهاز |
[item, ...] |
String |
لقب الجهاز |
willReportState |
Boolean |
مطلوبة توضّح هذه السمة ما إذا كان سيتم تعديل حالات هذا الجهاز من خلال "خلاصة البيانات في الوقت الفعلي". (true لاستخدام خلاصة "الوقت الفعلي" في إعداد التقارير عن الحالة، وfalse لاستخدام نموذج الاقتراع) |
notificationSupportedByAgent |
Boolean |
(القيمة التلقائية: تشير هذه السمة إلى ما إذا كانت الإشعارات مفعَّلة للجهاز. |
roomHint |
String |
تعرض هذه السمة الغرفة الحالية للجهاز في منزل المستخدم لتسهيل عملية الإعداد. |
deviceInfo |
الكائن |
يحتوي على حقول تصف الجهاز لاستخدامه في منطق لمرة واحدة إذا لزم الأمر (مثل "الإصدار X من البرامج الثابتة المعطّلة للجهاز Y يتطلب تعديل اللون" أو "ثغرة أمنية تتطلب إرسال إشعار إلى جميع مستخدمي البرامج الثابتة Z"). |
manufacturer |
String |
تكون هذه الميزة مفيدة بشكل خاص عندما يكون المطوّر مركزًا لأجهزة أخرى. قد تقدّم Google هنا قائمة موحّدة بالشركات المصنّعة لكي تستخدم كلّ من TP-Link وSmartthings مثلاً الوصف نفسه لـ "osram". |
model |
String |
يشير إلى معرّف الطراز أو وحدة الاحتفاظ بالمخزون للجهاز المعنيّ. |
hwVersion |
String |
رقم الإصدار المحدّد المرفق بالجهاز، إذا كان متاحًا |
swVersion |
String |
رقم الإصدار المحدّد المرفق بالبرنامج أو البرامج الثابتة، إذا كان متاحًا |
attributes |
الكائن |
تتوافق مع السمات الخاصة بكل سمة والموضّحة في كل مرجع لمخطط السمة. |
customData |
الكائن |
عنصر يحدّده المطوّر وسيتم إرفاقه بطلبات QUERY وEXECUTE المستقبلية، ويبلغ الحد الأقصى 512 بايت لكل جهاز. استخدِم هذا العنصر لتخزين معلومات إضافية حول الجهاز الذي قد تحتاج إليه خدمتك السحابية، مثل المنطقة الجغرافية العالمية للجهاز. تخضع البيانات في هذا العنصر لبعض القيود: لا يمكن أن تتضمّن معلومات حساسة، بما في ذلك على سبيل المثال لا الحصر، معلومات التعريف الشخصية. |
otherDeviceIds |
المصفوفة |
قائمة بالمعرّفات البديلة المستخدَمة لتحديد جهاز تمت مزامنته مع السحابة الإلكترونية من أجل التنفيذ المحلي |
[item, ...] |
الكائن |
معرّف الجهاز البديل |
agentId |
String |
معرّف الوكيل ويكون هذا المعرّف عادةً هو معرّف المشروع في "وحدة تحكّم Actions". |
deviceId |
String |
مطلوبة رقم تعريف الجهاز الذي يحدّده الوكيل. يجب أن يكون رقم تعريف الجهاز فريدًا. |
أمثلة
استجابة SYNC intent
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "agentUserId": "1836.15267389", "devices": [ { "id": "123", "type": "action.devices.types.OUTLET", "traits": [ "action.devices.traits.OnOff" ], "name": { "defaultNames": [ "My Outlet 1234" ], "name": "Night light", "nicknames": [ "wall plug" ] }, "willReportState": false, "roomHint": "kitchen", "deviceInfo": { "manufacturer": "lights-out-inc", "model": "hs1234", "hwVersion": "3.2", "swVersion": "11.4" }, "otherDeviceIds": [ { "deviceId": "local-device-id" } ], "customData": { "fooValue": 74, "barValue": true, "bazValue": "foo" } }, { "id": "456", "type": "action.devices.types.LIGHT", "traits": [ "action.devices.traits.OnOff", "action.devices.traits.Brightness", "action.devices.traits.ColorSetting" ], "name": { "defaultNames": [ "lights out inc. bulb A19 color hyperglow" ], "name": "lamp1", "nicknames": [ "reading lamp" ] }, "willReportState": false, "roomHint": "office", "attributes": { "colorModel": "rgb", "colorTemperatureRange": { "temperatureMinK": 2000, "temperatureMaxK": 9000 }, "commandOnlyColorSetting": false }, "deviceInfo": { "manufacturer": "lights out inc.", "model": "hg11", "hwVersion": "1.2", "swVersion": "5.4" }, "customData": { "fooValue": 12, "barValue": false, "bazValue": "bar" } } ] } }