خطاها و استثنائات

این سند خطاها و استثنائات رسمی پشتیبانی شده برای دستگاه های خانه هوشمند را فهرست می کند. لطفاً از این خطاها و کدهای استثنای داده شده در پاسخ قصد استفاده کنید، یا اگر آن را پیاده‌سازی کرده‌اید در اعلان‌ها استفاده کنید، بنابراین دستیار Google به کاربران نهایی در مورد مسائل مربوط به یک فرمان یا وضعیت دستگاه هشدار می‌دهد. اگر پاسخ حاوی قالب بندی نادرست یا errorCode باشد، دستیار Google یک پیام خطای عمومی به کاربران می دهد، به عنوان مثال، "متأسفیم، دستگاه در حال حاضر در دسترس نیست".

خطاها

زمانی که مشکلی باعث می شود یک درخواست اجرا یا پرس و جو با شکست مواجه شود، باید کد خطا را برگردانید. به عنوان مثال، اگر یک قفل درب گیر کرده است و نمی توان آن را قفل یا باز کرد، خطای مربوط به این حالت باید به کاربر برگردانده شود.

کدهای خطا را می توان در سطح دستگاه یا در سطح جهانی پیوست کرد. به عنوان مثال، اگر یک کاربر چراغ های زیادی از یک ارائه دهنده داشته باشد و آنها توسط یک هاب کنترل می شوند، زمانی که کاربر درخواست می کند همه چراغ های خود را خاموش کند، ارائه دهنده ممکن است یک خطای سطح دستگاه را در صورت آفلاین بودن یک چراغ واحد یا جهانی بودن آن برگرداند. اگر کل هاب آنها آفلاین باشد و هیچ چراغی قابل کنترل نباشد، خطای سطح دارد. اگر همه دستگاه‌ها آفلاین باشند، تفاوتی بین استفاده از خطاهای سطح جهانی یا سطح دستگاه وجود ندارد.

وقتی دستگاهی آفلاین است، باید {"online": false} را در عرض 5 دقیقه پس از عملکرد دستگاه به گزارش وضعیت گزارش دهید.

به طور خلاصه:

  • خطای سطح جهانی: همه دستگاه های موجود در پاسخ دارای خطای یکسانی هستند
  • خطای سطح محلی: پاسخ مخلوط با موارد خطا و موفقیت
خطاهای سطح جهانی

