ত্রুটি এবং ব্যতিক্রমগুলি পরিচালনা করুন

যখন ডিভাইস বা অনুরোধগুলি প্রত্যাশিত হিসাবে কাজ করে না, তখন আপনার ব্যবহারকারীদের জন্য ভাল ত্রুটি পরিচালনা এবং যোগাযোগ প্রদান করা গুরুত্বপূর্ণ যাতে তারা বুঝতে পারে কি ঘটেছে এবং যখনই সম্ভব, কিভাবে এটি সংশোধন করা যায়। নিশ্চিত করুন যে আপনি সম্ভাব্য ব্যর্থতার পরিস্থিতি এবং আপনার ডিভাইসের কীভাবে প্রতিক্রিয়া জানানো উচিত তা নিয়ে চিন্তাভাবনা করুন: যদি কোনও ব্যবহারকারী প্রগতিতে কোনও কাজকে বাধা দেয় তবে কী হবে? অফলাইনে থাকা অবস্থায় যদি কোনো ব্যবহারকারী কোনো ডিভাইস থেকে কোনো অ্যাকশনের অনুরোধ করে তাহলে কী হবে? এই সমস্যাগুলির জন্য পরিকল্পনা করা এবং আপনার ব্যবহারকারীকে সেগুলি থেকে পুনরুদ্ধার করতে সহায়তা করা ব্যবহারকারীর হতাশা এড়াতে পারে এবং আপনার ডিভাইসগুলির জন্য একটি উচ্চ মানের অভিজ্ঞতা তৈরি করতে পারে৷

এই নির্দেশিকাটি উদ্দেশ্যমূলক প্রতিক্রিয়াগুলির কিছু উদাহরণ প্রদান করে যা ত্রুটিগুলি পরিচালনা করে৷ ত্রুটি এবং ব্যতিক্রমগুলির জন্য বৈধ errorCode মান পর্যালোচনা করতে ত্রুটি এবং ব্যতিক্রমগুলি দেখুন৷

উদাহরণ 1: EXECUTE উদ্দেশ্যের জন্য ত্রুটি প্রতিক্রিয়া

একজন শেষ ব্যবহারকারীর বসার ঘরে দুটি স্মার্ট লাইট ইনস্টল করা আছে। ব্যবহারকারী একটি আদেশ জারি করে "বসবার ঘরের লাইট অন করুন" এবং Google আপনার পূরণের URL-এ একটি EXECUTE উদ্দেশ্য পাঠিয়েছে। আপনি দেখেছেন যে ব্যবহারকারীর ডিভাইসগুলি অফলাইন এবং নিয়ন্ত্রণযোগ্য নয়, তাই আপনার পূর্ণতা status ERROR এবং errorCode deviceOffline সহ একটি EXECUTE প্রতিক্রিয়া প্রদান করে।

এই উদাহরণটি দেখায় যে কীভাবে পূর্বে বর্ণিত একটি হালকা ডিভাইস থেকে একটি 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 প্রতিক্রিয়া পাওয়ার পরে ব্যবহারকারীকে " ডিভাইস এখন উপলব্ধ নয়" বলে অনুরোধ করে। মনে রাখবেন যে EXECUTE প্রতিক্রিয়াতে errorCode deviceOffline পাঠানোর পরেও আপনাকে রিপোর্ট অবস্থায় ডিভাইসগুলির জন্য অফলাইন স্থিতি পাঠাতে হবে৷

উদাহরণ 2: EXECUTE উদ্দেশ্যের জন্য নন-ব্লকিং ব্যতিক্রম

একজন ব্যবহারকারী Assistant ব্যবহার করে তাদের সামনের দরজায় স্মার্ট লক লক করার চেষ্টা করেন। আপনি সফলভাবে তাদের লক নিয়ন্ত্রণ করতে পারেন কিন্তু আপনি দেখতে পাচ্ছেন যে ডিভাইসের ব্যাটারি কম, তাই আপনার পূর্ণতা status SUCCESS এবং exceptionCode lowBattery সহ একটি EXECUTE প্রতিক্রিয়া প্রদান করে।

এই উদাহরণটি দেখায় কিভাবে পূর্বে বর্ণিত লক ডিভাইস থেকে একটি 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 প্রোঅ্যাকটিভ বিজ্ঞপ্তিগুলি প্রয়োগ করে থাকলে একটি ত্রুটি ঘটলে আপনি সক্রিয়ভাবে ব্যবহারকারীকে অবহিত করতে পারেন৷

একটি স্মার্ট ড্রায়ার চলছে, এবং কেউ সাইকেল শেষ হওয়ার আগে দরজা খোলে। আপনি একটি errorCode সহ একটি সক্রিয় বিজ্ঞপ্তি পাঠাতে Google Home Graph API 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 ব্যবহারকারীকে " ডিভাইসের দরজা খোলা হয়েছে" বলে অনুরোধ করে। আপনি একই পেলোডে বিজ্ঞপ্তিগুলির পাশাপাশি সংশ্লিষ্ট ডিভাইসের অবস্থা পাঠাতে পারেন।

উদাহরণ 4: ফলো-আপ বিজ্ঞপ্তি

ফলো-আপ বিজ্ঞপ্তিগুলিকে সমর্থন করে এমন বৈশিষ্ট্য কমান্ডগুলির জন্য, আপনি যদি 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 জন্য, ত্রুটি এবং ব্যতিক্রম রেফারেন্স ডকুমেন্টেশন দেখুন।