Matter इंटिग्रेशन की गड़बड़ियों को हल करना

refresh_date: 2023-01-06

Google Cloud आपको ऐसे टूल उपलब्ध कराता है जिनकी मदद से, Google Cloud Monitoring की मदद से अपने प्रोजेक्ट की भरोसेमंदता को मॉनिटर किया जा सकता है. साथ ही, Google Cloud Logging गड़बड़ी के लॉग की मदद से समस्याओं को डीबग किया जा सकता है. जब भी उपयोगकर्ता के अनुरोध पूरे नहीं किए जा पाते हैं, तब Google Home Analytics पाइपलाइन, आपकी मेट्रिक में उस गड़बड़ी को रिकॉर्ड करती है. साथ ही, आपके प्रोजेक्ट के लॉग में गड़बड़ी का लॉग पब्लिश करती है.

गड़बड़ियों को ठीक करने के लिए, ये दो तरीके अपनाएं:

  1. स्मार्ट होम मेट्रिक की मदद से, अपने प्रोजेक्ट की स्थिति को मॉनिटर करें.
  2. गड़बड़ी के लॉग में, गड़बड़ी की पूरी जानकारी देखकर समस्याओं की जांच करें.

गड़बड़ियों की निगरानी करना

अपने प्रोजेक्ट की मेट्रिक ऐक्सेस करने के लिए, Google Cloud Monitoring dashboards का इस्तेमाल किया जा सकता है. यहां कुछ मुख्य चार्ट दिए गए हैं. ये चार्ट, क्वालिटी को मॉनिटर करने और डीबग करने के लिए खास तौर पर फ़ायदेमंद होते हैं:

  • सक्सेस रेट चार्ट, पहला ऐसा चार्ट होता है जिसे तब देखा जाता है, जब आपको अपने प्रोजेक्ट की विश्वसनीयता की निगरानी करनी होती है. इस चार्ट में गिरावट से पता चल सकता है कि आपके उपयोगकर्ता आधार के कुछ या सभी हिस्सों के लिए, सेवा बंद है. हमारा सुझाव है कि अपने प्रोजेक्ट में कोई भी बदलाव या अपडेट करने के बाद, इस चार्ट को ध्यान से देखें. इससे आपको किसी भी अनियमितता के बारे में पता चलेगा.
  • गड़बड़ी की जानकारी वाले चार्ट, इंटिग्रेशन से जुड़ी समस्याओं को हल करने के लिए सबसे ज़्यादा मददगार होते हैं. सफलता के प्रतिशत वाले चार्ट में हाइलाइट की गई हर गड़बड़ी के लिए, गड़बड़ी के ब्यौरे में गड़बड़ी का कोड दिखता है. नीचे दी गई टेबल में, Google Home platform की ओर से फ़्लैग की गई गड़बड़ियां और उन्हें ठीक करने का तरीका देखा जा सकता है.

प्लैटफ़ॉर्म की गड़बड़ी के कोड

यहां कुछ सामान्य गड़बड़ी कोड दिए गए हैं. ये आपको अपने प्रोजेक्ट के लॉग में दिख सकते हैं. इनसे Google Home platform की ओर से पकड़ी गई समस्याओं की पहचान की जा सकती है. समस्या हल करने से जुड़ी जानकारी के लिए, कृपया यह टेबल देखें.

गड़बड़ी कोड ब्यौरा
BACKEND_FAILURE_URL_ERROR Google को आपकी सेवा से 401 के अलावा कोई दूसरा एचटीटीपी 4xx गड़बड़ी कोड मिला है.

GCP Logging में requestId का इस्तेमाल करके, स्मार्ट होम सेवा के लॉग देखें.
BACKEND_FAILURE_URL_TIMEOUT आपकी सेवा से संपर्क करने के दौरान, Google के अनुरोध का समय खत्म हो गया.

