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