वाहन का फ़ुलफ़िलमेंट

लोकल होम SDK टूल, स्मार्ट होम इंटेंट को रूट करने के लिए, लोकल फ़ुलफ़िलमेंट पाथ जोड़कर, आपके स्मार्ट होम इंटिग्रेशन को Google Assistant के साथ बेहतर बनाता है.

Local Home SDK टूल दो सुविधाएं देता है: लोकल एक्सीक्यूशन और लोकल क्वेरी.

  • लोकल एक्सीक्यूशन की मदद से, क्लाउड एपीआई कॉल करने के बजाय, लोकल फ़ुलफ़िलमेंट पाथ पर EXEC इंटेंट भेजकर निर्देशों को पूरा किया जा सकता है. उदाहरण के लिए, 'लाइटें जलाओ' अनुरोध को Local Execution की मदद से मैनेज किया जा सकता है.
  • लोकल क्वेरी की मदद से, डिवाइस की स्थिति से जुड़ी क्वेरी को मैनेज किया जा सकता है. इसके लिए, लोकल फ़ुलफ़िलमेंट पाथ पर QUERY इंटेंट भेजे जाते हैं. उदाहरण के लिए, लोकल क्वेरी, क्लाउड एपीआई कॉल किए बिना क्वेरी 'क्या मेरी लाइट चालू है?' को पूरा करेगी.

SDK टूल की मदद से, TypeScript या JavaScript का इस्तेमाल करके, स्थानीय ऑर्डर पूरा करने वाला ऐप्लिकेशन लिखा जा सकता है. इसमें स्मार्ट होम के कारोबार का लॉजिक शामिल होता है. Google Home या Google Nest डिवाइसों पर, आपका ऐप्लिकेशन लोड और चलाया जा सकता है. आपका ऐप्लिकेशन, उपयोगकर्ता के निर्देशों को पूरा करने के लिए, मौजूदा प्रोटोकॉल के ज़रिए, लोकल एरिया नेटवर्क (LAN) पर वाई-फ़ाई के ज़रिए सीधे आपके मौजूदा स्मार्ट डिवाइसों से संपर्क करता है.

SDK टूल को इंटिग्रेट करने से, आपके Cloud-to-cloud इंटिग्रेशन की परफ़ॉर्मेंस बेहतर होती है. इसमें, इंतज़ार का समय कम होना और भरोसेमंदता बढ़ना शामिल है. स्थानीय तौर पर खरीदारी की सुविधा, सभी तरह के डिवाइसों और डिवाइस के उन टाइप के लिए उपलब्ध है जिनमें उपयोगकर्ता की जानकारी की पुष्टि दूसरे तरीके से करने की सुविधा का इस्तेमाल नहीं किया जाता.

बनाना शुरू करें सैंपल आज़माएं

जानें कि यह सुविधा कैसे काम करती है

क्लाउड फ़ुलफ़िलमेंट से SYNC जवाब मिलने के बाद, Local Home प्लैटफ़ॉर्म, mDNS, UDP ब्रॉडकास्ट या UPnP का इस्तेमाल करके उपयोगकर्ता के लोकल एरिया नेटवर्क को स्कैन करता है. इससे, Assistant से कनेक्ट किए गए स्मार्ट डिवाइसों का पता चलता है.

प्लैटफ़ॉर्म, IDENTIFY इंटेंट भेजता है, ताकि यह पता लगाया जा सके कि डिवाइस को स्थानीय तौर पर कंट्रोल किया जा सकता है या नहीं. इसके लिए, IDENTIFY रिस्पॉन्स में मौजूद डिवाइस आईडी की तुलना, SYNC रिस्पॉन्स में मौजूद डिवाइस आईडी से की जाती है. अगर डिटेक्ट किया गया डिवाइस कोई हब या ब्रिज है, तो प्लैटफ़ॉर्म एक REACHABLE_DEVICES इंटेंट भेजता है और स्थानीय तौर पर कम्यूनिकेट करने के लिए, हब को प्रॉक्सी डिवाइस के तौर पर इस्तेमाल करता है.