पुष्टि करें कि आपकी सेवा ऑनलाइन है, कनेक्शन स्वीकार कर रही है, और उसकी क्षमता से ज़्यादा इस्तेमाल नहीं किया जा रहा है. इसके अलावा, यह भी पुष्टि करें कि टारगेट डिवाइस चालू हो, इंटरनेट से कनेक्ट हो, और सिंक किया गया हो.
BACKEND_FAILURE_URL_UNREACHABLE Google को आपकी सेवा से एचटीटीपी 5xx गड़बड़ी का कोड मिला है.

GCP Logging में requestId का इस्तेमाल करके, स्मार्ट होम सेवा के लॉग देखें.
DEVICE_NOT_FOUND यह डिवाइस, पार्टनर की सेवा पर मौजूद नहीं है.

आम तौर पर, इससे डेटा सिंक करने में गड़बड़ी या रेस की स्थिति का पता चलता है.
GAL_BAD_3P_RESPONSE Google, खाते लिंक करने की सेवा से मिले जवाब को पार्स नहीं कर सकता. इसकी वजह यह है कि पेलोड में फ़ॉर्मैट या वैल्यू अमान्य हैं.

खाता लिंक करने की सेवा में गड़बड़ी के लॉग देखने के लिए, GCP Logging में requestId का इस्तेमाल करें.
GAL_INTERNAL Google ने ऐक्सेस टोकन को वापस पाने की कोशिश की, लेकिन इस दौरान Google की कोई इंटरनल गड़बड़ी हुई.

अगर आपको GCP Logging में इस गड़बड़ी की दर में बढ़ोतरी दिखती है, तो ज़्यादा जानकारी के लिए हमसे संपर्क करें.
GAL_INVALID_ARGUMENT Google ने ऐक्सेस टोकन को वापस पाने की कोशिश की, लेकिन इस दौरान Google की कोई इंटरनल गड़बड़ी हुई.

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

अगर आपको GCP Logging में इस गड़बड़ी की दर में बढ़ोतरी दिखती है, तो ज़्यादा जानकारी के लिए हमसे संपर्क करें.
GAL_PERMISSION_DENIED जब टोकन शेयर करने की अनुमति नहीं होती है, तब Google के सिस्टम में कोई गड़बड़ी होती है.

अगर आपको GCP Logging में इस गड़बड़ी की दर में बढ़ोतरी दिखती है, तो ज़्यादा जानकारी के लिए हमसे संपर्क करें.
GAL_REFRESH_IN_PROGRESS उपयोगकर्ता के ऐक्सेस टोकन की समयसीमा खत्म हो गई है और उसे रीफ़्रेश करने की कोशिश पहले से ही जारी है.

यह कोई समस्या नहीं है. इसलिए, आपको कुछ करने की ज़रूरत नहीं है.
INVALID_AUTH_TOKEN Google को आपकी सेवा से एचटीटीपी 401 गड़बड़ी कोड मिला है.

ऐक्सेस टोकन की समयसीमा खत्म नहीं हुई है, लेकिन आपकी सेवा ने इसे अमान्य कर दिया है. GCP Logging में मौजूद requestId का इस्तेमाल करके, स्मार्ट होम सेवा के लॉग देखें.
INVALID_JSON JSON रिस्पॉन्स को पार्स या समझा नहीं जा सकता.

अमान्य सिंटैक्स के लिए, अपने JSON रिस्पॉन्स के स्ट्रक्चर की जांच करें. जैसे, ब्रैकेट का मेल न खाना, कॉमा मौजूद न होना, अमान्य वर्ण.
OPEN_AUTH_FAILURE उपयोगकर्ता का ऐक्सेस टोकन खत्म हो गया है और Google उसे रीफ़्रेश नहीं कर पा रहा है, या Google को आपकी सेवा से HTTP 401 गड़बड़ी का कोड मिला है.

अगर आपको इस कोड के इस्तेमाल में बढ़ोतरी दिखती है, तो देखें कि क्या आपको स्मार्ट होम इंटेंट या रीफ़्रेश टोकन के अनुरोधों से जुड़ी गड़बड़ियों में भी बढ़ोतरी दिख रही है.
PARTNER_RESPONSE_INVALID_ERROR_CODE जवाब में, गड़बड़ी का ऐसा कोड बताया गया है जिसकी पहचान नहीं की जा सकी.

