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

स्थानीय तौर पर डिवाइस को कंट्रोल करने की सुविधा तब उपलब्ध होती है, जब 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
यूडीपी
एट्रिब्यूट ब्यौरा उदाहरण वैल्यू
डिस्कवरी का पता ज़रूरी है. यूडीपी ब्रॉडकास्ट के लिए डेस्टिनेशन आईपी पता. 255.255.255.255
ब्रॉडकास्टिंग पोर्ट ज़रूरी है. यूडीपी ब्रॉडकास्ट के लिए डेस्टिनेशन पोर्ट. 5555
Listening Port ज़रूरी है. यूडीपी डिस्कवरी रिस्पॉन्स के लिए Listen पोर्ट. 5556
डिस्कवरी पैकेट

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

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

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

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

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

SYNC रिस्पॉन्स के otherDeviceIds फ़ील्ड में, आपको उन स्मार्ट होम डिवाइसों के डिवाइस आईडी सेट करने होंगे जिन्हें स्थानीय तौर पर कंट्रोल किया जा सकता है. यह फ़ील्ड, जवाब में 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": "..."
      }
    }]
  }
}