जब उसे किसी स्थानीय डिवाइस की पुष्टि करने वाला जवाब मिलता है, तो प्लैटफ़ॉर्म उपयोगकर्ता के Google Home या Google Nest डिवाइस के लिए, स्थानीय तौर पर ऑर्डर पूरा करने का पाथ सेट करता है. इसके बाद, वह उपयोगकर्ता के निर्देशों को स्थानीय तौर पर ऑर्डर पूरा करने के लिए रूट करता है.

जब कोई उपयोगकर्ता किसी ऐसे Cloud-to-cloud इंटिग्रेशन को ट्रिगर करता है जिसमें लोकल फ़ुलफ़िलमेंट पाथ है, तो Assistant, क्लाउड फ़ुलफ़िलमेंट के बजाय, Google Home या Google Nest डिवाइस पर EXECUTE इंटेंट या QUERY इंटेंट भेजती है. इसके बाद, डिवाइस इंटेंट को प्रोसेस करने के लिए, स्थानीय फ़ुलफ़िलमेंट ऐप्लिकेशन चलाता है.

इस इमेज में, स्थानीय स्तर पर ऑर्डर पूरा करने की प्रोसेस को दिखाया गया है. निर्देश को लागू करने का पाथ, Google Assistant की सुविधा वाले फ़ोन से उपयोगकर्ता के इंटेंट को कैप्चर करता है. इसके बाद, Google Cloud उस इंटेंट को प्रोसेस करता है. इसके बाद, उसे Google Home डिवाइस पर स्थानीय तौर पर लागू किया जाता है. साथ ही, निर्देश को सीधे डिवाइस के हब या सीधे डिवाइस पर भेजा जाता है. डेवलपर क्लाउड, क्लाउड फ़ॉलबैक के तौर पर उपलब्ध है.
पहला इलस्ट्रेशन: स्मार्ट होम ऐक्शन के लिए, लोकल फ़ुलफ़िलमेंट पाथ जोड़ना.

Local Home प्लैटफ़ॉर्म यह तय नहीं करता कि कौनसा Google Home या Google Nest डिवाइस, निर्देश को ट्रिगर करेगा. EXECUTE और QUERY इंटेंट, टारगेट डिवाइस के तौर पर एक ही होम ग्राफ़ स्ट्रक्चर में तय किए गए किसी भी Google Home या Google Nest डिवाइस से मिल सकते हैं.

स्थानीय स्तर पर ऑर्डर पूरा करने वाला ऐप्लिकेशन

लोकल फ़ुलफ़िलमेंट ऐप्लिकेशन में, Local Home प्लैटफ़ॉर्म से भेजे गए इंटेंट को प्रोसेस करने और लोकल एरिया नेटवर्क (LAN) के ज़रिए आपके स्मार्ट डिवाइस को ऐक्सेस करने के लिए, कारोबारी लॉजिक शामिल होता है. स्थानीय स्तर पर ऑर्डर की डिलीवरी की सुविधा को इंटिग्रेट करने के लिए, आपके हार्डवेयर में कोई बदलाव नहीं करना पड़ेगा. ऐप्लिकेशन, Cloud-to-cloud इंटिग्रेशन के अनुरोधों को पूरा करता है. इसके लिए, वह ऐप्लिकेशन-लेयर प्रोटोकॉल के ज़रिए स्मार्ट डिवाइस को कंट्रोल कमांड भेजता है. इन प्रोटोकॉल में एचटीटीपी, टीसीपी या यूडीपी शामिल हैं. अगर स्थानीय फ़ुलफ़िलमेंट पाथ काम नहीं करता है, तो आपके क्लाउड फ़ुलफ़िलमेंट का इस्तेमाल, फ़ॉलबैक पाथ के तौर पर किया जाता है.

