गड़बड़ियां और अपवाद

इस दस्तावेज़ में, आधिकारिक तौर पर काम करने वाली गड़बड़ियों और स्मार्ट होम डिवाइसों के लिए अपवादों की सूची दी गई है. अगर आपने सूचनाओं को लागू किया है, तो कृपया इन गड़बड़ियों और अपवाद कोड का इस्तेमाल, इंटेंट के जवाब में या सूचनाओं में करें. इससे Google Assistant, किसी निर्देश या डिवाइस की स्थिति से जुड़ी समस्याओं के बारे में असली उपयोगकर्ताओं को चेतावनी दे पाएगी. अगर जवाब में गलत फ़ॉर्मैटिंग या errorCode शामिल है, तो Google Assistant उपयोगकर्ताओं को गड़बड़ी का एक सामान्य मैसेज दिखाती है. उदाहरण के लिए, "माफ़ करें, डिवाइस अभी उपलब्ध नहीं है".

गड़बड़ियां

जब किसी समस्या की वजह से, कोई अनुरोध पूरा नहीं हो पाता है, तो आपको गड़बड़ी का कोड दिखाना चाहिए. उदाहरण के लिए, अगर दरवाज़ का लॉक जाम हो गया है और उसे लॉक या अनलॉक नहीं किया जा सकता, तो उपयोगकर्ता को इस स्थिति के बारे में गड़बड़ी का मैसेज दिखना चाहिए.

गड़बड़ी के कोड, डिवाइस के लेवल पर या ग्लोबल लेवल पर अटैच किए जा सकते हैं. उदाहरण के लिए, अगर किसी उपयोगकर्ता के पास एक ही कंपनी की कई लाइटें हैं और उन्हें एक हब से कंट्रोल किया जाता है, तो जब उपयोगकर्ता अपनी सभी लाइटें बंद करने के लिए कहता है, तो हो सकता है कि लाइट देने वाली कंपनी, डिवाइस-लेवल पर गड़बड़ी का मैसेज दिखाए. ऐसा तब होता है, जब कोई एक लाइट ऑफ़लाइन हो. अगर पूरा हब ऑफ़लाइन हो और कोई भी लाइट कंट्रोल न की जा सके, तो कंपनी, ग्लोबल-लेवल पर गड़बड़ी का मैसेज दिखा सकती है. अगर सभी डिवाइस ऑफ़लाइन हैं, तो ग्लोबल-लेवल या डिवाइस-लेवल की गड़बड़ियों का इस्तेमाल करने में कोई अंतर नहीं है.

जब कोई डिवाइस ऑफ़लाइन हो, तो आपको डिवाइस के व्यवहार के पांच मिनट के अंदर, स्थिति की शिकायत करने के लिए {"online": false} की शिकायत करनी चाहिए.

सारांश में:

  • ग्लोबल-लेवल की गड़बड़ी: जवाब में दिए गए सभी डिवाइसों में एक ही गड़बड़ी है
  • स्थानीय-लेवल की गड़बड़ी: गड़बड़ी और सफलता के उदाहरणों के साथ मिला-जुला जवाब

ग्लोबल-लेवल की गड़बड़ियां

यहां दिए गए JSON स्निपेट में दिखाया गया है कि QUERY या EXECUTE रिस्पॉन्स में, ग्लोबल-लेवल की गड़बड़ियां कैसे दिखाई जाती हैं.

हब के ऑफ़लाइन होने की वजह से, ग्लोबल-लेवल की गड़बड़ी deviceOffline का उदाहरण:

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "errorCode": "deviceOffline",
    "status" : "ERROR"
  }
}

हब अपडेट होने की वजह से, ग्लोबल-लेवल की गड़बड़ी inSoftwareUpdate का उदाहरण:

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "errorCode": "inSoftwareUpdate",
    "status" : "ERROR"
  }
}

डिवाइस के लेवल की गड़बड़ियां

QUERY फ़ंक्शन का जवाब

यहां दिए गए JSON स्निपेट में बताया गया है कि क्वेरी के रिस्पॉन्स में, डिवाइस-लेवल की गड़बड़ियां कैसे दिखाई जाती हैं.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "devices": {
      "device-id-1": {
        "errorCode": "deviceOffline",
        "status" : "ERROR"
      },
      "device-id-2": {
        "errorCode": "deviceOffline",
        "status" : "ERROR"
      }
    }
  }
}

