ডিভাইস বা অনুরোধ প্রত্যাশা অনুযায়ী কাজ না করলে, ব্যবহারকারীদের জন্য ভাল এরর হ্যান্ডলিং ও কমিউনিকেশন প্রদান করা গুরুত্বপূর্ণ যাতে তারা বুঝতে পারেন যে কী ঘটেছে এবং সম্ভব হলে, কীভাবে তা ঠিক করা যায়। সম্ভাব্য ব্যর্থতার পরিস্থিতি এবং আপনার ডিভাইস কীভাবে প্রতিক্রিয়া জানাবে তা ভেবে দেখুন: কোনও ব্যবহারকারী যদি কোনও টাস্ক চলাকালীন বাধা দেয় তাহলে কী হবে? কোনও ব্যবহারকারী অফলাইন থাকা অবস্থায় ডিভাইস থেকে কোনও অ্যাকশনের অনুরোধ করলে কী হবে? এইসব সমস্যার জন্য পরিকল্পনা করা এবং আপনার ব্যবহারকারীকে সেগুলি থেকে বেরিয়ে আসতে সাহায্য করা ব্যবহারকারীর হতাশা এড়াতে পারে এবং আপনার ডিভাইসের জন্য উচ্চ মানের অভিজ্ঞতা তৈরি করে।
এই গাইডে ইনটেন্ট রেসপন্সের কিছু উদাহরণ দেওয়া হয়েছে যা সমস্যা সমাধান করে। সমস্যা ও ব্যতিক্রমের জন্য সঠিক errorCode ভ্যালু পর্যালোচনা করতে
সমস্যা ও ব্যতিক্রম
দেখুন।
উদাহরণ ১: EXECUTE ইনটেন্টের জন্য সমস্যার উত্তর
একজন ব্যবহারকারী তার বসার ঘরে দুটি স্মার্ট লাইট ইনস্টল করেছেন। ব্যবহারকারী "বসার ঘরের আলো জ্বালাও" কমান্ড দেন এবং Google আপনার ফুলফিলমেন্ট URL-এ 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 উত্তর পাওয়ার পরে ব্যবহারকারীকে "ডিভাইস এখন
উপলভ্য নেই" বলে প্রম্পট করে। মনে রাখবেন যে EXECUTE রেসপন্সে errorCode deviceOffline পাঠানোর পরে,
আপনাকে এখনও রিপোর্ট স্টেট-এ ডিভাইসের জন্য অফলাইন স্টেট পাঠাতে
হবে।
উদাহরণ ২: 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 ব্যবহারকারীকে "ডিভাইসের ব্যাটারি কম আছে" বলে প্রম্পট করে।
উদাহরণ ৩: সমস্যা সংক্রান্ত প্রোঅ্যাক্টিভ বিজ্ঞপ্তি
কিছু ক্ষেত্রে, ব্যবহারকারীদের কোনও সমস্যার ব্যাপারে সতর্ক করা সহায়ক হতে পারে, বিশেষ করে এমন ফাংশনের ক্ষেত্রে যা ব্যবহারকারীরা অটোমেটিক সম্পূর্ণ হবে বলে আশা করেন। যেসব ট্রেটের ক্ষেত্রে অতিসক্রিয় বিজ্ঞপ্তি কাজ করে, সেগুলির ক্ষেত্রে কোনও সমস্যা হলে আপনি ব্যবহারকারীকে অতিসক্রিয় বিজ্ঞপ্তি পাঠাতে পারেন, তবে তার জন্য আপনাকে smart home অতিসক্রিয় বিজ্ঞপ্তি প্রয়োগ করতে হবে।
একটি স্মার্ট ড্রায়ার চলছে এবং সাইকেল শেষ হওয়ার আগেই কেউ দরজা খুলে দেয়।
আপনি Google Home Graph API
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 ব্যবহারকারীকে "ডিভাইস-এর দরজা খোলা আছে" বলে প্রম্পট করে। আপনি একই পেলোডে বিজ্ঞপ্তির পাশাপাশি সংশ্লিষ্ট ডিভাইসের স্ট্যাটাস পাঠাতে পারেন।
উদাহরণ ৪: ফলো-আপ বিজ্ঞপ্তি
যেসব ট্রেইট কমান্ড ফলো-আপ বিজ্ঞপ্তি সমর্থন করে, সেগুলির ক্ষেত্রে আপনি ব্যবহারকারীকে ফলো-আপ বিজ্ঞপ্তি পাঠাতে পারেন, যদি কোনও সমস্যা বা ব্যতিক্রম ঘটে এবং আপনি 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-এর জন্য, সমস্যা ও ব্যতিক্রম
রেফারেন্স ডকুমেন্টেশন দেখুন।