الأخطاء والاستثناءات

يسرد هذا المستند الأخطاء والاستثناءات المتوافقة رسميًا مع الأجهزة المنزلية الذكية. يُرجى استخدام رموز الأخطاء والاستثناءات المحدّدة في استجابة الغرض، أو في الإشعارات إذا كنت قد نفّذتها، لينبّه "مساعد Google" المستخدمين النهائيين بالمشاكل المتعلقة بأمر معيّن أو حالة الجهاز. إذا كان الردّ يحتوي على تنسيق غير صحيح أو إذا كان الاستجابة errorCode، يعرض "مساعد Google" للمستخدمين رسالة خطأ عامة، مثل "عذرًا، device غير متاحين في الوقت الحالي".

الأخطاء

يجب أن تعرض رمز خطأ عندما تؤدّي مشكلة إلى تعذّر تنفيذ الطلب أو طلب البحث. على سبيل المثال، إذا كان قفل الباب عالقًا ولا يمكن قفله أو فتح قفله، يجب عرض خطأ في هذه الحالة إلى المستخدم.

يمكن إرفاق رموز الخطأ على مستوى الجهاز أو على المستوى العام. على سبيل المثال، إذا كان لدى المستخدم العديد من المصابيح من موفّر خدمة واحد ويتم التحكّم فيها من خلال موزّع، وعندما يطلب المستخدم إطفاء كل المصابيح، قد يعرض مقدّم الخدمة خطأً على مستوى الجهاز في حال عدم اتصال مصباح واحد بالإنترنت، أو عرض خطأ على المستوى العالمي إذا كان المركز بالكامل غير متصل بالإنترنت ولا يمكن التحكّم في المصابيح. إذا كانت جميع الأجهزة غير متصلة بالإنترنت، فلن يكون هناك فرق بين استخدام أخطاء على المستوى العام أو على مستوى الجهاز. عندما يكون أحد الأجهزة غير متصل بالإنترنت، يجب الإبلاغ عن حالة {"online": false} في reportState حتى إذا عرضت رمز الخطأ deviceOffline.

باختصار:

  • خطأ على المستوى العالمي: جميع الأجهزة في الاستجابة بها الخطأ نفسه
  • خطأ على المستوى المحلي: استجابة مختلطة مع خطأ وحالات النجاح

أخطاء على المستوى العام