EXECUTE रिस्पॉन्स

यहां दिए गए JSON स्निपेट से पता चलता है कि EXECUTE रिस्पॉन्स में, डिवाइस-लेवल की गड़बड़ियां कैसे दिखाई जाती हैं.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "device-id-1"
        ],
        "status": "ERROR",
        "errorCode": "deviceOffline"
      },
      {
        "ids": [
          "device-id-2"
        ],
        "status": "SUCCESS",
        "states": {
          "on": true,
          "online": true
        }
      }
    ]
  }
}

गड़बड़ियों वाली सूचनाएं

पहले से दी जाने वाली सूचना

यहां दिए गए JSON स्निपेट में बताया गया है कि डिवाइस-लेवल की गड़बड़ियों की सूचना, पहले से भेजी जाने वाली सूचना में कैसे दी जाती है.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "agentUserId": "agent-user-id-1",
  "eventId": "unique-event-id-1",
  "payload": {
    "devices": {
      "notifications": {
        "device-id-1": {
          "RunCycle": {
            "priority": 0,
            "status": "FAILURE",
            "errorCode": "deviceDoorOpen"
          }
        }
      }
    }
  }
}

फ़ॉलो-अप जवाब

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

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "agentUserId": "agent-user-id-1",
  "eventId": "unique-event-id-1",
  "payload": {
    "devices": {
      "notifications": {
        "device-id-1": {
          "LockUnlock": {
            "priority": 0,
            "followUpResponse": {
              "status": "FAILURE",
              "errorCode": "deviceJammingDetected",
              "followUpToken": "PLACEHOLDER"
            }
          }
        }
      }
    }
  }
}

गड़बड़ियों की सूची

