Local Home SDK, Google Assistant के साथ आपके स्मार्ट होम इंटिग्रेशन को बेहतर बनाता है. इसके लिए, लोकल फ़ुलफ़िलमेंट पाथ जोड़कर, स्मार्ट होम इंटेंट को रूट किया जाता है.
लोकल होम एसडीके दो सुविधाएं देता है: लोकल एक्ज़ीक्यूशन और लोकल क्वेरी.
- लोकल एक्ज़ीक्यूशन की मदद से, क्लाउड एपीआई कॉल करने के बजाय, लोकल फ़ुलफ़िलमेंट पाथ पर
EXECइंटेंट भेजकर कमांड पूरे किए जा सकते हैं. उदाहरण के लिए, 'लाइट चालू करो' अनुरोध को लोकल एक्ज़ीक्यूशन की मदद से पूरा किया जा सकता है. - Local Query की मदद से, डिवाइस की स्थिति से जुड़ी क्वेरी को मैनेज किया जा सकता है. इसके लिए, लोकल फ़ुलफ़िलमेंट पाथ पर
QUERYइंटेंट भेजे जाते हैं. उदाहरण के लिए, लोकल क्वेरी, क्लाउड एपीआई कॉल किए बिना 'क्या मेरी लाइट चालू है?' क्वेरी का जवाब देगी.
SDK टूल की मदद से, TypeScript या JavaScript का इस्तेमाल करके, लोकल फ़ुलफ़िलमेंट ऐप्लिकेशन बनाया जा सकता है. इसमें आपके स्मार्ट होम का कारोबारी नियम शामिल होता है. Google Home या Google Nest डिवाइस, आपके ऐप्लिकेशन को डिवाइस पर लोड और चला सकते हैं. आपका ऐप्लिकेशन, लोकल एरिया नेटवर्क (एलएएन) पर वाई-फ़ाई के ज़रिए, आपके मौजूदा स्मार्ट डिवाइसों से सीधे तौर पर कम्यूनिकेट करता है. ऐसा मौजूदा प्रोटोकॉल के ज़रिए, उपयोगकर्ता के निर्देशों को पूरा करने के लिए किया जाता है.
एसडीके को इंटिग्रेट करने से, Cloud-to-cloud के इंटिग्रेशन की परफ़ॉर्मेंस बेहतर होती है. इसमें इंतज़ार का समय कम होना और ज़्यादा भरोसेमंद होना शामिल है. लोकल फ़ुलफ़िलमेंट की सुविधा, सभी तरह के डिवाइसों और उनकी विशेषताओं के लिए काम करती है. हालांकि, यह सुविधा उन डिवाइसों के लिए काम नहीं करती जो उपयोगकर्ता की पहचान की पुष्टि करने के दूसरे तरीके का इस्तेमाल करते हैं.
इसके काम करने का तरीका समझना
क्लाउड फ़ुलफ़िलमेंट से SYNC जवाब मिलने के बाद, Local Home SDK प्लैटफ़ॉर्म, mDNS, यूडीपी ब्रॉडकास्ट या UPnP का इस्तेमाल करके, उपयोगकर्ता के लोकल एरिया नेटवर्क को स्कैन करता है. इससे Assistant से कनेक्ट किए गए स्मार्ट डिवाइसों का पता चलता है.
प्लैटफ़ॉर्म, IDENTIFY इंटेंट भेजता है, ताकि यह पता लगाया जा सके कि डिवाइस को स्थानीय तौर पर कंट्रोल किया जा सकता है या नहीं. इसके लिए, IDENTIFY के जवाब में मिले डिवाइस आईडी की तुलना, SYNC के जवाब में मिले डिवाइस आईडी से की जाती है. अगर पता लगाया गया डिवाइस कोई हब या ब्रिज है, तो प्लैटफ़ॉर्म REACHABLE_DEVICES इंटेंट भेजता है. साथ ही, हब को लोकल नेटवर्क पर कम्यूनिकेट करने के लिए प्रॉक्सी डिवाइस के तौर पर इस्तेमाल करता है.
जब प्लैटफ़ॉर्म को किसी स्थानीय डिवाइस की पुष्टि करने वाला जवाब मिलता है, तो वह उपयोगकर्ता के Google Home या Google Nest डिवाइस के लिए, लोकल फ़ुलफ़िलमेंट पाथ सेट अप करता है. इसके बाद, वह लोकल फ़ुलफ़िलमेंट के लिए उपयोगकर्ता के निर्देशों को रूट करता है.
जब कोई उपयोगकर्ता किसी ऐसे Cloud-to-cloud इंटिग्रेशन को ट्रिगर करता है जिसमें लोकल फ़ुलफ़िलमेंट पाथ होता है, तो Assistant, क्लाउड फ़ुलफ़िलमेंट के बजाय Google Home या Google Nest डिवाइस को EXECUTE इंटेंट या QUERY इंटेंट भेजती है. इसके बाद, डिवाइस लोकल फ़ुलफ़िलमेंट ऐप्लिकेशन को चलाता है, ताकि इंटेंट को प्रोसेस किया जा सके.
Local Home प्लैटफ़ॉर्म, यह तय नहीं करता कि निर्देश को ट्रिगर करने के लिए, किस Google Home या Google Nest डिवाइस का इस्तेमाल किया जाए. EXECUTE और QUERY इंटेंट, टारगेट डिवाइस के तौर पर उसी Home Graph स्ट्रक्चर में तय किए गए किसी भी Google Home या Google Nest डिवाइस से आ सकते हैं.
लोकल फ़ुलफ़िलमेंट ऐप्लिकेशन
लोकल फ़ुलफ़िलमेंट ऐप्लिकेशन में, Local Home Platform से भेजे गए इंटेंट को प्रोसेस करने और लोकल एरिया नेटवर्क के ज़रिए आपके स्मार्ट डिवाइस को ऐक्सेस करने के लिए, कारोबारी नियम शामिल होते हैं. स्थानीय फ़ुलफ़िलमेंट को इंटिग्रेट करने के लिए, आपके हार्डवेयर में कोई बदलाव नहीं किया जाएगा. यह ऐप्लिकेशन, एचटीटीपी, टीसीपी या यूडीपी जैसे ऐप्लिकेशन-लेयर प्रोटोकॉल के ज़रिए स्मार्ट डिवाइस को कंट्रोल करने के निर्देश भेजकर, Cloud-to-cloud के इंटिग्रेशन के अनुरोधों को पूरा करता है. अगर लोकल फ़ुलफ़िलमेंट पाथ काम नहीं करता है, तो क्लाउड फ़ुलफ़िलमेंट का इस्तेमाल फ़ॉलबैक एक्ज़ीक्यूशन पाथ के तौर पर किया जाता है.
ऐप्लिकेशन बनाने में मदद करने के लिए, लोकल होम एसडीके ये दो मुख्य क्लास उपलब्ध कराता है:
DeviceManager: टीसीपी, यूडीपी सॉकेट या एचटीटीपी अनुरोधों का इस्तेमाल करके, स्मार्ट डिवाइसों के साथ कम्यूनिकेट करने के तरीके उपलब्ध कराता है.App: यह क्लास, उन इंटेंट के लिए हैंडलर अटैच करने के तरीके उपलब्ध कराती है जिन्हें Google, स्थानीय तौर पर कंट्रोल किए जा सकने वाले डिवाइसों (IDENTIFY,REACHABLE_DEVICES) का पता लगाने के बाद भेजता है. यह क्लास, उपयोगकर्ता के निर्देशों (EXECUTE) को भी पूरा करती है. साथ ही, डिवाइस की मौजूदा स्थिति (QUERY) के बारे में उपयोगकर्ता के सवालों के जवाब देती है.
डेवलपमेंट के दौरान, ऐप्लिकेशन को अपने होस्टिंग सर्वर या लोकल डेवलपमेंट मशीन पर लोड करके, उसे बनाया और टेस्ट किया जा सकता है. प्रोडक्शन में, Google आपके ऐप्लिकेशन को उपयोगकर्ता के Google Home या Google Nest डिवाइस पर, सुरक्षित JavaScript सैंडबॉक्स एनवायरमेंट में होस्ट करता है.
फ़िलहाल, लोकल फ़ुलफ़िलमेंट के लिए Report State एपीआई का इस्तेमाल नहीं किया जा सकता. इन अनुरोधों को प्रोसेस करने के लिए, Google आपके क्लाउड फ़ुलफ़िलमेंट पर निर्भर करता है.
ऐप्लिकेशन लाइफ़साइकल
लोकल होम प्लैटफ़ॉर्म को जब प्रोजेक्ट स्कैन कॉन्फ़िगरेशन से मैच करने वाले नए लोकल डिवाइस मिलते हैं, तब ज़रूरत के हिसाब से आपका लोकल फ़ुलफ़िलमेंट ऐप्लिकेशन लोड होता है. इसके अलावा, पहले से पहचाने गए डिवाइस से जुड़े इंटेंट डिलीवर करने के लिए भी यह ऐप्लिकेशन लोड होता है.
Google Home या Google Nest डिवाइसों में मेमोरी सीमित होती है. सिस्टम में मेमोरी की कमी होने पर, लोकल फ़ुलफ़िलमेंट ऐप्लिकेशन को कभी भी बंद किया जा सकता है. ऐसा तब हो सकता है, जब आपका ऐप्लिकेशन बहुत ज़्यादा मेमोरी का इस्तेमाल करने लगे या सिस्टम को किसी दूसरे ऐप्लिकेशन के लिए जगह बनानी हो. Local Home SDK आपके ऐप्लिकेशन को सिर्फ़ तब रीस्टार्ट करता है, जब डिलीवर करने के लिए नए इंटेंट हों और ऐप्लिकेशन को चलाने के लिए ज़रूरत के मुताबिक मेमोरी हो.
Local Home प्लैटफ़ॉर्म, आपके ऐप्लिकेशन को कुछ समय तक इस्तेमाल न किए जाने पर अनलोड कर देता है. ऐसा तब होता है, जब उपयोगकर्ता अपना खाता अनलिंक कर देता है या उपयोगकर्ता के agentUserId से जुड़े ऐसे डिवाइस नहीं होते जो लोकल फ़ुलफ़िलमेंट की सुविधा के साथ काम करते हों.
इन डिवाइस पर पासकी का इस्तेमाल किया जा सकता है
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.js प्रोसेस में स्क्रिप्ट के तौर पर लागू होता है. यह प्रोसेस, Node v10.x LTS या इसके बाद के वर्शन पर चलती है. साथ ही, इसमें ECMAScript वर्शन ES2018 के लिए सहायता मिलती है.
सोर्स कोड का स्ट्रक्चर
हमारा सुझाव है कि आप Local Home SDK टूल से मिले बंडलर कॉन्फ़िगरेशन का इस्तेमाल करके, अपनी डिपेंडेंसी को एक JavaScript फ़ाइल में बंडल करें. साथ ही, अपने सोर्स कोड को Immediately-invoked Function Expression (IIFE) के तौर पर पैकेज करें.
लागू करने का पाथ
अपने स्मार्ट होम इंटिग्रेशन के लिए Local Home SDK का इस्तेमाल करने के लिए, आपको ये काम करने होंगे:
| 1 | स्कैन कॉन्फ़िगरेशन सेट अप करना | Google Home Developer Console को ज़रूरी पैरामीटर के साथ कॉन्फ़िगर करें, ताकि Assistant स्थानीय तौर पर कंट्रोल किए जा सकने वाले डिवाइसों को ढूंढ सके. |
| 2 | क्लाउड फ़ुलफ़िलमेंट में SYNC के जवाब को अपडेट करना | अपने क्लाउड फ़ुलफ़िलमेंट में, SYNC रिक्वेस्ट हैंडलर में बदलाव करें, ताकि
otherDeviceIds फ़ील्ड का इस्तेमाल किया जा सके. प्लैटफ़ॉर्म इस फ़ील्ड का इस्तेमाल, लोकल फ़ुलफ़िलमेंट पाथ बनाने के लिए करता है. उस फ़ील्ड में, उन डिवाइसों के आईडी डालें जिन्हें स्थानीय तौर पर कंट्रोल किया जा सकता है.
|
| 3 | लोकल फ़ुलफ़िलमेंट ऐप्लिकेशन लागू करना | Local Home SDK का इस्तेमाल करके, JavaScript ऐप्लिकेशन बनाएं. इससे IDENTIFY,
EXECUTE, और
QUERY इंटेंट को मैनेज किया जा सकता है. हब या ब्रिज प्रॉक्सी डिवाइसों के लिए, आपको REACHABLE_DEVICES इंटेंट को भी हैंडल करना चाहिए.
|
| 4 | अपने ऐप्लिकेशन की जांच करना और उसे डीबग करना | Google Home टेस्ट सुइट का इस्तेमाल करके, अपने इंटिग्रेशन की जांच करें या खुद प्रमाणित करें. |
शुरू करने से पहले
- Cloud-to-cloud इंटिग्रेशन बनाने की बुनियादी बातों के बारे में जानें.
- Google Home Developer Console में, पक्का करें कि आपके पास कोई मौजूदा स्मार्ट होम प्रोजेक्ट हो और खाता लिंक करने की सुविधा कॉन्फ़िगर की गई हो.
- पक्का करें कि आपने टेस्ट डिवाइस पर, Developer Console और Assistant में एक ही Google खाते से लॉग इन किया हो.
- अपना ऐप्लिकेशन बनाने के लिए, आपको Node.js एनवायरमेंट की ज़रूरत होगी. Node.js और npm इंस्टॉल करने के लिए, हमारा सुझाव है कि आप Node Version Manager का इस्तेमाल करें.
- Local Home SDK के नए वर्शन का इस्तेमाल करने के लिए, आपको अपने टेस्ट डिवाइसों को Cast Preview Program में रजिस्टर करना होगा.