action.devices.SYNC

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

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

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

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

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

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

ज़रूरी है.

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

inputs Array

ज़रूरी है.

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

[item, ...] Object

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

intent

ज़रूरी है.

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

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

उदाहरण

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

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

जवाब का फ़ॉर्मैट

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

ज़रूरी है.

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

payload Object

ज़रूरी है.

इंटेंट के जवाब का पेलोड.

agentUserId String

ज़रूरी है.

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

errorCode String

SYNC में होने वाली सिस्टम से जुड़ी गड़बड़ियों के लिए

debugString String

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

devices Array

ज़रूरी है.

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

[item, ...] Object

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

id String

ज़रूरी है.

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

type String

ज़रूरी है.

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

यह पैटर्न ^action.devices.types.[a-zA-z]+$ से मेल खाना चाहिए.

traits Array

ज़रूरी है.

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

[item, ...] String

सपोर्ट की जाने वाली प्रॉपर्टी का नाम.

यह पैटर्न ^action.devices.traits.[a-zA-z]+$ से मेल खाना चाहिए.

name Object

ज़रूरी है.

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

defaultNames Array

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

[item, ...] String

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

name String

ज़रूरी है.

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

nicknames Array

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

[item, ...] String

डिवाइस का प्रचलित नाम.

willReportState Boolean

ज़रूरी है.

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

notificationSupportedByAgent Boolean

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

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

roomHint String

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

deviceInfo Object

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

manufacturer String

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

model String

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

hwVersion String

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

swVersion String

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

attributes Object

हर प्रॉपर्टी के स्कीमा रेफ़रंस में बताए गए, हर प्रॉपर्टी के एट्रिब्यूट के मुताबिक.

customData Object

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

otherDeviceIds Array

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

[item, ...] Object

डिवाइस का दूसरा आईडी.

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