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

सामान्य

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

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


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

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


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

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

नाम रखने के बारे में यहां खास जानकारी दी गई है:

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

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

जवाब: क्वेरी या EXECUTE करने पर, कुछ समय के लिए मौजूद रहने वाली स्थिति को वापस पाया जाता है. ये ऐसी कार्रवाइयां होती हैं जिन्हें उपयोगकर्ता शुरू करता है. अगर उपयोगकर्ता पूछता है कि ‘क्या लाइट चालू है?' या उसे लाइट को तेज़ करना है, तो हमें लाइट की मौजूदा स्थिति जानने के लिए क्वेरी करनी होगी.


सवाल: क्या होम ग्राफ़ को सीधे किसी डिवाइस की मौजूदा स्थिति के साथ अपडेट किया जा सकता है?

जवाब: हां, Report State एपीआई कॉल का इस्तेमाल करें.


खाता लिंक करना और OAuth

जवाब: हां, उपयोगकर्ता के डिवाइसों को सेवा देने वाली कंपनी की क्लाउड सेवाओं से कनेक्ट करने के लिए, खाता लिंक करना ज़रूरी है.


सवाल: OAuth के लिए, हम हर 15.213 घंटे में ऐक्सेस टोकन की समयसीमा खत्म कर देते हैं. क्या यह ठीक है?

जवाब: हां, लेकिन कृपया एक्सपायर होने के कम समय के साथ जांच करें, जैसे कि 10 से 20 मिनट. हमारा OAuth क्लाइंट, ज़रूरत के हिसाब से टोकन रीफ़्रेश कर रहा होगा. साथ ही, टोकन की समयसीमा कम करके जांच करने से यह पता चलेगा कि टोकन रीफ़्रेश हो रहे हैं या नहीं.


मूड

सवाल: सिंक कब होता है?

जवाब: OAuth प्रोसेस पूरी होने के बाद और सिंक करने का अनुरोध करने के बाद, डेटा तुरंत सिंक हो जाता है.


सवाल: SYNC काम क्यों नहीं कर रहा है?

जवाब: ऐसा होने की कई सामान्य वजहें हो सकती हैं.

  • आपने डिवाइस के गलत टाइप भेजे हैं.

    • उदाहरण के लिए, हमें action.devices.types.LIGHT की उम्मीद है, लेकिन आपने action.devices.types.Light भेजा है.
  • आपने ऐसे डिवाइस टाइप भेजे हैं जो काम नहीं करते.

    • उदाहरण के लिए, आपने action.devices.types.FLASHLIGHT भेजा है - यह ऐसा कुछ नहीं है जिसका हम इस्तेमाल करते हैं.
  • आपने अमान्य/काम न करने वाले फ़ील्ड भेजे हैं.

    • उदाहरण के लिए, आपके पास ऐसा फ़ील्ड है जो हमारी ज़रूरी शर्तों में शामिल नहीं है.
  • SYNC के जवाब में फ़ॉर्मैटिंग से जुड़ी कोई अन्य समस्या है.

    • ब्रैकेट की जांच करें!
  • आपको खाता लिंक करने में समस्या आ रही है.

    • कृपया पुष्टि करें कि आपको सिंक करने के अनुरोध के Auth हेडर में मान्य ऐक्सेस टोकन मिल रहा है.
  • सिंक करने के अनुरोध का जवाब देने में आपको काफ़ी समय लग रहा है.

    • कृपया पुष्टि करें कि सिंक करने के अनुरोध का जवाब, पांच सेकंड के अंदर दिया जा रहा है.

सवाल: क्या “जवाब बाकी है” वाला स्टेटस देना ठीक है?

जवाब: अगर आपके डिवाइस रीयल टाइम में उपलब्ध हैं, तो हम 'पूरा हो गया' या 'पूरा नहीं हुआ' के जवाब के बजाय, 'पूरा हो रहा है' के जवाब को प्राथमिकता देंगे. अगर आपको लगता है कि आपको 'मंज़ूरी बाकी है' वाला जवाब चाहिए, तो कृपया हमसे संपर्क करें. हम जानते हैं कि कम बैटरी वाले और रीयल-टाइम में काम न करने वाले कुछ डिवाइसों को, 'मंज़ूरी बाकी है' वाला जवाब और असाइनमेंट को अलग-अलग समय पर लागू करने वाले मॉडल की ज़रूरत पड़ सकती है.


जांच करना और सबमिट करना

सवाल: क्या हम डेवलपमेंट क्लाउड एनवायरमेंट सेट अप कर सकते हैं?

जवाब: हां, लॉन्च नहीं किए गए क्लाउड एनवायरमेंट और कॉन्फ़िगरेशन की जांच की जा सकती है.


सवाल: Google Home ऐप्लिकेशन के होम कंट्रोल सेक्शन में मेरी कार्रवाई नहीं दिख रही है. ऐसा क्यों हो रहा है?

