जब डिवाइस या अनुरोध उम्मीद के मुताबिक काम नहीं करते, तो उपयोगकर्ताओं को गड़बड़ी को मैनेज करने और उससे जुड़ी जानकारी देने की सुविधा देना ज़रूरी है. इससे उन्हें यह समझने में मदद मिलती है कि क्या हुआ है और जब भी हो सके, तो उसे ठीक करने का तरीका. पक्का करें कि आपने डिवाइस के काम न करने की संभावित स्थितियों और डिवाइस के जवाब देने के तरीके के बारे में सोच-विचार कर लिया हो: अगर कोई उपयोगकर्ता, किसी टास्क के बीच में रुकावट डालता है, तो क्या होगा? अगर कोई उपयोगकर्ता किसी डिवाइस के ऑफ़लाइन होने पर उससे किसी कार्रवाई का अनुरोध करता है, तो क्या होगा? इन समस्याओं को पहले से जानकर और उपयोगकर्ताओं को इनसे उबरने में मदद करके, उन्हें परेशान होने से बचाया जा सकता है. साथ ही, आपके डिवाइसों को इस्तेमाल करने का बेहतर अनुभव भी दिया जा सकता है.
इस गाइड में, गड़बड़ियों को मैनेज करने वाले इंटेंट रिस्पॉन्स के कुछ उदाहरण दिए गए हैं. गड़बड़ी और अपवादों के लिए मान्य errorCode
वैल्यू की समीक्षा करने के लिए, गड़बड़ियां और अपवाद देखें.
पहला उदाहरण: EXECUTE
इंटेंट के लिए गड़बड़ी का जवाब
किसी असली उपयोगकर्ता ने अपने लिविंग रूम में दो स्मार्ट लाइटें इंस्टॉल की हैं. उपयोगकर्ता, "लिविंग रूम की लाइटें चालू करें" कमांड देता है और Google, आपके फ़ुलफ़िलमेंट यूआरएल पर EXECUTE
इंटेंट भेजता है. आपको पता चला है कि उपयोगकर्ता के डिवाइस ऑफ़लाइन हैं और उन्हें कंट्रोल नहीं किया जा सकता. इसलिए, आपका फ़ुलफ़िलमेंट, status
ERROR
और errorCode
deviceOffline
के साथ EXECUTE
रिस्पॉन्स दिखाता है.
इस उदाहरण में, पहले बताए गए तरीके के मुताबिक, लाइट डिवाइस से EXECUTE
रिस्पॉन्स के साथ errorCode
को वापस लाने का तरीका बताया गया है:
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [ { "ids": [ "light-device-id-1" ], "status": "ERROR", "errorCode": "deviceOffline" }, { "ids": [ "light-device-id-2" ], "status": "ERROR", "errorCode": "deviceOffline" } ] } }
जवाब मिलने के बाद, Google Assistant उपयोगकर्ता को "डिवाइस अभी उपलब्ध नहीं है" का मैसेज दिखाता है. ध्यान रखें कि EXECUTE
रिस्पॉन्स में errorCode
deviceOffline
भेजने के बाद भी, आपको रिपोर्ट स्टेटस में मौजूद डिवाइसों के लिए ऑफ़लाइन स्टेटस भेजना होगा.
दूसरा उदाहरण: EXECUTE
इंटेंट के लिए, ब्लॉक न करने वाला अपवाद
उपयोगकर्ता, Assistant का इस्तेमाल करके अपने सामने के दरवाज़े पर लगे स्मार्ट लॉक को बंद करने की कोशिश करता है. डिवाइस का लॉक कंट्रोल किया जा सकता है, लेकिन आपको पता चलता है कि डिवाइस की बैटरी कम है. इसलिए, फ़ुलफ़िलमेंट EXECUTE
के साथ status
SUCCESS
और exceptionCode
lowBattery
का जवाब देता है.
इस उदाहरण में, लॉक डिवाइस से exceptionCode
के साथ EXECUTE
रिस्पॉन्स भेजने का तरीका बताया गया है, जैसा कि पहले बताया गया है:
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["lock-device-id-1"], "status": "SUCCESS", "states": { "on": true, "online": true, "isLocked": true, "isJammed": false, "exceptionCode": "lowBattery" } }] } }
जवाब मिलने के बाद, Assistant उपयोगकर्ता को "डिवाइस की बैटरी कम है" के बारे में बताता है.
तीसरा उदाहरण: गड़बड़ी की जानकारी देने वाली सूचनाएं
कुछ मामलों में, उपयोगकर्ताओं को गड़बड़ी के बारे में चेतावनी देना मददगार हो सकता है. खास तौर पर, उन फ़ंक्शन के लिए जिनके अपने-आप पूरा होने की उम्मीद उपयोगकर्ता करते हैं. जिन ट्रैट के लिए, बिना मांगे सूचनाएं भेजने की सुविधा काम करती है उनके लिए, smart home बिना मांगे सूचनाएं भेजने की सुविधा को लागू करने पर, गड़बड़ी होने पर उपयोगकर्ता को सूचना दी जा सकती है.
स्मार्ट ड्रायर चल रहा है और कोई व्यक्ति साइकल खत्म होने से पहले दरवाज़ा खोलता है.
errorCode
के साथ, पहले से सूचना भेजने के लिए, Google Home Graph एपीआई
reportStateAndNotifications
का इस्तेमाल किया जा सकता है:
इस उदाहरण में, ड्रायर डिवाइस से पहले बताई गई errorCode
के साथ, पहले से सूचना भेजने का तरीका बताया गया है:
POST https://homegraph.googleapis.com/v1/devices:reportStateAndNotification
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "agentUserId": "agent-user-id", "eventId": "unique-event-id", "payload": { "devices": { "notifications": { "dryer-device-id": { "RunCycle": { "priority": 0, "status": "FAILURE", "errorCode": "deviceDoorOpen" } } }, "states": { "dryer-device-id": { "isRunning": false, "isPaused": true } } } } }
सूचना मिलने के बाद, Assistant उपयोगकर्ता को "डिवाइस का दरवाज़ा खुला है" के साथ प्रॉम्प्ट करता है. एक ही पेलोड में, सूचनाओं के साथ डिवाइस की स्थिति भी भेजी जा सकती है.
चौथा उदाहरण: फ़ॉलो-अप नोटिफ़िकेशन
जिन ट्रैट कमांड के लिए फ़ॉलो-अप सूचनाएं काम करती हैं उनके लिए, गड़बड़ी या अपवाद होने पर उपयोगकर्ता को फ़ॉलो-अप सूचना भेजी जा सकती है. ऐसा तब किया जा सकता है, जब आपने smart home फ़ॉलो-अप सूचनाएं लागू की हों.
कोई उपयोगकर्ता अपने गैराज के दरवाज़े को बंद करने का निर्देश देता है, लेकिन दरवाज़ा बंद होने के दौरान अटक जाता है. errorCode
की मदद से, फ़ॉलो-अप नोटिफ़िकेशन भेजा जा सकता है:
POST https://homegraph.googleapis.com/v1/devices:reportStateAndNotification
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "agentUserId": "agent-user-id", "eventId": "unique-event-id", "payload": { "devices": { "notifications": { "door-device-id": { "LockUnlock": { "priority": 0, "followUpResponse": { "status": "FAILURE", "errorCode": "deviceJammingDetected", "followUpToken": "follow-up-token-1" } } } }, "states": { "door-device-id": { "openPercent": 70 } } } } }
सूचना मिलने के बाद, Assistant उपयोगकर्ता को "डिवाइस में रुकावट आ गई है" का मैसेज दिखाता है. एक ही पेलोड में, डिवाइस की स्थिति से जुड़ी सूचनाएं भेजी जा सकती हैं.
ज़्यादा जानकारी और errorCodes
के बारे में ज़्यादा जानने के लिए, गड़बड़ियां और अपवाद के रेफ़रंस दस्तावेज़ देखें.