قطعه 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 زیر نشان می‌دهد که چگونه خطاهای سطح دستگاه را در پاسخ 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 : این بیشتر از حداکثر مدت زمان 1 ساعت است. لطفا دوباره امتحان کنید.
  • aboveMaximumTimerDuration : من فقط می توانم <دستگاه(ها)> را تا <دوره زمانی> تنظیم کنم
  • actionNotAvailable : متأسفم، به نظر نمی رسد در حال حاضر این کار را انجام دهم.
  • actionUnavailableWhileRunning : <دستگاه(ها)> <is/are> در حال حاضر در حال اجرا است، بنابراین نمی توانم هیچ تغییری ایجاد کنم.
  • قبلاً مسلح شده : <دستگاه(ها)> <is/are> قبلاً مسلح شده است.
  • ήδηAtMax : <دستگاه(ها)> <is/are> قبلاً روی حداکثر دما تنظیم شده است.
  • ήδηAtMin : <دستگاه(ها)> <is/are> قبلاً روی حداقل دما تنظیم شده است.
  • قبلا بسته شده : <دستگاه(ها)> <is/are> قبلاً بسته شده است.
  • قبلاً خلع سلاح شده : <دستگاه(ها)> <is/are> قبلاً خلع سلاح شده است.
  • قبلاً Docked : <دستگاه(ها)> <is/are> قبلاً متصل شده است.
  • ήδηInState : <دستگاه(ها)> <is/are> در حال حاضر در آن حالت است.
  • قبلاً قفل شده : <دستگاه(ها)> <is/are> قبلاً قفل شده است.
  • قبلا خاموش : <دستگاه(ها)> <is/are> قبلاً خاموش است.
  • ήδη روشن : <دستگاه(ها)> <is/are> از قبل روشن است.
  • قبلاً باز : <دستگاه(ها)> <is/are> قبلاً باز است.
  • قبلاً Paused : <دستگاه(ها)> <is/are> قبلاً متوقف شده است.
  • قبلا شروع شده : <دستگاه(ها)> <is/are> قبلاً شروع شده است.
  • قبلاً متوقف شده : <دستگاه(ها)> <is/are> قبلاً متوقف شده است.
  • قبلاً باز شده : قفل <دستگاه(ها)> <is/are> قبلاً باز شده است.
  • ambiguousZoneName : متأسفیم، <دستگاه(ها)> نمی تواند تشخیص دهد که منظور شما کدام منطقه است. لطفاً مطمئن شوید که مناطق شما دارای نام‌های منحصربه‌فرد هستند و دوباره امتحان کنید.
  • مقدار AboveLimit : این بیشتر از چیزی است که <دستگاه(های)> می تواند پشتیبانی کند.
  • appLaunchFailed : متأسفانه، <app name> در <device(s)> راه اندازی نشد.
  • armFailure : <دستگاه(های)> مسلح نشد.
  • armLevelNeeded : مطمئن نیستم که <دستگاه(ها)> را روی کدام سطح تنظیم کنم. سعی کنید بگویید "تنظیم <دستگاه(ها)> روی <امنیت پایین>" یا "تنظیم <دستگاه(ها)> روی <امنیت بالا>"
  • authFailure : به نظر نمی رسد به <دستگاه(ها)> دسترسی داشته باشم. سعی کنید برنامه را بررسی کنید تا مطمئن شوید <device/devices> <is/are> شما به طور کامل راه اندازی شده است.
  • bagFull : <دستگاه(ها)> <has/have> <aba full/full bags>. لطفاً <it/them> را خالی کنید و دوباره امتحان کنید.
  • underMinimumLightEffectsDuration : این کمتر از حداقل مدت زمان 5 دقیقه است. لطفا دوباره امتحان کنید.
  • belowMinimumTimerDuration : نمی توانم <دستگاه(های)> را برای مدت کوتاهی تنظیم کنم. لطفا دوباره امتحان کنید.
  • binFull : <دستگاه(ها)> <has/have> <a full bin/full bins>.
  • cancelArmingRestricted : متأسفم، نتوانستم تسلیح <دستگاه(های)> را لغو کنم.
  • cancelTooLate : با عرض پوزش، برای لغو خیلی دیر است. به جای آن از <دستگاه(ها)> یا برنامه استفاده کنید.
  • channelSwitchFailed : متأسفیم، تغییر به کانال <نام کانال> انجام نشد. لطفاً بعداً دوباره امتحان کنید.
  • chargerIssue : متأسفیم، به نظر می رسد <دستگاه(ها)> <has/have> <مشکلات شارژر/مشکلات شارژر>.
  • commandInsertFailed : پردازش دستورات برای <دستگاه(ها)> امکان پذیر نیست.
  • باتری مرده : <دستگاه(ها)> <has/have> <یک باتری مرده/باتری های مرده>.
  • degreesOutOfRange : درجات درخواستی برای <دستگاه(ها)> خارج از محدوده هستند.
  • deviceAlertNeedsAssistance : <دستگاه(ها)> <has/have> یک هشدار فعال و <نیاز(ها)> کمک شما.
  • deviceAtExtremeTemperature : <دستگاه(ها)> <is/are> در <دمای شدید/دمای شدید>.
  • deviceBusy : متأسفیم، به نظر می رسد <device(s)> در حال حاضر کاری انجام می دهد.
  • deviceCharging : متأسفیم، به نظر می رسد <device(s)> نمی تواند این کار را انجام دهد زیرا (ha_shared.ItsTheyre size=$item.devices.total_device_count) در حال شارژ است.
  • deviceClogged : متأسفیم، به نظر می رسد <device(s)> مسدود شده است.
  • deviceCurrentlyDispensing : <device(s)> در حال حاضر در حال توزیع چیزی است.
  • deviceDoorOpen : در <دستگاه(های)> باز است. لطفاً آن را ببندید و دوباره امتحان کنید.
  • deviceHandleClosed : دستگیره روی <دستگاه(ها)> بسته است. لطفاً آن را باز کنید و دوباره امتحان کنید.
  • deviceJammingDetected : <دستگاه(ها)> <is/are> مسدود شده است.
  • deviceLidOpen : درب روی <device(s)> باز است. لطفاً آن را ببندید و دوباره امتحان کنید.
  • deviceNeedsRepair : <دستگاه(ها)> <نیاز(ها)> برای تعمیر. لطفا با فروشنده خدمات محلی خود تماس بگیرید.
  • deviceNotDocked : متأسفیم، به نظر می رسد <دستگاه(های)> <isn't/arn't> متصل شده است. لطفاً <it/them> را متصل کنید و دوباره امتحان کنید.
  • deviceNotFound : <دستگاه(ها)> <is/are>در دسترس نیست. ممکن است بخواهید دوباره <it/them> را تنظیم کنید.
  • deviceNotMounted : متأسفیم، به نظر می رسد <device(s)> نمی تواند این کار را انجام دهد زیرا <it/they> <is/are> نصب نشده است.
  • deviceNotReady : <دستگاه(ها)> <is/are>آماده نیست.
  • deviceStuck : <دستگاه(ها)> <is/are> گیر کرده است و به کمک شما نیاز دارد.
  • deviceTampered : <دستگاه(ها)> <has/have> دستکاری شده است.
  • deviceThermalShutdown : متأسفیم، به نظر می رسد <device(s)> به دلیل دمای شدید خاموش شده است.
  • directResponseOnlyUnreachable : <دستگاه(های)> <نها/نها> از کنترل از راه دور پشتیبانی نمی کند.
  • Disarm Failure : <دستگاه(های)> را نمی توان خلع سلاح کرد.
  • discreteOnlyOpenClose : متأسفیم، <دستگاه(ها)> را فقط می توان تا آخر باز یا بسته کرد.
  • dispenseAmountAboveLimit : <دستگاه(های)> نمی تواند چنین مقدار زیادی را توزیع کند.
  • dispenseAmountBelowLimit : <دستگاه(های)> نمی تواند چنین مقدار کمی را توزیع کند.
  • dispenseAmountRemainingExceeded : <دستگاه(های)> <dispense item> کافی برای انجام این کار را ندارد.
  • dispenseFractionalAmountNotSupported : <دستگاه(های)> نمی تواند بخش هایی از <dispense item> را توزیع کند.
  • dispenseFractionalUnitNotSupported : <دستگاه(های)> بخشهایی از آن واحد را برای <dispense item> پشتیبانی نمی کند.
  • dispenseUnitNotSupported : <دستگاه(های)> آن واحد را برای <dispense item> پشتیبانی نمی کند.
  • doorClosedTooLong : مدتی است که درب <دستگاه(های)> باز شده است. لطفاً در را باز کنید، مطمئن شوید چیزی داخل آن است و دوباره امتحان کنید.
  • اضطراری HeatOn : <دستگاه(ها)> <is/are> در حالت گرمای اضطراری است، بنابراین <it/they> باید با دست تنظیم شود.
  • باتری معیوب : <دستگاه(ها)> <has/have> <باتری معیوب/باتری معیوب>.
  • floor unreachable : <دستگاه(های)> نمی تواند به آن اتاق برسد. لطفاً <it/them> را به طبقه سمت راست ببرید و دوباره امتحان کنید.
  • functionNotSupported : در واقع، <دستگاه(ها)> <doesn't/don't> از این عملکرد پشتیبانی می کند.
  • genericDispenseNotSupported : من باید بدانم که شما می خواهید چه چیزی را منتشر کنید. لطفا دوباره با نام مورد امتحان کنید.
  • hardError : متأسفیم، مشکلی پیش آمد و من نمی توانم دستگاه خانه شما را کنترل کنم.
  • hardError : متأسفیم، مشکلی پیش آمد و من نمی توانم دستگاه خانه شما را کنترل کنم.
  • inAutoMode : <دستگاه(ها)> <is/are> در حال حاضر روی حالت خودکار تنظیم شده است. برای تغییر دما، باید <it/them> را به حالت دیگری تغییر دهید.
  • inAwayMode : <دستگاه(ها)> <is/are> در حال حاضر روی حالت دور تنظیم شده است. برای کنترل ترموستات، باید با استفاده از برنامه Nest در تلفن، رایانه لوحی یا رایانه، آن را به صورت دستی به حالت خانه تغییر دهید.
  • inDryMode : <دستگاه(ها)> <is/are> در حال حاضر روی حالت خشک تنظیم شده است. برای تغییر دما، باید <it/them> را به حالت دیگری تغییر دهید.
  • inEcoMode : <دستگاه(ها)> <is/are> در حال حاضر روی حالت eco تنظیم شده است. برای تغییر دما، باید <it/them> را به حالت دیگری تغییر دهید.
  • inFanOnlyMode : <دستگاه(ها)> <is/are> در حال حاضر روی حالت فقط فن تنظیم شده است. برای تغییر دما، باید <it/them> را به حالت دیگری تغییر دهید.
  • inHeatOrCool : <دستگاه(ها)> <is/are>در حالت گرما/خنک نیست.
  • inHumidifierMode : <دستگاه(ها)> <is/are> در حال حاضر روی حالت مرطوب کننده تنظیم شده است. برای تغییر دما، باید <it/them> را به حالت دیگری تغییر دهید.
  • inOffMode : <دستگاه(ها)> <is/are> در حال حاضر خاموش است. برای تغییر دما، باید <it/them> را به حالت دیگری تغییر دهید.
  • inPurifierMode : <دستگاه(ها)> <is/are> در حال حاضر روی حالت تصفیه کننده تنظیم شده است. برای تغییر دما، باید <it/them> را به حالت دیگری تغییر دهید.
  • inSleepMode : <دستگاه(ها)> <is/are> در حالت خواب. لطفاً بعداً دوباره امتحان کنید.
  • inSoftwareUpdate : <دستگاه(ها)> <is/are> در حال حاضر در یک به روز رسانی نرم افزار است.
  • lockFailure : <دستگاه(های)> قفل نشد.
  • lockedState : <دستگاه(ها)> <is/are> در حال حاضر قفل شده است.
  • lockedToRange : آن دما خارج از محدوده قفل شده در <دستگاه(ها)> است.
  • باتری کم : <دستگاه(ها)> <has/have> باتری کم.
  • maxSettingReached : <دستگاه(ها)> <is/are> قبلاً روی بالاترین تنظیم تنظیم شده است.
  • maxSpeedReached : <دستگاه(ها)> <is/are> قبلاً روی حداکثر سرعت تنظیم شده است.
  • minSettingReached : <دستگاه(ها)> <is/are> قبلاً روی پایین ترین تنظیم تنظیم شده است.
  • minSpeedReached : <دستگاه(ها)> <is/are> قبلاً روی حداقل سرعت تنظیم شده است.
  • monitoringServiceConnectionLost : <دستگاه(ها)> <has/have> اتصال <it/ir> به سرویس نظارت را از دست داد.
  • needAttachment : متأسفیم، به نظر می رسد <دستگاه(ها)> <is/are> یک پیوست مورد نیاز را ندارد. لطفا آن را جایگزین کنید و دوباره امتحان کنید.
  • needBin : متأسفیم، به نظر می رسد <دستگاه(ها)> <is/are> یک سطل را از دست داده است. لطفا آن را جایگزین کنید و دوباره امتحان کنید.
  • needPads : <دستگاه(ها)> <نیاز(ها)> پدهای جدید.
  • needSoftwareUpdate : <device(s)> <need(s)> یک به روز رسانی نرم افزار.
  • نیاز به آب : <دستگاه(ها)> <نیاز(ها)> آب.
  • networkProfileNotRecognized : متأسفم، من "<نمایه شبکه>" را در <دستگاه(های)> تشخیص نمی دهم.
  • networkSpeedTestInProgress : من قبلاً در حال آزمایش <شبکه> <speed/speeds>> هستم.
  • noAvailableApp : متأسفیم، به نظر می رسد <app name> در دسترس نیست.
  • noAvailableChannel : متأسفیم، به نظر می رسد کانال <نام کانال> در دسترس نیست.
  • noChannelSubscription : متأسفیم، شما در حال حاضر مشترک کانال <نام کانال> نیستید.
  • noTimerExists : متأسفیم، به نظر می رسد هیچ تایمری روی <دستگاه(های)> تنظیم نشده است.
  • notSupported : متأسفیم، این حالت برای <دستگاه(های)> در دسترس نیست.
  • obstructionDetected : <دستگاه(ها)> یک مانع را شناسایی کرد.
  • آفلاین , deviceOffline : متأسفیم، به نظر می رسد <دستگاه(ها)> <is/are>در حال حاضر در دسترس نیست.
  • onRequiresMode : لطفاً مشخص کنید که کدام حالت را می خواهید روشن کنید.
  • passphraseIncorrect : با عرض پوزش، به نظر می رسد که PIN نادرست است.
  • % .
  • pinIncorrect : (گذرواژه نادرست)
  • rainDetected : <دستگاه(های)> را باز نکردم زیرا باران شناسایی شد.
  • rangeTooClose : برای محدوده Heat-Cool برای <دستگاه(ها)> بسیار نزدیک هستند. دماهایی را انتخاب کنید که از هم دورتر باشند.
  • relinkRequired : متأسفیم، به نظر می رسد مشکلی در حساب شما رخ داده است. لطفاً از Google Home یا برنامه دستیار خود برای پیوند مجدد <دستگاه(های)> استفاده کنید.
  • remoteSetDisabled :
    • پارامتر اختیاری errorCodeReason
    • currentlyArmed - متأسفیم، از آنجایی که امنیت از قبل مسلح شده است، باید از <دستگاه(های)> یا برنامه برای ایجاد هرگونه تغییر استفاده کنید.
    • remoteUnlockNotAllowed - متأسفم، نمی توانم قفل <دستگاه(های)> را از راه دور باز کنم.
    • remoteControlOff - این عمل در حال حاضر غیرفعال است. لطفاً کنترل از راه دور را در <دستگاه(های)> فعال کنید و دوباره امتحان کنید.
    • childSafetyModeActive - وقتی حالت ایمنی کودک فعال است، این عملکرد برای <دستگاه(های)> غیرفعال است.
  • RoomOnDifferentFloors : <دستگاه(ها)> نمی تواند به آن اتاق ها دسترسی پیدا کند زیرا آنها در طبقات مختلف هستند.
  • safeShutOff : <دستگاه(ها)> <is/are> در حالت Safety Shut-Off، بنابراین <it/they> باید با دست تنظیم شود.
  • sceneCannotBeApplied : متأسفیم، <دستگاه(های)> را نمی توان اعمال کرد.
  • SecurityRestriction : <دستگاه(ها)> <has/have> یک محدودیت امنیتی.
  • softwareUpdateNotAvailable : متأسفیم، هیچ به روز رسانی نرم افزاری در <دستگاه(های)> موجود نیست.
  • startRequiresTime : برای انجام این کار، باید به من بگویید که چه مدت می خواهید <device(s)> را اجرا کنید.
  • stillCoolingDown : <دستگاه(ها)> <is/are> هنوز در حال خنک شدن است.
  • stillWarmingUp : <دستگاه(ها)> <is/are> هنوز در حال گرم شدن است.
  • stream Unavailable : متأسفیم، به نظر می رسد جریان در حال حاضر از <device(s)> در دسترس نیست.
  • stream Unplayable : متأسفیم، در حال حاضر نمی توانم جریان را از <دستگاه(های)> پخش کنم.
  • tankEmpty : <دستگاه(ها)> <has/have> <مخزن خالی/مخزن خالی>. لطفاً <it/them> را پر کنید و دوباره امتحان کنید.
  • targetAlreadyReached : با عرض پوزش، به نظر می رسد که از قبل دمای فعلی است.
  • timerValueOutOfRange : <دستگاه(های)> را نمی توان برای این مدت زمان تنظیم کرد.
  • tooManyFailedAttempts : متأسفیم، تلاش‌های بسیار ناموفق. لطفاً برای تکمیل آن اقدام به برنامه دستگاه خود بروید.
  • transientError : متأسفیم، هنگام کنترل <دستگاه(های)> مشکلی پیش آمد. لطفا دوباره امتحان کنید.
  • turnOff , deviceTurnedOff : <دستگاه(ها)> <is/are> در حال حاضر خاموش است.
  • unableToLocateDevice : نتوانستم <دستگاه(ها)> را پیدا کنم.
  • knownFoodPreset : <دستگاه(های)> از پیش تنظیم غذا پشتیبانی نمی کند.
  • unlockFailure : <دستگاه(های)> را نمی توان باز کرد.
  • unpausableState : <device(s)> را نمی توان در حال حاضر متوقف کرد.
  • کاربر لغو شده : بسیار خوب
  • valueOutOfRange : <دستگاه(های)> را نمی توان روی آن دما تنظیم کرد.
استثنائات

هنگامی که مشکل یا هشداری در ارتباط با یک فرمان وجود دارد، باید یک استثنا را برگردانید. فرمان ممکن است موفق شود یا شکست بخورد.

اگر دستور موفقیت آمیز بود (وضعیت = "SUCCESS")، استثناها را با استفاده از ویژگی StatusReport (برای دستگاه هایی غیر از هدف)، یا با بازگرداندن یک exceptionCode مناسب (برای دستگاه هدف) گزارش کنید.

به عنوان مثال، اگر صفحه پرز خشک کن پر باشد، کاربر همچنان می تواند خشک کن خود را روشن کند، اما ممکن است بخواهید در مورد این وضعیت به او هشدار دهید. به طور مشابه، وقتی باتری دستگاهی کم است و خالی نیست، همچنان می‌توانید فرمانی را اجرا کنید، اما باید به آنها اطلاع دهید که باتری دستگاه کم است.

اگر دستور به دلیل استثنائات ناموفق باشد، وضعیت باید "EXCEPTIONS" باشد و استثناها باید با استفاده از ویژگی StatusReport گزارش شوند.

استثنا غیر مسدود کننده (SUCCESS) در مورد دستگاه مورد نظر

این مثال برای قفل کردن درب است:

قفل درب جلو باتری کم دارد. قفل کردن درب ورودی.

{
  "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"
      }
    }]
  }
}
استثنا غیر مسدود کننده (SUCCESS) در مورد دستگاه دیگری با استفاده از 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 : <دستگاه(ها)> <has/have> <aba full/full bags>. لطفاً <it/them> را خالی کنید و دوباره امتحان کنید.
  • binFull : <دستگاه(ها)> <has/have> <a full bin/full bins>.
  • carbonMonoxideDetected : مونوکسید کربن در <نام خانه> شناسایی شده است.
  • deviceAtExtremeTemperature : <دستگاه(ها)> <is/are> در <دمای شدید/دمای شدید>.
  • deviceJammingDetected : <دستگاه(ها)> <is/are> مسدود شده است.
  • deviceMoved : <دستگاه(ها)> <was/were> منتقل شد.
  • deviceOpen : <دستگاه(ها)> <is/are> باز است.
  • deviceTampered : <دستگاه(ها)> <has/have> دستکاری شده است.
  • deviceUnplugged : <دستگاه(ها)> <is/are> قطع شده است.
  • floor unreachable : <دستگاه(های)> نمی تواند به آن اتاق برسد. لطفاً <it/them> را به طبقه سمت راست ببرید و دوباره امتحان کنید.
  • hardware Failure : <دستگاه(ها)> <has/have> یک مشکل سخت افزاری است.
  • inSoftwareUpdate : <دستگاه(ها)> <is/are> در حال حاضر در یک به روز رسانی نرم افزار است.
  • isBypassed : <دستگاه(ها)> <is/are> در حال حاضر دور زده شده است.
  • باتری کم : <دستگاه(ها)> <has/have> باتری کم.
  • motionDetected : <دستگاه(ها)> <تشخیص(ها)> حرکت.
  • needPads : <دستگاه(ها)> <نیاز(ها)> پدهای جدید.
  • needSoftwareUpdate : <device(s)> <need(s)> یک به روز رسانی نرم افزار.
  • نیاز به آب : <دستگاه(ها)> <نیاز(ها)> آب.
  • networkJammingDetected : اتصال شبکه خانگی به <دستگاه(های)> به درستی کار نمی کند.
  • noIssuesReported : <دستگاه(ها)> هیچ مشکلی را گزارش نکرد.
  • RoomOnDifferentFloors : <دستگاه(ها)> نمی تواند به آن اتاق ها دسترسی پیدا کند زیرا آنها در طبقات مختلف هستند.
  • runCycleFinished : <دستگاه(ها)> <has/have> در حال اجرا به پایان رسید.
  • SecurityRestriction : <دستگاه(ها)> <has/have> یک محدودیت امنیتی.
  • smokeDetected : دود در <نام خانه> شناسایی شده است.
  • tankEmpty : <دستگاه(ها)> <has/have> <مخزن خالی/مخزن خالی>. لطفاً <it/them> را پر کنید و دوباره امتحان کنید.
  • usingCellularBackup : <دستگاه(ها)> <is/are> با استفاده از پشتیبان گیری سلولی.
  • waterLeakDetected : <دستگاه(ها)> <تشخیص(ها)> نشت آب.
،

این سند خطاها و استثنائات رسمی پشتیبانی شده برای دستگاه های خانه هوشمند را فهرست می کند. لطفاً از این خطاها و کدهای استثنای داده شده در پاسخ قصد استفاده کنید، یا اگر آن را پیاده‌سازی کرده‌اید در اعلان‌ها استفاده کنید، بنابراین دستیار Google به کاربران نهایی در مورد مسائل مربوط به یک فرمان یا وضعیت دستگاه هشدار می‌دهد. اگر پاسخ حاوی قالب بندی نادرست یا errorCode باشد، دستیار Google یک پیام خطای عمومی به کاربران می دهد، به عنوان مثال، "متأسفیم، دستگاه در حال حاضر در دسترس نیست".

خطاها

زمانی که مشکلی باعث می شود یک درخواست اجرا یا پرس و جو با شکست مواجه شود، باید کد خطا را برگردانید. به عنوان مثال، اگر یک قفل درب گیر کرده است و نمی توان آن را قفل یا باز کرد، خطای مربوط به این حالت باید به کاربر برگردانده شود.

کدهای خطا را می توان در سطح دستگاه یا در سطح جهانی پیوست کرد. به عنوان مثال، اگر یک کاربر چراغ های زیادی از یک ارائه دهنده داشته باشد و آنها توسط یک هاب کنترل می شوند، زمانی که کاربر درخواست می کند همه چراغ های خود را خاموش کند، ارائه دهنده ممکن است یک خطای سطح دستگاه را در صورت آفلاین بودن یک چراغ واحد یا جهانی بودن آن برگرداند. اگر کل هاب آنها آفلاین باشد و هیچ چراغی قابل کنترل نباشد، خطای سطح دارد. اگر همه دستگاه‌ها آفلاین باشند، تفاوتی بین استفاده از خطاهای سطح جهانی یا سطح دستگاه وجود ندارد.

وقتی دستگاهی آفلاین است، باید {"online": false} را در عرض 5 دقیقه پس از عملکرد دستگاه به گزارش وضعیت گزارش دهید.

به طور خلاصه:

  • خطای سطح جهانی: همه دستگاه های موجود در پاسخ دارای خطای یکسانی هستند
  • خطای سطح محلی: پاسخ مخلوط با موارد خطا و موفقیت
خطاهای سطح جهانی

قطعه 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 زیر نشان می‌دهد که چگونه خطاهای سطح دستگاه را در پاسخ 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 : این بیشتر از حداکثر مدت زمان 1 ساعت است. لطفا دوباره امتحان کنید.
  • aboveMaximumTimerDuration : من فقط می توانم <دستگاه(ها)> را تا <دوره زمانی> تنظیم کنم
  • actionNotAvailable : متأسفم، به نظر نمی رسد در حال حاضر این کار را انجام دهم.
  • actionUnavailableWhileRunning : <دستگاه(ها)> <is/are> در حال حاضر در حال اجرا است، بنابراین نمی توانم هیچ تغییری ایجاد کنم.
  • قبلاً مسلح شده : <دستگاه(ها)> <is/are> قبلاً مسلح شده است.
  • ήδηAtMax : <دستگاه(ها)> <is/are> قبلاً روی حداکثر دما تنظیم شده است.
  • ήδηAtMin : <دستگاه(ها)> <is/are> قبلاً روی حداقل دما تنظیم شده است.
  • قبلا بسته شده : <دستگاه(ها)> <is/are> قبلاً بسته شده است.
  • قبلاً خلع سلاح شده : <دستگاه(ها)> <is/are> قبلاً خلع سلاح شده است.
  • قبلاً Docked : <دستگاه(ها)> <is/are> قبلاً متصل شده است.
  • ήδηInState : <دستگاه(ها)> <is/are> در حال حاضر در آن حالت است.
  • قبلاً قفل شده : <دستگاه(ها)> <is/are> قبلاً قفل شده است.
  • قبلا خاموش : <دستگاه(ها)> <is/are> قبلاً خاموش است.
  • ήδη روشن : <دستگاه(ها)> <is/are> از قبل روشن است.
  • قبلاً باز : <دستگاه(ها)> <is/are> قبلاً باز است.
  • قبلاً Paused : <دستگاه(ها)> <is/are> قبلاً متوقف شده است.
  • قبلا شروع شده : <دستگاه(ها)> <is/are> قبلاً شروع شده است.
  • قبلاً متوقف شده : <دستگاه(ها)> <is/are> قبلاً متوقف شده است.
  • قبلاً باز شده : قفل <دستگاه(ها)> <is/are> قبلاً باز شده است.
  • ambiguousZoneName : متأسفیم، <دستگاه(ها)> نمی تواند تشخیص دهد که منظور شما کدام منطقه است. لطفاً مطمئن شوید که مناطق شما دارای نام‌های منحصربه‌فرد هستند و دوباره امتحان کنید.
  • مقدار AboveLimit : این بیشتر از چیزی است که <دستگاه(های)> می تواند پشتیبانی کند.
  • appLaunchFailed : متأسفانه، <app name> در <device(s)> راه اندازی نشد.
  • armFailure : <دستگاه(های)> مسلح نشد.
  • armLevelNeeded : مطمئن نیستم که <دستگاه(ها)> را روی کدام سطح تنظیم کنم. سعی کنید بگویید "تنظیم <دستگاه(ها)> روی <امنیت پایین>" یا "تنظیم <دستگاه(ها)> روی <امنیت بالا>"
  • authFailure : به نظر نمی رسد به <دستگاه(ها)> دسترسی داشته باشم. سعی کنید برنامه را بررسی کنید تا مطمئن شوید <device/devices> <is/are> شما به طور کامل راه اندازی شده است.
  • bagFull : <دستگاه(ها)> <has/have> <aba full/full bags>. لطفاً <it/them> را خالی کنید و دوباره امتحان کنید.
  • underMinimumLightEffectsDuration : این کمتر از حداقل مدت زمان 5 دقیقه است. لطفا دوباره امتحان کنید.
  • belowMinimumTimerDuration : نمی توانم <دستگاه(های)> را برای مدت کوتاهی تنظیم کنم. لطفا دوباره امتحان کنید.
  • binFull : <دستگاه(ها)> <has/have> <a full bin/full bins>.
  • cancelArmingRestricted : متأسفم، نتوانستم تسلیح <دستگاه(های)> را لغو کنم.
  • cancelTooLate : با عرض پوزش، برای لغو خیلی دیر است. به جای آن از <دستگاه(ها)> یا برنامه استفاده کنید.
  • channelSwitchFailed : متأسفیم، تغییر به کانال <نام کانال> انجام نشد. لطفاً بعداً دوباره امتحان کنید.
  • chargerIssue : متأسفیم، به نظر می رسد <دستگاه(ها)> <has/have> <مشکلات شارژر/مشکلات شارژر>.
  • commandInsertFailed : پردازش دستورات برای <دستگاه(ها)> امکان پذیر نیست.
  • باتری مرده : <دستگاه(ها)> <has/have> <یک باتری مرده/باتری های مرده>.
  • degreesOutOfRange : درجات درخواستی برای <دستگاه(ها)> خارج از محدوده هستند.
  • deviceAlertNeedsAssistance : <دستگاه(ها)> <has/have> یک هشدار فعال و <نیاز(ها)> کمک شما.
  • deviceAtExtremeTemperature : <دستگاه(ها)> <is/are> در <دمای شدید/دمای شدید>.
  • deviceBusy : متأسفیم، به نظر می رسد <device(s)> در حال حاضر کاری انجام می دهد.
  • deviceCharging : متأسفیم، به نظر می رسد <device(s)> نمی تواند این کار را انجام دهد زیرا (ha_shared.ItsTheyre size=$item.devices.total_device_count) در حال شارژ است.
  • deviceClogged : متأسفیم، به نظر می رسد <device(s)> مسدود شده است.
  • deviceCurrentlyDispensing : <device(s)> در حال حاضر در حال توزیع چیزی است.
  • deviceDoorOpen : در <دستگاه(های)> باز است. لطفاً آن را ببندید و دوباره امتحان کنید.
  • deviceHandleClosed : دستگیره روی <دستگاه(ها)> بسته است. لطفاً آن را باز کنید و دوباره امتحان کنید.
  • deviceJammingDetected : <دستگاه(ها)> <is/are> مسدود شده است.
  • deviceLidOpen : درب روی <device(s)> باز است. لطفاً آن را ببندید و دوباره امتحان کنید.
  • deviceNeedsRepair : <دستگاه(ها)> <نیاز(ها)> برای تعمیر. لطفا با فروشنده خدمات محلی خود تماس بگیرید.
  • deviceNotDocked : متأسفیم، به نظر می رسد <دستگاه(های)> <isn't/arn't> متصل شده است. لطفاً <it/them> را متصل کنید و دوباره امتحان کنید.
  • deviceNotFound : <دستگاه(ها)> <is/are>در دسترس نیست. ممکن است بخواهید دوباره <it/them> را تنظیم کنید.
  • deviceNotMounted : متأسفیم، به نظر می رسد <device(s)> نمی تواند این کار را انجام دهد زیرا <it/they> <is/are> نصب نشده است.
  • deviceNotReady : <دستگاه(ها)> <is/are>آماده نیست.
  • deviceStuck : <دستگاه(ها)> <is/are> گیر کرده است و به کمک شما نیاز دارد.
  • deviceTampered : <دستگاه(ها)> <has/have> دستکاری شده است.
  • deviceThermalShutdown : متأسفیم، به نظر می رسد <device(s)> به دلیل دمای شدید خاموش شده است.
  • directResponseOnlyUnreachable : <دستگاه(های)> <نها/نها> از کنترل از راه دور پشتیبانی نمی کند.
  • Disarm Failure : <دستگاه(های)> را نمی توان خلع سلاح کرد.
  • discreteOnlyOpenClose : متأسفیم، <دستگاه(ها)> را فقط می توان تا آخر باز یا بسته کرد.
  • dispenseAmountAboveLimit : <دستگاه(های)> نمی تواند چنین مقدار زیادی را توزیع کند.
  • dispenseAmountBelowLimit : <دستگاه(های)> نمی تواند چنین مقدار کمی را توزیع کند.
  • dispenseAmountRemainingExceeded : <دستگاه(های)> <dispense item> کافی برای انجام این کار را ندارد.
  • dispenseFractionalAmountNotSupported : <دستگاه(های)> نمی تواند بخش هایی از <dispense item> را توزیع کند.
  • dispenseFractionalUnitNotSupported : <دستگاه(های)> بخشهایی از آن واحد را برای <dispense item> پشتیبانی نمی کند.
  • dispenseUnitNotSupported : <دستگاه(های)> آن واحد را برای <dispense item> پشتیبانی نمی کند.
  • doorClosedTooLong : مدتی است که درب <دستگاه(های)> باز شده است. لطفاً در را باز کنید، مطمئن شوید چیزی داخل آن است و دوباره امتحان کنید.
  • اضطراری HeatOn : <دستگاه(ها)> <is/are> در حالت گرمای اضطراری است، بنابراین <it/they> باید با دست تنظیم شود.
  • باتری معیوب : <دستگاه(ها)> <has/have> <باتری معیوب/باتری معیوب>.
  • floor unreachable : <دستگاه(های)> نمی تواند به آن اتاق برسد. لطفاً <it/them> را به طبقه سمت راست ببرید و دوباره امتحان کنید.
  • functionNotSupported : در واقع، <دستگاه(ها)> <doesn't/don't> از این عملکرد پشتیبانی می کند.
  • genericDispenseNotSupported : من باید بدانم که شما می خواهید چه چیزی را منتشر کنید. لطفا دوباره با نام مورد امتحان کنید.
  • hardError : متأسفیم، مشکلی پیش آمد و من نمی توانم دستگاه خانه شما را کنترل کنم.
  • hardError : متأسفیم، مشکلی پیش آمد و من نمی توانم دستگاه خانه شما را کنترل کنم.
  • inAutoMode : <دستگاه(ها)> <is/are> در حال حاضر روی حالت خودکار تنظیم شده است. برای تغییر دما، باید <it/them> را به حالت دیگری تغییر دهید.
  • inAwayMode : <دستگاه(ها)> <is/are> در حال حاضر روی حالت دور تنظیم شده است. برای کنترل ترموستات، باید با استفاده از برنامه Nest در تلفن، رایانه لوحی یا رایانه، آن را به صورت دستی به حالت خانه تغییر دهید.
  • inDryMode : <دستگاه(ها)> <is/are> در حال حاضر روی حالت خشک تنظیم شده است. برای تغییر دما، باید <it/them> را به حالت دیگری تغییر دهید.
  • inEcoMode : <دستگاه(ها)> <is/are> در حال حاضر روی حالت eco تنظیم شده است. برای تغییر دما، باید <it/them> را به حالت دیگری تغییر دهید.
  • inFanOnlyMode : <دستگاه(ها)> <is/are> در حال حاضر روی حالت فقط فن تنظیم شده است. برای تغییر دما، باید <it/them> را به حالت دیگری تغییر دهید.
  • inHeatOrCool : <دستگاه(ها)> <is/are>در حالت گرما/خنک نیست.
  • inHumidifierMode : <دستگاه(ها)> <is/are> در حال حاضر روی حالت مرطوب کننده تنظیم شده است. برای تغییر دما، باید <it/them> را به حالت دیگری تغییر دهید.
  • inOffMode : <دستگاه(ها)> <is/are> در حال حاضر خاموش است. برای تغییر دما، باید <it/them> را به حالت دیگری تغییر دهید.
  • inPurifierMode : <دستگاه(ها)> <is/are> در حال حاضر روی حالت تصفیه کننده تنظیم شده است. برای تغییر دما، باید <it/them> را به حالت دیگری تغییر دهید.
  • inSleepMode : <دستگاه(ها)> <is/are> در حالت خواب. لطفاً بعداً دوباره امتحان کنید.
  • inSoftwareUpdate : <دستگاه(ها)> <is/are> در حال حاضر در یک به روز رسانی نرم افزار است.
  • lockFailure : <دستگاه(های)> قفل نشد.
  • lockedState : <دستگاه(ها)> <is/are> در حال حاضر قفل شده است.
  • lockedToRange : آن دما خارج از محدوده قفل شده در <دستگاه(ها)> است.
  • باتری کم : <دستگاه(ها)> <has/have> باتری کم.
  • maxSettingReached : <دستگاه(ها)> <is/are> قبلاً روی بالاترین تنظیم تنظیم شده است.
  • maxSpeedReached : <دستگاه(ها)> <is/are> قبلاً روی حداکثر سرعت تنظیم شده است.
  • minSettingReached : <دستگاه(ها)> <is/are> قبلاً روی پایین ترین تنظیم تنظیم شده است.
  • minSpeedReached : <دستگاه(ها)> <is/are> قبلاً روی حداقل سرعت تنظیم شده است.
  • monitoringServiceConnectionLost : <دستگاه(ها)> <has/have> اتصال <it/ir> به سرویس نظارت را از دست داد.
  • needAttachment : متأسفیم، به نظر می رسد <دستگاه(ها)> <is/are> یک پیوست مورد نیاز را ندارد. لطفا آن را جایگزین کنید و دوباره امتحان کنید.
  • needBin : متأسفیم، به نظر می رسد <دستگاه(ها)> <is/are> یک سطل را از دست داده است. لطفا آن را جایگزین کنید و دوباره امتحان کنید.
  • needPads : <دستگاه(ها)> <نیاز(ها)> پدهای جدید.
  • needSoftwareUpdate : <device(s)> <need(s)> یک به روز رسانی نرم افزار.
  • نیاز به آب : <دستگاه(ها)> <نیاز(ها)> آب.
  • networkProfileNotRecognized : متأسفم، من "<نمایه شبکه>" را در <دستگاه(های)> تشخیص نمی دهم.
  • networkSpeedTestInProgress : من قبلاً در حال آزمایش <شبکه> <speed/speeds>> هستم.
  • noAvailableApp : متأسفیم، به نظر می رسد <app name> در دسترس نیست.
  • noAvailableChannel : متأسفیم، به نظر می رسد کانال <نام کانال> در دسترس نیست.
  • noChannelSubscription : متأسفیم، شما در حال حاضر مشترک کانال <نام کانال> نیستید.
  • noTimerExists : متأسفیم، به نظر می رسد هیچ تایمری روی <دستگاه(های)> تنظیم نشده است.
  • notSupported : متأسفیم، این حالت برای <دستگاه(های)> در دسترس نیست.
  • obstructionDetected : <دستگاه(ها)> یک مانع را شناسایی کرد.
  • آفلاین , deviceOffline : متأسفیم، به نظر می رسد <دستگاه(ها)> <is/are>در حال حاضر در دسترس نیست.
  • onRequiresMode : لطفاً مشخص کنید که کدام حالت را می خواهید روشن کنید.
  • passphraseIncorrect : با عرض پوزش، به نظر می رسد که PIN نادرست است.
  • % .
  • pinIncorrect : (گذرواژه نادرست)
  • rainDetected : <دستگاه(های)> را باز نکردم زیرا باران شناسایی شد.
  • rangeTooClose : برای محدوده Heat-Cool برای <دستگاه(ها)> بسیار نزدیک هستند. دماهایی را انتخاب کنید که از هم دورتر باشند.
  • relinkRequired : متأسفیم، به نظر می رسد مشکلی در حساب شما رخ داده است. لطفاً از Google Home یا برنامه دستیار خود برای پیوند مجدد <دستگاه(های)> استفاده کنید.
  • remoteSetDisabled :
    • پارامتر اختیاری errorCodeReason
    • currentlyArmed - متأسفیم، از آنجایی که امنیت از قبل مسلح شده است، باید از <دستگاه(های)> یا برنامه برای ایجاد هرگونه تغییر استفاده کنید.
    • remoteUnlockNotAllowed - متأسفم، نمی توانم قفل <دستگاه(های)> را از راه دور باز کنم.
    • remoteControlOff - این عمل در حال حاضر غیرفعال است. لطفاً کنترل از راه دور را در <دستگاه(های)> فعال کنید و دوباره امتحان کنید.
    • childSafetyModeActive - وقتی حالت ایمنی کودک فعال است، این عملکرد برای <دستگاه(های)> غیرفعال است.
  • RoomOnDifferentFloors : <دستگاه(ها)> نمی تواند به آن اتاق ها دسترسی پیدا کند زیرا آنها در طبقات مختلف هستند.
  • safeShutOff : <دستگاه(ها)> <is/are> در حالت Safety Shut-Off، بنابراین <it/they> باید با دست تنظیم شود.
  • sceneCannotBeApplied : متأسفیم، <دستگاه(های)> را نمی توان اعمال کرد.
  • SecurityRestriction : <دستگاه(ها)> <has/have> یک محدودیت امنیتی.
  • softwareUpdateNotAvailable : متأسفیم، هیچ به روز رسانی نرم افزاری در <دستگاه(های)> موجود نیست.
  • startRequiresTime : برای انجام این کار، باید به من بگویید که چه مدت می خواهید <device(s)> را اجرا کنید.
  • stillCoolingDown : <دستگاه(ها)> <is/are> هنوز در حال خنک شدن است.
  • stillWarmingUp : <دستگاه(ها)> <is/are> هنوز در حال گرم شدن است.
  • stream Unavailable : متأسفیم، به نظر می رسد جریان در حال حاضر از <device(s)> در دسترس نیست.
  • stream Unplayable : متأسفیم، در حال حاضر نمی توانم جریان را از <دستگاه(های)> پخش کنم.
  • tankEmpty : <دستگاه(ها)> <has/have> <مخزن خالی/مخزن خالی>. لطفاً <it/them> را پر کنید و دوباره امتحان کنید.
  • targetAlreadyReached : با عرض پوزش، به نظر می رسد که از قبل دمای فعلی است.
  • timerValueOutOfRange : <دستگاه(های)> را نمی توان برای این مدت زمان تنظیم کرد.
  • tooManyFailedAttempts : متأسفیم، تلاش‌های بسیار ناموفق. لطفاً برای تکمیل آن اقدام به برنامه دستگاه خود بروید.
  • transientError : متأسفیم، هنگام کنترل <دستگاه(های)> مشکلی پیش آمد. لطفا دوباره امتحان کنید.
  • turnOff , deviceTurnedOff : <دستگاه(ها)> <is/are> در حال حاضر خاموش است.
  • unableToLocateDevice : نتوانستم <دستگاه(ها)> را پیدا کنم.
  • knownFoodPreset : <دستگاه(های)> از پیش تنظیم غذا پشتیبانی نمی کند.
  • unlockFailure : <دستگاه(های)> را نمی توان باز کرد.
  • unpausableState : <device(s)> را نمی توان در حال حاضر متوقف کرد.
  • کاربر لغو شده : بسیار خوب
  • valueOutOfRange : <دستگاه(های)> را نمی توان روی آن دما تنظیم کرد.