जवाब: पुष्टि करें कि आप इस प्रोजेक्ट के डेवलपर हैं.


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

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

जवाब: प्रोजेक्ट में स्मार्ट होम एपीआई का इस्तेमाल किया जाना चाहिए. साथ ही, यह OAuth2 के साथ काम करना चाहिए. इसके अलावा, प्रोजेक्ट में ऐसे ट्रैट होने चाहिए जिनकी स्थिति की जानकारी दी जानी है.


सवाल: हमें किसी डिवाइस की स्थिति की रिपोर्ट कितनी बार करनी चाहिए?

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


सवाल: क्या डिवाइस की स्थिति की रिपोर्ट करने के लिए, डिवाइस की पूरी स्थिति भेजना ज़रूरी है?

जवाब: किसी एट्रिब्यूट की स्थिति के कुछ हिस्से को अपडेट करने की सुविधा उपलब्ध नहीं है. इसलिए, Report State कॉल में हमेशा उस एट्रिब्यूट का पूरा डेटा शामिल होना चाहिए जिसे अपडेट किया गया है. अगर दो विशेषताओं की वजह से कोई अंतर दिखता है, तो उन्हें एक साथ रिपोर्ट किया जाना चाहिए.


सवाल: क्या Google, डिवाइस की स्थिति जानने के लिए उससे क्वेरी कर सकता है (यानी, डिवाइस को पोल कर सकता है)?

जवाब: यह एक फ़ॉलबैक मैकेनिज्म है. हमारा सुझाव है कि आप इसका इस्तेमाल न करें. अगर हमें उन उपयोगकर्ताओं के लिए, डिवाइस से बार-बार जानकारी पाने की सुविधा का इस्तेमाल करना पड़ता है, तो हम यह गारंटी नहीं दे सकते कि अतिरिक्त लोड कितना होगा. यह ज़रूरत, नए विज़ुअल प्लैटफ़ॉर्म की वजह से पड़ी है. इससे, लोड होने में आने वाली समस्या के अलावा, उपयोगकर्ता अनुभव भी खराब होगा. हमें लगता है कि Report State, प्लैटफ़ॉर्म के लिए ज़रूरी है.


सवाल: फ़िलहाल, रिपोर्ट स्टेटस के साथ कौनसे ट्रैट काम करते हैं?

जवाब: जिन पब्लिक ट्रैट के साथ स्टेटस जुड़े होते हैं वे सभी काम करते हैं. डिवाइस के ऑनलाइन होने की स्थिति में होने वाले किसी भी बदलाव की भी सूचना दी जानी चाहिए.

ध्यान दें कि सीन में स्टेटस नहीं होते. हालांकि, इनसे डिवाइस की स्थिति में बदलाव हो सकता है. अगर Google Home Graph में मौजूद किसी डिवाइस की स्थिति में बदलाव होता है, तो इसकी शिकायत करनी होगी.


सवाल: क्या रिपोर्ट की स्थिति के लिए टाइमस्टैंप भेजना ज़रूरी है?

जवाब: हमें टाइमस्टैंप की ज़रूरत नहीं है. भेजा गया आखिरी स्टेटस, पिछले कॉल को बदल देगा.


सवाल: अगर मैं क्वेरी और/या Execute में पहले से ही स्टेटस भेज रहा हूं, तो क्या मुझे स्टेटस की अलग से रिपोर्ट करनी होगी?

जवाब: Home Graph सिर्फ़ उस स्थिति को सेव करता है जो Report State के ज़रिए भेजी जाती है. EXECUTE और QUERY इंटेंट के जवाब के तौर पर दिखाई गई स्थिति का इस्तेमाल, सिर्फ़ उपयोगकर्ता को बोलकर दिए जाने वाले जवाबों के लिए किया जाता है. इसे सेव नहीं किया जाता. इस वजह से, Report State को तब भी कॉल किया जाना चाहिए, जब डिवाइस की नई स्थिति, EXECUTE या QUERY इंटेंट के जवाब के तौर पर पहले ही दी जा चुकी हो.


सवाल: तय समयसीमा के अंदर, रिपोर्ट की स्थिति को पूरी तरह से लागू न करने पर क्या होगा?

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


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

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


सवाल: क्या रिपोर्ट की स्थिति के लिए, किसी भी क्रम के requestId का इस्तेमाल किया जा सकता है?

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


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

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


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

सवाल: लैटेंसी कितनी होनी चाहिए?

जवाब: 200 मिलीसेकंड से कम का समय सही होता है. हालांकि, 2 से 5 सेकंड का समय भी ठीक है. अगर आपका इंतज़ार का समय करीब पांच सेकंड है, तो हमसे संपर्क करें.


सवाल: ऑफ़लाइन होने पर, बोलकर निर्देश देने की सुविधा वाले स्पीकर से सही तरीके से जवाब कैसे पाया जा सकता है?

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