يوضّح مقتطف 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"
      }
    }
  }
}

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 المرتبطة على الجهاز.

  • فوق الحد الأقصى للتأثيرات التي يمكن استخدامها مع الوقت : تتخطى هذه المدة الحد الأقصى للمدة الذي يبلغ ساعة واحدة. يُرجى إعادة المحاولة.
  • above MaxTimerDuration : يمكنني ضبط <device(s)> فقط لمدة تصل إلى <time period>
  • actionNotAvailable : عذرًا، لا يمكنني إجراء ذلك في الوقت الحالي.
  • actionUnavailableAboutReturn : <device(s)> <is/are> قيد التشغيل حاليًا، لذا لا يمكنني إجراء أي تغييرات.
  • سبق أن تم تسليحه : سبق أن تم تسليح جهاز<device(s)> <is/are>.
  • AtMax : سبق أن تم ضبط<device(s)> <is/are> على درجة الحرارة القصوى.
  • alreadyAtMin : سبق أن تم ضبط<device(s)> <is/are> على الحدّ الأدنى لدرجة الحرارة.
  • مغلق حاليًا : <device(s)> <is/are> مغلق حاليًا.
  • alreadyDisarmed : سبق أن تم إيقاف جهاز<device(s)> <is/are>.
  • سبق أن تم إرساء الجهاز : سبق أن تم إرساء الجهاز<device(s)> <is/are>.
  • بالفعلInState : <device(s)> <is/are> بالفعل في تلك الحالة.
  • قد سبق قفله : سبق أن تم قفل جهاز<device(s)> <is/are>.
  • متوقف حاليًا : سبق أن تم إيقاف<device(s)> <is/are>.
  • : سبق أن تم تفعيل<device(s)> <is/are>.
  • سبق أن تم فتحها : سبق أن تم فتح جهاز<device(s)> <is/are>.
  • متوقفة مؤقتًا : سبق أن تم إيقاف<device(s)> <is/are> مؤقتًا.
  • سبق أن تم البدء : سبق أن بدأ<device(s)> <is/are>.
  • سبق أن تم إيقاف العمل به : سبق أن تم إيقاف<device(s)> <is/are>.
  • سبق وتم فتح قفله : سبق فتح قفل جهاز<device(s)> <is/are>.
  • AmbiguousZoneName : عذرًا، يتعذّر على <device(s)> تحديد المنطقة المقصودة. يُرجى التأكّد من أنّ أسماء المناطق لها أسماء فريدة وإعادة المحاولة.
  • AmountAbovelimit : هذا أكثر مما يمكن أن يتيحه جهاز <device(s)>.
  • appLaunchError : عذرًا، تعذّر تشغيل <app name> على <device(s)>.
  • ArmFailure : تعذّر تفعيل جهاز <device(s)>.
  • ArmLevelمطلوب : لست متأكّدًا من المستوى الذي يجب ضبط <device(s)> عليه. جرِّب قول "ضبط <device(s)> على <low security>" أو "ضبط <device(s)> على <high security>".
  • authFailure : يبدو أنّه لا يمكنني الوصول إلى <device(s)>. يُرجى محاولة التحقّق من التطبيق للتأكّد من أنّ <device/devices> <is/are> معدّ بشكل كامل.
  • PackageFull : <device(s)> <has/have> <a full pack/full package>. يُرجى إفراغ <it/them> ثم إعادة المحاولة.
  • belowLightEffectsDuration : تشكّل هذه المدة أقل من الحدّ الأدنى للمدة وهو 5 دقائق. يُرجى إعادة المحاولة.
  • أدناهminimumTimerDuration : لا يمكنني ضبط <device(s)> لهذه الفترة الزمنية القصيرة. يُرجى إعادة المحاولة.
  • binFull : <device(s)> <has/have> <a full bin/full bins>.
  • cancelArmingRestricted : عذرًا، لم نتمكّن من إلغاء تفعيل جهاز <device(s)>.
  • cancelTooLate : عذرًا، لم يعد بإمكانك إلغاء الاشتراك. يُرجى استخدام <device(s)> أو التطبيق بدلاً من ذلك.
  • channelSwitch بدقة : عذرًا، تعذّر التبديل إلى القناة <channel name>. يُرجى إعادة المحاولة لاحقًا.
  • هناك مشكلة في الشاحن : عذرًا، يبدو أنّ الجهاز <device(s)> <has/have> <a charger issue/charger لتتمكن من العثور على مشاكل>.
  • CommandInsertError : تعذرت معالجة الأوامر لجهاز <device(s)>.
  • بطارية فارغة : <device(s)> <has/have> <a بموجب بطارية فارغة/بطاريات ميتة>.
  • degreeOutOfRange : الدرجات المطلوبة خارج نطاق <device(s)>.
  • deviceAlertNotAssistance : <device(s)> <has/have> تنبيه نشط و <need(s)> مساعدتك.
  • deviceAtExtremeامتثال : <device(s)> <is/are> (درجة حرارة قصوى/درجات حرارة قصوى)>
  • deviceBusy : عذرًا، يبدو أنّ <device(s)> يتم تنفيذ إجراء حاليًا.
  • deviceCharging : عذرًا، يبدو أنّ <device(s)> لا يمكنها تنفيذ هذا الإجراء بسبب شحن (ha_shared.Its theyre size=$item.devices.total_device_count).
  • انسداد الجهاز : عذرًا، يبدو أنّ <device(s)> مسدود.
  • deviceCurrentlyDispensing : يتم الآن توزيع بعض الأجهزة حاليًا على جهاز<device(s)>.
  • deviceDoorOpen : الباب مفتوح على <device(s)>. يُرجى إغلاقه وإعادة المحاولة.
  • deviceHandleClosed : الاسم المعرِّف مغلق على <device(s)>. يُرجى فتحه وإعادة المحاولة.
  • deviceJammingDetected : <device(s)> <is/are> عالق.
  • deviceLidOpen : غطاء الجهاز مفتوح على <device(s)>. يُرجى إغلاقه وإعادة المحاولة.
  • deviceneedRepair : <device(s)> <need(s)> المراد إصلاحها. يُرجى التواصل مع وكيل الخدمة المحلي.
  • deviceNotDocked : يبدو أنّ <device(s)> <isn't/aren't> تم الإرساء. يُرجى إرساء <it/them> وإعادة المحاولة.
  • deviceNotFound : لا يتوفّر جهاز <device(s)> <is/are>. يمكنك محاولة إعادة ضبط <it/them> مرة أخرى.
  • deviceNotMounted : يبدو أنّ جهاز <device(s)> لا يمكنه تنفيذ هذا الإجراء لأنّ <it/they> <is/are>غير مثبَّتة.
  • deviceNotready : <device(s)> <is/are>غير جاهز
  • deviceStuck : <device(s)> <is/are> عالقة ويحتاج إلى مساعدتك.
  • تم التلاعب بالجهاز : تم التلاعب بـ <device(s)> <has/have>.
  • deviceThermalShutdown : عذرًا، يبدو أنّ جهاز <device(s)> تم إيقافه بسبب الارتفاع الشديد في درجات الحرارة.
  • DirectResponse OnlyUnreachable (لا يمكن الوصول إليها) : يتوافق جهاز<device(s)> <doesn't/don't> استخدام جهاز التحكم عن بُعد.
  • disarmFailure : تعذّر إيقاف جهاز <device(s)>.
  • decreteOnlyOpenClose : عذرًا، لا يمكن فتح <device(s)> إلا بشكل كامل أو إغلاقه.
  • dispenseAmountAbovelimit : لا يمكن لجهاز(الأجهزة)> توزيع هذا المقدار الكبير.
  • dispenseAmountBelowlimit : لا يمكن لجهاز(الأجهزة)> توزيع هذا الكمية الصغيرة.
  • dispenseAmountRemainingExceed : لا يحتوي <device(s)> على ما يكفي من <dispense item> لإجراء ذلك.
  • dispenseFractionalAmountNotSupported : لا يمكن لجهاز <device(s)> توزيع كسور من <dispense item>.
  • dispenseFractionalUnitNotSupported : لا يتوافق جهاز <device(s)> مع كسور من هذه الوحدة في <dispense item>.
  • dispenseUnitNotSupported : لا يتوافق جهاز <device(s)> مع هذه الوحدة لـ <dispense item>.
  • homeClosedTooLong : مضى وقت طويل على فتح الباب على <device(s)>. يُرجى فتح الباب والتأكّد من أنّ هناك شيئًا بالداخل ثم إعادة المحاولة.
  • للطوارئHeatOn : <device(s)> <is/are> في "وضع التدفئة الطارئة"، لذا يجب تعديل <it/they> يدويًا.
  • البطارية فيها عيوب : <device(s)> <has/have> <a بطارية خاطئة/بطاريات تتضمّن عيوبًا>.
  • لا يمكن الوصول إلى الطابق : يتعذّر على جهاز <device(s)> الوصول إلى تلك الغرفة. يُرجى نقل <it/them> إلى الطابق الصحيح وإعادة المحاولة.
  • functionNotSupported : في الواقع، <device(s)> <doesn't/don't> يتيح هذه الوظيفة.
  • genericDispenseNotSupported : أحتاج إلى معرفة المحتوى الذي تريد توزيعه. يُرجى إعادة المحاولة باستخدام اسم العنصر.
  • redError : حدث خطأ ولا يمكنني التحكّم في الجهاز المنزلي.
  • redError : حدث خطأ ولا يمكنني التحكّم في الجهاز المنزلي.
  • inAutoMode : تم ضبط الوضع التلقائي لجهاز<device(s)> <is/are> حاليًا. لتغيير درجة الحرارة، يجب تبديل وضع <it/them> إلى وضع آخر.
  • inAwayMode : ضبط جهاز <device(s)> <is/are> حاليًا على الوضع "غير متاح". للتحكّم بالترموستات، يجب تبديله يدويًا إلى وضع "داخل المنزل" باستخدام تطبيق Nest على الهاتف أو الجهاز اللوحي أو الكمبيوتر.
  • inDryMode : ضبط جهاز<device(s)> <is/are> حاليًا على الوضع الجاف. لتغيير درجة الحرارة، يجب تبديل وضع <it/them> إلى وضع آخر.
  • inEcoMode : تم ضبط وضع "درجات حرارة اقتصادية" على جهاز <device(s)> <is/are> حاليًا. لتغيير درجة الحرارة، يجب تبديل وضع <it/them> إلى وضع آخر.
  • inFanOnlyMode : تم ضبط جهاز<device(s)> <is/are> حاليًا على وضع المروحة فقط. لتغيير درجة الحرارة، يجب تبديل وضع <it/them> إلى وضع آخر.
  • inHeatOrCool : <device(s)> <is/are>ليس في وضع التدفئة/التبريد
  • inHumidifierMode : <device(s)> <is/are> مضبوط حاليًا على وضع جهاز ترطيب الهواء. لتغيير درجة الحرارة، يجب تبديل وضع <it/them> إلى وضع آخر.
  • in OffMode : <device(s)> <is/are> غير مفعّل حاليًا. لتغيير درجة الحرارة، يجب تبديل <it/them> إلى وضع آخر.
  • inPurifierMode : تم ضبط جهاز<device(s)> <is/are> حاليًا على وضع تنقية الهواء. لتغيير درجة الحرارة، يجب تبديل وضع <it/them> إلى وضع آخر.
  • inSleepMode : <device(s)> <is/are> في وضع السكون. يُرجى إعادة المحاولة لاحقًا.
  • inSoftwareUpdate : يتم حاليًا تحديث البرنامج من قِبل <device(s)> <is/are>.
  • lockFailure : تعذّر قفل <device(s)>.
  • lockState : <device(s)> <is/are> مقفل حاليًا.
  • lockToRange : درجة الحرارة هذه خارج النطاق المُقفَل على <device(s)>.
  • انخفاض مستوى شحن البطارية : <device(s)> <has/have> منخفض شحن البطارية.
  • maxSettingsreached : سبق أن تم ضبط<device(s)> <is/are> على أعلى خيار.
  • maxSpeedReached : سبق أن تم ضبط<device(s)> <is/are> على الحدّ الأقصى للسرعة.
  • minإعدادReached : سبق أن تم ضبط<device(s)> <is/are> على الخيار الأدنى.
  • minSpeedReached : سبق أن تم ضبط<device(s)> <is/are> على الحدّ الأدنى للسرعة.
  • monitoringServiceConnectionLost : فقدت<device(s)> <has/have> الاتصال <its/their> في خدمة المراقبة.
  • needattachment : عذرًا، يبدو أنّ <device(s)> <is/are> ينقصه مرفق مطلوب. يُرجى استبداله وإعادة المحاولة.
  • needBin : عذرًا، يبدو أنّ <device(s)> <is/are> ينقصه سلة تسوّق. يُرجى استبداله وإعادة المحاولة.
  • needPads : <device(s)> <need(s)> لبادات جديدة
  • بحاجة إلى SoftwareUpdate : <device(s)> <need(s)> تحديث برنامج.
  • needWater : <device(s)> <need(s)> الماء.
  • networkProfileNotRecognized : عذرًا، لا يمكنني التعرّف على "<network profile>" على <device(s)>.
  • networkSpeedTestInProgress : أنا حاليًا أختبر <network> <speed/speed/speeds>.
  • noAvailableApp : عذرًا، يبدو أنّ تطبيق <app name> غير متوفّر.
  • noAvailableChannel : عذرًا، يبدو أنّ القناة <channel name> غير متوفّرة.
  • noChannelSUBSCRIPTION : عذرًا، ليس لديك اشتراك في قناة <channel name> في الوقت الحالي.
  • noTimerExists : عذرًا، يبدو أنّه ما مِن موقّتات مضبوطة على <device(s)>.
  • غير متوافق : عذرًا، هذا الوضع غير متاح لأجهزة <device(s)>.
  • تم رصد عائق : تمّ رصد عائق من قِبل<device(s)>.
  • بلا اتصال بالإنترنت , deviceoffline : عذرًا، يبدو أنّ <device(s)> <is/are>غير متوفّر في الوقت الحالي.
  • onRequiresMode : يُرجى تحديد الوضع الذي تريد تفعيله.
  • عبارة المرور غير صحيحة : عذرًا، يبدو أنّ رقم التعريف الشخصي غير صحيح.
  • PercentOutOfRange : عذرًا، لا يمكنني ضبط <device(s)> على <percent>.
  • رقم التعريف الشخصي غير صحيح : (عبارة المرور غير صحيحة)
  • تم رصد تساقط الأمطار : لم أفتح <الأجهزة)> لأنّه تم رصد تساقط الأمطار.
  • rangeTooClose : هذه النطاقات قريبة جدًا من نطاق التدفئة-التبريد لـ <device(s)>. يُرجى اختيار درجات حرارة بعيدة عن بعضها البعض.
  • relinkrequired : عذرًا، يبدو أنه حدث خطأ في حسابك. يُرجى استخدام Google Home أو تطبيق "مساعد Google" لإعادة ربط <device(s)>.
  • عن بُعدSetمُفعَّلd :
    • المعلمة الاختيارية errorCodeReason
    • currentlyArmed - عذرًا، بما أنّه سبق تفعيل جهاز الأمان، عليك استخدام <device(s)> أو التطبيق لإجراء أي تغييرات.
    • remoteUnlockNotAllowed - عذرًا، لا يمكنني فتح قفل <device(s)> عن بُعد.
    • remoteControlOff - هذا الإجراء غير مفعَّل حاليًا. يُرجى تفعيل وحدة التحكّم عن بُعد على <device(s)> وإعادة المحاولة.
    • childSafetyModeActive: هذا الإجراء غير مفعّل على <device(s)> عندما يكون وضع أمان الأطفال مفعّلاً.
  • RoomOnمختلفFloors : يتعذّر على <device(s)> الوصول إلى تلك الغرف لأنّها تقع في طوابق مختلفة.
  • Safetyإطفاء : <device(s)> <is/are> في "وضع الإيقاف المؤقت"، وبالتالي يجب ضبطها يدويًا
  • ScennotBeApplied : عذرًا، لا يمكن تطبيق <device(s)>.
  • SecurityRestriction : يخضع جهاز<device(s)> <has/have> لقيود أمان.
  • SoftwareUpdateNotAvailable : عذرًا، لا يتوفّر أي تحديث للبرامج على <device(s)>.
  • startRequiresTime : لإجراء ذلك، يجب إعلامنا بالمدة المطلوبة لتشغيل <device(s)>.
  • noneCoolingDown : <device(s)> <is/are> لا تزال تبرد.
  • noneWarmingUp : <device(s)> <is/are> لا تزال قيد التحضير.
  • StreamUnavailable : عذرًا، يبدو أنّ مجموعة البث غير متاحة حاليًا على <device(s)>.
  • StreamUnplayable : عذرًا، لا يمكنني تشغيل البث من <device(s)> في الوقت الحالي.
  • tankإفراغ : <device(s)> <has/have> <an tank/blank tans>. يُرجى ملئ <it/them> والمحاولة مرة أخرى.
  • targetAlreadyReached : عذرًا، يبدو أنّ درجة الحرارة هذه وصلت إلى درجة الحرارة الحالية.
  • timeValueOutOfRange : لا يمكن ضبط <device(s)> لهذه الفترة الزمنية.
  • needManyFixإخفاقs : عذرًا، لقد أجريت عددًا كبيرًا جدًا من المحاولات الفاشلة. يُرجى الانتقال إلى تطبيق الجهاز لإكمال هذا الإجراء.
  • transientError : عذرًا، حدث خطأ أثناء التحكّم في <device(s)>. يُرجى إعادة المحاولة.
  • تم الإيقاف ، deviceTurned Off : تم إيقاف<device(s)> <is/are> الآن.
  • notToLocateDevice : لم أتمكن من تحديد موقع <device(s)>.
  • UnknownFoodPreset : لا يتوافق الجهاز <device(s)> مع هذا الإعداد المسبَق للطعام.
  • openFailure : تعذّر فتح قفل <device(s)>.
  • unpausableState : لا يمكن إيقاف <device(s)> مؤقتًا الآن.
  • تم الإلغاء من قِبل المستخدم : حسنًا
  • valueOutOfRange : لا يمكن ضبط <device(s)> على درجة الحرارة هذه.

