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

सामान्य

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

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


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

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


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

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

यहां नामकरण के लिए एक क्विक गाइड दी गई है:

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

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

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


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

जवाब: हां, Report State API कॉल का इस्तेमाल करें.


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

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


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

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


मूड

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

जवाब: OAuth पूरा होने के तुरंत बाद और Request Sync कॉल करने के बाद, SYNC होता है.


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

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

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

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

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

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

    • अपने ब्रैकेट देखें!
  • आपको खाता लिंक करने से जुड़ी कोई समस्या आ रही है.

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

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

सवाल: क्या “pending” जवाब ठीक है?

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


टेस्टिंग और सबमिट करना

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

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


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

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


डिवाइस की स्थिति की रिपोर्ट करना

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

जवाब: प्रोजेक्ट के लिए, Smart Home API का इस्तेमाल करना ज़रूरी है. साथ ही, OAuth2 के साथ काम करना और ऐसी खासियतें होनी चाहिए जिनकी स्थिति की रिपोर्ट की जानी है.


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

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


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

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


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

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


सवाल: फ़िलहाल, किन खासियतों के लिए Report State की सुविधा उपलब्ध है?

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

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


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

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


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

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


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

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


सवाल: मैं Report State को लागू करने की सुविधा को कैसे टेस्ट कर सकता/सकती हूं?

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


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

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


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

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


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

सवाल: कितने समय में जवाब मिलना चाहिए?

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


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

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