सामान्य
सवाल: हमें क्लाउड-टू-क्लाउड फ़ुलफ़िलमेंट इंफ़्रास्ट्रक्चर को कहां और किस भाषा में लागू करना चाहिए?
जवाब: अगर आपका प्लैटफ़ॉर्म, आधुनिक एसएसएल (टीएलएस) और OAuth 2.0 के साथ काम करता है, तो आपके पास अपने इंफ़्रास्ट्रक्चर को किसी भी प्लैटफ़ॉर्म पर और अपनी पसंद की किसी भी भाषा में लागू करने का विकल्प होता है. हमारा सुझाव है कि आप इसे अपने बाकी इंफ़्रास्ट्रक्चर के आस-पास डिप्लॉय करें, ताकि यह ज़्यादा भरोसेमंद हो और असली उपयोगकर्ताओं के डिवाइसों पर इसे लागू करने में कम समय लगे.
सवाल: क्या डिवाइस आईडी यूनीक होने चाहिए?
A: आईडी यूनीक होने चाहिए. अगर आपकी सेवा में यूनीक आईडी नहीं हैं, तो कम से कम हर उपयोगकर्ता के लिए यूनीक आईडी होने चाहिए. मान लें कि किसी उपयोगकर्ता के पास एक से ज़्यादा होम हैं. साथ ही, दोनों होम में उसी उपयोगकर्ता के लिए इंटिग्रेशन की सुविधा चालू है. एक घर की लाइट चालू करने के लिए कहने पर, दूसरे घर में मौजूद उसी आईडी वाली लाइट चालू नहीं होनी चाहिए.
सवाल: क्या डिवाइसों के नाम अलग-अलग होने चाहिए?
जवाब: नाम यूनीक होने ज़रूरी नहीं हैं. हालांकि, समय के साथ हम लोगों को सेटअप के बाद नाम को बेहतर बनाने के लिए प्रोत्साहित कर सकते हैं, ताकि उपयोगकर्ता को बेहतर अनुभव मिल सके.
नाम रखने के बारे में यहां कुछ सुझाव दिए गए हैं:
- नाम ऐसे होने चाहिए जिन्हें लोग आसानी से बोल सकें.
- हम स्ट्रिंग के सबसेट को पहचानते हैं. इसलिए, अगर आपके पास 'acme color light' है, तो हम 'acme light' का जवाब भी देंगे.
- हमारा सुझाव है कि प्रॉडक्ट का नाम ऐसा हो जिससे उसके बारे में जानकारी मिले. साथ ही, एक या उससे ज़्यादा ऐसे नाम भी हों जिन्हें उपयोगकर्ता ने तय किया हो.
- उपयोगकर्ताओं को लाइट के नाम बताने की ज़रूरत नहीं है, क्योंकि हमारे पास इसके लिए कमरे हैं. हर कमरे के लिए लाइट के नाम अलग-अलग होने चाहिए. हालांकि, सभी लाइट को कंट्रोल करने के लिए, प्लुरल का इस्तेमाल किया जा सकता है. उदाहरण के लिए, ऑफ़िस की दो लाइट के नाम 'नॉर्थ लाइट' और 'ईस्ट लाइट' हैं, लेकिन इन्हें सिर्फ़ 'लाइट' के तौर पर कंट्रोल किया जा सकता है.
सवाल: डिवाइस की स्थिति को कितनी बार अपडेट किया जाता है?
A: QUERY या EXECUTE पर, कुछ समय के लिए सेव की गई स्थिति को वापस पाया जाता है. ये उपयोगकर्ता की ओर से शुरू की गई कार्रवाइयां होती हैं. अगर उपयोगकर्ता पूछता है कि ‘क्या लाइट चालू है?' या उसे लाइट की रोशनी बढ़ानी है, तो हमें क्वेरी करनी होगी, ताकि हम मौजूदा स्थिति का पता लगा सकें.
सवाल: क्या किसी डिवाइस की मौजूदा स्थिति के बारे में, होम ग्राफ़ को सीधे तौर पर अपडेट किया जा सकता है?
A: हां, Report State एपीआई कॉल का इस्तेमाल करें.
खाता लिंक करना और OAuth
सवाल: क्या हमें खाता लिंक करना होगा?
जवाब: हां, किसी व्यक्ति के डिवाइसों को सेवा देने वाली कंपनी की क्लाउड सेवाओं से कनेक्ट करने के लिए, खाता लिंक करना ज़रूरी है.
सवाल: OAuth के लिए, हम हर 15.213 घंटे में ऐक्सेस टोकन की समयसीमा खत्म कर देते हैं. क्या यह ठीक है?
जवाब: हां, लेकिन कृपया कम समय के लिए ही टेस्ट करें. जैसे, 10 से 20 मिनट. हमारे OAuth क्लाइंट को ज़रूरत के हिसाब से टोकन रीफ़्रेश करने चाहिए. साथ ही, कम समय में खत्म होने वाले टोकन का इस्तेमाल करके यह जांच की जा सकती है कि यह सुविधा काम कर रही है या नहीं.
मूड
सवाल: सिंक कब होता है?
जवाब: OAuth की प्रोसेस पूरी होने के तुरंत बाद, सिंक हो जाता है. साथ ही, सिंक करने का अनुरोध कॉल करने के बाद भी सिंक हो जाता है.
सवाल: SYNC काम क्यों नहीं कर रहा है?
जवाब: ऐसा कई वजहों से हो सकता है.
आपने गलत डिवाइस टाइप भेजे हैं.
- उदाहरण के लिए, हमें
action.devices.types.LIGHTकी उम्मीद है, लेकिन आपनेaction.devices.types.Lightभेजा है.
- उदाहरण के लिए, हमें
आपने ऐसे डिवाइस टाइप भेजे हैं जो काम नहीं करते.
- उदाहरण के लिए, आपने
action.devices.types.FLASHLIGHTभेजा है. हम इस तरह के अनुरोधों को पूरा नहीं कर सकते.
- उदाहरण के लिए, आपने
आपने अमान्य/काम न करने वाले फ़ील्ड भेजे हैं.
- उदाहरण के लिए, आपके पास ऐसा फ़ील्ड है जो हमारी खास बातों में शामिल नहीं है.
SYNC के जवाब में फ़ॉर्मैटिंग से जुड़ी कोई और समस्या है.
- अपने ब्रैकेट देखें!
आपको खाता लिंक करने में समस्या आ रही है.
- कृपया पुष्टि करें कि आपको SYNC अनुरोध के Auth हेडर में मान्य ऐक्सेस टोकन मिल रहा है.
आपने SYNC अनुरोध का जवाब देने में बहुत ज़्यादा समय लिया है.
- कृपया पुष्टि करें कि आपने SYNC अनुरोध का जवाब पांच सेकंड के अंदर दिया हो.
सवाल: क्या “जवाब की मंज़ूरी बाकी है” स्टेटस ठीक है?
जवाब: अगर आपके डिवाइस रीयल टाइम में उपलब्ध हैं, तो हम 'कार्रवाई पूरी हुई' या 'कार्रवाई पूरी नहीं हुई' जवाब को प्राथमिकता देंगे. हम 'कार्रवाई लंबित है' जवाब को प्राथमिकता नहीं देंगे. अगर आपको लगता है कि आपको ‘कार्रवाई लंबित है' जवाब की ज़रूरत है, तो कृपया हमसे संपर्क करें. हमें पता है कि कम बैटरी वाले कुछ ऐसे डिवाइस होते हैं जो रीयल-टाइम में काम नहीं करते. ऐसे डिवाइसों के लिए, ‘कार्रवाई लंबित है' जवाब और एसिंक्रोनस एक्ज़ीक्यूशन मॉडल की ज़रूरत हो सकती है.
टेस्ट करना और सबमिट करना
सवाल: क्या डेवलपमेंट क्लाउड एनवायरमेंट सेट अप किया जा सकता है?
जवाब: हां, लॉन्च नहीं किए गए क्लाउड एनवायरमेंट और कॉन्फ़िगरेशन की जांच की जा सकती है.
सवाल: मेरा ऐक्शन, Google Home ऐप्लिकेशन के होम कंट्रोल सेक्शन में नहीं दिख रहा है. ऐसा क्यों हो रहा है?
A: पुष्टि करें कि आप इस प्रोजेक्ट के डेवलपर हैं.
रिपोर्ट की स्थिति
सवाल: क्या रिपोर्ट स्टेट को लागू करने के लिए कोई ज़रूरी शर्तें हैं?
जवाब: प्रोजेक्ट में Smart Home API का इस्तेमाल होना चाहिए. साथ ही, इसमें OAuth2 काम करना चाहिए. इसके अलावा, इसमें ऐसे ट्रेट होने चाहिए जिनकी स्थिति की जानकारी दी जा सके.
सवाल: हमें किसी डिवाइस पर 'डिवाइस की स्थिति की रिपोर्ट करें' सुविधा का इस्तेमाल कितनी बार करना चाहिए?
जवाब: Google को ट्रांज़िशन और टर्मिनल स्टेट में दिलचस्पी है. हालांकि, अगर कम समय में डिवाइस की स्थिति में कई बार बदलाव होता है (उदाहरण के लिए, कोई उपयोगकर्ता एक मिनट में तीन बार फ़्रिज खोलता और बंद करता है या डिमर को स्लाइड करता है), तो हमें सिर्फ़ डिवाइस की आखिरी स्थिति की जानकारी चाहिए.
सवाल: Report State कॉल करते समय, क्या डिवाइस की पूरी स्थिति भेजनी होती है?
जवाब: स्थिति के कुछ हिस्सों को अपडेट करने की सुविधा काम नहीं करती. इसलिए, Report State कॉल में हमेशा उस खास विशेषता का पूरा डेटा शामिल होना चाहिए जिसे अपडेट किया गया है. अगर दो लक्षणों से कोई गड़बड़ी होती है, तो उन्हें एक साथ रिपोर्ट किया जाना चाहिए.
सवाल: क्या Google, मेरे डिवाइस की स्थिति की जानकारी पाने के लिए क्वेरी कर सकता है (यानी, डिवाइस को पोल कर सकता है)?
जवाब: यह एक फ़ॉलबैक तरीका है. हम इसका सुझाव नहीं देते. अगर हमें उन उपयोगकर्ताओं के लिए, डिवाइस को बार-बार पोल करना पड़ता है, तो हम यह गारंटी नहीं दे सकते कि अतिरिक्त लोड कितना होगा. यह ज़रूरत, नए विज़ुअल प्लैटफ़ॉर्म की वजह से पैदा हुई है. लोड होने में आने वाली समस्या के अलावा, इससे उपयोगकर्ता के अनुभव पर भी बुरा असर पड़ेगा. हमें लगता है कि Report State इस प्लैटफ़ॉर्म के लिए बहुत ज़रूरी है.
सवाल: फ़िलहाल, Report State की सुविधा किन एट्रिब्यूट के लिए उपलब्ध है?
जवाब: ऐसी सभी सार्वजनिक ट्रेट काम करती हैं जिनसे जुड़ी स्थितियां उपलब्ध हैं. डिवाइस के ऑनलाइन स्टेटस में हुए किसी भी बदलाव की जानकारी भी देनी चाहिए.
ध्यान दें कि सीन में कोई स्टेट नहीं होती है. हालांकि, इससे डिवाइस की स्थिति में बदलाव हो सकता है. अगर Google Home Graph में मौजूद किसी डिवाइस की स्थिति में बदलाव होता है, तो इसकी सूचना वापस देनी होगी.
सवाल: क्या Report State के लिए टाइमस्टैंप भेजना ज़रूरी है?
जवाब: हमें टाइमस्टैंप की ज़रूरत नहीं है. आखिरी बार भेजा गया स्टेटस, पिछले कॉल को बदल देगा.
सवाल: अगर मैं क्वेरी और/या एक्ज़ीक्यूट में पहले से ही राज्य की जानकारी भेज रहा/रही हूं, तो क्या मुझे राज्य की जानकारी अलग से भेजनी होगी?
A: Home Graph सिर्फ़ उस स्थिति को सेव करता है जिसे Report State के ज़रिए भेजा जाता है. EXECUTE और QUERY इंटेंट के जवाब के तौर पर मिले स्टेटस का इस्तेमाल सिर्फ़ उपयोगकर्ता को बोलकर जवाब देने के लिए किया जाता है. इसे सेव नहीं किया जाता. इसलिए, Report State को कॉल किया जाना चाहिए. भले ही, डिवाइस की नई स्थिति को EXECUTE या QUERY इंटेंट के जवाब के तौर पर पहले ही दिखाया जा चुका हो.
सवाल: तय समयसीमा के अंदर, Report State को पूरी तरह से लागू न करने पर क्या होगा?
A: इससे उपयोगकर्ता अनुभव खराब हो सकता है. उदाहरण के लिए, Google Home app (GHA) और विज़ुअल प्लैटफ़ॉर्म पर. इसका मतलब है कि स्थिति की जानकारी पाने के लिए, कई QUERY इंटेंट भेजे जाएंगे. हम इस बात की गारंटी नहीं दे सकते कि इससे पार्टनर के क्लाउड पर कितना अतिरिक्त लोड पड़ेगा.
सवाल: हम रिपोर्ट स्टेट लागू करने की सुविधा की जांच कैसे करें?
A: Home Graph Viewer का इस्तेमाल करें. यह एक ऐसा टूल है जो खुद ही काम करता है. यह आपको Home Graph में सेव किए गए डिवाइस की मौजूदा स्थितियां दिखाता है.
सवाल: क्या हम Report State के लिए, कोई रैंडम requestId इस्तेमाल कर सकते हैं?
जवाब: हमारा सुझाव है कि पार्टनर, EXECUTE अनुरोध से मिले requestId का इस्तेमाल करें. ऐसा तब करें, जब Report State को EXECUTE अनुरोध से ट्रिगर किया गया हो. अगर ऐसा नहीं है, तो कोई भी रैंडम requestId इस्तेमाल किया जा सकता है.
सवाल: अगर किसी उपयोगकर्ता के पास एक से ज़्यादा डिवाइस हैं और उनमें से किसी एक डिवाइस की स्थिति बदल जाती है, तो क्या हमें सभी डिवाइसों की मौजूदा स्थिति की जानकारी देनी होगी?
जवाब: नहीं. आपको सिर्फ़ उस डिवाइस की स्थिति की जानकारी देनी होगी.
सबसे सही तरीके
सवाल: कितनी लेटेन्सी स्वीकार की जा सकती है?
A: 200 मि॰से॰ से कम समय सही है. हालांकि, 2 से 5 सेकंड के बीच का समय भी ठीक है. अगर आपकी लेटेन्सी पांच सेकंड के आस-पास है, तो हमसे संपर्क करें.
सवाल: ऑफ़लाइन होने पर, बोलकर चालू किए जाने वाले स्पीकर से सही जवाब कैसे पाएं?
A: ऑफ़लाइन डिवाइसों के लिए, ऑफ़लाइन स्टेटस दिखाएं. इस गड़बड़ी के लिए, हम टीटीएस के तौर पर 'अभी उपलब्ध नहीं है' जवाब देते हैं. ज़्यादा जानकारी के लिए, गड़बड़ियां और अपवाद देखें.