यहां दी गई गड़बड़ियों की वजह से, डिवाइस पर उससे जुड़ा टीटीएस (टेक्स्ट-टू-स्पीच) जनरेट होगा.

  • aboveMaximumLightEffectsDuration : ज़्यादा से ज़्यादा एक घंटे की जो तय सीमा है, यह उससे भी ज़्यादा है. कृपया फिर से कोशिश करें.
  • aboveMaximumTimerDuration : मैं <device(s)> को सिर्फ़ <time period> तक सेट कर सकता/सकती हूं
  • actionNotAvailable : माफ़ करें, फ़िलहाल ऐसा नहीं किया जा सकता.
  • actionUnavailableWhileRunning : <device(s)> फ़िलहाल चालू हैं, इसलिए कोई बदलाव नहीं किया जा सकता.
  • alreadyArmed : <device(s)> <is/are> already armed.
  • alreadyAtMax : <device(s)> पहले से ही सबसे ज़्यादा तापमान पर सेट है.
  • alreadyAtMin : <device(s)> पहले से ही कम से कम तापमान पर सेट है.
  • alreadyClosed : <device(s)> <is/are> already closed.
  • alreadyDisarmed : <device(s)> <is/are> already disarmed.
  • alreadyDocked : <device(s)> <is/are> already docked.
  • alreadyInState : <device(s)> पहले से ही उस स्थिति में हैं.
  • alreadyLocked : <device(s)> <is/are> already locked.
  • alreadyOff : <device(s)> <is/are> already off.
  • alreadyOn : <device(s)> <is/are> already on.
  • alreadyOpen : <device(s)> <is/are> already open.
  • alreadyPaused : <device(s)> <is/are> already paused.
  • alreadyStarted : <device(s)> <is/are> already started.
  • alreadyStopped : <device(s)> <is/are> already stopped.
  • alreadyUnlocked : <device(s)> <is/are> already unlocked.
  • ambiguousZoneName : माफ़ करें, <device(s)> आपकी बताई गई जगह को नहीं पहचान पाया. कृपया, हर जगह को एक ख़ास नाम दें और फिर से कोशिश करें.
  • amountAboveLimit : यह <device(s)> की क्षमता से ज़्यादा है.
  • appLaunchFailed : माफ़ करें, <device(s)> पर <app name> लॉन्च नहीं हो सका.
  • armFailure : <device(s)> को चालू नहीं किया जा सका.
  • armLevelNeeded : मुझे नहीं पता कि <device(s)> को किस लेवल पर सेट करना है. "<device(s)> को <low security> पर सेट करें" या "<device(s)> को <high security> पर सेट करें" बोलकर देखें
  • authFailure : मुझे <device(s)> से कनेक्ट करने में समस्या आ रही है. ऐप्लिकेशन की जांच करके देखें कि आपका <device/devices> पूरी तरह सेट अप हो गया है या नहीं.
  • bagFull : <device(s)> <has/have> <a full bag/full bags>. कृपया <it/them> खाली करें और फिर से कोशिश करें.
  • belowMinimumLightEffectsDuration : यह कम से कम पांच मिनट की तय सीमा से भी कम है. कृपया फिर से कोशिश करें.
  • belowMinimumTimerDuration : मैं <device(s)> को इतने कम समय के लिए सेट नहीं कर सकता/सकती. कृपया फिर से कोशिश करें.
  • binFull : <device(s)> <has/have> <a full bin/full bins>.
  • cancelArmingRestricted : माफ़ करें, हम <device(s)> को चालू करने का अनुरोध रद्द नहीं कर सके.
  • cancelTooLate : माफ़ करें, अब इसे रद्द नहीं किया जा सकता. इसके बजाय, <device(s)> या ऐप्लिकेशन का इस्तेमाल करें.
  • channelSwitchFailed : माफ़ करें, <channel name> चैनल पर स्विच नहीं किया जा सका. कृपया कुछ देर बाद फिर से कोशिश करें.
  • chargerIssue : माफ़ करें, ऐसा लगता है कि <device(s)> में <a charger issue/charger issues> है.
  • commandInsertFailed : <device(s)> के लिए निर्देश प्रोसेस नहीं किए जा सके.
  • deadBattery : <device(s)> <has/have> <a dead battery/dead batteries>.
  • degreesOutOfRange : <device(s)> के लिए, जिस डिग्री पर सेट करने का अनुरोध किया गया है वह सीमा से ज़्यादा है.
  • deviceAlertNeedsAssistance : <device(s)> पर कोई सूचना चालू है और <आपको> उसकी मदद चाहिए.
  • deviceAtExtremeTemperature : <device(s)> का तापमान <an extreme temperature/extreme temperatures> पर है.
  • deviceBusy : माफ़ करें, ऐसा लगता है कि <device(s)> में अभी कुछ और काम हो रहा है.
  • deviceCharging : माफ़ करें, ऐसा लगता है कि <device(s)> ऐसा नहीं कर सकते, क्योंकि (ha_shared.ItsTheyre size=$item.devices.total_device_count) चार्ज हो रहा है.
  • deviceClogged : माफ़ करें, ऐसा लगता है कि <device(s)> में कुछ फँसा हुआ है.
  • deviceCurrentlyDispensing : <device(s)> से पहले से ही कोई चीज़ दी जा रही है.
  • deviceDoorOpen : <device(s)> पर दरवाज़ा खुला है. कृपया इसे बंद करके फिर से कोशिश करें.
  • deviceHandleClosed : <device(s)> पर हैंडल बंद है. कृपया इसे खोलें और फिर से कोशिश करें.
  • deviceJammingDetected : <device(s)> <is/are> jammed.
  • deviceLidOpen : <device(s)> का कवर खुला है. कृपया इसे बंद करके फिर से कोशिश करें.
  • deviceNeedsRepair : <device(s)> <need(s)> to be repaired. कृपया डिवाइस ठीक करने की सेवा देने वाले स्थानीय व्यक्ति या कंपनी से संपर्क करें.
  • deviceNotDocked : माफ़ करें, ऐसा लगता है कि <device(s)> <isn't/aren't> डॉक किए गए हैं. कृपया <it/them> को डॉक करें और फिर से कोशिश करें.
  • deviceNotFound : <device(s)> <is/are>n't available. <it/them> को फिर से सेट अप करने की कोशिश करें.
  • deviceNotMounted : माफ़ करें, ऐसा लगता है कि <device(s)> से ऐसा नहीं किया जा सकता, क्योंकि <it/they> <is/are>n't mounted.
  • deviceNotReady : <device(s)> <is/are>n't ready.
  • deviceStuck : <device(s)> <is/are> stuck and needs your help.
  • deviceTampered : <device(s)> <has/have> been tampered with.
  • deviceThermalShutdown : माफ़ करें, ऐसा लगता है कि बहुत ज़्यादा तापमान होने की वजह से, <device(s)> बंद हो गए हैं.
  • directResponseOnlyUnreachable : <device(s)> <doesn't/don't> support remote control.
  • disarmFailure : <device(s)> को अनलॉक नहीं किया जा सका.
  • discreteOnlyOpenClose : माफ़ करें, <device(s)> सिर्फ़ पूरी तरह से बंद हो सकते हैं या खुल सकते हैं.
  • dispenseAmountAboveLimit : <device(s)> से इतनी ज़्यादा मात्रा में डिस्पेंस नहीं किया जा सकता.
  • dispenseAmountBelowLimit : <device(s)> से इतनी कम मात्रा में प्रॉडक्ट नहीं दिया जा सकता.
  • dispenseAmountRemainingExceeded : <device(s)> में, ऐसा करने के लिए ज़रूरत के मुताबिक <dispense item> नहीं है.
  • dispenseFractionalAmountNotSupported : <device(s)>, <dispense item> के कुछ हिस्से नहीं दे सकते.
  • dispenseFractionalUnitNotSupported : <device(s)> पर, <dispense item> के लिए उस यूनिट के फ़्रैक्शन का इस्तेमाल नहीं किया जा सकता.
  • dispenseUnitNotSupported : <device(s)> पर <dispense item> के लिए, उस यूनिट का इस्तेमाल नहीं किया जा सकता.
  • doorClosedTooLong : <device(s)> का दरवाज़ा काफ़ी समय से बंद है. कृपया दरवाज़ा खोलकर देख लें कि स्मार्ट डिवाइस में कुछ रखा हो और फिर से कोशिश करें.
  • emergencyHeatOn : <device(s)> <is/are> in Emergency Heat Mode, so <it/they>'ll have to be adjusted by hand.
  • faultyBattery : <device(s)> <has/have> <a faulty battery/faulty batteries>.
  • floorUnreachable : <device(s)> उस कमरे तक नहीं पहुंच सकते. कृपया <it/them> को सही फ़्लोर पर ले जाएं और फिर से कोशिश करें.
  • functionNotSupported : असल में, <device(s)> पर वह सुविधा काम नहीं करती.
  • genericDispenseNotSupported : मुझे यह जानना है कि आपको क्या निकालना है. कृपया आइटम का नाम बताएँ और फिर से कोशिश करें.
  • hardError : माफ़ करें, कोई गड़बड़ी हुई है. इसलिए, मैं आपके होम से जुड़े डिवाइस को कंट्रोल नहीं कर पा रही हूँ.
  • hardError : माफ़ करें, कोई गड़बड़ी हुई है. इसलिए, मैं आपके होम से जुड़े डिवाइस को कंट्रोल नहीं कर पा रही हूँ.
  • inAutoMode : <device(s)> फ़िलहाल ऑटो मोड पर सेट है. तापमान बदलने के लिए, आपको <it/them> को किसी और मोड पर स्विच करना होगा.
  • inAwayMode : <device(s)> फ़िलहाल, अवे मोड पर सेट है. अपना थर्मोस्टैट कंट्रोल करने के लिए, आपको किसी फ़ोन, टैबलेट या कंप्यूटर पर Nest ऐप्लिकेशन का इस्तेमाल करके इसे मैन्युअल रूप से होम मोड में बदलना होगा.
  • inDryMode : <device(s)> फ़िलहाल ड्राई मोड पर सेट है. तापमान बदलने के लिए, आपको <it/them> को किसी और मोड पर स्विच करना होगा.
  • inEcoMode : <device(s)> फ़िलहाल इको मोड पर सेट है. तापमान बदलने के लिए, आपको <it/them> को किसी और मोड पर स्विच करना होगा.
  • inFanOnlyMode : <device(s)> फ़िलहाल सिर्फ़ प्रशंसकों के लिए मोड पर सेट है. तापमान बदलने के लिए, आपको <it/them> को किसी और मोड पर स्विच करना होगा.
  • inHeatOrCool : <device(s)> <is/are>n't in heat/cool mode.
  • inHumidifierMode : <device(s)> फ़िलहाल, नमी बनाए रखने वाले मोड पर सेट है. तापमान बदलने के लिए, आपको <it/them> को किसी और मोड पर स्विच करना होगा.
  • inOffMode : <device(s)> फ़िलहाल बंद हैं. तापमान बदलने के लिए, आपको <it/them> को किसी दूसरे मोड पर स्विच करना होगा.
  • inPurifierMode : <device(s)> फ़िलहाल, 'हवा साफ़ करने वाला मोड' पर सेट है. तापमान बदलने के लिए, आपको <it/them> को किसी और मोड पर स्विच करना होगा.
  • inSleepMode : <device(s)> <is/are> स्लीप मोड में हैं. कृपया बाद में कोशिश करें.
  • inSoftwareUpdate : <device(s)> <is/are> currently in a software update.
  • lockFailure : <device(s)> को लॉक नहीं किया जा सका.
  • lockedState : <device(s)> फ़िलहाल लॉक हैं.
  • lockedToRange : यह तापमान, <device(s)> पर लॉक की गई सीमा से बाहर है.
  • बैटरी कम है : <device(s)> की बैटरी कम है.
  • maxSettingReached : <device(s)> पहले से ही सबसे ज़्यादा सेटिंग पर सेट है.
  • maxSpeedReached : <device(s)> पहले से ही सबसे तेज़ स्पीड पर सेट है.
  • minSettingReached : <device(s)> पहले से ही सबसे कम सेटिंग पर सेट है.
  • minSpeedReached : <device(s)> पहले से ही कम से कम स्पीड पर सेट है.
  • monitoringServiceConnectionLost : <device(s)> का कनेक्शन, निगरानी करने वाली सेवा से टूट गया है.
  • needsAttachment : माफ़ करें, ऐसा लगता है कि <device(s)> में ज़रूरी अटैचमेंट मौजूद नहीं है. कृपया इसे बदलें और फिर से कोशिश करें.
  • needsBin : माफ़ करें, ऐसा लगता है कि <device(s)> में बिन नहीं है. कृपया इसे बदलें और फिर से कोशिश करें.
  • needsPads : <device(s)> <need(s)> new pads.
  • needsSoftwareUpdate : <device(s)> को सॉफ़्टवेयर अपडेट की <need(s)> है.
  • needsWater : <device(s)> <need(s)> water.
  • networkProfileNotRecognized : माफ़ करें, मुझे <device(s)> पर "<network profile>" नहीं मिली.
  • networkSpeedTestInProgress : मैंने <network> <speed/speeds>> की जांच पहले ही कर ली है.
  • noAvailableApp : माफ़ करें, ऐसा लगता है कि <app name> उपलब्ध नहीं है.
  • noAvailableChannel : माफ़ करें, ऐसा लगता है कि चैनल <channel name> उपलब्ध नहीं है.
  • noChannelSubscription : माफ़ करें, फ़िलहाल आपके पास <channel name> चैनल की सदस्यता नहीं है.
  • noTimerExists : माफ़ करें, ऐसा लगता है कि <device(s)> पर कोई टाइमर सेट नहीं है.
  • notSupported : माफ़ करें, यह मोड <device(s)> के लिए उपलब्ध नहीं है.
  • obstructionDetected : <device(s)> को कोई रुकावट मिली.
  • offline , deviceOffline : माफ़ करें, ऐसा लगता है कि <device(s)> <is/are> फ़िलहाल उपलब्ध नहीं हैं.
  • onRequiresMode : कृपया बताएं कि आपको कौनसा मोड चालू करना है.
  • passphraseIncorrect : माफ़ करें, ऐसा लगता है कि आपने गलत पिन डाला है.
  • percentOutOfRange : माफ़ करें, <device(s)> को <percent> पर सेट नहीं किया जा सकता.
  • pinIncorrect : (passphraseIncorrect)
  • rainDetected : मैंने <device(s)> नहीं खोला, क्योंकि बारिश का पता चला है.
  • रेंजटूक्लोज़ : तापमान का अंतर, <device(s)> की गर्म-ठंडा रेंज के हिसाब से बहुत कम है. तापमान के बीच ज़्यादा अंतर चुनें.
  • relinkRequired : माफ़ करें, ऐसा लगता है कि आपके खाते में कोई गड़बड़ी हुई है. <device(s)> को फिर से लिंक करने के लिए, कृपया Google Home या Assistant ऐप्लिकेशन का इस्तेमाल करें.
  • remoteSetDisabled :
    • वैकल्पिक पैरामीटर errorCodeReason
    • currentlyArmed - माफ़ करें, सुरक्षा पहले से चालू है. इसलिए, कोई भी बदलाव करने के लिए, आपको <device(s)> या ऐप्लिकेशन का इस्तेमाल करना होगा.
    • remoteUnlockNotAllowed - माफ़ करें, मैं <device(s)> को किसी दूसरे डिवाइस से अनलॉक नहीं कर सकता.
    • remoteControlOff - फ़िलहाल, यह कार्रवाई नहीं की जा सकती. कृपया <device(s)> पर रिमोट कंट्रोल की सुविधा चालू करें और फिर से कोशिश करें.
    • childSafetyModeActive - बच्चों की सुरक्षा वाला मोड चालू होने पर, <device(s)> के लिए यह कार्रवाई बंद हो जाती है.
  • roomsOnDifferentFloors : <device(s)> उन कमरों तक नहीं पहुंच सकते, क्योंकि वे अलग-अलग फ़्लोर पर हैं.
  • safetyShutOff : <device(s)> <is/are> in Safety Shut-Off Mode, so <it/they>'ll have to be adjusted by hand.
  • sceneCannotBeApplied : माफ़ करें, <device(s)> लागू नहीं किए जा सकते.
  • securityRestriction : <device(s)> पर सुरक्षा से जुड़ी पाबंदी है.
  • softwareUpdateNotAvailable : माफ़ करें, <device(s)> पर कोई सॉफ़्टवेयर अपडेट उपलब्ध नहीं है.
  • startRequiresTime : इसके लिए, आपको मुझे बताना होगा कि आपको <device(s)> को कितनी देर तक चलाना है.
  • stillCoolingDown : <device(s)> <is/are> still cooling down.
  • stillWarmingUp : <device(s)> अब भी गर्म हो रहे हैं.
  • streamUnavailable : माफ़ करें, ऐसा लगता है कि फ़िलहाल <device(s)> से स्ट्रीम उपलब्ध नहीं है.
  • streamUnplayable : माफ़ करें, फ़िलहाल <device(s)> से स्ट्रीम नहीं चल रही है.
  • tankEmpty : <device(s)> <has/have> <an empty tank/empty tanks>. कृपया <it/them> को भरें और फिर से कोशिश करें.
  • targetAlreadyReached : माफ़ करें, ऐसा लगता है कि मौजूदा तापमान यही है.
  • timerValueOutOfRange : <device(s)> को इतने समय के लिए सेट नहीं किया जा सकता.
  • tooManyFailedAttempts : माफ़ करें, आपने कई बार कोशिश की है. कृपया उस कार्रवाई को पूरा करने के लिए अपने डिवाइस के ऐप्लिकेशन पर जाएं.
  • transientError : माफ़ करें, <device(s)> को कंट्रोल करते समय कोई गड़बड़ी हुई. कृपया फिर से कोशिश करें.
  • turnedOff , deviceTurnedOff : <device(s)> फ़िलहाल बंद हैं.
  • unableToLocateDevice : मुझे <device(s)> का पता नहीं चल सका.
  • unknownFoodPreset : <device(s)> पर, खाना बनाने का यह प्रीसेट काम नहीं करता.
  • unlockFailure : <device(s)> को अनलॉक नहीं किया जा सका.
  • unpausableState : <device(s)> को अभी रोका नहीं जा सकता.
  • userCancelled : ok
  • valueOutOfRange : <device(s)> को उस तापमान पर सेट नहीं किया जा सकता.

