समस्या का हल

सैंपल ऐप्लिकेशन

अगर आपको Home API का इस्तेमाल करते समय कोई समस्या आती है, तो डीबग करने के लिए लॉग इकट्ठा करें. मोबाइल डिवाइस से लॉग इकट्ठा करने के लिए, Xcode की ज़रूरत होती है. अगर आपको Google से मदद चाहिए, तो iOS डिवाइस और हब, दोनों से लॉग इकट्ठा करें. इसके बाद, समस्या ट्रैकर में टिकट खोलें. इसमें समस्या से जुड़ी ज़रूरी जानकारी और लॉग शामिल करें.

iOS के लॉग इकट्ठा करना

Xcode से जुड़े सभी चरणों के लिए, आपके मोबाइल डिवाइस का आपकी लोकल मशीन से कनेक्ट होना ज़रूरी है.

ऐप्लिकेशन के लॉग और एसडीके के लॉग, सीधे तौर पर Xcode कंसोल में दिखते हैं और उन्हें इकट्ठा किया जा सकता है. जब आपका मोबाइल डिवाइस आपकी लोकल मशीन से कनेक्ट होता है और Xcode के ज़रिए ऐप्लिकेशन चलाया जाता है, तब कंसोल, ऐप्लिकेशन लेयर और इंटिग्रेट किए गए Home SDK टूल, दोनों से स्टैंडर्ड आउटपुट (stdout) और स्टैंडर्ड एरर (stderr) लॉग अपने-आप कैप्चर और स्ट्रीम करता है. इससे डेवलपमेंट और डीबग करने के दौरान, रीयल-टाइम में शुरू होने वाली प्रोसेस, एपीआई इंटरैक्शन, और एसडीके इवेंट को मॉनिटर करने का आसान तरीका मिलता है.

Xcode से एक्सटेंशन के लॉग इकट्ठा करना

अगर आपको Home API का इस्तेमाल करते समय कोई समस्या आती है, तो डीबग करने के लिए लॉग इकट्ठा किए जा सकते हैं.

  1. Xcode में, सबसे ऊपर मौजूद मेन्यू बार में Debug पर जाएं. इसके बाद, Attach to Process by PID or Name पर क्लिक करें.

    सैंपल ऐप्लिकेशन को डीबग करना

  2. PID या प्रोसेस का नाम में जाकर, MatterExtension चुनें और अटैच करें पर क्लिक करें.

    ऐप्लिकेशन अटैच एक्सटेंशन का सैंपल

  3. सबसे ऊपर दाईं ओर क्लिक करने पर, आपको iPhone पर MatterAddDeviceExtension से अटैच होने का इंतज़ार किया जा रहा है दिखेगा.

    ऐप्लिकेशन के इंतज़ार की स्थिति का सैंपल

  4. टैब पर क्लिक करें और MatterAddExtension चुनें.

    Matter एक्सटेंशन जोड़ने वाले ऐप्लिकेशन का सैंपल

  5. कंसोल, एक्सटेंशन लॉग को लॉग करेगा.

Sherlog: क्रॉस-स्टैक इवेंट ट्रेसिंग

Sherlog, रीयल-टाइम में ट्रेस करने वाली सेवा है. यह Google के इंफ़्रास्ट्रक्चर और पार्टनर की क्लाउड सेवाओं के बीच होने वाले इंटरैक्शन की पूरी जानकारी देती है.

ज़रूरी शर्त: ट्रेसिंग के लिए, शेयर किए गए ऐसे खाते का इस्तेमाल करना ज़रूरी है जिसे Google ने बनाया हो. जैसे, GReg में रजिस्टर किया गया खाता या डेमो खाता.

मुख्य मकसद: प्रोडक्शन कोड में बदलाव किए बिना, फ़ंक्शन से जुड़ी गड़बड़ियों और क्लाउड-टू-क्लाउड (C2C) इंटिग्रेशन की समस्याओं को डीबग करना. जैसे, खाता लिंक करने में समस्याएं या डिवाइस की गलत स्थितियां.

सुविधाएं: यह SYNC, EXECUTE, QUERY, और खाता लिंक करने के इंटेंट के लिए, आरपीसी कॉल के पूरे ग्राफ़, अनुरोध/जवाब के पेलोड, और मेटाडेटा उपलब्ध कराता है.

Fuchsia हब डिवाइस के लॉग

