স্মার্ট
হোম ডিভাইসের জন্য অফিসিয়ালভাবে কাজ করে এমন সমস্যা ও ব্যতিক্রমের তালিকা এই ডকুমেন্টে দেওয়া আছে। আপনি এটি প্রয়োগ করে থাকলে, উদ্দেশ্য
উত্তর অথবা বিজ্ঞপ্তিতে
এইসব প্রদত্ত সমস্যা ও ব্যতিক্রম কোড ব্যবহার করুন, যাতে Google Assistant কোনও প্রদত্ত কমান্ড বা ডিভাইস স্টেট
সম্পর্কিত সমস্যার ব্যাপারে ব্যবহারকারীকে সতর্ক করতে পারে। উত্তরে ভুল
ফর্ম্যাটিং বা errorCode থাকলে, Google Assistant ব্যবহারকারীদের একটি সাধারণ সমস্যার মেসেজ দেখায়,
যেমন, "দুঃখিত, ডিভাইস এখন উপলভ্য নেই"।
সমস্যা
কোনও সমস্যার কারণে execute বা কোয়েরি অনুরোধ ব্যর্থ হলে আপনাকে একটি সমস্যার কোড ফেরত দিতে হবে। যেমন, দরজার লক আটকে গেলে এবং সেটি লক বা আনলক করা না গেলে, এই অবস্থা সম্পর্কে ব্যবহারকারীকে একটি সমস্যার মেসেজ ফেরত দিতে হবে।
ডিভাইস লেভেল বা গ্লোবাল লেভেলে সমস্যার কোড অ্যাটাচ করা যেতে পারে। যেমন, কোনও ব্যবহারকারীর যদি কোনও একটি পরিষেবা প্রদানকারীর থেকে নেওয়া একাধিক লাইট থাকে এবং সেগুলি কোনও হাবের মাধ্যমে কন্ট্রোল করা হয়, তাহলে ব্যবহারকারী যদি সব লাইট বন্ধ করতে বলেন, তাহলে কোনও একটি লাইট অফলাইন থাকলে পরিষেবা প্রদানকারী ডিভাইস-লেভেল এরর দেখাতে পারে অথবা পুরো হাব অফলাইন থাকলে এবং কোনও লাইট কন্ট্রোল করা না গেলে গ্লোবাল-লেভেল এরর দেখাতে পারে। সব ডিভাইস অফলাইন থাকলে, গ্লোবাল-লেভেল বা ডিভাইস-লেভেল সমস্যা ব্যবহারের মধ্যে কোনও পার্থক্য থাকে না।
এককথায়:
- গ্লোবাল-লেভেল সমস্যা: উত্তরে থাকা সব ডিভাইসে একই সমস্যা হয়েছে
- লোকাল-লেভেল সমস্যা: সমস্যা ও সফলতার কেস সহ মিশ্র উত্তর
গ্লোবাল-লেভেল সমস্যা
নিচের 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" } } } }
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" } } } } } } }
সমস্যার তালিকা
নিম্নলিখিত সমস্যার ক্ষেত্রে ডিভাইসে সংশ্লিষ্ট TTS দেখানো হবে।
- aboveMaximumLightEffectsDuration : এটি ১ ঘণ্টার সর্বাধিক সময়সীমার চেয়ে বেশি। আবার চেষ্টা করুন।
- aboveMaximumTimerDuration : আমি শুধুমাত্র <time period> পর্যন্ত <device(s)> সেট করতে পারব
- actionNotAvailable : মনে হচ্ছে, আমি এই মুহূর্তে এটি করতে পারছি না। পরামর্শ: আপনার ফুলফিলমেন্টে ডিভাইসের বৈশিষ্ট্য ও বর্তমান স্টেট লজিক যাচাই করুন।
- actionUnavailableWhileRunning : <device(s)> বর্তমানে চলছে, তাই আমি কোনও পরিবর্তন করতে পারব না।
- alreadyArmed : <device(s)> <is/are> already armed.
- alreadyAtMax : <device(s)> <is/are> already set to the maximum temperature.
- alreadyAtMin : <device(s)> <is/are> already set to the minimum temperature.
- alreadyClosed : <device(s)> <is/are> already closed.
- alreadyDisarmed : <device(s)> <is/are> already disarmed.
- alreadyDocked : <device(s)> <is/are> already docked.
- alreadyInState : <device(s)> <is/are> already in that state.
- alreadyLocked : <device(s)> <is/are> আগেই লক করা আছে।
- alreadyOff : <device(s)> <is/are> already off.
- alreadyOn : <device(s)> <is/are> already on.
- alreadyOpen : <device(s)> <is/are> আগেই খোলা আছে।
- alreadyPaused : <device(s)> <is/are> আগেই পজ করা হয়েছে।
- 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> লঞ্চ করা যায়নি। পরামর্শ: appId যাচাই করুন এবং টার্গেট হার্ডওয়্যারে অ্যাপটি কাজ করে কিনা দেখুন।
- armFailure : <device(s)> অ্যাক্টিভেট করা যায়নি।
- armLevelNeeded : <device(s)>-এর জন্য কোন লেভেল সেট করতে হবে তা আমি বুঝতে পারছি না। "<device(s)>-কে <low security> হিসেবে সেট করো" অথবা "<device(s)>-কে <high security> হিসেবে সেট করো" বলে দেখুন
- authFailure : আমি <device(s)>-এ পৌঁছাতে পারছি না। আপনার <device/devices> সম্পূর্ণ সেট-আপ করা আছে কিনা তা নিশ্চিত করতে অ্যাপ চেক করে দেখুন।
- bagFull : <device(s)>-এ <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> <has/have>. পরামর্শ: পার্টনারকে হার্ডওয়্যার-লেভেল টেলিমেট্রি ও ব্যাটারির অবস্থা তদন্ত করে দেখতে হবে।
- commandInsertFailed : <device(s)>-এর জন্য কমান্ড প্রসেস করা যাচ্ছে না। পরামর্শ: ডেটাবেস রাইট পারফর্ম্যান্স বা ইন্টার্নাল কমান্ড কিউয়িং লজিক তদন্ত করে দেখুন।
- deadBattery : <device(s)> <has/have> <a dead battery/dead batteries>।
- degreesOutOfRange : <device(s)>-এর জন্য অনুরোধ করা ডিগ্রি রেঞ্জের বাইরে আছে।
- deviceAlertNeedsAssistance : <device(s)>-এ অ্যাক্টিভ অ্যালার্ট আছে এবং <need(s)> আপনার সহায়তা প্রয়োজন।
- deviceAtExtremeTemperature : <device(s)> <is/are> at <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)> মেরামত করতে হবে। আপনার স্থানীয় পরিষেবা ডিলারের সাথে যোগাযোগ করুন।
- deviceNotDocked : মনে হচ্ছে, <device(s)> ডক করা <isn't/aren't>। <it/them> ডক করে আবার চেষ্টা করুন।
-
deviceNotFound
:
<device(s)> <is/are>n't available. আপনি আবার <it/them> সেট-আপ করার চেষ্টা করতে পারেন। পরামর্শ: আপনার ব্যাকএন্ড সবসময় হোম গ্রাফ সিঙ্ক করে রাখে কিনা তা নিশ্চিত করুন। ডিভাইস যোগ করা বা সরানো হলে
requestSyncকল করুন। - deviceNotMounted : মনে হচ্ছে, <device(s)> এটি করতে পারছে না কারণ <it/they> মাউন্ট করা <is/are> নেই।
- 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)> রিমোট কন্ট্রোল কাজ করে না।
- 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)> জরুরি হিট মোডে আছে, তাই <it/they>-কে ম্যানুয়ালি অ্যাডজাস্ট করতে হবে।
- faultyBattery : <device(s)> <has/have> <a faulty battery/faulty batteries>।
- floorUnreachable : <device(s)> ওই রুমে পৌঁছাতে পারছে না। <it/them>-কে সঠিক ফ্লোরে নিয়ে গিয়ে আবার চেষ্টা করুন।
- functionNotSupported : আসলে, <device(s)> সেই কার্যকারিতা <doesn't/don't> সাপোর্ট করে। পরামর্শ: আপনার SYNC উত্তর যেন ডিভাইসের ক্ষমতা সঠিকভাবে প্রতিফলিত করে তা নিশ্চিত করুন।
- genericDispenseNotSupported : আপনি কী ডিসপেন্স করতে চান তা আমার জানা প্রয়োজন। আইটেমের নাম দিয়ে আবার চেষ্টা করুন।
- hardError : দুঃখিত, কোনও সমস্যা হয়েছে এবং আমি আপনার হোম ডিভাইস কন্ট্রোল করতে পারছি না।
- hardError : দুঃখিত, কোনও সমস্যা হয়েছে এবং আমি আপনার হোম ডিভাইস কন্ট্রোল করতে পারছি না।
- inAutoMode : <device(s)> বর্তমানে অটোমেটিক মোডে সেট করা আছে। তাপমাত্রা পরিবর্তন করতে, আপনাকে <it/them>-কে অন্য মোডে পরিবর্তন করতে হবে।
- inAwayMode : <device(s)> <is/are> বর্তমানে 'দূরে আছি' মোডে সেট করা আছে। আপনার থার্মোস্ট্যাট কন্ট্রোল করতে, ফোন, ট্যাবলেট বা কম্পিউটারে Nest অ্যাপ ব্যবহার করে আপনাকে ম্যানুয়ালি এটি হোম মোডে পরিবর্তন করতে হবে।
- inDryMode : <device(s)> বর্তমানে ড্রাই মোডে সেট করা আছে। তাপমাত্রা পরিবর্তন করতে, আপনাকে <it/them>-কে অন্য মোডে পরিবর্তন করতে হবে।
- inEcoMode : <device(s)> <is/are> বর্তমানে ইকো মোডে সেট করা আছে। তাপমাত্রা পরিবর্তন করতে, আপনাকে <it/them>-কে অন্য মোডে পরিবর্তন করতে হবে।
- inFanOnlyMode : <device(s)> বর্তমানে শুধু ফ্যান মোডে সেট করা আছে। তাপমাত্রা পরিবর্তন করতে, আপনাকে <it/them>-কে অন্য মোডে পরিবর্তন করতে হবে।
- inHeatOrCool : <device(s)> <is/are>n't in heat/cool mode.
- inHumidifierMode : <device(s)> <is/are> বর্তমানে হিউমিডিফায়ার মোডে সেট করা আছে। তাপমাত্রা পরিবর্তন করতে, আপনাকে <it/them>-কে অন্য মোডে পরিবর্তন করতে হবে।
- inOffMode : <device(s)> <is/are> বর্তমানে বন্ধ আছে। তাপমাত্রা পরিবর্তন করতে, আপনাকে <it/them>-কে অন্য মোডে পরিবর্তন করতে হবে।
- inPurifierMode : <device(s)> বর্তমানে পিউরিফায়ার মোডে সেট করা আছে। তাপমাত্রা পরিবর্তন করতে, আপনাকে <it/them>-কে অন্য মোডে পরিবর্তন করতে হবে।
- inSleepMode : <device(s)> <is/are> in sleep mode. পরে আবার চেষ্টা করুন।
- inSoftwareUpdate : <device(s)> <is/are> বর্তমানে সফ্টওয়্যার আপডেট করছে।
- lockFailure : <device(s)> লক করা যায়নি। পরামর্শ: লক হার্ডওয়্যারে কোনও ফিজিক্যাল জ্যাম, কম পাওয়ার বা মোটর কাজ না করা সংক্রান্ত সমস্যা আছে কিনা তা খতিয়ে দেখুন।
- lockedState : <device(s)> <is/are> বর্তমানে লক করা আছে।
- lockedToRange : <device(s)>-এ লক করা রেঞ্জের বাইরে তাপমাত্রা আছে।
- lowBattery : <device(s)> <has/have> low battery.
- maxSettingReached : <device(s)> <is/are> already set to the highest setting.
- maxSpeedReached : <device(s)> <is/are> already set to the maximum speed.
- minSettingReached : <device(s)> <is/are> already set to the lowest setting.
- minSpeedReached : <device(s)> <is/are> আগেই সর্বনিম্ন স্পিডে সেট করা আছে।
- monitoringServiceConnectionLost : <device(s)> <has/have> lost <its/their> connection to the monitoring service.
- needsAttachment : মনে হচ্ছে, <device(s)>-এ প্রয়োজনীয় অ্যাটাচমেন্ট <is/are> নেই। এটি পাল্টে আবার চেষ্টা করুন।
- needsBin : মনে হচ্ছে, <device(s)>-এ বিন নেই। এটি পাল্টে আবার চেষ্টা করুন।
- needsPads : <device(s)> <need(s)> নতুন প্যাড।
- needsSoftwareUpdate : <device(s)> <need(s)> সফ্টওয়্যার আপডেট করতে হবে।
- needsWater : <device(s)> <need(s)> water.
- networkProfileNotRecognized : দুঃখিত, <device(s)>-এ "<network profile>" আমি চিনতে পারছি না। পরামর্শ: SYNC রেসপন্সে উল্লেখ করা প্রোফাইলের সাথে প্রোফাইলের নামের স্ট্রিং ম্যাচ করছে কিনা তা যাচাই করুন।
- networkSpeedTestInProgress : আমি আগেই <network> <speed/speeds> পরীক্ষা করছি।
- noAvailableApp : মনে হচ্ছে, <app name> উপলভ্য নেই।
- noAvailableChannel : মনে হচ্ছে, চ্যানেল <channel name> উপলভ্য নেই।
- noChannelSubscription : দুঃখিত, আপনি এই মুহূর্তে <channel name> চ্যানেলে সাবস্ক্রাইব করে নেই।
- noTimerExists : মনে হচ্ছে, <device(s)>-এ কোনও টাইমার সেট করা নেই।
- notSupported : দুঃখিত, <device(s)>-এর জন্য সেই মোড উপলভ্য নেই।
- obstructionDetected : <device(s)> কোনও বাধা শনাক্ত করেছে।
- অফলাইন , deviceOffline : মনে হচ্ছে, <device(s)> এই মুহূর্তে উপলভ্য <is/are>নয়।
- onRequiresMode : আপনি কোন মোড চালু করতে চান তা নির্দিষ্ট করুন।
- passphraseIncorrect : মনে হচ্ছে, পিনটি সঠিক নয়।
- percentOutOfRange : দুঃখিত, আমি <device(s)>-এর ভলিউম <percent> করতে পারছি না।
- pinIncorrect : (passphraseIncorrect)
- rainDetected : বৃষ্টি শনাক্ত হওয়ার কারণে আমি <device(s)> খুলিনি।
- rangeTooClose : <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)>-এ নিরাপত্তা সংক্রান্ত বিধিনিষেধ <has/have> আছে।
- softwareUpdateNotAvailable : দুঃখিত, <device(s)>-এ কোনও সফ্টওয়্যার আপডেট উপলভ্য নেই।
- startRequiresTime : এটি করতে, আপনাকে বলতে হবে যে আপনি কতক্ষণ <device(s)> চালাতে চান।
- stillCoolingDown : <device(s)> <is/are> still cooling down.
- stillWarmingUp : <device(s)> <is/are> still warming up.
- streamUnavailable : মনে হচ্ছে, <device(s)> থেকে বর্তমানে স্ট্রিম উপলভ্য নেই।
- streamUnplayable : দুঃখিত, এই মুহূর্তে <device(s)> থেকে স্ট্রিম চালানো যাচ্ছে না। পরামর্শ: WebRTC/HLS সিগন্যালিং যাচাই করুন এবং স্ট্রিম URL সঠিক আছে কিনা তা নিশ্চিত করুন।
- tankEmpty : <device(s)>-এ <an empty tank/empty tanks> <has/have>। <it/them> ভর্তি করে আবার চেষ্টা করুন।
- targetAlreadyReached : দুঃখিত, মনে হচ্ছে এটি ইতিমধ্যেই বর্তমান তাপমাত্রা।
- timerValueOutOfRange : <device(s)>-এর জন্য সেই সময়ের পরিমাণ সেট করা যাবে না।
- tooManyFailedAttempts : অনেকবার চেষ্টা করা সত্ত্বেও কাজ হয়নি। সেই অ্যাকশন সম্পূর্ণ করতে আপনার ডিভাইসের অ্যাপে যান।
- transientError : <device(s)> কন্ট্রোল করার সময় কোনও সমস্যা হয়েছে। আবার চেষ্টা করুন। পরামর্শ: সাধারণত, এই ধরনের সমস্যার ফলে ডিভাইস বা পরিষেবার সাথে কানেকশন বিচ্ছিন্ন হয়ে যায়। এছাড়াও, সার্ভারে নতুন কানেকশন খোলা না গেলে।
- turnedOff , deviceTurnedOff : <device(s)> <is/are> off right now.
- unableToLocateDevice : আমি <device(s)> খুঁজে পাইনি। পরামর্শ: ডিভাইসের লোকাল কানেক্টিভিটি (ওয়াই-ফাই/ব্লুটুথ) চেক করুন।
- unknownFoodPreset : <device(s)> এই ফুড প্রিসেট সাপোর্ট করে না।
- unlockFailure : <device(s)> আনলক করা যায়নি। পরামর্শ: হার্ডওয়্যার জ্যাম, ব্যাটারির চার্জ কম থাকা বা ভুল পিন লেখা হয়েছে কিনা তা খতিয়ে দেখুন।
- unpausableState : <device(s)> এখন পজ করা যাবে না।
- userCancelled : ঠিক আছে
- valueOutOfRange : <device(s)>-এর তাপমাত্রা সেট করা যাচ্ছে না।
অনলাইন ও অফলাইন স্ট্যাটাস রিপোর্টিং
কোনও ডিভাইস অফলাইন থাকলে, ডিভাইসটির আচরণ দেখার পাঁচ মিনিটের মধ্যে আপনাকে রিপোর্ট স্টেট-এ <code{"online": code="" dir="ltr" false}<="" translate="no"> রিপোর্ট করতে হবে। অন্যদিকে, কোনও ডিভাইস অনলাইন হলে, আপনাকে ডিভাইসের আচরণ লক্ষ্য করার পাঁচ মিনিটের মধ্যে রিপোর্ট স্টেট-এ <code{"online": code="" dir="ltr" translate="no" true}<=""> রিপোর্ট করতে হবে। কোনও ডিভাইস আবার অনলাইন হলে, পার্টনারকেreportStateAndNotification API ব্যবহার করে ডিভাইসের সব বর্তমান
স্ট্যাটাস রিপোর্ট করতে হবে।
এই উদাহরণে দেখানো হয়েছে যে light ডিভাইস অনলাইন আছে এবং
ডিভাইসের বর্তমান স্ট্যাটাস সংক্রান্ত সব তথ্য রিপোর্ট করছে।
"requestId": "test-request-id",
"agentUserId": "agent-user-1",
"payload":{
"devices": {
"states": {
"device-id-1": {
"brightness": 65,
"on": true,
"online": true
}
"notifications": {},
}
}
}ব্যতিক্রম
কোনও কমান্ডের সাথে সম্পর্কিত কোনও সমস্যা বা সতর্কতা থাকলে আপনাকে একটি ব্যতিক্রম রিটার্ন করতে হবে। কমান্ডটি সফল হতেও পারে আবার নাও হতে পারে।
কমান্ড সফল হলে (status = "SUCCESS"), 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" } ] } } } }
ব্যতিক্রমের তালিকা
নিম্নলিখিত ব্যতিক্রমগুলি ডিভাইসে সংশ্লিষ্ট TTS তৈরি করবে।
- bagFull : <device(s)>-এ <a full bag/full bags> আছে। <it/them> খালি করে আবার চেষ্টা করুন।
- binFull : <device(s)> <has/have> <a full bin/full bins>।
- carbonMonoxideDetected : <house name>-এ কার্বন মনোক্সাইড শনাক্ত করা হয়েছে।
- deviceAtExtremeTemperature : <device(s)> <is/are> at <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)>-এ হার্ডওয়্যার সংক্রান্ত সমস্যা <has/have>।
- inSoftwareUpdate : <device(s)> <is/are> বর্তমানে সফ্টওয়্যার আপডেট করছে।
- isBypassed : <device(s)> <is/are> বর্তমানে বাইপাস করা হয়েছে।
- lowBattery : <device(s)> <has/have> low battery.
- motionDetected : <device(s)> <detect(s)> মোশন।
- needsPads : <device(s)> <need(s)> নতুন প্যাড।
- 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)>-এ নিরাপত্তা সংক্রান্ত বিধিনিষেধ <has/have> আছে।
- smokeDetected : <house name>-এ ধোঁয়া শনাক্ত করা হয়েছে।
- tankEmpty : <device(s)>-এ <an empty tank/empty tanks> <has/have>। <it/them> ভর্তি করে আবার চেষ্টা করুন।
- usingCellularBackup : <device(s)> <is/are> using cellular backup.
- waterLeakDetected : <device(s)> <detect(s)> a water leak.