अपवाद

अगर किसी निर्देश से जुड़ी कोई समस्या या सूचना है, तो आपको अपवाद दिखाना चाहिए. यह हो सकता है कि निर्देश पूरा हो जाए या न हो पाए.

अगर निर्देश पूरा हो गया (स्टेटस = "सफल"), तो StatusReport ट्रीट की मदद से (टारगेट के अलावा अन्य डिवाइसों के लिए) या टारगेट डिवाइस के लिए सही exceptionCode दिखाकर, अपवादों की शिकायत करें.

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

अगर अपवादों की वजह से निर्देश पूरा नहीं हो पाता है, तो स्थिति "अपवाद" होनी चाहिए. साथ ही, अपवादों की शिकायत StatusReport ट्रेट का इस्तेमाल करके की जानी चाहिए.

टारगेट किए गए डिवाइस के बारे में, ब्लॉक न करने वाला अपवाद (सफलता)

दरवाज़े को लॉक करने के लिए यह उदाहरण देखें:

सामने के दरवाज़े के लॉक की बैटरी कम है. सामने का दरवाज़ा बंद कर रही हूँ.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["device-id-1"],
      "status": "SUCCESS",
      "states": {
        "on": true,
        "online": true,
        "isLocked": true,
        "isJammed": false,
        "exceptionCode": "lowBattery"
      }
    }]
  }
}

StatusReport का इस्तेमाल करने वाले किसी दूसरे डिवाइस के बारे में, गैर-ब्लॉकिंग अपवाद (सफलता)

यह उदाहरण, सुरक्षा सिस्टम को चालू करने के लिए है: ठीक है, सुरक्षा सिस्टम चालू कर रही हूँ. सामने की खिड़की खुली हो.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["device-id-1"],
      "status": "SUCCESS",
      "states": {
        "on": true,
        "online": true,
        "isArmed": true,
        "currentArmLevel": "L2",
        "currentStatusReport": [{
          "blocking": false,
          "deviceTarget": "sensor_id1",
          "priority": 0,
          "statusCode": "deviceOpen"
        }]
      }
    }]
  }
}

StatusReport का इस्तेमाल करके, किसी दूसरे डिवाइस के बारे में अपवाद को ब्लॉक करना

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "devices": {
      "device-id-1": {
        "on": true,
        "online": true,
        "status": "EXCEPTIONS",
        "currentStatusReport": [{
            "blocking": true,
            "deviceTarget": "device-id-1",
            "priority": 0,
            "statusCode": "lowBattery"
          },
          {
            "blocking": true,
            "deviceTarget": "front_window_id",
            "priority": 1,
            "statusCode": "deviceOpen"
          },
          {
            "blocking": true,
            "deviceTarget": "back_window_id",
            "priority": 1,
            "statusCode": "deviceOpen"
          }
        ]
      }
    }
  }
}