अगर आपके अनुरोध के जवाब में कोई गड़बड़ी दिखती है, तो पक्का करें कि आपने गड़बड़ी के लिए दिए गए कोड में से किसी एक का इस्तेमाल किया हो.
PARTNER_RESPONSE_INVALID_PAYLOAD रिस्पॉन्स payload फ़ील्ड को JSON ऑब्जेक्ट के तौर पर पार्स नहीं किया जा सकता.

देखें कि आपके अनुरोध के जवाब में मौजूद पेलोड फ़ील्ड में ब्रैकेट मेल खाते हों और वह JSON फ़ील्ड के तौर पर सही तरीके से स्ट्रक्चर किया गया हो.
PARTNER_RESPONSE_INVALID_STATUS जवाब में स्थिति की जानकारी नहीं दी गई है या गलत जानकारी दी गई है.

इरादे को पूरा करने के अनुरोधों के जवाबों में, SUCCESS, OFFLINE, ERROR, EXCEPTIONS के साथ स्टेटस दिखना चाहिए. गड़बड़ियों और अपवादों को मैनेज करने के बारे में ज़्यादा जानकारी यहां दी गई है.
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES अनुरोध में मौजूद एक या उससे ज़्यादा इंटेंट, जवाब में मौजूद नहीं हैं.

पुष्टि करें कि आपका एक्ज़ीक्यूशन रिस्पॉन्स सही तरीके से स्ट्रक्चर किया गया हो. साथ ही, यह भी पुष्टि करें कि अनुरोध में शामिल सभी इंटेंट के नतीजे, आपके रिस्पॉन्स में मौजूद हों.
PARTNER_RESPONSE_MISSING_DEVICE अनुरोध में मौजूद एक या उससे ज़्यादा डिवाइस, जवाब में मौजूद नहीं हैं.

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

पक्का करें कि आपने अपने अनुरोध के जवाब में पेलोड फ़ील्ड शामिल किया हो. कार्रवाई पूरी होने पर मिलने वाले जवाब को सही तरीके से बनाने के बारे में ज़्यादा जानें.
PARTNER_RESPONSE_NOT_OBJECT रिस्पॉन्स को JSON ऑब्जेक्ट के तौर पर पार्स नहीं किया जा सकता.

अनचाहे वर्णों, ब्रैकेट के न मिलने या फ़ॉर्मैटिंग से जुड़ी गड़बड़ियों के लिए, अनुरोध के जवाब में मौजूद सभी फ़ील्ड की जांच करें. ऐसा हो सकता है कि कुछ यूनिकोड वर्णों का इस्तेमाल न किया जा सके. यह भी पक्का करें कि आपका जवाब, JSON ऑब्जेक्ट के तौर पर सही तरीके से स्ट्रक्चर किया गया हो.
PROTOCOL_ERROR अनुरोध को प्रोसेस नहीं किया जा सका.

स्मार्ट होम सेवा के लॉग देखने के लिए, Google Cloud Logging में requestId का इस्तेमाल करें.
RELINK_REQUIRED जवाब में relinkRequired गड़बड़ी का पता चला है. इससे उपयोगकर्ता को अपने Google और पार्टनर खातों को फिर से लिंक करने के लिए कहा जाता है.

ज़्यादा जानकारी के लिए, गड़बड़ी के कोड देखें.
RESPONSE_TIMEOUT जवाब का इंतज़ार करते समय अनुरोध का समय खत्म हो गया है.

जवाब भेजने के लिए, अनुरोध भेजे जाने के बाद नौ सेकंड का समय मिलता है. पक्का करें कि आपने इस समयावधि में जवाब भेज दिया हो.
RESPONSE_UNAVAILABLE कोई जवाब नहीं मिला या जवाब में स्थिति के बारे में नहीं बताया गया है.

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

आम तौर पर, ये गड़बड़ियां किसी डिवाइस या सेवा से कनेक्शन के बंद होने के तौर पर दिखती हैं. इसके अलावा, अगर सर्वर से नए कनेक्शन नहीं खोले जा सकते.

खोज लॉग