استثنائات

هنگامی که مشکل یا هشداری در ارتباط با یک فرمان وجود دارد، باید یک استثنا را برگردانید. فرمان ممکن است موفق شود یا شکست بخورد.

اگر دستور موفقیت آمیز بود (وضعیت = "SUCCESS")، استثناها را با استفاده از ویژگی StatusReport (برای دستگاه هایی غیر از هدف)، یا با بازگرداندن یک exceptionCode مناسب (برای دستگاه هدف) گزارش کنید.

به عنوان مثال، اگر صفحه پرز خشک کن پر باشد، کاربر همچنان می تواند خشک کن خود را روشن کند، اما ممکن است بخواهید در مورد این وضعیت به او هشدار دهید. به طور مشابه، وقتی باتری دستگاهی کم است و خالی نیست، همچنان می‌توانید فرمانی را اجرا کنید، اما باید به آنها اطلاع دهید که باتری دستگاه کم است.

اگر دستور به دلیل استثنائات ناموفق باشد، وضعیت باید "EXCEPTIONS" باشد و استثناها باید با استفاده از ویژگی StatusReport گزارش شوند.

استثنا غیر مسدود کننده (SUCCESS) در مورد دستگاه مورد نظر

این مثال برای قفل کردن درب است:

قفل درب جلو باتری کم دارد. قفل کردن درب ورودی.

