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

सामान्य

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

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


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

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


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

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

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

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

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

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


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

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


खाता लिंक करना और 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 कॉल करते समय, किसी खास खासियत के लिए अपडेट किया गया सारा डेटा हमेशा शामिल किया जाना चाहिए. अगर दो खासियतें असंगतता पैदा करती हैं, तो उनकी रिपोर्ट एक साथ की जानी चाहिए.


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

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


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

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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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

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


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

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