मेट्रिक का इस्तेमाल करके इंटिग्रेशन की परफ़ॉर्मेंस मॉनिटर करने के बाद, अगला चरण Cloud Logging का इस्तेमाल करके, किसी गड़बड़ी को ठीक करना है. गड़बड़ी का लॉग, JSON जैसी एंट्री होती है. इसमें समय, गड़बड़ी का कोड, और स्मार्ट होम इंटेंट की जानकारी जैसे फ़ील्ड होते हैं.

Google Cloud में कई सिस्टम होते हैं, जो आपके प्रोजेक्ट को हर समय लॉग भेजते हैं. आपको अपने लॉग फ़िल्टर करने के लिए क्वेरी लिखनी होंगी और अपनी ज़रूरत के हिसाब से लॉग ढूंढने होंगे. क्वेरी, समयसीमा, संसाधन, लॉग गंभीरता या कस्टम एंट्री के आधार पर बनाई जा सकती हैं.

क्लाउड लॉग क्वेरी करना

कस्टम फ़िल्टर बनाने के लिए, क्वेरी बटन का इस्तेमाल किया जा सकता है.

Cloud Log Queries बनाना

समयसीमा तय करने के लिए, समयसीमा चुनने वाले बटन पर क्लिक करें और दिए गए विकल्पों में से कोई एक विकल्प चुनें. इससे लॉग फ़िल्टर हो जाएंगे और सिर्फ़ वे लॉग दिखेंगे जो चुनी गई समयावधि के दौरान जनरेट हुए हैं.

संसाधन तय करने के लिए, संसाधन ड्रॉपडाउन पर क्लिक करें. इसके बाद, Google Assistant ऐक्शन प्रोजेक्ट चुनें. इससे आपकी क्वेरी में एक फ़िल्टर जुड़ जाता है. इससे आपके प्रोजेक्ट से जनरेट हुए लॉग दिखते हैं.

गंभीरता बटन का इस्तेमाल करके, आपातकालीन, जानकारी, डीबग, और अन्य गंभीरता वाले लॉग लेवल के हिसाब से फ़िल्टर करें.

कस्टम एंट्री डालने के लिए, Logs Explorer में क्वेरी फ़ील्ड का भी इस्तेमाल किया जा सकता है. इस फ़ील्ड के लिए इस्तेमाल किया जाने वाला क्वेरी इंजन, बुनियादी क्वेरी और ज़्यादा बेहतर क्वेरी, दोनों के साथ काम करता है. बुनियादी क्वेरी में स्ट्रिंग मैचिंग जैसी क्वेरी शामिल होती हैं. वहीं, ज़्यादा बेहतर क्वेरी में तुलना करने वाले ऑपरेटर (<, >=, !=) और बूलियन ऑपरेटर (AND, OR, NOT) शामिल होते हैं.

उदाहरण के लिए, नीचे दी गई कस्टम एंट्री से ऐसी गड़बड़ियां दिखेंगी जो LIGHT डिवाइस टाइप से जुड़ी हैं:

resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"

लॉग से असरदार तरीके से क्वेरी करने के ज़्यादा उदाहरण देखने के लिए, क्वेरी लाइब्रेरी पर जाएं.

समस्याओं को ठीक करने के लिए टेस्टिंग करना

गड़बड़ियों का पता लगाने और उन्हें ठीक करने के लिए अपडेट लागू करने के बाद, हमारा सुझाव है कि आप Google Home Test Suite का इस्तेमाल करके, गड़बड़ियों को ठीक करने के लिए किए गए बदलावों की अच्छी तरह से जांच करें. हम Test Suite को इस्तेमाल करने के तरीके के बारे में उपयोगकर्ता गाइड उपलब्ध कराते हैं. इसमें, बदलावों को असरदार तरीके से टेस्ट करने के बारे में बताया गया है.

सीखने के लिए संसाधन

इस दस्तावेज़ में, स्मार्ट होम ऐक्शन में आने वाली गड़बड़ियों को ठीक करने का तरीका बताया गया है. डीबग करने के बारे में ज़्यादा जानने के लिए, हमारे कोडलैब भी देखे जा सकते हैं: