डिवाइस को खोजे जाने की सुविधा दें

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

Google को आपके डिवाइस को लोकल नेटवर्क पर ढूंढने और स्थानीय फ़ुलफ़िलमेंट पाथ सेट अप करने की अनुमति देने के लिए, आपको Actions console में डिस्कवरी की जानकारी जोड़नी होगी. आपको अपने क्लाउड फ़ुलफ़िलमेंट से SYNC के जवाब को भी अपडेट करना होगा, ताकि Google को स्थानीय तौर पर कंट्रोल किए जा सकने वाले डिवाइस के बारे में पता चल सके.

स्कैन कॉन्फ़िगरेशन की जानकारी सेट अप करना

डिस्कवरी की जानकारी देने के लिए, यह तरीका अपनाएं:

  1. Google Home Developer Console में, Cloud-to-cloud इंटिग्रेशन पर जाएं:

    Developer Console पर जाएं.

  2. स्क्रीन के बाईं ओर, प्रोजेक्ट > क्लाउड-टू-क्लाउड पर जाएं. इसके बाद, इंटिग्रेशन के लिए बदलाव करें को चुनें. सेटअप और कॉन्फ़िगरेशन पेज पर, स्थानीय फ़ुलफ़िलमेंट पर स्क्रोल करें और सेटिंग को टॉगल करके चालू करें. हर टेस्ट यूआरएल फ़ील्ड में यह यूआरएल डालें, अपना प्रोजेक्ट आईडी डालें, और सेव करें पर क्लिक करें:

    https://<project-id>.web.app/local-home/index.html

  3. स्कैन का नया कॉन्फ़िगरेशन जोड़ने के लिए, डिवाइस डिस्कवरी में जाकर, + स्कैन कॉन्फ़िगरेशन जोड़ें पर क्लिक करें.

  4. ड्रॉप-डाउन से, स्कैन मैचिंग प्रोटोकॉल का टाइप चुनें और Google के स्कैन करने के लिए वैल्यू डालें.

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

mDNS
एट्रिब्यूट ब्यौरा उदाहरण वैल्यू
सेवा का नाम ज़रूरी है. डिवाइस से पब्लिश किया गया सेवा का नाम, जो service.domain फ़ॉर्मैट में होता है. _http._tcp.local
नाम

ज़रूरी है. किसी यूनीक सेवा इंस्टेंस के लिए फ़िल्टर, जो फ़ॉर्मैट instance.service.domain में होता है.

प्लेटफ़ॉर्म, इस वैल्यू को रेगुलर एक्सप्रेशन के तौर पर लेता है और मैच करने वाले सभी डिवाइस दिखाता है.
my-device-[0-9]{4}\._http\._tcp\.local
UPnP
एट्रिब्यूट ब्यौरा उदाहरण वैल्यू
सेवा का टाइप ज़रूरी है. UPnP सेवा का पूरी तरह से क्वालिफ़ाइड आइडेंटिफ़ायर, जो domain:service:type:version फ़ॉर्मैट में होता है. schemas-upnp-org:service:SwitchPower:1
OUI

ज़रूरी नहीं. ऑर्गनाइज़ेशनली यूनीक आइडेंटिफ़ायर.

डिवाइस बनाने वाली कंपनी की पहचान करने वाली 24-बिट वैल्यू. आम तौर पर, डिवाइस के मैक पते के पहले तीन ऑक्टेट.
1A:2B:3C
UDP
एट्रिब्यूट ब्यौरा उदाहरण वैल्यू
डिस्कवरी पता ज़रूरी है. यूडीपी ब्रॉडकास्ट के लिए, डेस्टिनेशन आईपी पता. 255.255.255.255
ब्रॉडकास्टिंग पोर्ट ज़रूरी है. यूडीपी ब्रॉडकास्ट के लिए, डेस्टिनेशन पोर्ट. 5555
लिसनिंग पोर्ट ज़रूरी है. यूडीपी डिस्कवरी के जवाब के लिए, लिसन पोर्ट. 5556
डिस्कवरी पैकेट

ज़रूरी है. यूडीपी ब्रॉडकास्ट में भेजने के लिए पेलोड.

बाइट की हेक्साडेसिमल एन्कोड की गई स्ट्रिंग के तौर पर फ़ॉर्मैट किया गया.
48454C4C4F

क्लाउड फ़ुलफ़िलमेंट में, SYNC के जवाब को अपडेट करना

SYNC इंटेंट, Assistant को यह बताता है कि उपयोगकर्ता किन डिवाइसों को कंट्रोल करता है और उनकी क्षमताएं क्या हैं.

स्थानीय फ़ुलफ़िलमेंट की सुविधा देने के लिए, Local Home प्लैटफ़ॉर्म, आपके स्मार्ट होम ऐक्शन के क्लाउड फ़ुलफ़िलमेंट से मिले SYNC के जवाब की जांच करता है. साथ ही, otherDeviceIds फ़ील्ड में मौजूद डिवाइस आईडी को, IDENTIFY हैंडलर से मिले पुष्टि करने वाले आईडी से मैच करने की कोशिश करता है. otherDeviceIds फ़ील्ड के बिना डिवाइस एंट्री को, स्थानीय फ़ुलफ़िलमेंट से बाहर रखा जाता है.

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

customData फ़ील्ड का इस्तेमाल करके, वह अतिरिक्त डेटा बताएं जिसकी ज़रूरत 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": "..."
      }
    }]
  }
}