action.devices.SYNC

يطلب هذا الغرض قائمة الأجهزة المرتبطة بالمستخدم المحدّد وإمكاناتها.

يتم تفعيلها أثناء ربط الحساب أو عندما يعيد المستخدم مزامنة أجهزته يدويًا. يجب أن يستجيب التنفيذ بالسمات والخصائص المتوافقة لكل جهاز.

يجب أن يعرض ردّك على طلب SYNC جميع الأجهزة المرتبطة بالمستخدم. لا يحدّد هذا الإعداد ما إذا كان يمكن الوصول إلى أي جهاز معيّن. ويتم التعامل مع ذلك من خلال الردود QUERY وEXECUTE.

لمزيد من التفاصيل، يُرجى الاطّلاع على التعرّف على الأغاني ومزامنتها.

تنسيق الطلب

الحقول النوع الوصف
requestId String

مطلوبة

معرّف الطلب

inputs المصفوفة

مطلوبة

قائمة بالإدخالات المطابقة لطلب الهدف

[item, ...] الكائن

النوع والحِمل المرتبطَين بطلب الغرض

intent

مطلوبة

(القيمة الثابتة: "action.devices.SYNC")

نوع طلب الهدف

أمثلة

طلب 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

مطلوبة

نوع معدّات الجهاز

يجب أن يتطابق مع النمط: ^action.devices.types.[a-zA-z]+$.

traits المصفوفة

مطلوبة

قائمة بالسمات التي يتضمّنها هذا الجهاز، وهي تحدّد الطلبات والسمات والحالات التي يتيحها الجهاز.

[item, ...] String

اسم السمة المتوافقة.

يجب أن يتطابق مع النمط: ^action.devices.traits.[a-zA-z]+$.

name الكائن

مطلوبة

أسماء هذا الجهاز

defaultNames المصفوفة

قائمة بالأسماء التي يقدّمها المطوّر بدلاً من المستخدم، وغالبًا ما تكون أسماء الشركات المصنّعة أو رموز التخزين التعريفية أو غير ذلك

[item, ...] String

الاسم التلقائي للجهاز

name String

مطلوبة

الاسم الأساسي للجهاز، ويقدّمه المستخدم عادةً. وهذا هو الاسم الذي يفضّله "مساعد Google" لوصف الجهاز في الردود. سيتم اقتطاع الأسماء إذا تجاوزت الحدّ الأقصى المسموح به وهو 60 نقطة رمز يونيكود (حرفًا)، ولن يتم عرض أي أخطاء. ويتحمّل المطوّرون مسؤولية التعامل مع الأسماء الطويلة.

nicknames المصفوفة

الأسماء الإضافية التي يقدّمها المستخدم للجهاز

[item, ...] String

لقب الجهاز

willReportState قيمة منطقية

مطلوبة

توضّح هذه السمة ما إذا كان سيتم تعديل حالات هذا الجهاز من خلال خلاصة البيانات في الوقت الفعلي. (true لاستخدام "خلاصة الوقت الفعلي" في إعداد التقارير عن الحالة، وfalse لاستخدام نموذج الاقتراع)

notificationSupportedByAgent قيمة منطقية

(القيمة التلقائية: false)

تشير هذه السمة إلى ما إذا كانت الإشعارات مفعَّلة للجهاز.

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

معرّف الوكيل. ويكون هذا المعرّف عادةً هو رقم تعريف المشروع في وحدة تحكّم المهام.

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"
        }
      }
    ]
  }
}