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