गड़बड़ियों और अपवादों को मैनेज करना

जब डिवाइस या अनुरोध उम्मीद के मुताबिक काम नहीं करते हैं, तब यह बताना ज़रूरी है गड़बड़ी को ठीक करने और बातचीत करने के लिए, ताकि वे समझ सकें कि और जब मुमकिन हो, तो उसे कैसे ठीक किया जाए. पक्का करें कि आपने गड़बड़ी की संभावित स्थितियां और आपका डिवाइस किस तरह काम करेगा: अगर उपयोगकर्ता क्या चल रहे किसी टास्क में रुकावट डालना है? अगर कोई उपयोगकर्ता किसी डिवाइस से कार्रवाई का अनुरोध करता है, तो क्या होगा जब यह ऑफ़लाइन हो? इन समस्याओं के लिए प्लान बनाना और अपने उपयोगकर्ताओं को रिकवर होने में मदद करना वे उपयोगकर्ता की परेशानी से बच सकते हैं. साथ ही, बेहतर क्वालिटी का अनुभव दे सकते हैं .

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

पहला उदाहरण: EXECUTE इंटेंट के लिए गड़बड़ी का जवाब

किसी असली उपयोगकर्ता ने अपने लिविंग रूम में दो स्मार्ट लाइटें लगाई हैं. किसी उपयोगकर्ता "लिविंग रूम की लाइटें चालू करो" आदेश जारी करता है और Google ने एक EXECUTE इंटेंट डालें. आपको पता चला है कि उपयोगकर्ता के डिवाइस ऑफ़लाइन हैं कंट्रोल नहीं किया जा सकता, इसलिए आपका फ़ुलफ़िलमेंट, इसके साथ EXECUTE रिस्पॉन्स दिखाता है status ERROR और errorCode deviceOffline.

इस उदाहरण में, 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 के साथ जवाब मिला.

इस उदाहरण में,EXECUTE लॉक डिवाइस से exceptionCode का इस्तेमाल करें, जैसा कि ऊपर बताया गया है:

{
  "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 लागू करने पर गड़बड़ी होती है अपने-आप मिलने वाली सूचनाएं.

एक स्मार्ट ड्रायर चल रहा है और साइकल खत्म होने से पहले कोई व्यक्ति दरवाज़ा खोलता है. Google Home Graph एपीआई को कॉल किया जा सकता है अपने-आप सूचना भेजने का reportStateAndNotifications तरीका errorCode:

इस उदाहरण में, ड्रायर डिवाइस से 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 से उपयोगकर्ता को यह निर्देश मिलेगा कि "डिवाइस का दरवाज़ा यह है खोला गया" सूचना मिलने के बाद. संबंधित दस्तावेज़ भेजे जा सकते हैं डिवाइस और एक ही पेलोड में सूचनाओं के साथ स्थिति दिखाता है.

चौथा उदाहरण: फ़ॉलो-अप सूचना

फ़ॉलो-अप सूचनाओं का समर्थन करने वाले traits कमांड के लिए, कोई गड़बड़ी या अपवाद होने पर, उपयोगकर्ता को फ़ॉलो-अप सूचना दी जाती है, अगर आपने 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 के बारे में ज़्यादा जानने के लिए, यह देखें गड़बड़ियां और अपवाद देखें.