इस तरीके का इस्तेमाल करके, इन Fuchsia हब से लॉग इकट्ठा किए जा सकते हैं: * Google Nest Hub (2nd gen) * Google Nest Hub Max

स्थानीय लॉग वापस पाने के लिए हब चालू करने का तरीका:

  1. अपने डिवाइसों के सीरियल नंबर और मॉडल की जानकारी देने वाला ईमेल, अपने Google के तकनीकी खाता मैनेजर (टीएएम) को भेजें. ये डिवाइस के नीचे छोटे अक्षरों में लिखे होते हैं.
  2. अगर आपको अनुमति मिल गई है, तो इस सुविधा को चालू करने के लिए यह तरीका अपनाएं:
    • हब से:
      1. स्क्रीन पर सबसे ऊपर से नीचे की ओर स्वाइप करें
      2. सेटिंग आइकॉन पर टैप करें
      3. Fuchsia का वर्शन ढूंढना: Nest Hub (2nd gen) पर, डिवाइस की जानकारी > तकनीकी जानकारी > Fuchsia का वर्शन पर जाएं
      4. "Fuchsia वर्शन" पर सात बार टैप करें. इससे डेवलपर के लिए सेटिंग और टूल चालू हो जाएंगे
      5. टॉप-लेवल मेन्यू पर वापस जाएं
      6. "डेवलपर के लिए सेटिंग और टूल" पर टैप करें
      7. "पार्टनर के साथ लॉग इन करने की सुविधा" पर टैप करें
    • यह सुविधा 24 घंटे के लिए चालू हो जाएगी. इसके बाद, पांचवें चरण से लॉगिंग की सुविधा को फिर से चालू करें.
  3. अपने हब का आईपी पता पाएं:
    • अगर हब में स्क्रीन है, तो हब से:
      1. स्क्रीन पर सबसे ऊपर से नीचे की ओर स्वाइप करें
      2. सेटिंग आइकॉन पर टैप करें
      3. डिवाइस का आईपी पता ढूंढें: Nest Hub (2nd gen) पर, डिवाइस की जानकारी > तकनीकी जानकारी > आईपी पता पर जाएं
    • अपने फ़ोन पर Google Home ऐप्लिकेशन (GHA) से:
    • डिवाइस की ज़्यादा जानकारी वाला पेज खोलने के लिए, डिवाइस पर टैप करें
    • सेटिंग पेज खोलने के लिए, सेटिंग आइकॉन पर टैप करें
    • डिवाइस का आईपी पता ढूंढें: डिवाइस की जानकारी > तकनीकी जानकारी > आईपी पता पर जाएं
  4. हब से लॉग पाने के लिए, आपको उसी वाई-फ़ाई नेटवर्क से जुड़े कंप्यूटर से हब को GET एचटीटीपी अनुरोध करना होगा.
    • एंडपॉइंट का पोर्ट और पाथ नोट करें:
      curl -k -X GET https://ip-address:8443/setup/get_logs --output output-file
      
    • कनेक्शन को सिर्फ़ एक मिनट के लिए खुला रखा जा सकता है. हालांकि, बफ़र से वापस पाए गए डेटा में आम तौर पर, पिछले 20 से 30 मिनट के इवेंट शामिल होते हैं.
      • आमतौर पर, इस तरीके का इस्तेमाल करके लॉग तब निकाले जाते हैं, जब जांच की प्रक्रिया पूरी हो जाती है. इससे यह पक्का किया जा सकता है कि बफ़र में जांच से जुड़ा कॉन्टेंट मौजूद हो. यह Android की गड़बड़ी की रिपोर्ट की तरह ही होता है.

ऑटोमेशन

किनारे का पता लगाना

Google Home के ईकोसिस्टम में मौजूद ऑटोमेशन में ऐज डिटेक्शन की सुविधा होती है. यह एक ऐसा लॉजिक है जो यह पुष्टि करता है कि स्टार्टर सिर्फ़ तब चालू होता है, जब डिवाइस की स्थिति में कोई बदलाव होता है. यह डिवाइस की स्थिति को अपडेट करने के बजाय, डिवाइस की पिछली स्थिति को दोहराता है.

उदाहरण के लिए, अगर लाइट चालू करना एक स्टार्टर है, तो एज डिटेक्शन यह पुष्टि करता है कि स्टार्टर सिर्फ़ तब चालू होता है, जब लाइट डिवाइस बंद से चालू होता है. ऐसा तब नहीं होता, जब लाइट डिवाइस चालू से चालू होता है (कोई बदलाव नहीं).