ऐप्लिकेशन बनाने में मदद करने के लिए, Local Home SDK टूल ये दो मुख्य क्लास उपलब्ध कराता है:

  • DeviceManager: टीसीपी, यूडीपी सॉकेट या एचटीटीपी अनुरोधों का इस्तेमाल करके, स्मार्ट डिवाइसों के साथ कम्यूनिकेट करने के तरीके उपलब्ध कराता है.
  • App: इसमें, उन इंटेंट के लिए हैंडलर अटैच करने के तरीके दिए गए हैं जिन्हें Google, स्थानीय तौर पर कंट्रोल किए जा सकने वाले डिवाइसों (IDENTIFY, REACHABLE_DEVICES) का पता लगाने के बाद भेजता है. यह क्लास, उपयोगकर्ता के निर्देशों (EXECUTE) को भी पूरा करती है. साथ ही, डिवाइस की मौजूदा स्थिति (QUERY) के बारे में उपयोगकर्ता की क्वेरी के जवाब भी देती है.

डेवलपमेंट के दौरान, ऐप्लिकेशन को अपने होस्टिंग सर्वर या लोकल डेवलपमेंट मशीन पर लोड करके, उसे बनाया और टेस्ट किया जा सकता है. प्रोडक्शन में, Google आपके ऐप्लिकेशन को उपयोगकर्ता के Google Home या Google Nest डिवाइस पर, सुरक्षित JavaScript सैंडबॉक्स एनवायरमेंट में होस्ट करता है.

फ़िलहाल, स्थानीय तौर पर ऑर्डर पूरा करने के लिए, Report State एपीआई का इस्तेमाल नहीं किया जा सकता. इन अनुरोधों को प्रोसेस करने के लिए, Google आपके क्लाउड फ़ुलफ़िलमेंट पर निर्भर करता है.

ऐप्लिकेशन का लाइफ़साइकल

जब Local Home प्लैटफ़ॉर्म को प्रोजेक्ट के स्कैन कॉन्फ़िगरेशन से मैच करने वाले नए स्थानीय डिवाइसों का पता चलता है या पहले से पहचाने गए डिवाइस से जुड़े डिलीवर करने के इंटेंट बाकी होते हैं, तो आपका स्थानीय फ़ुलफ़िलमेंट ऐप्लिकेशन मांग पर लोड होता है.

Google Home या Google Nest डिवाइसों में स्टोरेज की कमी होती है. साथ ही, सिस्टम में स्टोरेज की कमी की वजह से, आपके स्थानीय फ़ुलफ़िलमेंट ऐप्लिकेशन को कभी भी बंद किया जा सकता है. ऐसा तब हो सकता है, जब आपका ऐप्लिकेशन ज़्यादा मेमोरी का इस्तेमाल करने लगे या सिस्टम को किसी दूसरे ऐप्लिकेशन के लिए जगह खाली करनी पड़े. Local Home प्लैटफ़ॉर्म आपके ऐप्लिकेशन को सिर्फ़ तब रीस्टार्ट करता है, जब उसे डिलीवर करने के लिए नए इंटेंट हों और ऐप्लिकेशन को चलाने के लिए ज़रूरत के मुताबिक मेमोरी संसाधन हों.

Local Home प्लैटफ़ॉर्म, ऐप्लिकेशन को कुछ समय तक इस्तेमाल न करने पर उसे अनलोड कर देता है. ऐसा तब होता है, जब उपयोगकर्ता अपने खाते को अनलिंक कर देता है या उपयोगकर्ता के agentUserId से जुड़े ऐसे डिवाइस नहीं होते जो स्थानीय तौर पर खरीदारी की सुविधा देते हों.

वे डिवाइस जिन पर YouTube TV इस्तेमाल किया जा सकता है

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

