ত্রুটি এবং ব্যতিক্রম

এই ডকুমেন্টে স্মার্ট হোম ডিভাইসগুলির জন্য আনুষ্ঠানিকভাবে সমর্থিত ত্রুটি এবং ব্যতিক্রমগুলির তালিকা দেওয়া আছে। অনুগ্রহ করে এই প্রদত্ত ত্রুটি এবং ব্যতিক্রম কোডগুলি ইন্টেন্ট রেসপন্সে, অথবা নোটিফিকেশনে (যদি আপনি এটি প্রয়োগ করে থাকেন) ব্যবহার করুন, যাতে গুগল অ্যাসিস্ট্যান্ট কোনো নির্দিষ্ট কমান্ড বা ডিভাইসের অবস্থা সম্পর্কিত সমস্যা সম্পর্কে ব্যবহারকারীদের সতর্ক করতে পারে। যদি রেসপন্সে ভুল ফরম্যাটিং বা errorCode থাকে, তাহলে গুগল অ্যাসিস্ট্যান্ট ব্যবহারকারীদের একটি সাধারণ ত্রুটি বার্তা দেয়, যেমন, "দুঃখিত, ডিভাইসটি এই মুহূর্তে উপলব্ধ নয়"।

ত্রুটি

যখন কোনো সমস্যার কারণে এক্সিকিউট বা কোয়েরি অনুরোধ ব্যর্থ হয়, তখন একটি এরর কোড ফেরত দেওয়া উচিত। উদাহরণস্বরূপ, যদি একটি দরজার তালা আটকে যায় এবং সেটি লক বা আনলক করা না যায়, তবে এই অবস্থা সম্পর্কে ব্যবহারকারীকে একটি এরর বার্তা পাঠানো উচিত।

এরর কোড ডিভাইস লেভেলে বা গ্লোবাল লেভেলে সংযুক্ত করা যেতে পারে। উদাহরণস্বরূপ, যদি কোনো ব্যবহারকারীর একই প্রোভাইডারের অনেকগুলো লাইট থাকে এবং সেগুলো একটি হাব দ্বারা নিয়ন্ত্রিত হয়, তখন ব্যবহারকারী যখন তার সমস্ত লাইট বন্ধ করতে বলেন, তখন যদি একটিমাত্র লাইট অফলাইন থাকে তবে প্রোভাইডার একটি ডিভাইস-লেভেল এরর দেখাতে পারে, অথবা যদি তাদের পুরো হাবটি অফলাইন থাকে এবং কোনো লাইটই নিয়ন্ত্রণ করা না যায়, তবে একটি গ্লোবাল-লেভেল এরর দেখাতে পারে। যদি সমস্ত ডিভাইস অফলাইন থাকে, তবে গ্লোবাল-লেভেল বা ডিভাইস-লেভেল এরর ব্যবহারের মধ্যে কোনো পার্থক্য থাকে না।

সারসংক্ষেপে:

  • বৈশ্বিক-স্তরের ত্রুটি: প্রতিক্রিয়ার সমস্ত ডিভাইসে একই ত্রুটি রয়েছে
  • স্থানীয় পর্যায়ের ত্রুটি: ত্রুটি এবং সফলতার ক্ষেত্রে মিশ্র প্রতিক্রিয়া

বৈশ্বিক-স্তরের ত্রুটি

নিম্নলিখিত 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"
  }
}

ডিভাইস-স্তরের ত্রুটি

কোয়েরি প্রতিক্রিয়া

নিম্নলিখিত JSON স্নিপেটটি দেখায় যে কীভাবে আপনি QUERY প্রতিক্রিয়ায় ডিভাইস-স্তরের ত্রুটিগুলি ফেরত দেবেন।

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

প্রতিক্রিয়া কার্যকর করুন

নিম্নলিখিত 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"
            }
          }
        }
      }
    }
  }
}

ত্রুটির তালিকা

নিম্নলিখিত ত্রুটিগুলির ফলে ডিভাইসে সংশ্লিষ্ট টিটিএস (TTS) প্রদর্শিত হবে।

  • aboveMaximumLightEffectsDuration : এটি সর্বোচ্চ ১ ঘণ্টার সময়সীমার চেয়ে বেশি। অনুগ্রহ করে আবার চেষ্টা করুন।
  • aboveMaximumTimerDuration : আমি <ডিভাইস(গুলি)> শুধুমাত্র <সময়কাল> পর্যন্ত সেট করতে পারি।
  • actionNotAvailable : দুঃখিত, আমি এই মুহূর্তে তা করতে পারছি না। পরামর্শ: আপনার ফুলফিলমেন্টে ডিভাইস ট্রেইট এবং বর্তমান অবস্থার লজিক যাচাই করুন।
  • actionUnavailableWhileRunning : <ডিভাইস(গুলি)> বর্তমানে চলছে, তাই আমি কোনো পরিবর্তন করতে পারছি না।
  • alreadyArmed : <ডিভাইস(গুলি)> <ইতিমধ্যেই> সক্রিয় আছে।
  • alreadyAtMax : <ডিভাইস(গুলি)> ইতিমধ্যেই সর্বোচ্চ তাপমাত্রায় সেট করা আছে।
  • alreadyAtMin : <ডিভাইস(গুলি)> ইতিমধ্যেই সর্বনিম্ন তাপমাত্রায় সেট করা আছে।
  • alreadyClosed : <ডিভাইস(গুলি)> <ইতিমধ্যেই বন্ধ আছে>।
  • alreadyDisarmed : <ডিভাইস(গুলি)> <ইতিমধ্যেই> নিষ্ক্রিয় করা আছে।
  • alreadyDocked : <ডিভাইস(গুলি)> ইতিমধ্যে ডক করা আছে।
  • alreadyInState : <ডিভাইস(গুলি)> ইতিমধ্যেই সেই অবস্থায় আছে।
  • alreadyLocked : <ডিভাইস(গুলি)> ইতিমধ্যে লক করা আছে।
  • alreadyOff : <ডিভাইস(গুলি)> <ইতিমধ্যেই বন্ধ আছে>।
  • alreadyOn : <ডিভাইস(গুলি)> ইতিমধ্যে চালু আছে।
  • alreadyOpen : <ডিভাইস(গুলি)> <ইতিমধ্যেই খোলা আছে>।
  • alreadyPaused : <ডিভাইস(গুলি)> ইতিমধ্যেই পজ করা আছে।
  • alreadyStarted : <ডিভাইস(গুলি)> <ইতিমধ্যেই চালু আছে>।
  • alreadyStopped : <ডিভাইস(গুলি)> ইতিমধ্যেই বন্ধ আছে।
  • alreadyUnlocked : <ডিভাইস(গুলি)> <ইতিমধ্যেই আনলক করা আছে>।
  • ambiguousZoneName : দুঃখিত, <ডিভাইস(গুলি)> শনাক্ত করতে পারছে না আপনি কোন জোনের কথা বলছেন। অনুগ্রহ করে নিশ্চিত করুন যে আপনার জোনগুলির অনন্য নাম রয়েছে এবং আবার চেষ্টা করুন।
  • amountAboveLimit : এটি <ডিভাইস(গুলি)>-এর ধারণক্ষমতার চেয়ে বেশি।
  • appLaunchFailed : দুঃখিত, <ডিভাইস(গুলি)>-এ <অ্যাপের নাম> চালু করা সম্ভব হয়নি। পরামর্শ: অ্যাপআইডি যাচাই করুন এবং নিশ্চিত করুন যে অ্যাপটি নির্দিষ্ট হার্ডওয়্যারে সমর্থিত।
  • armFailure : <ডিভাইস(গুলি)> সক্রিয় করা যায়নি।
  • armLevelNeeded : আমি নিশ্চিত নই <ডিভাইস(গুলি)> কোন স্তরে সেট করতে হবে। "<ডিভাইস(গুলি)> <নিম্ন নিরাপত্তা> তে সেট করুন" অথবা "<ডিভাইস(গুলি)> <উচ্চ নিরাপত্তা> তে সেট করুন" বলার চেষ্টা করুন।
  • প্রমাণীকরণ ব্যর্থতা : আমি <ডিভাইস(গুলি)>-এর সাথে সংযোগ স্থাপন করতে পারছি না। আপনার <ডিভাইস/ডিভাইসগুলো> সম্পূর্ণরূপে সেট আপ করা আছে কিনা তা নিশ্চিত করতে অ্যাপটি পরীক্ষা করে দেখুন।
  • bagFull : <ডিভাইস(গুলি)>-এর <ব্যাগ/ব্যাগগুলো> ভর্তি। অনুগ্রহ করে <এটি/এগুলো> খালি করুন এবং আবার চেষ্টা করুন।
  • সর্বনিম্ন আলোর প্রভাবের সময়কালের নিচে : এটি ৫ মিনিটের সর্বনিম্ন সময়কালের চেয়ে কম। অনুগ্রহ করে আবার চেষ্টা করুন।
  • সর্বনিম্ন টাইমারের সময়কালের চেয়ে কম : আমি <ডিভাইস(গুলি)> এত অল্প সময়ের জন্য সেট করতে পারছি না। অনুগ্রহ করে আবার চেষ্টা করুন।
  • binFull : <ডিভাইস(গুলি)> <একাধিক বিন বা বিনগুলো পূর্ণ>।
  • cancelArmingRestricted : দুঃখিত, আমি <ডিভাইস(গুলি)> সক্রিয় করা বাতিল করতে পারিনি।
  • cancelTooLate : দুঃখিত, বাতিল করার জন্য অনেক দেরি হয়ে গেছে। এর পরিবর্তে <ডিভাইস(গুলি)> অথবা অ্যাপটি ব্যবহার করুন।
  • চ্যানেল পরিবর্তন ব্যর্থ : দুঃখিত, <চ্যানেলের নাম> চ্যানেলে পরিবর্তন করা সম্ভব হয়নি। অনুগ্রহ করে পরে আবার চেষ্টা করুন। পরামর্শ: ব্যবহারকারীর চ্যানেলের নাম/নম্বর এবং সাবস্ক্রিপশনের অবস্থা যাচাই করুন।
  • চার্জার সমস্যা : দুঃখিত, মনে হচ্ছে আপনার ডিভাইসে চার্জারের সমস্যা হয়েছে। পরামর্শ: আপনার পার্টনারের উচিত হার্ডওয়্যার-স্তরের টেলিমেট্রি এবং ব্যাটারির স্বাস্থ্য পরীক্ষা করে দেখা।
  • commandInsertFailed : <ডিভাইস(গুলি)>-এর জন্য কমান্ড প্রক্রিয়া করা সম্ভব হচ্ছে না। পরামর্শ: ডাটাবেস রাইট পারফরম্যান্স অথবা অভ্যন্তরীণ কমান্ড কিউইং লজিক খতিয়ে দেখুন।
  • মৃত ব্যাটারি : <ডিভাইস(গুলি)> <এতে> <একটি/একাধিক ব্যাটারি> নষ্ট হয়ে গেছে।
  • degreesOutOfRange : <ডিভাইস(গুলি)>-এর জন্য অনুরোধকৃত ডিগ্রি সীমার বাইরে।
  • deviceAlertNeedsAssistance : <ডিভাইস(গুলি)>-এর একটি সক্রিয় অ্যালার্ট <আছে> এবং <আপনার সহায়তা প্রয়োজন>।
  • deviceAtExtremeTemperature : <ডিভাইস(গুলি)> <একটি চরম তাপমাত্রায়> রয়েছে।
  • deviceBusy : দুঃখিত, মনে হচ্ছে <ডিভাইস(গুলি)> এই মুহূর্তে ইতিমধ্যেই কোনো কাজ করছে।
  • ডিভাইস চার্জিং : দুঃখিত, মনে হচ্ছে <ডিভাইস(গুলি)> তা করতে পারবে না কারণ (ha_shared.ItsTheyre size=$item.devices.total_device_count) চার্জ হচ্ছে।
  • deviceClogged : দুঃখিত, মনে হচ্ছে <ডিভাইস(গুলি)> আটকে গেছে।
  • deviceCurrentlyDispensing : <ডিভাইস(গুলি)> এই মুহূর্তে ইতিমধ্যে কিছু বিতরণ করছে।
  • deviceDoorOpen : <ডিভাইস(গুলি)>-এর দরজা খোলা আছে। অনুগ্রহ করে এটি বন্ধ করে আবার চেষ্টা করুন।
  • deviceHandleClosed : <ডিভাইস(গুলি)>-এর হ্যান্ডেলটি বন্ধ আছে। অনুগ্রহ করে এটি খুলুন এবং আবার চেষ্টা করুন।
  • ডিভাইস জ্যামিং সনাক্ত করা হয়েছে : <ডিভাইস(গুলি)> জ্যাম হয়ে গেছে।
  • deviceLidOpen : <ডিভাইস(গুলি)>-এর ঢাকনা খোলা আছে। অনুগ্রহ করে এটি বন্ধ করে আবার চেষ্টা করুন।
  • deviceNeedsRepair : <ডিভাইস(গুলি)> মেরামত করা প্রয়োজন। অনুগ্রহ করে আপনার স্থানীয় সার্ভিস ডিলারের সাথে যোগাযোগ করুন।
  • deviceNotDocked : দুঃখিত, মনে হচ্ছে ডিভাইসটি ডক করা নেই। অনুগ্রহ করে ডিভাইসটি ডক করে আবার চেষ্টা করুন।
  • deviceNotFound : <ডিভাইস(গুলি)> উপলব্ধ নেই। আপনি <এটি/এগুলো> আবার সেট আপ করার চেষ্টা করতে পারেন। পরামর্শ: নিশ্চিত করুন যে আপনার ব্যাকএন্ড সর্বদা হোম গ্রাফ সিঙ্ক করে রাখে। যখনই ডিভাইস যোগ বা অপসারণ করা হয়, তখন requestSync কল করুন।
  • deviceNotMounted : দুঃখিত, মনে হচ্ছে <ডিভাইস(গুলি)> তা করতে পারবে না কারণ <এটি/সেগুলো> মাউন্ট করা নেই।
  • deviceNotReady : <ডিভাইস(গুলি)> প্রস্তুত নয়।
  • ডিভাইস আটকে গেছে : <ডিভাইস(গুলো)> আটকে গেছে এবং আপনার সাহায্য প্রয়োজন।
  • deviceTampered : <ডিভাইস(গুলি)>-এর সাথে छेड़छाड़ করা হয়েছে।
  • deviceThermalShutdown : দুঃখিত, মনে হচ্ছে অতিরিক্ত তাপমাত্রার কারণে <ডিভাইস(গুলি)> বন্ধ হয়ে গেছে।
  • directResponseOnlyUnreachable : <ডিভাইস(গুলি)> রিমোট কন্ট্রোল সমর্থন করে না।
  • নিষ্ক্রিয়করণ ব্যর্থতা : <ডিভাইস(গুলি)> নিষ্ক্রিয় করা যায়নি।
  • discreteOnlyOpenClose : দুঃখিত, <ডিভাইস(গুলি)> শুধুমাত্র সম্পূর্ণরূপে খোলা বা সম্পূর্ণরূপে বন্ধ করা যাবে।
  • dispenseAmountAboveLimit : <ডিভাইস(গুলি)> এত বেশি পরিমাণ সরবরাহ করতে পারে না।
  • dispenseAmountBelowLimit : <ডিভাইস(গুলি)> এত অল্প পরিমাণ সরবরাহ করতে পারে না।
  • dispenseAmountRemainingExceeded : <ডিভাইস(গুলি)>-এর কাছে তা করার জন্য পর্যাপ্ত <ডিসপেন্স আইটেম> নেই।
  • dispenseFractionalAmountNotSupported : <ডিভাইস(গুলি)> <বিতরণযোগ্য আইটেম>-এর ভগ্নাংশ বিতরণ করতে পারে না।
  • dispenseFractionalUnitNotSupported : <ডিভাইস(গুলি)> <বিতরণযোগ্য আইটেম>-এর জন্য সেই এককের ভগ্নাংশ সমর্থন করে না।
  • dispenseUnitNotSupported : <ডিভাইস(গুলি)> <বিতরণযোগ্য আইটেম>-এর জন্য সেই ইউনিটটি সমর্থন করে না।
  • doorClosedTooLong : <ডিভাইস(গুলি)>-এর দরজা অনেকক্ষণ ধরে খোলা হয়নি। অনুগ্রহ করে দরজাটি খুলুন, ভিতরে কিছু আছে কিনা তা নিশ্চিত করুন এবং আবার চেষ্টা করুন।
  • emergencyHeatOn : <ডিভাইস(গুলি)> ইমার্জেন্সি হিট মোডে আছে, তাই <এটি/এগুলো> হাতে করে অ্যাডজাস্ট করতে হবে।
  • ত্রুটিপূর্ণ ব্যাটারি : <ডিভাইস(গুলি)> <এতে/একাধিক> <একটি ত্রুটিপূর্ণ ব্যাটারি/ত্রুটিপূর্ণ ব্যাটারিসমূহ> রয়েছে।
  • floorUnreachable : <ডিভাইস(গুলি)> ঐ রুমে পৌঁছাতে পারছে না। অনুগ্রহ করে <এটি/এগুলো> সঠিক তলায় নিয়ে যান এবং আবার চেষ্টা করুন।
  • functionNotSupported : আসলে, <ডিভাইস(গুলি)> সেই কার্যকারিতাটি সমর্থন করে না। পরামর্শ: নিশ্চিত করুন যে আপনার SYNC প্রতিক্রিয়া ডিভাইসটির সক্ষমতাকে সঠিকভাবে প্রতিফলিত করে।
  • genericDispenseNotSupported : আমাকে জানতে হবে আপনি কী ডিসপেন্স করতে চান। অনুগ্রহ করে আইটেমটির নাম দিয়ে আবার চেষ্টা করুন।
  • hardError : দুঃখিত, কিছু একটা ভুল হয়েছে এবং আমি আপনার হোম ডিভাইসটি নিয়ন্ত্রণ করতে পারছি না।
  • hardError : দুঃখিত, কিছু একটা ভুল হয়েছে এবং আমি আপনার হোম ডিভাইসটি নিয়ন্ত্রণ করতে পারছি না।
  • অটো মোডে আছে : ডিভাইসটি বর্তমানে অটো মোডে সেট করা আছে। তাপমাত্রা পরিবর্তন করতে, আপনাকে ডিভাইসটিকে অন্য কোনো মোডে পরিবর্তন করতে হবে।
  • ইনঅ্যাওয়েমোড : আপনার ডিভাইসটি বর্তমানে অ্যাওয়ে মোডে সেট করা আছে। আপনার থার্মোস্ট্যাট নিয়ন্ত্রণ করতে, আপনাকে ফোন, ট্যাবলেট বা কম্পিউটারে নেস্ট অ্যাপ ব্যবহার করে এটিকে ম্যানুয়ালি হোম মোডে পরিবর্তন করতে হবে।
  • ইনড্রাইমোড : ডিভাইসটি বর্তমানে ড্রাই মোডে সেট করা আছে। তাপমাত্রা পরিবর্তন করতে, আপনাকে ডিভাইসটিকে অন্য কোনো মোডে পরিবর্তন করতে হবে।
  • ইকোমোডে : ডিভাইসটি বর্তমানে ইকো মোডে সেট করা আছে। তাপমাত্রা পরিবর্তন করতে, আপনাকে ডিভাইসটিকে অন্য কোনো মোডে পরিবর্তন করতে হবে।
  • inFanOnlyMode : <ডিভাইস(গুলি)> বর্তমানে শুধুমাত্র ফ্যান মোডে সেট করা আছে। তাপমাত্রা পরিবর্তন করতে, আপনাকে <এটি/এগুলিকে> একটি ভিন্ন মোডে পরিবর্তন করতে হবে।
  • inHeatOrCool : <ডিভাইস(গুলি)> হিট/কুল মোডে নেই।
  • ইনহিউমিডিফায়ারমোড : <ডিভাইস(গুলি)> বর্তমানে হিউমিডিফায়ার মোডে সেট করা আছে। তাপমাত্রা পরিবর্তন করতে, আপনাকে <এটি/এগুলিকে> একটি ভিন্ন মোডে পরিবর্তন করতে হবে।
  • inOffMode : ডিভাইসটি বর্তমানে বন্ধ আছে। তাপমাত্রা পরিবর্তন করতে, আপনাকে ডিভাইসটিকে অন্য কোনো মোডে পরিবর্তন করতে হবে।
  • পিউরিফায়ার মোডে আছে : ডিভাইসটি বর্তমানে পিউরিফায়ার মোডে সেট করা আছে। তাপমাত্রা পরিবর্তন করতে, আপনাকে ডিভাইসটিকে অন্য কোনো মোডে পরিবর্তন করতে হবে।
  • inSleepMode : ডিভাইস(গুলি) স্লিপ মোডে আছে। অনুগ্রহ করে পরে আবার চেষ্টা করুন।
  • inSoftwareUpdate : <ডিভাইস(গুলি)> বর্তমানে একটি সফটওয়্যার আপডেটের মধ্যে রয়েছে।
  • লক ব্যর্থতা : <ডিভাইস(গুলি)> লক করা যায়নি। পরামর্শ: লকের হার্ডওয়্যারে কোনো ভৌত প্রতিবন্ধকতা, কম বিদ্যুৎ প্রবাহ, বা মোটরের ত্রুটি আছে কিনা তা খতিয়ে দেখুন।
  • লকডস্টেট : <ডিভাইস(গুলি)> বর্তমানে লক করা আছে।
  • lockedToRange : ওই তাপমাত্রাটি <ডিভাইস(গুলি)>-এর লক করা সীমার বাইরে।
  • lowBattery : <ডিভাইস(গুলি)>-এর ব্যাটারি কম আছে।
  • maxSettingReached : <ডিভাইস(গুলি)> ইতিমধ্যেই সর্বোচ্চ সেটিং-এ সেট করা আছে।
  • maxSpeedReached : <ডিভাইস(গুলি)> ইতিমধ্যেই সর্বোচ্চ গতিতে সেট করা আছে।
  • minSettingReached : <ডিভাইস(গুলি)> ইতিমধ্যেই সর্বনিম্ন সেটিং-এ সেট করা আছে।
  • minSpeedReached : <ডিভাইস(গুলি)> ইতিমধ্যেই সর্বনিম্ন গতিতে সেট করা আছে।
  • monitoringServiceConnectionLost : <ডিভাইস(গুলি)> মনিটরিং সার্ভিসের সাথে তার সংযোগ হারিয়েছে।
  • সংযুক্তি প্রয়োজন : দুঃখিত, মনে হচ্ছে <ডিভাইস(গুলি)>-এ একটি প্রয়োজনীয় সংযুক্তি নেই। অনুগ্রহ করে এটি প্রতিস্থাপন করুন এবং আবার চেষ্টা করুন।
  • needsBin : দুঃখিত, মনে হচ্ছে <ডিভাইস(গুলি)>-এ একটি বিন নেই। অনুগ্রহ করে এটি প্রতিস্থাপন করে আবার চেষ্টা করুন।
  • needsPads : <ডিভাইস(গুলি)> <প্রয়োজন(গুলি)> নতুন প্যাড।
  • needsSoftwareUpdate : <ডিভাইস(গুলি)>-এর একটি সফটওয়্যার আপডেট প্রয়োজন।
  • needsWater : <ডিভাইস(গুলি)> <প্রয়োজন(গুলি)> জল।
  • networkProfileNotRecognized : দুঃখিত, আমি <ডিভাইস(গুলি)>-এ "<নেটওয়ার্ক প্রোফাইল>" চিনতে পারছি না। পরামর্শ: SYNC রেসপন্সে থাকা সমর্থিত প্রোফাইলগুলোর সাথে প্রোফাইলের নামের স্ট্রিংটি মেলে কিনা তা যাচাই করুন।
  • networkSpeedTestInProgress : আমি ইতিমধ্যে <network> <speed/speeds> পরীক্ষা করছি।
  • noAvailableApp : দুঃখিত, মনে হচ্ছে <অ্যাপের নাম> উপলব্ধ নেই।
  • noAvailableChannel : দুঃখিত, মনে হচ্ছে <চ্যানেলের নাম> চ্যানেলটি উপলব্ধ নেই।
  • noChannelSubscription : দুঃখিত, আপনি এই মুহূর্তে <চ্যানেলের নাম> চ্যানেলে সাবস্ক্রাইব করেননি।
  • noTimerExists : দুঃখিত, মনে হচ্ছে <ডিভাইস(গুলি)>-এ কোনো টাইমার সেট করা নেই।
  • সমর্থিত নয় : দুঃখিত, এই মোডটি <ডিভাইস(গুলি)>-এর জন্য উপলব্ধ নয়।
  • বাধা সনাক্ত করা হয়েছে : <ডিভাইস(গুলি)> একটি বাধা সনাক্ত করেছে।
  • অফলাইন, ডিভাইসঅফলাইন : দুঃখিত, মনে হচ্ছে <ডিভাইস(গুলি)> এই মুহূর্তে উপলব্ধ নেই।
  • onRequiresMode : অনুগ্রহ করে নির্দিষ্ট করুন আপনি কোন মোডটি চালু করতে চান।
  • passphraseIncorrect : দুঃখিত, মনে হচ্ছে পিনটি ভুল।
  • percentOutOfRange : দুঃখিত, আমি <ডিভাইস(গুলি)>-কে <শতাংশ>-এ সেট করতে পারছি না।
  • পিন ভুল : (পাসফ্রেজ ভুল)
  • বৃষ্টি শনাক্ত হয়েছে : বৃষ্টি শনাক্ত হওয়ায় আমি <ডিভাইস(গুলি)> খুলিনি।
  • rangeTooClose : <ডিভাইস(গুলি)>-এর জন্য তাপ-শীতল পরিসীমা হিসেবে এই তাপমাত্রাগুলো খুব কাছাকাছি। এমন তাপমাত্রা বেছে নিন যেগুলোর মধ্যে ব্যবধান বেশি।
  • relinkRequired : দুঃখিত, মনে হচ্ছে আপনার অ্যাকাউন্টে কোনো সমস্যা হয়েছে। অনুগ্রহ করে আপনার Google Home বা Assistant অ্যাপ ব্যবহার করে <ডিভাইস(গুলি)> পুনরায় লিঙ্ক করুন। পরামর্শ: নিশ্চিত করুন যে একটি রিফ্রেশ টোকেন স্থায়ীভাবে অবৈধ হয়ে গেলে আপনার সার্ভার এই কোডটি ফেরত দেয়।
  • remoteSetDisabled :
    • ঐচ্ছিক প্যারামিটার errorCodeReason
    • currentlyArmed - দুঃখিত, যেহেতু নিরাপত্তা ইতিমধ্যেই সক্রিয় করা আছে, যেকোনো পরিবর্তন করার জন্য আপনাকে <ডিভাইস(গুলি)> অথবা অ্যাপ ব্যবহার করতে হবে।
    • remoteUnlockNotAllowed - দুঃখিত, আমি দূর থেকে <ডিভাইস(গুলি)> আনলক করতে পারছি না।
    • remoteControlOff - এই কাজটি বর্তমানে নিষ্ক্রিয় আছে। অনুগ্রহ করে <ডিভাইস(গুলি)>-এ রিমোট কন্ট্রোল সক্রিয় করুন এবং আবার চেষ্টা করুন।
    • childSafetyModeActive - চাইল্ড সেফটি মোড সক্রিয় থাকাকালীন <ডিভাইস(গুলি)>-এর জন্য এই অ্যাকশনটি নিষ্ক্রিয় থাকে।
  • roomsOnDifferentFloors : <ডিভাইস(গুলি)> সেই রুমগুলিতে পৌঁছাতে পারছে না কারণ সেগুলি ভিন্ন ভিন্ন তলায় অবস্থিত।
  • সেফটি শাট-অফ : ডিভাইসটি সেফটি শাট-অফ মোডে আছে, তাই এটি হাতে করে অ্যাডজাস্ট করতে হবে।
  • sceneCannotBeApplied : দুঃখিত, <ডিভাইস(গুলি)> প্রয়োগ করা যাচ্ছে না। পরামর্শ: পার্টনার ক্লাউডে ব্যবহারকারীর সিনগুলির অভ্যন্তরীণ অবস্থা পরীক্ষা করুন।
  • নিরাপত্তা সীমাবদ্ধতা : <ডিভাইস(গুলি)>-এর একটি নিরাপত্তা সীমাবদ্ধতা আছে।
  • softwareUpdateNotAvailable : দুঃখিত, <ডিভাইস(গুলি)>-এ কোনো সফ্টওয়্যার আপডেট উপলব্ধ নেই।
  • startRequiresTime : এটি করার জন্য, আপনাকে জানাতে হবে যে আপনি <ডিভাইস(গুলি)> কতক্ষণ চালাতে চান।
  • stillCoolingDown : <ডিভাইস(গুলি)> এখনও ঠান্ডা হচ্ছে।
  • stillWarmingUp : <ডিভাইস(গুলি)> এখনও গরম হচ্ছে।
  • streamUnavailable : দুঃখিত, মনে হচ্ছে <ডিভাইস(গুলি)> থেকে স্ট্রিমটি এই মুহূর্তে অনুপলব্ধ।
  • streamUnplayable : দুঃখিত, আমি এই মুহূর্তে <ডিভাইস(গুলি)> থেকে স্ট্রিমটি চালাতে পারছি না। পরামর্শ: WebRTC/HLS সিগন্যালিং যাচাই করুন এবং নিশ্চিত করুন যে স্ট্রিম URL-টি বৈধ।
  • tankEmpty : <ডিভাইস(গুলি)>-এর <একটি/একাধিক ট্যাঙ্ক> খালি আছে। অনুগ্রহ করে <এটি/এগুলো> ভর্তি করুন এবং আবার চেষ্টা করুন।
  • targetAlreadyReached : দুঃখিত, মনে হচ্ছে এটাই বর্তমান তাপমাত্রা।
  • timerValueOutOfRange : <ডিভাইস(গুলি)> ওই পরিমাণ সময়ের জন্য সেট করা যাবে না।
  • tooManyFailedAttempts : দুঃখিত, অনেকবার চেষ্টা ব্যর্থ হয়েছে। অনুগ্রহ করে কাজটি সম্পন্ন করতে আপনার ডিভাইসের অ্যাপে যান।
  • transientError : দুঃখিত, <ডিভাইস(গুলি)> নিয়ন্ত্রণ করতে গিয়ে কিছু একটা ভুল হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন। পরামর্শ: সাধারণত এই ত্রুটিগুলোর ফলে কোনো ডিভাইস বা পরিষেবার সাথে সংযোগ বিচ্ছিন্ন হয়ে যায়। এছাড়াও, কোনো সার্ভারে নতুন সংযোগ স্থাপন করা যায় না।
  • turnedOff , deviceTurnedOff : <ডিভাইস(গুলি)> এই মুহূর্তে বন্ধ আছে।
  • ডিভাইস খুঁজে পাওয়া যায়নি : আমি <ডিভাইস(গুলি)> খুঁজে পাইনি। পরামর্শ: ডিভাইসটির স্থানীয় সংযোগ (ওয়াই-ফাই/ব্লুটুথ) পরীক্ষা করুন।
  • unknownFoodPreset : <ডিভাইস(গুলি)> সেই ফুড প্রিসেটটি সমর্থন করে না।
  • আনলক ব্যর্থতা : <ডিভাইস(গুলি)> আনলক করা যায়নি। পরামর্শ: হার্ডওয়্যার জ্যাম, কম ব্যাটারি বা ভুল পিন এন্ট্রির কারণ অনুসন্ধান করুন।
  • unpausableState : <ডিভাইস(গুলি)> এই মুহূর্তে পজ করা যাবে না।
  • ব্যবহারকারী বাতিল করেছেন : ঠিক আছে
  • valueOutOfRange : <ডিভাইস(গুলি)> সেই তাপমাত্রায় সেট করা যাবে না।

অনলাইন এবং অফলাইন রাজ্য প্রতিবেদন

যখন কোনো ডিভাইস অফলাইন থাকে, তখন আপনার রিপোর্ট করা উচিত। ডিভাইসের আচরণের পাঁচ মিনিটের মধ্যে অবস্থা রিপোর্ট করতে হবে। বিপরীতভাবে, যখন একটি ডিভাইস অনলাইন অবস্থায় ফিরে আসে, তখন আপনার রিপোর্ট করা উচিত। ডিভাইসটির আচরণের পাঁচ মিনিটের মধ্যে অবস্থা প্রতিবেদন করতে হবে। যখনই কোনো ডিভাইস পুনরায় অনলাইন হয়, পার্টনারের উচিত reportStateAndNotification API ব্যবহার করে ডিভাইসটির সমস্ত বর্তমান অবস্থা রিপোর্ট করা। এই উদাহরণটি দেখায় যে একটি light ডিভাইস টাইপ অনলাইন হয়েছে এবং ডিভাইসটির সমস্ত বর্তমান অবস্থা রিপোর্ট করছে।
"requestId": "test-request-id",
  "agentUserId": "agent-user-1",
    "payload":{
      "devices": {
        "states": {
          "device-id-1": {
            "brightness": 65,
            "on": true,
            "online": true
          }
          "notifications": {},
        }
      }
    }

ব্যতিক্রম

কোনো কমান্ডের সাথে কোনো সমস্যা বা সতর্কতা যুক্ত থাকলে একটি এক্সেপশন রিটার্ন করা উচিত। কমান্ডটি সফল বা ব্যর্থ হতে পারে।

যদি কমান্ডটি সফল হয় (স্ট্যাটাস = "SUCCESS"), তাহলে StatusReport ট্রেইট ব্যবহার করে (টার্গেট ডিভাইস ছাড়া অন্য ডিভাইসগুলোর জন্য) অথবা একটি উপযুক্ত exceptionCode রিটার্ন করে (টার্গেট ডিভাইসের জন্য) এক্সেপশন রিপোর্ট করুন।

উদাহরণস্বরূপ, যদি ড্রায়ারের লিন্ট স্ক্রিনটি ভরে যায়, ব্যবহারকারী তখনও ড্রায়ারটি চালু করতে পারেন, কিন্তু আপনি তাকে এই অবস্থা সম্পর্কে সতর্ক করতে চাইতে পারেন। একইভাবে, যখন কোনো ডিভাইসের ব্যাটারি একেবারে শেষ না হয়েও কম থাকে, আপনি তখনও কমান্ডটি চালাতে পারেন, কিন্তু ব্যবহারকারীকে জানিয়ে দেওয়া উচিত যে ডিভাইসটির ব্যাটারি কম।

যদি কোনো ব্যতিক্রমের কারণে কমান্ডটি ব্যর্থ হয়, তাহলে স্ট্যাটাসটি "EXCEPTIONS" হওয়া উচিত এবং 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 ব্যবহার করে অন্য একটি ডিভাইস সম্পর্কে নন-ব্লকিং ব্যতিক্রম (SUCCESS)

এই উদাহরণটি একটি নিরাপত্তা ব্যবস্থা সক্রিয় করার জন্য: ঠিক আছে, নিরাপত্তা ব্যবস্থাটি সক্রিয় করা হচ্ছে। সামনের জানালাটি খোলা আছে।

{
  "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"
          }
        ]
      }
    }
  }
}

ব্যতিক্রম তালিকা

নিম্নলিখিত ব্যতিক্রমগুলি ডিভাইসে সংশ্লিষ্ট টিটিএস (TTS) তৈরি করবে।

  • bagFull : <ডিভাইস(গুলি)>-এর <ব্যাগ/ব্যাগগুলো> ভর্তি। অনুগ্রহ করে <এটি/এগুলো> খালি করুন এবং আবার চেষ্টা করুন।
  • binFull : <ডিভাইস(গুলি)> <একাধিক বিন বা বিনগুলো পূর্ণ>।
  • কার্বন মনোক্সাইড শনাক্ত হয়েছে : <বাড়ির নাম>-এ কার্বন মনোক্সাইড শনাক্ত করা হয়েছে।
  • deviceAtExtremeTemperature : <ডিভাইস(গুলি)> <একটি চরম তাপমাত্রায়> রয়েছে।
  • ডিভাইস জ্যামিং সনাক্ত করা হয়েছে : <ডিভাইস(গুলি)> জ্যাম হয়ে গেছে।
  • ডিভাইস সরানো হয়েছে : <ডিভাইস(গুলি)> সরানো হয়েছে।
  • ডিভাইস খোলা : <ডিভাইস(গুলি)> খোলা আছে।
  • deviceTampered : <ডিভাইস(গুলি)>-এর সাথে छेड़छाड़ করা হয়েছে।
  • ডিভাইস আনপ্লাগড : <ডিভাইস(গুলো)> আনপ্লাগ করা আছে।
  • floorUnreachable : <ডিভাইস(গুলি)> ঐ রুমে পৌঁছাতে পারছে না। অনুগ্রহ করে <এটি/এগুলো> সঠিক তলায় নিয়ে যান এবং আবার চেষ্টা করুন।
  • হার্ডওয়্যার ব্যর্থতা : <ডিভাইস(গুলি)তে> একটি হার্ডওয়্যার সমস্যা আছে।
  • inSoftwareUpdate : <ডিভাইস(গুলি)> বর্তমানে একটি সফটওয়্যার আপডেটের মধ্যে রয়েছে।
  • isBypassed : <ডিভাইস(গুলি)> বর্তমানে বাইপাস করা আছে।
  • lowBattery : <ডিভাইস(গুলি)>-এর ব্যাটারি কম আছে।
  • গতি সনাক্ত করা হয়েছে : <ডিভাইস(গুলি)> <গতি সনাক্ত করেছে>।
  • needsPads : <ডিভাইস(গুলি)> <প্রয়োজন(গুলি)> নতুন প্যাড।
  • needsSoftwareUpdate : <ডিভাইস(গুলি)>-এর একটি সফটওয়্যার আপডেট প্রয়োজন।
  • needsWater : <ডিভাইস(গুলি)> <প্রয়োজন(গুলি)> জল।
  • networkJammingDetected : <ডিভাইস(গুলি)>-এর সাথে হোম নেটওয়ার্ক সংযোগটি সঠিকভাবে কাজ করছে না।
  • noIssuesReported : <ডিভাইস(গুলি)> কোনো সমস্যা জানায়নি।
  • roomsOnDifferentFloors : <ডিভাইস(গুলি)> সেই রুমগুলিতে পৌঁছাতে পারছে না কারণ সেগুলি ভিন্ন ভিন্ন তলায় অবস্থিত।
  • runCycleFinished : <ডিভাইস(গুলি)> চালানো শেষ করেছে।
  • নিরাপত্তা সীমাবদ্ধতা : <ডিভাইস(গুলি)>-এর একটি নিরাপত্তা সীমাবদ্ধতা আছে।
  • ধোঁয়া শনাক্ত করা হয়েছে : <বাড়ির নাম>-এ ধোঁয়া শনাক্ত করা হয়েছে।
  • tankEmpty : <ডিভাইস(গুলি)>-এর <একটি/একাধিক ট্যাঙ্ক> খালি আছে। অনুগ্রহ করে <এটি/এগুলো> ভর্তি করুন এবং আবার চেষ্টা করুন।
  • সেলুলার ব্যাকআপ ব্যবহার করা হচ্ছে : <ডিভাইস(গুলি)> সেলুলার ব্যাকআপ ব্যবহার করছে।
  • waterLeakDetected : <ডিভাইস(গুলি)> একটি জল লিকেজ সনাক্ত করেছে>।