Google, स्थानीय तौर पर कंट्रोल किए जा सकने वाले डिवाइस को क्लाउड फ़ुलफ़िलमेंट से मिले SYNC
रिस्पॉन्स में मौजूद डिवाइस से मैच करता है. ऐसा होने पर, लोकल फ़ुलफ़िलमेंट पाथ सेट अप हो जाता है.
Google को लोकल नेटवर्क पर आपके डिवाइस का पता लगाने और लोकल फ़ुलफ़िलमेंट पाथ सेट अप करने की अनुमति देने के लिए, आपको Actions console में डिवाइस ढूंढने की जानकारी जोड़नी होगी.
आपको क्लाउड फ़ुलफ़िलमेंट से मिलने वाली SYNC
प्रतिक्रिया को भी अपडेट करना होगा, ताकि Google को स्थानीय तौर पर कंट्रोल किए जा सकने वाले डिवाइस के बारे में पता चल सके.
स्कैन कॉन्फ़िगरेशन की जानकारी सेट अप करना
खोज के बारे में जानकारी देने के लिए, यह तरीका अपनाएं:
Google Home Developer Console में जाकर, Cloud-to-cloud इंटिग्रेशन पर जाएं:
स्क्रीन के बाईं ओर मौजूद, प्रोजेक्ट > क्लाउड-टू-क्लाउड पर जाएं. इसके बाद, इंटिग्रेशन के लिए बदलाव करें को चुनें. सेटअप और कॉन्फ़िगरेशन पेज पर, नीचे की ओर स्क्रोल करके स्थानीय फ़ुलफ़िलमेंट पर जाएं. इसके बाद, सेटिंग को टॉगल करके चालू करें. हर टेस्ट यूआरएल फ़ील्ड में यह यूआरएल डालें, अपना प्रोजेक्ट आईडी डालें, और सेव करें पर क्लिक करें:
https://<project-id>.web.app/local-home/index.html
नया स्कैन कॉन्फ़िगरेशन जोड़ने के लिए, डिवाइस ढूंढना में जाकर + स्कैन कॉन्फ़िगरेशन जोड़ें पर क्लिक करें.
ड्रॉप-डाउन से स्कैन मैचिंग प्रोटोकॉल का टाइप चुनें. इसके बाद, Google को स्कैन करने के लिए वैल्यू डालें.
यहां दी गई टेबल में, उन एट्रिब्यूट के बारे में बताया गया है जिन्हें जोड़ा जा सकता है. ये एट्रिब्यूट, उन प्रोटोकॉल पर आधारित होते हैं जिनका इस्तेमाल करके Google आपके डिवाइस को स्कैन करता है:
एट्रिब्यूट | ब्यौरा | उदाहरण वैल्यू |
---|---|---|
सेवा का नाम |
ज़रूरी है. डिवाइस से पब्लिश की गई सेवा का नाम, इस फ़ॉर्मैट में होता है
service.domain .
|
_http._tcp.local |
नाम |
ज़रूरी है. |
my-device-[0-9]{4}\._http\._tcp\.local |
एट्रिब्यूट | ब्यौरा | उदाहरण वैल्यू |
---|---|---|
सेवा प्रकार |
ज़रूरी है. UPnP सेवा का पूरी तरह क्वालिफ़ाइड आइडेंटिफ़ायर, domain:service:type:version फ़ॉर्मैट में होना चाहिए.
|
schemas-upnp-org:service:SwitchPower:1 |
ओयूआई |
ज़रूरी नहीं. संगठन का यूनीक आइडेंटिफ़ायर. यह 24 बिट की वैल्यू होती है. इससे डिवाइस बनाने वाली कंपनी की पहचान होती है. आम तौर पर, डिवाइस के मैक पते के पहले तीन ऑक्टेट. |
1A:2B:3C |
एट्रिब्यूट | ब्यौरा | उदाहरण वैल्यू |
---|---|---|
डिस्कवरी पता | ज़रूरी है. यूडीपी ब्रॉडकास्ट के लिए डेस्टिनेशन आईपी पता. | 255.255.255.255 |
ब्रॉडकास्टिंग पोर्ट | ज़रूरी है. यूडीपी ब्रॉडकास्ट के लिए डेस्टिनेशन पोर्ट. | 5555 |
लिसनिंग पोर्ट | ज़रूरी है. यूडीपी डिस्कवरी रिस्पॉन्स के लिए लिसन पोर्ट. | 5556 |
डिस्कवरी पैकेट | ज़रूरी है. यूडीपी ब्रॉडकास्ट में भेजने के लिए पेलोड. इसे बाइट की हेक्साडेसिमल एन्कोड की गई स्ट्रिंग के तौर पर फ़ॉर्मैट किया जाता है. |
48454C4C4F |
क्लाउड फ़ुलफ़िलमेंट में सिंक के जवाब को अपडेट करना
SYNC
इंटेंट, Assistant को यह जानकारी देता है कि उपयोगकर्ता किन डिवाइसों को कंट्रोल करता है और उन डिवाइसों की क्षमताएं क्या हैं.
लोकल फ़ुलफ़िलमेंट की सुविधा देने के लिए, लोकल होम प्लैटफ़ॉर्म आपके स्मार्ट होम ऐक्शन के क्लाउड फ़ुलफ़िलमेंट से मिले SYNC
रिस्पॉन्स की जाँच करता है. साथ ही, otherDeviceIds
फ़ील्ड में मौजूद डिवाइस आईडी को IDENTIFY
हैंडलर से मिले पुष्टि करने वाले आईडी से मैच करने की कोशिश करता है. otherDeviceIds
फ़ील्ड के बिना डिवाइस की एंट्री, स्थानीय तौर पर खरीदार को प्रॉडक्ट उपलब्ध कराने की सुविधा से बाहर रखी जाती हैं.
SYNC
रिस्पॉन्स के otherDeviceIds
फ़ील्ड में, आपको उन स्मार्ट होम डिवाइसों के आईडी सेट करने होंगे जिन्हें स्थानीय तौर पर कंट्रोल किया जा सकता है. यह फ़ील्ड, जवाब में device
लेवल पर दिखता है. Google, दिए गए आईडी वाले किसी भी डिवाइस पर लोकल फ़ुलफ़िलमेंट पाथ सेट अप कर सकता है.
customData
फ़ील्ड का इस्तेमाल करके, Google को वह अतिरिक्त डेटा दें जिसकी ज़रूरत उसे किसी स्टैंडअलोन डिवाइस से कनेक्ट करने के लिए होती है. इसके अलावा, इस फ़ील्ड का इस्तेमाल करके, Google को वह अतिरिक्त डेटा दें जिसकी ज़रूरत उसे हब का इस्तेमाल करके एंड डिवाइसों को टारगेट करने के लिए होती है. उदाहरण के लिए, पोर्ट नंबर और प्रोटोकॉल के हिसाब से अन्य जानकारी.
उदाहरण
यहां दिए गए स्निपेट में, 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": { "name": "Night light" }, "willReportState": false, "otherDeviceIds": [{ "deviceId": "local-device-id" }], "customData": { "port": 5555, "authToken": "..." } }] } }