action.devices.SYNC

यह इंटेंट, दिए गए उपयोगकर्ता से जुड़े डिवाइसों और उनकी सुविधाओं की सूची का अनुरोध करता है.

यह ट्रिगर तब होता है, जब खाता लिंक किया जाता है या जब कोई उपयोगकर्ता अपने डिवाइसों को मैन्युअल तरीके से फिर से सिंक करता है. आपके फ़ुलफ़िलमेंट के जवाब में, हर डिवाइस के लिए, काम करने वाले ट्रैट और एट्रिब्यूट की जानकारी होनी चाहिए.

SYNC के जवाब में, उपयोगकर्ता से जुड़े सभी डिवाइसों की जानकारी दिखनी चाहिए. इससे यह तय नहीं होता कि किसी डिवाइस को ऐक्सेस किया जा सकता है या नहीं. इसे QUERY और EXECUTE रिस्पॉन्स मैनेज करते हैं.

ज़्यादा जानकारी के लिए, पहचानना और सिंक करना लेख पढ़ें.

अनुरोध का फ़ॉर्मैट

फ़ील्ड टाइप ब्यौरा
requestId String

ज़रूरी है.

अनुरोध का आईडी.

inputs कलेक्शन

ज़रूरी है.

इंटेंट के अनुरोध से मैच करने वाले इनपुट की सूची.

[item, ...] ऑब्जेक्ट

इंटेंट अनुरोध से जुड़ा टाइप और पेलोड.

intent

ज़रूरी है.

(कॉन्स्टेंट वैल्यू: "action.devices.SYNC")

इंटेंट के अनुरोध का टाइप.

उदाहरण

इंटेंट सिंक करने का अनुरोध

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}

रिस्पॉन्स का फ़ॉर्मैट

फ़ील्ड टाइप ब्यौरा
requestId String

ज़रूरी है.

उससे जुड़े अनुरोध का आईडी.

payload ऑब्जेक्ट

ज़रूरी है.

इंटेंट रिस्पॉन्स पेलोड.

agentUserId String

ज़रूरी है.

यह एजेंट के प्लैटफ़ॉर्म पर यूनीक (और अपरिवर्तनीय) उपयोगकर्ता आईडी दिखाता है. Google के लिए यह स्ट्रिंग साफ़ तौर पर नहीं दिखती.इसलिए, अगर एजेंट के पास बदलाव न किए जा सकने वाले फ़ॉर्म के मुकाबले, बदलाव किए जा सकने वाले फ़ॉर्म का विकल्प है, तो बदलाव न किए जा सकने वाले फ़ॉर्म का इस्तेमाल करें. जैसे, ईमेल के बजाय खाता नंबर.

errorCode String

सिंक करने के दौरान होने वाली गड़बड़ियों के लिए

debugString String

गड़बड़ी की पूरी जानकारी, जो उपयोगकर्ताओं को कभी नहीं दिखाई जाएगी. हालांकि, इसे डेवलपमेंट के दौरान लॉग किया जा सकता है या इसका इस्तेमाल किया जा सकता है.

devices कलेक्शन

ज़रूरी है.

उपयोगकर्ता के मालिकाना हक वाले डिवाइसों की सूची. शून्य या उससे ज़्यादा डिवाइसों को वापस किया गया है. शून्य डिवाइसों का मतलब है कि उपयोगकर्ता के पास कोई डिवाइस नहीं है या उसने सभी डिवाइसों को अनलिंक कर दिया है.

[item, ...] ऑब्जेक्ट

डिवाइस का मेटाडेटा.

id String

ज़रूरी है.

डेवलपर के क्लाउड में मौजूद डिवाइस का आईडी. यह उपयोगकर्ता और डेवलपर, दोनों के लिए यूनीक होना चाहिए. ऐसा इसलिए, क्योंकि शेयर करने के मामलों में हम इसका इस्तेमाल, एक ही डिवाइस के कई व्यू को हटाने के लिए कर सकते हैं. यह डिवाइस के लिए अपरिवर्तनीय होना चाहिए. अगर यह बदलता है, तो Assistant इसे नए डिवाइस के तौर पर इस्तेमाल करेगी.

type String

ज़रूरी है.

डिवाइस का हार्डवेयर टाइप.

traits कलेक्शन

ज़रूरी है.

इस डिवाइस के ट्रैट की सूची. इससे उन निर्देशों, एट्रिब्यूट, और स्थितियों के बारे में पता चलता है जिन पर डिवाइस काम करता है.

[item, ...] String

काम करने वाले ट्रैट का नाम.

name ऑब्जेक्ट

ज़रूरी है.

इस डिवाइस के नाम.

defaultNames कलेक्शन

उपयोगकर्ता के बजाय, डेवलपर की ओर से दी गई नामों की सूची. आम तौर पर, इसमें मैन्युफ़ैक्चरर के नाम, SKU वगैरह शामिल होते हैं.

[item, ...] String