{
  "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"
      }
    }]
  }
}
استثنا غیر مسدود کننده (SUCCESS) در مورد دستگاه دیگری با استفاده از 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 : <دستگاه(ها)> <has/have> <aba full/full bags>. لطفاً <it/them> را خالی کنید و دوباره امتحان کنید.
  • binFull : <دستگاه(ها)> <has/have> <a full bin/full bins>.
  • carbonMonoxideDetected : مونوکسید کربن در <نام خانه> شناسایی شده است.
  • deviceAtExtremeTemperature : <دستگاه(ها)> <is/are> در <دمای شدید/دمای شدید>.
  • deviceJammingDetected : <دستگاه(ها)> <is/are> مسدود شده است.
  • deviceMoved : <دستگاه(ها)> <was/were> منتقل شد.
  • deviceOpen : <دستگاه(ها)> <is/are> باز است.
  • deviceTampered : <دستگاه(ها)> <has/have> دستکاری شده است.
  • deviceUnplugged : <دستگاه(ها)> <is/are> قطع شده است.
  • floor unreachable : <دستگاه(های)> نمی تواند به آن اتاق برسد. لطفاً <it/them> را به طبقه سمت راست ببرید و دوباره امتحان کنید.
  • hardware Failure : <دستگاه(ها)> <has/have> یک مشکل سخت افزاری است.
  • inSoftwareUpdate : <دستگاه(ها)> <is/are> در حال حاضر در یک به روز رسانی نرم افزار است.
  • isBypassed : <دستگاه(ها)> <is/are> در حال حاضر دور زده شده است.
  • باتری کم : <دستگاه(ها)> <has/have> باتری کم.
  • motionDetected : <دستگاه(ها)> <تشخیص(ها)> حرکت.
  • needPads : <دستگاه(ها)> <نیاز(ها)> پدهای جدید.
  • needSoftwareUpdate : <device(s)> <need(s)> یک به روز رسانی نرم افزار.
  • نیاز به آب : <دستگاه(ها)> <نیاز(ها)> آب.
  • networkJammingDetected : اتصال شبکه خانگی به <دستگاه(های)> به درستی کار نمی کند.
  • noIssuesReported : <دستگاه(ها)> هیچ مشکلی را گزارش نکرد.
  • RoomOnDifferentFloors : <دستگاه(ها)> نمی تواند به آن اتاق ها دسترسی پیدا کند زیرا آنها در طبقات مختلف هستند.
  • runCycleFinished : <دستگاه(ها)> <has/have> در حال اجرا به پایان رسید.
  • SecurityRestriction : <دستگاه(ها)> <has/have> یک محدودیت امنیتی.
  • smokeDetected : دود در <نام خانه> شناسایی شده است.
  • tankEmpty : <دستگاه(ها)> <has/have> <مخزن خالی/مخزن خالی>. لطفاً <it/them> را پر کنید و دوباره امتحان کنید.
  • usingCellularBackup : <دستگاه(ها)> <is/are> با استفاده از پشتیبان گیری سلولی.
  • waterLeakDetected : <دستگاه(ها)> <تشخیص(ها)> نشت آب.