स्मार्ट होम के बारे में अक्सर पूछे जाने वाले सवाल

सामान्य

सवाल: हमें क्लाउड-टू-क्लाउड फ़ुलफ़िलमेंट इन्फ़्रास्ट्रक्चर को कहां और किस भाषा में लागू करना चाहिए?

जवाब: अगर आपका इंफ़्रास्ट्रक्चर, मॉडर्न एसएसएल (टीएलएस) और OAuth 2.0 के साथ काम करता है, तो आपके पास इसे किसी भी प्लैटफ़ॉर्म और किसी भी भाषा में लागू करने का विकल्प होता है. हमारा सुझाव है कि आप इसे अपने बाकी इंफ़्रास्ट्रक्चर के आस-पास डिप्लॉय करें, ताकि यह ज़्यादा भरोसेमंद हो और असली उपयोगकर्ताओं के डिवाइसों पर इसे लागू करने में कम समय लगे.


सवाल: क्या डिवाइस आईडी यूनीक होने चाहिए?

A: आईडी यूनीक होने चाहिए. अगर आपकी सेवा में यूनीक आईडी नहीं हैं, तो कम से कम हर उपयोगकर्ता के लिए यूनीक आईडी होने चाहिए. मान लें कि किसी उपयोगकर्ता के पास एक से ज़्यादा होम हैं. साथ ही, दोनों होम में उसी उपयोगकर्ता के लिए इंटिग्रेशन की सुविधा चालू है. एक घर की लाइट चालू करने के लिए कहने पर, दूसरे घर की उसी आईडी वाली लाइट चालू नहीं होनी चाहिए.


सवाल: क्या डिवाइसों के नाम अलग-अलग होने चाहिए?

जवाब: नाम यूनीक होने ज़रूरी नहीं हैं. हालांकि, समय के साथ हम लोगों को सेटअप के बाद नाम को बेहतर बनाने के लिए कह सकते हैं, ताकि उपयोगकर्ता अनुभव को बेहतर बनाया जा सके.

नाम रखने के बारे में यहां कुछ सुझाव दिए गए हैं:

  • नाम ऐसे होने चाहिए जिन्हें लोग आसानी से बोल सकें.
  • हम स्ट्रिंग के सबसेट को पहचानते हैं. इसलिए, अगर आपके पास 'acme color light' है, तो हम 'acme light' का जवाब भी देंगे.
  • हमारा सुझाव है कि प्रॉडक्ट का ऐसा नाम दें जिससे उसके बारे में जानकारी मिलती हो. साथ ही, एक या उससे ज़्यादा ऐसे नाम दें जो आपने तय किए हों.
  • उपयोगकर्ताओं को लाइट के नाम बताने की ज़रूरत नहीं है, क्योंकि हमारे पास इसके लिए रूम हैं. हर रूम के लिए लाइट के नाम यूनीक होने चाहिए. हालांकि, सभी लाइट को कंट्रोल करने के लिए, प्लुरल का इस्तेमाल किया जा सकता है. उदाहरण के लिए, ऑफ़िस की दो लाइट के नाम 'नॉर्थ लाइट' और 'ईस्ट लाइट' हैं, लेकिन इन्हें सिर्फ़ 'लाइट' के तौर पर कंट्रोल किया जा सकता है.

सवाल: डिवाइस की स्थिति को कितनी बार अपडेट किया जाता है?

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: पुष्टि करें कि आप इस प्रोजेक्ट के डेवलपर हैं.


रिपोर्ट की स्थिति

सवाल: क्या रिपोर्ट स्टेट को लागू करने के लिए कोई ज़रूरी शर्तें हैं?

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 को पूरी तरह से लागू न करने पर क्या होगा?

जवाब: इससे उपयोगकर्ता अनुभव खराब हो सकता है. उदाहरण के लिए, Google Home app (GHA) और विज़ुअल प्लैटफ़ॉर्म पर. इसका मतलब है कि स्थिति के बारे में जानने के लिए, कई QUERY इंटेंट भेजे जाएंगे. हम इस बात की गारंटी नहीं दे सकते कि इससे पार्टनर के क्लाउड पर कितना अतिरिक्त लोड पड़ेगा.


सवाल: मैं रिपोर्ट स्टेट लागू करने की प्रोसेस की जांच कैसे करूं?

जवाब: होम ग्राफ़ व्यूअर का इस्तेमाल करें. यह एक ऐसा टूल है जो खुद से सेवा देता है और जांच करने में मदद करता है. यह आपको Home Graph में सेव किए गए डिवाइस की मौजूदा स्थितियां दिखाता है.


सवाल: क्या हम Report State के लिए, कोई रैंडम requestId इस्तेमाल कर सकते हैं?

जवाब: हमारा सुझाव है कि पार्टनर, EXECUTE अनुरोध से मिले requestId का इस्तेमाल करें. ऐसा तब करें, जब Report State को EXECUTE अनुरोध से ट्रिगर किया गया हो. अगर ऐसा नहीं है, तो कोई भी requestId इस्तेमाल किया जा सकता है.


सवाल: अगर किसी उपयोगकर्ता के पास एक से ज़्यादा डिवाइस हैं और उनमें से किसी एक डिवाइस की स्थिति बदल जाती है, तो क्या हमें सभी डिवाइसों की मौजूदा स्थिति की जानकारी देनी होगी?

जवाब: नहीं. आपको सिर्फ़ उस डिवाइस की स्थिति की जानकारी देनी होगी.


सबसे सही तरीके

सवाल: कितनी लेटेन्सी स्वीकार की जा सकती है?

A: 200 मि॰से॰ से कम समय सही है. हालांकि, 2 से 5 सेकंड के बीच का समय भी ठीक है. अगर आपकी लेटेन्सी पांच सेकंड के आस-पास है, तो हमसे संपर्क करें.


सवाल: ऑफ़लाइन होने पर, बोलकर चालू किए जाने वाले स्पीकर से सही जवाब कैसे पाएं?

A: ऑफ़लाइन डिवाइसों के लिए, ऑफ़लाइन स्टेटस दिखाएं. इस गड़बड़ी के लिए, हम टीटीएस के तौर पर 'फ़िलहाल उपलब्ध नहीं है' जवाब देते हैं. ज़्यादा जानकारी के लिए, गड़बड़ियां और अपवाद देखें.