डिवाइस का डिफ़ॉल्ट नाम.

name String

ज़रूरी है.

डिवाइस का मुख्य नाम, जिसे आम तौर पर उपयोगकर्ता देता है. Assistant, जवाबों में डिवाइस के बारे में बताने के लिए भी इस नाम का इस्तेमाल करेगी. अगर नामों में 60 यूनिकोड कोड पॉइंट (वर्ण) से ज़्यादा वर्ण हैं, तो नाम काट दिए जाएंगे. हालांकि, ऐसा करने पर कोई गड़बड़ी नहीं दिखेगी. लंबे नामों को मैनेज करने की ज़िम्मेदारी डेवलपर की होती है.

nicknames कलेक्शन

डिवाइस के लिए उपयोगकर्ता के दिए गए अन्य नाम.

[item, ...] String

डिवाइस का कोई दूसरा नाम.

willReportState बूलियन

ज़रूरी है.

इससे पता चलता है कि रीयल टाइम फ़ीड की मदद से, इस डिवाइस की स्थितियों को अपडेट किया जाएगा या नहीं. (स्थिति की रिपोर्टिंग के लिए रीयल टाइम फ़ीड का इस्तेमाल करने के लिए 'सही' और पोलिंग मॉडल का इस्तेमाल करने के लिए 'गलत'.)

notificationSupportedByAgent बूलियन

(डिफ़ॉल्ट: false)

इससे पता चलता है कि डिवाइस पर सूचनाएं पाने की सुविधा चालू है या नहीं.

roomHint String

सेटअप को आसान बनाने के लिए, उपयोगकर्ता के होम में डिवाइस के मौजूदा रूम की जानकारी देता है.

deviceInfo ऑब्जेक्ट

इसमें ऐसे फ़ील्ड होते हैं जिनमें डिवाइस के बारे में जानकारी होती है. इस जानकारी का इस्तेमाल, ज़रूरत पड़ने पर एक बार इस्तेमाल होने वाले लॉजिक में किया जाता है. उदाहरण के लिए, 'लाइट Y के फ़र्मवेयर वर्शन X में गड़बड़ी है. इसलिए, रंग में बदलाव करना ज़रूरी है' या 'सुरक्षा से जुड़ी गड़बड़ी की वजह से, फ़र्मवेयर Z के सभी उपयोगकर्ताओं को सूचना देना ज़रूरी है'.

manufacturer String

यह सुविधा तब ज़्यादा काम की होती है, जब डेवलपर अन्य डिवाइसों के लिए हब हो. Google यहां मैन्युफ़ैक्चरर की स्टैंडर्ड सूची उपलब्ध करा सकता है, ताकि TP-Link और Smartthings, दोनों 'osram' को एक ही तरह से बता सकें.

model String

किसी डिवाइस का मॉडल या SKU आइडेंटिफ़ायर.

hwVersion String

अगर उपलब्ध हो, तो हार्डवेयर से जुड़ा वर्शन नंबर.

swVersion String

अगर उपलब्ध हो, तो सॉफ़्टवेयर/फ़र्मवेयर से जुड़ा वर्शन नंबर.

attributes ऑब्जेक्ट

हर ट्रीट स्कीमा रेफ़रंस में बताए गए हर ट्रीट एट्रिब्यूट के साथ अलाइन किया गया हो.

customData ऑब्जेक्ट

डेवलपर की ओर से तय किया गया ऑब्जेक्ट, जिसे आने वाले समय में QUERY और EXECUTE अनुरोधों से अटैच किया जाएगा. हर डिवाइस के लिए ज़्यादा से ज़्यादा 512 बाइट. इस ऑब्जेक्ट का इस्तेमाल करके, उस डिवाइस के बारे में अतिरिक्त जानकारी सेव करें जिसकी आपकी क्लाउड सेवा को ज़रूरत पड़ सकती है. जैसे, डिवाइस का ग्लोबल क्षेत्र. इस ऑब्जेक्ट में मौजूद डेटा से जुड़ी कुछ शर्तें हैं: इसमें संवेदनशील जानकारी शामिल नहीं होनी चाहिए. इसमें व्यक्तिगत पहचान से जुड़ी जानकारी के अलावा, अन्य जानकारी भी शामिल हो सकती है.

otherDeviceIds कलेक्शन

स्थानीय तौर पर लागू करने के लिए, क्लाउड से सिंक किए गए डिवाइस की पहचान करने के लिए इस्तेमाल किए जाने वाले अन्य आईडी की सूची.

[item, ...] ऑब्जेक्ट

अन्य डिवाइस आईडी.

agentId String

एजेंट का आईडी. आम तौर पर, यह Actions Console में मौजूद प्रोजेक्ट आईडी होता है.

deviceId String

ज़रूरी है.

एजेंट की ओर से तय किया गया डिवाइस आईडी. डिवाइस आईडी यूनीक होना चाहिए.

उदाहरण

SYNC इंटेंट का जवाब

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