अपवादों की सूची

इन अपवादों के लिए, डिवाइस पर टीटीएस की सुविधा का इस्तेमाल किया जाएगा.

  • bagFull : <device(s)> <has/have> <a full bag/full bags>. कृपया <it/them> खाली करें और फिर से कोशिश करें.
  • binFull : <device(s)> <has/have> <a full bin/full bins>.
  • carbonMonoxideDetected : <house name> में कार्बन मोनोऑक्साइड का पता चला है.
  • deviceAtExtremeTemperature : <device(s)> का तापमान <an extreme temperature/extreme temperatures> पर है.
  • deviceJammingDetected : <device(s)> <is/are> jammed.
  • deviceMoved : <device(s)> <was/were> moved.
  • deviceOpen : <device(s)> <is/are> open.
  • deviceTampered : <device(s)> <has/have> been tampered with.
  • deviceUnplugged : <device(s)> <is/are> unplugged.
  • floorUnreachable : <device(s)> उस कमरे तक नहीं पहुंच सकते. कृपया <it/them> को सही फ़्लोर पर ले जाएं और फिर से कोशिश करें.
  • hardwareFailure : <device(s)> में हार्डवेयर से जुड़ी समस्या है.
  • inSoftwareUpdate : <device(s)> <is/are> currently in a software update.
  • isBypassed : <device(s)> <is/are> फ़िलहाल बायपास किए गए हैं.
  • बैटरी कम है : <device(s)> की बैटरी कम है.
  • motionDetected : <device(s)> <detect(s)> motion.
  • needsPads : <device(s)> <need(s)> new pads.
  • needsSoftwareUpdate : <device(s)> को सॉफ़्टवेयर अपडेट की <need(s)> है.
  • needsWater : <device(s)> <need(s)> water.
  • networkJammingDetected : <device(s)> से होम नेटवर्क का कनेक्शन ठीक से काम नहीं कर रहा.
  • noIssuesReported : <device(s)> ने कोई समस्या नहीं बताई.
  • roomsOnDifferentFloors : <device(s)> उन कमरों तक नहीं पहुंच सकते, क्योंकि वे अलग-अलग फ़्लोर पर हैं.
  • runCycleFinished : <device(s)> <has/have> finished running.
  • securityRestriction : <device(s)> पर सुरक्षा से जुड़ी पाबंदी है.
  • smokeDetected : <house name> में धुएं का पता चला है.
  • tankEmpty : <device(s)> <has/have> <an empty tank/empty tanks>. कृपया <it/them> को भरें और फिर से कोशिश करें.
  • usingCellularBackup : <device(s)> <is/are> using cellular backup.
  • waterLeakDetected : <device(s)> <detect(s)> a water leak.