action.devices.SYNC
इस इंटेंट से, दिए गए उपयोगकर्ता से जुड़े डिवाइसों और उनकी क्षमताओं की सूची का अनुरोध किया जाता है.
यह इंटेंट, खाते को लिंक करने के दौरान या जब कोई उपयोगकर्ता अपने डिवाइसों को मैन्युअल तरीके से फिर से सिंक करता है, तब ट्रिगर होता है. आपके फ़ुलफ़िलमेंट को हर डिवाइस के लिए, काम करने वाली प्रॉपर्टी और एट्रिब्यूट के साथ जवाब देना चाहिए.
आपके SYNC जवाब में, उपयोगकर्ता से जुड़े सभी डिवाइसों की जानकारी होनी चाहिए.
इससे यह तय नहीं होता कि कोई खास डिवाइस, ऐक्सेस किया जा सकता है या नहीं. इसे
QUERY और
EXECUTE के जवाबों से मैनेज किया जाता है.
ज़्यादा जानकारी के लिए, पहचान करना और सिंक करना लेख पढ़ें.
अनुरोध का फ़ॉर्मैट
| फ़ील्ड | टाइप | ब्यौरा |
|---|---|---|
requestId |
String |
ज़रूरी है. अनुरोध का आईडी. |
inputs |
Array |
ज़रूरी है. इंटेंट के अनुरोध से मेल खाने वाले इनपुट की सूची. |
[item, ...] |
Object |
इंटेंट के अनुरोध से जुड़ा टाइप और पेलोड. |
intent |
ज़रूरी है. (कॉन्स्टैंट वैल्यू: इंटेंट के अनुरोध का टाइप. |
उदाहरण
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 |
ज़रूरी है. डिवाइस का हार्डवेयर टाइप. यह पैटर्न |
traits |
Array |
ज़रूरी है. इस डिवाइस में मौजूद प्रॉपर्टी की सूची. इससे उन कमांड, एट्रिब्यूट, और स्थितियों के बारे में पता चलता है जिन्हें डिवाइस सपोर्ट करता है. |
[item, ...] |
String |
सपोर्ट की जाने वाली प्रॉपर्टी का नाम. यह पैटर्न |
name |
Object |
ज़रूरी है. इस डिवाइस के नाम. |
defaultNames |
Array |
उपयोगकर्ता के बजाय डेवलपर की ओर से दिए गए नामों की सूची. इनमें अक्सर, मैन्युफ़ैक्चरर के नाम, SKU वगैरह शामिल होते हैं. |
[item, ...] |
String |
डिवाइस का डिफ़ॉल्ट नाम. |
name |
String |
ज़रूरी है. डिवाइस का मुख्य नाम. आम तौर पर, यह नाम उपयोगकर्ता देता है. Assistant, जवाबों में डिवाइस के बारे में बताने के लिए भी इसी नाम का इस्तेमाल करेगा. अगर नाम, यूनिकोड कोड पॉइंट (वर्ण) की 60 की सीमा से ज़्यादा है, तो उन्हें काट दिया जाएगा. साथ ही, कोई गड़बड़ी नहीं दिखाई जाएगी. लंबे नामों को मैनेज करने की ज़िम्मेदारी डेवलपर की होती है. |
nicknames |
Array |
डिवाइस के लिए, उपयोगकर्ता की ओर से दिए गए अन्य नाम. |
[item, ...] |
String |
डिवाइस का प्रचलित नाम. |
willReportState |
Boolean |
ज़रूरी है. इससे पता चलता है कि इस डिवाइस की स्थितियों को रीयल टाइम फ़ीड से अपडेट किया जाएगा या नहीं. (स्थिति की रिपोर्ट करने के लिए, रीयल टाइम फ़ीड का इस्तेमाल करने के लिए 'सही है' और पोलिंग मॉडल का इस्तेमाल करने के लिए 'गलत' चुनें.) |
notificationSupportedByAgent |
Boolean |
(डिफ़ॉल्ट: इससे पता चलता है कि डिवाइस के लिए सूचनाएं चालू हैं या नहीं. |
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" } } ] } }