डिवाइस टाइप परिवेश
Google Home स्पीकर Chrome
Google Home Mini स्पीकर Chrome
Google Home Max स्पीकर Chrome
Nest Mini स्पीकर Chrome
Nest Hub डिसप्ले Chrome
Nest Hub Max डिसप्ले Chrome
Nest Wifi राऊटर Node.js
पॉइंट Chrome

एक्ज़ीक्यूशन एनवायरमेंट

आपके स्थानीय फ़ुलफ़िलमेंट ऐप्लिकेशन के लिए, एनवायरमेंट लागू करने का तरीका आपके डिवाइस पर निर्भर करता है. Local Home प्लैटफ़ॉर्म, इन रनटाइम एनवायरमेंट के साथ काम करता है:

  • Chrome: आपका स्थानीय फ़ुलफ़िलमेंट ऐप्लिकेशन, Chrome M80 या इसके बाद के वर्शन वाले Chrome ब्राउज़र window के संदर्भ में चलाया जाता है. साथ ही, इसमें ECMAScript वर्शन ES2018 के लिए सहायता भी मिलती है.
  • Node.js: आपका स्थानीय फ़ुलफ़िलमेंट ऐप्लिकेशन, Node v10.x LTS या इसके बाद के वर्शन पर चलने वाली Node.js प्रोसेस में स्क्रिप्ट के तौर पर लागू किया जाता है. साथ ही, इसमें ECMAScript वर्शन ES2018 का इस्तेमाल किया जाता है.

सोर्स कोड का स्ट्रक्चर

हमारा सुझाव है कि आप Local Home SDK से मिले बंडलर कॉन्फ़िगरेशन का इस्तेमाल करके, अपनी डिपेंडेंसी को एक JavaScript फ़ाइल में बंडल करें. साथ ही, अपने सोर्स कोड को तुरंत लागू होने वाले फ़ंक्शन एक्सप्रेशन (आईआईएफ़ई) के तौर पर पैकेज करें.

लागू करने का पाथ

स्मार्ट होम इंटिग्रेशन के लिए Local Home SDK टूल का इस्तेमाल करने के लिए, आपको ये काम करने होंगे:

1 स्कैन कॉन्फ़िगरेशन सेट अप करना Google Home Developer Console को ज़रूरी पैरामीटर के साथ कॉन्फ़िगर करें, ताकि Assistant आस-पास मौजूद उन डिवाइसों को ढूंढ सके जिन्हें स्थानीय तौर पर कंट्रोल किया जा सकता है.
2 अपने क्लाउड फ़ुलफ़िलमेंट में, SYNC रिस्पॉन्स को अपडेट करना अपने क्लाउड फ़ुलफ़िलमेंट में, SYNC रिक्वेस्ट हैंडलर में बदलाव करें, ताकि वह otherDeviceIds फ़ील्ड के साथ काम कर सके. प्लैटफ़ॉर्म, लोकल फ़ुलफ़िलमेंट पाथ सेट अप करने के लिए, इस फ़ील्ड का इस्तेमाल करता है. उस फ़ील्ड में, उन डिवाइसों के आईडी डालें जिन्हें स्थानीय तौर पर कंट्रोल किया जा सकता है.
3 स्थानीय ऑर्डर डिलीवरी ऐप्लिकेशन को लागू करना IDENTIFY, EXECUTE, और QUERY इंटेंट को मैनेज करने के लिए, JavaScript ऐप्लिकेशन बनाने के लिए लोकल होम SDK टूल का इस्तेमाल करें. हब या ब्रिज प्रॉक्सी डिवाइसों के लिए, आपको REACHABLE_DEVICES इंटेंट को भी मैनेज करना चाहिए.
4 अपने ऐप्लिकेशन की जांच करना और उसे डीबग करना Google Home टेस्ट सुइट का इस्तेमाल करके, अपने इंटिग्रेशन की जांच करें या खुद को सर्टिफ़ाइड करें.

शुरू करने से पहले