الاستثناءات

يجب عرض استثناء عندما تكون هناك مشكلة أو تنبيه مرتبط بأمر. قد ينجح الأمر أو يفشل.

إذا كان الأمر ناجحًا (الحالة = "SUCCESS")، يمكنك الإبلاغ عن الاستثناءات باستخدام السمة StatusReport (للأجهزة غير الهدف)، أو من خلال عرض خطأ exceptionCode مناسب (للجهاز المستهدف).

على سبيل المثال، إذا كانت شاشة الوبر في المجفف ممتلئة، فلا يزال بإمكان المستخدم تشغيل المجفف، ولكن قد ترغب في تحذيره بشأن هذه الحالة. وبالمثل، عندما يكون مستوى شحن بطارية الجهاز منخفضًا وغير فارغ، سيظل بإمكانك تنفيذ أمر ولكن عليك إبلاغ المستخدم بأنّ بطارية الجهاز منخفضة.

إذا تعذّر الأمر بسبب الاستثناءات، يجب أن تكون الحالة "الاستثناءات"، ويجب الإبلاغ عن الاستثناءات باستخدام السمة 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 المرتبطة على الجهاز.

  • PackageFull : <device(s)> <has/have> <a full pack/full package>. يُرجى إفراغ <it/them> ثم إعادة المحاولة.
  • binFull : <device(s)> <has/have> <a full bin/full bins>.
  • تم رصد أول أكسيد الكربون : تم رصد غاز أول أكسيد الكربون في <house name>.
  • deviceAtExtremeامتثال : <device(s)> <is/are> (درجة حرارة قصوى/درجات حرارة قصوى)>
  • deviceJammingDetected : <device(s)> <is/are> عالق.
  • تم نقل الجهاز : تم نقل جهاز<device(s)> <has/were>.
  • deviceOpen : <device(s)> <is/are> open.
  • تم التلاعب بالجهاز : تم التلاعب بـ <device(s)> <has/have>.
  • deviceUnplugged : <device(s)> <is/are> غير موصول بمصدر طاقة
  • لا يمكن الوصول إلى الطابق : يتعذّر على جهاز <device(s)> الوصول إلى تلك الغرفة. يُرجى نقل <it/them> إلى الطابق الصحيح وإعادة المحاولة.
  • deviceFailure : <device(s)> <has/have> مشكلة في الجهاز.
  • inSoftwareUpdate : يتم حاليًا تحديث البرنامج من قِبل <device(s)> <is/are>.
  • تم تجاوزه : تم تجاوز<device(s)> <is/are> حاليًا.
  • انخفاض مستوى شحن البطارية : <device(s)> <has/have> منخفض شحن البطارية.
  • تم رصد الحركة : <device(s)> <detect(s)> الحركة.
  • needPads : <device(s)> <need(s)> لبادات جديدة
  • بحاجة إلى SoftwareUpdate : <device(s)> <need(s)> تحديث برنامج.
  • needWater : <device(s)> <need(s)> الماء.
  • networkJammingDetected : إنّ اتصال الشبكة المنزلية بجهاز <device(s)> لا يعمل بشكل صحيح.
  • noISSUEsReported : لم يتم الإبلاغ عن أي مشاكل من قِبل<device(s)>.
  • RoomOnمختلفFloors : يتعذّر على <device(s)> الوصول إلى تلك الغرف لأنّها تقع في طوابق مختلفة.
  • runCycleFinished : تم تشغيل<device(s)> <has/have>.
  • SecurityRestriction : يخضع جهاز<device(s)> <has/have> لقيود أمان.
  • تم رصد دخان : تم رصد دخان في <house name>.
  • tankإفراغ : <device(s)> <has/have> <an tank/blank tans>. يُرجى ملئ <it/them> والمحاولة مرة أخرى.
  • usecellالاحتفاظ بنسخة احتياطية : <device(s)> <is/are> تستخدم ميزة الاحتفاظ بنسخة احتياطية من بيانات شبكة الجوّال
  • تم رصد تسرّب للمياه : <device(s)> <detect(s)> ) هناك تسرُّب للمياه.