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

गड़बड़ियों और अपवादों को हैंडल करना

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

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

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

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

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

इस उदाहरण में बताया गया है कि पहले से बताए गए तरीके से, लाइट डिवाइस से errorCode के साथ EXECUTE रिस्पॉन्स कैसे दिखाया जा सकता है:

{
  "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 will prompt the user with "the device are not available right now" after receiving the response. Remember that you still need to send offline state for devices in report state after sending errorCode deviceOffline in EXECUTE response.

उदाहरण 2: 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 से "डिवाइस की बैटरी कम है" दिखेगा.

उदाहरण 3: अपने-आप मिलने वाली गड़बड़ी की सूचनाएं

कुछ मामलों में, उपयोगकर्ताओं को किसी गड़बड़ी के बारे में चेतावनी देने से मदद मिल सकती है. खास तौर पर, उन फ़ंक्शन के लिए जिन्हें उपयोगकर्ता अपने-आप पूरा करते हैं. अगर अपने-आप मिलने वाली सूचनाओं के साथ किसी समस्या का पता चलता है, तो उपयोगकर्ता को अपने-आप इसकी सूचना दी जा सकती है. हालांकि, ऐसा तब होता है, जब आपने smart home proactive notifications. को लागू किया हो

स्मार्ट ड्रायर चल रहा है. इस रास्ते पर जाने से पहले, कोई व्यक्ति दरवाज़ा खोलता है. आप Google Home Graph API reportStateAndNotifications method to send a proactive notification with an 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 उपयोगकर्ता को "डिवाइस का दरवाज़ा खोलने" का मैसेज भेजेगा. आप एक ही पेलोड में सूचनाओं के साथ, उस डिवाइस की स्थिति भेज सकते हैं.

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

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