ऑटोमेशन की सुविधा उम्मीद के मुताबिक काम नहीं कर रही है

किनारों का पता लगाने की सुविधा को ध्यान में रखने के बाद, अगर कोई ऑटोमेशन उम्मीद के मुताबिक काम नहीं करता है, तो:

  1. हर डिवाइस की जांच करें, ताकि यह पक्का किया जा सके कि वह ऑटोमेशन से अलग, सही तरीके से काम कर रहा है.

  2. अपने ऑटोमेशन के लिए ऑटोमेशन ग्राफ़ देखें. इसकी तुलना अपने ऑटोमेशन डीएसएल से करें, ताकि आपको अपनी किसी भी संभावित गलत धारणा के बारे में पता चल सके.

  3. ऑटोमेशन के चालू होने के दौरान, Google Home ऐप्लिकेशन में डिवाइस की स्थिति देखें.

  4. देखें कि ऑटोमेशन में शामिल किए गए सभी डिवाइस, उस स्ट्रक्चर में मौजूद हों जहां आपको उन्हें शामिल करना है. ऑटोमेशन के लिए ज़रूरी डिवाइस को मिटाने से, अनचाहे नतीजे मिल सकते हैं. डिवाइस मिटाने का ऑटोमेशन पर असर देखें.

ऑटोमेशन तब चलता है, जब उसे नहीं चलना चाहिए

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

ऑटोमेशन कंपाइल नहीं होता

पक्का करें कि आपके ऐप्लिकेशन में सभी ज़रूरी इंपोर्ट शामिल हों. जैसे, अलग-अलग नोड टाइप के साथ-साथ उन विशेषताओं से जुड़ी हर क्लास जिन्हें आपको रेफ़र करना है.

ऑटोमेशन बनाने के दौरान पुष्टि नहीं हो सकी

अगर ऑटोमेशन बनाने की प्रोसेस में पुष्टि नहीं हो पाती है, तो चेतावनी या गड़बड़ी के मैसेज में समस्या के बारे में जानकारी दी जाती है. ज़्यादा जानकारी के लिए, ValidationIssueType रेफ़रंस देखें.

OAuth

अगर आपके पास पहले से कोई OAuth क्लाइंट है

अगर आपके पास पब्लिश किए गए ऐप्लिकेशन के लिए, पहले से ही पुष्टि किया गया OAuth क्लाइंट है, तो Home API को टेस्ट करने के लिए, अपने मौजूदा OAuth क्लाइंट का इस्तेमाल किया जा सकता है.

Home API को टेस्ट करने और इस्तेमाल करने के लिए, Google Home Developer Console रजिस्टर करने की ज़रूरत नहीं है. हालांकि, आपको अपना ऐप्लिकेशन पब्लिश करने के लिए, Developer Console के लिए मंज़ूरी पाना ज़रूरी होगा. भले ही, आपके पास किसी दूसरे इंटिग्रेशन से पुष्टि किया गया OAuth क्लाइंट हो.

इन बातों का ध्यान रखें:

  • मौजूदा OAuth क्लाइंट का इस्तेमाल करने पर, ज़्यादा से ज़्यादा 100 उपयोगकर्ता हो सकते हैं. टेस्ट उपयोगकर्ता जोड़ने के बारे में जानकारी के लिए,OAuth क्लाइंट आईडी जनरेट करना लेख पढ़ें. OAuth की पुष्टि से अलग, Home APIs ने उन उपयोगकर्ताओं की संख्या पर सीमा तय की है जो आपके ऐप्लिकेशन को अनुमतियां दे सकते हैं. यह सीमा 100 उपयोगकर्ताओं की है. Developer Console के लिए रजिस्टर करने के बाद, यह पाबंदी हटा दी जाती है.

  • Developer Console registration should be sent for approval when you are ready to restrict device-type grants through OAuth in preparation for updating your app with the Home APIs.

जिन Google Cloud ऐप्लिकेशन के लिए OAuth की पुष्टि होना बाकी है उनमें उपयोगकर्ता, पुष्टि की प्रक्रिया पूरी होने तक OAuth फ़्लो पूरा नहीं कर सकते. अनुमतियां देने की कोशिश करने पर, यह गड़बड़ी दिखेगी:

Access blocked: <Project Name> has not completed the Google verification process.