مرحبًا بك في "مركز مطوّري برامج Google Home"، وجهتك الجديدة لتعلّم كيفية تطوير إجراءات منزلية ذكية. ملاحظة: ستواصل إنشاء الإجراءات في وحدة تحكم الإجراءات.

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

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

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

الأخطاء

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

يمكن إرفاق رموز الخطأ على مستوى الجهاز أو على مستوى عام. على سبيل المثال، إذا كان المستخدم يمتلك العديد من المصابيح من موفر واحد وكان يتم التحكم فيها من خلال موزع، عندما يطلب المستخدم إيقاف كل المصابيح، قد يعرض الموفر خطأ على مستوى الجهاز إذا كان هناك مصباح واحد غير متصل بالإنترنت، أو خطأ على مستوى العالم إذا كان مركزه بالكامل غير متصل بالإنترنت ولا يمكن التحكم في مصابيحه. إذا كانت جميع الأجهزة غير متصلة بالإنترنت، فلا يوجد فرق بين استخدام الأخطاء على مستوى العالم أو الأخطاء على مستوى الجهاز. عندما يكون الجهاز غير متصل بالإنترنت، يجب الإبلاغ عن حالة {"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الحد الأقصى لـ LightLightEffectsDuration : هذه أطول من الحد الأقصى لمدة ساعة واحدة. يُرجى إعادة المحاولة.
  • aboveالحد الأقصى للمدة : يُمكنني ضبط <device(s)> فقط على مدة تصل إلى <time period>
  • actionNotavailable : عذرًا، لا يمكنني إجراء ذلك الآن.
  • actionUnavailableأثناء التشغيل : <device/s> قيد التشغيل حاليًا، لذا لا يمكنني إجراء أي تغييرات.
  • مُزوّد بالأسلحة : <device/s> <is/are> مُزوّدة بالسلاح بالفعل.
  • بالضبط على الحد الأقصى : تم ضبط الحد الأقصى لدرجة الحرارة على <device/s> <is/are>.
  • من قبل الحد الأدنى : <device/s> مضبوطة من قبل على الحد الأدنى لدرجة الحرارة.
  • سبق أن تم إغلاقه : <device/s> <is/are> مغلق من قبل.
  • تم إيقاف جهاز الإنذار بالفعل : <device/>> تم إيقاف جهاز بالفعل.
  • تم الإرساء بالفعل: <device/s> <is/are> سبق إرساؤها.
  • alreadyInState : <device/s> <is/are> in that state.
  • سبق "تم القفل" : <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/>> <is/are> سبق فتح قفلها.
  • غامضةZoneName : لا يمكن لـ [device(s)> تحديد المنطقة التي تقصدها. يُرجى التأكّد من أنّ أسماء المناطق مختلفة وإعادة المحاولة.
  • amountAboveLimit : هذا العدد يفوق ما يمكن أن تتيحه <device(s)>.
  • appLaunchFailed : عذرًا، تعذّر إطلاق <app name> على <device(s)>.
  • ArmFailure : تعذّر تفعيل <device(s)>.
  • ArmLevel Needed : لست متأكدًا من المستوى الذي يجب ضبط <device(s)> عليه. يمكنك قول "ضبط <device(الأجهزة)> على <low security>" أو "ضبط <device(الأجهزة)> على <high security>"
  • authFailure : يبدو أنني لا يمكنني الوصول إلى الأجهزة <device>. حاوِل التحقّق من التطبيق للتأكّد من أنّه تم إعداد <device/devices> <is/are> بالكامل.
  • حقيبة كاملة : <device/s>> <has/have> <a full bag/fullpack>. يُرجى إفراغ <it/them> وإعادة المحاولة.
  • belowMinimumLightEffectsDuration : هذه أقل من الحد الأدنى لمدة 5 دقائق. يُرجى إعادة المحاولة.
  • belowMinimumTimerDuration : لا يمكنني ضبط <device(s)> لفترة قصيرة من الوقت. يُرجى إعادة المحاولة.
  • binFull : <device/s>> <has/have> <a bin/full bins>.
  • cancelArmingRestrict : عذرًا، لم أتمكن من إلغاء تفعيل جهاز <الأجهزة>.
  • cancelTooLate : عذرًا، فات أوان الإلغاء. يُرجى استخدام الجهاز أو الأجهزة بدلاً من ذلك.
  • channelSwitchFailed : عذرًا، تعذّر التبديل إلى القناة <channel name>. يُرجى إعادة المحاولة لاحقًا.
  • المشاكل في الشاحن : عذرًا، يبدو أنّه قد حدثت مشاكل في <الأجهزة/الأجهزة>> مشكلة/مشكلة في الشاحن>.
  • commandInsertFailed : تعذّرت معالجة الطلبات الخاصة بالجهاز(الأجهزة)>.
  • البطارية فارغة : <device(s)> <has/have> <a البطارية الميتة/البطاريات الميتة>.
  • درجات من خارج النطاق : الدرجات المطلوبة خارج النطاق <device(s)>.
  • deviceAlert NeedsAssistance : <device(s)> <has/have> a active Alert and <need(s)> your help.
  • deviceBusy : عذرًا، يبدو أنّ الجهاز(الأجهزة)> يجري إجراءً حاليًا.
  • deviceالشحن : عذرًا، يبدو أنّه لا يمكن تنفيذ ذلك على الأجهزة التي تعمل بالشحن (ha_shared.Its.res size=$item.devices.total_device_count).
  • انسداد الجهاز : عذرًا، يبدو أن <device(s)> مسدودة.
  • device حاليًا جارٍ التوزيع : <device(s)> يجري توزيع شيء من قبل.
  • deviceDoorOpen : الباب مفتوح على <device(s)>. يُرجى إغلاقه وإعادة المحاولة.
  • deviceHandleClosed : تم إغلاق اسم الحساب على <device(s)>. يُرجى فتحه وإعادة المحاولة.
  • deviceJammingDetected : <device(s)> <is/are> jamd.
  • deviceLidOpen : الغطاء مفتوح على <device(s)>. يُرجى إغلاقه وإعادة المحاولة.
  • device needsRepair : <device(s)> <need(s)> المراد إصلاحها. يُرجى التواصل مع وكيل الخدمة المحلي.
  • deviceNotDocked : عذرًا، يبدو أنّه تم إرساء <device(s)> <isn'//aren't>. يُرجى إرساء هذه الرسالة وإعادة المحاولة.
  • deviceNotFound : <device/s>> غير متوفّرة. قد تحتاج إلى محاولة إعداده مرة أخرى.
  • deviceNotMounted : عذرًا، يبدو أن <device(s)> لا يمكنها إجراء ذلك نظرًا لأنه لا يتم تحميلها.<it/are>.
  • deviceNotReady : <device/s>> غير جاهزة
  • جهاز عالق : <device/s> <is/are> عالقة وتحتاج إلى مساعدتك.
  • تم التلاعب بالجهاز : <device/s> تم العبث بها.
  • deviceThermalShutdown : عذرًا، يبدو أنّ الجهاز <device(الأجهزة)> متوقف عن التشغيل بسبب الارتفاع الشديد في درجات الحرارة.
  • directResponseOnlyUnreachable : <device(s)> <doesn't/don't> re Remote control.
  • إيقاف جهاز الإنذار : تعذّر إيقاف جهاز /جهاز>.
  • 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>.
  • تعذّر فتح الباب أمام الكاميرا : لقد مرّ وقت طويل على فتح الباب على <device(s)>. يُرجى فتح الباب والتأكّد من وجود شيء بداخله وإعادة المحاولة.
  • حالة الطوارئ : <device(s)> <is/are> في وضع "التدفئة الطارئة"، ولذلك يجب ضبط الجهاز يدويًا.
  • خلل في البطارية : <device(s)> <has/have> <a يعود إلى بطارية معيّنة/بطاريات خاطئة.>
  • لا يمكن الوصول إلى الطابق : يتعذّر على <device(s)> الوصول إلى تلك الغرفة. يُرجى نقله إلى الطابق الصحيح وإعادة المحاولة.
  • functionNotSupported : في الواقع، الأجهزة > لا/لا> تدعم هذه الوظيفة.
  • genericDispenseNotSupported : أريد معرفة ما تريد توزيعه. يُرجى إعادة المحاولة باستخدام اسم العنصر.
  • HardError : عذرًا، حدث خطأ ولا يمكنني التحكّم في جهازك المنزلي.
  • HardError : عذرًا، حدث خطأ ولا يمكنني التحكّم في جهازك المنزلي.
  • 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 : <الأجهزة/>> معيّنة حاليًا على وضع المروحة فقط. لِتَغْيِيرْ دَرَجِةِ الْحَرَارَة، لَازِمْ تَغْيِيرْ وَضْعْ <it/them> لِوَضْعْ تَانِي.
  • inHeatOrCool : <device/s>> ليست في وضع التدفئة/التبريد.
  • inHumidifierMode : <device/s> <is/are> معيَّنة حاليًا على وضع جهاز ترطيب الهواء. لِتَغْيِيرْ دَرَجِةِ الْحَرَارَة، لَازِمْ تَغْيِيرْ وَضْعْ <it/them> لِوَضْعْ تَانِي.
  • inOffMode : <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/has> منخفضة.
  • maxSettingreached : <الأجهزة/>> تم ضبطها من قبل على أعلى إعداد
  • maxSpeedreached : <device/s> <is/are> set up to theالحد الأقصى للسرعة.
  • minSettingreached : <device/s> <is/are> سبق ضبطها على الإعداد الأدنى.
  • minSpeedREACH : <device/s> <is/are> set up to theالحد الأدنى للسرعة.
  • needAttachment : عذرًا، يبدو أنّ أحد الأجهزة المطلوبة <is/are> لا يتضمّن مرفقًا مطلوبًا. يُرجى استبدالها وإعادة المحاولة.
  • needBin : عذرًا، يبدو أن هناك حاوية <device(s)> <is/are> تنقصها. يُرجى استبدالها وإعادة المحاولة.
  • needPads : <device(s)> <need(s)> new pads.
  • needSoftwareUpdate : <device(s)> <need(s)> تحديث للبرنامج.
  • needWater : <device(s)> <need(s)> Water.
  • networkProfileNotRecognized : عذرًا، لا يمكنني التعرّف على "<network profile>" على الجهاز <device(s)>.
  • networkSpeedTestInProgress : أنا أختبر حاليًا <network> <speed/speeds>>.
  • noavailableApp : عذرًا، يبدو أنّ <app name> غير متوفّر.
  • noavailableChannel : عذرًا، يبدو أنّ القناة <channel name> غير متوفّرة.
  • noChannelSUBSCRIPTION : عذرًا، أنت لست مشتركًا في القناة <channel name> في الوقت الحالي.
  • noTimerExists : عذرًا، يبدو أنه لم يتم ضبط أي موقّتات على <device(s)>.
  • notSupported : عذرًا، هذا الوضع غير متاح لـ <device(s)>.
  • تم اكتشاف عائق : <device(s)> اكتشف عائقًا.
  • بلا اتصال بالإنترنت ، الجهاز غير متصل بالإنترنت : عذرًا، يبدو أن <device(s)> <is/are>ليس متاحًا الآن.
  • onRequiresMode : يُرجى تحديد الوضع الذي تريد تفعيله.
  • عبارة المرور غير صحيحة : عذرًا، يبدو أن رقم التعريف الشخصي هذا غير صحيح.
  • percentOutOfRange : عذرًا، لا يمكنني ضبط <device(s)> على <percent>.
  • رقم تعريفك غير صحيح : (passphraseعبارة غير صحيحة)
  • تم رصد أمطار : لم أفتح الجهاز / الأجهزة > لأنّه تم رصد تساقط أمطار.
  • domainTooClose : تُعدّ هذه النطاقات قريبة جدًا من نطاق التدفئة - التبريد في أجهزة <device>. يُرجى اختيار درجات الحرارة البعيدة عن بعضها.
  • رابط مطلوب : عذرًا، يبدو أنه حدث خطأ ما في حسابك. أَرْجُو اسْتِخْدَامْ تَطْبِيقْ Google Home أَوْ تَطْبِيقْ مُسَاعِدْ Google لِإِعَادِةْ رَبْطْ <device(s)>.
  • RemoteSetDisabled :
    • المعلمة الاختيارية errorCodeReason
    • currentlyArmed - عذرًا، نظرًا لأن ميزة الأمان قيد التفعيل بالفعل، يلزمك استخدام الجهاز / الأجهزة > أو التطبيق لإجراء أي تغييرات.
    • remoteUnlockNotAllowed - عذرًا، لا يمكنني فتح قفل <device(الأجهزة) عن بُعد.
    • remoteControlOff - هذا الإجراء غير مفعّل حاليًا. يُرجى تفعيل التحكم عن بُعد على <device(s)> وإعادة المحاولة.
    • childSafetyModeActive - تم إيقاف هذا الإجراء للجهاز(الأجهزة) > أثناء تفعيل وضع سلامة الطفل.
  • الغرف في مصابيح مختلفة : يتعذّر على <device(s)> الوصول إلى تلك الغرف لأنها في طوابق مختلفة.
  • eventcannotBeApplied : لا يمكن استخدام الأجهزة.>
  • securityRestriction : <device(s)> <has/have> a security restricted.
  • softwareUpdateNotavailable : لا يتوفّر تحديث برامج على <device(s)>.
  • startRequiresTime : لإجراء ذلك، عليك تحديد المدة التي تريد فيها تشغيل الجهاز أو الأجهزة>.
  • stillCoolingDown : <device/s> <is/are> لا تزال في مرحلة التبريد.
  • لا تزال درجة الحرارة الدافئة : <device/s> لا تزال في مرحلة التحضير.
  • StreamUnavailable : عذرًا، يبدو أن البث غير متوفّر حاليًا من <device(s)>.
  • StreamUnplayable : عذرًا، لا يمكنني تشغيل البثّ حاليًا من جهاز(أجهزة)>.
  • tankEmpty : <device(s)> <has/have> <an empty خزان/خزانات فارغة>. يُرجى ملء <it/them> وإعادة المحاولة.
  • targetتم الوصول إليه : عذرًا، يبدو أن هذه هي درجة الحرارة الحالية.
  • الموقّتValueValueOfOfRange : لا يمكن ضبط <device(s)> على هذه المدة.
  • toomanyFailedATTEMPTs : عذرًا، أخفقت محاولات كثيرة جدًا. يُرجى الانتقال إلى تطبيق الجهاز لإكمال هذا الإجراء.
  • خطأ عابر : حدث خطأ أثناء التحكّم في الجهاز(الأجهزة)>. يُرجى إعادة المحاولة.
  • إيقاف تشغيل ، إيقاف الجهاز : <device(s)> <is/are> إيقاف التشغيل الآن.
  • unableToLocateDevice : لم أتمكن من تحديد موقع <device(s)>.
  • UnknownFoodPreset : لا تتوافق أجهزة <device(s)> مع الإعداد المسبق للطعام.
  • lockFailure : تعذّر فتح قفل <device(s)>.
  • unusausableState : <device(s)> لا يمكن إيقافها مؤقتًا الآن.
  • تم إلغاء المستخدم : حسنًا
  • valueOutOfRange : لا يمكن ضبط <device(s)> على درجة الحرارة هذه.

الاستثناءات

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

إذا كان الأمر ناجحًا (الحالة = "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) المرتبطة على الجهاز.

  • حقيبة كاملة : <device/s>> <has/have> <a full bag/fullpack>. يُرجى إفراغ <it/them> وإعادة المحاولة.
  • binFull : <device/s>> <has/have> <a bin/full bins>.
  • تم رصد أول أكسيد الكربون : تم رصد أول أكسيد الكربون في <house name>.
  • deviceJammingDetected : <device(s)> <is/are> jamd.
  • تم نقل الجهاز : <device/s>> تم نقل الجهاز.
  • deviceOpen : <device/s>> <is/are> مفتوحة.
  • تم التلاعب بالجهاز : <device/s> تم العبث بها.
  • الجهاز Unplugged : [device(s)> <is/are> غير متصل.
  • لا يمكن الوصول إلى الطابق : يتعذّر على <device(s)> الوصول إلى تلك الغرفة. يُرجى نقله إلى الطابق الصحيح وإعادة المحاولة.
  • مشكلة في الجهاز : <الأجهزة/الأجهزة>> مشكلة في الجهاز.
  • inSoftwareUpdate : <device/s> <is/are> في تحديث برنامج حاليًا.
  • تم تجاوز : <device/s> تم تجاوز <is/are> حاليًا.
  • مستوى شحن البطارية منخفض : طاقة بطارية <device/has> منخفضة.
  • تم رصد الحركة : <device(s)> <detect(s)> حركة
  • needPads : <device(s)> <need(s)> new pads.
  • needSoftwareUpdate : <device(s)> <need(s)> تحديث للبرنامج.
  • needWater : <device(s)> <need(s)> Water.
  • networkJammingDetected : لا يعمل اتصال الشبكة المنزلية بالجهاز [devices]> على نحو سليم.
  • noIssuesReported : <device(s)> أبلغت عن عدم وجود مشاكل.
  • الغرف في مصابيح مختلفة : يتعذّر على <device(s)> الوصول إلى تلك الغرف لأنها في طوابق مختلفة.
  • runCycleFinish : <device/has> انتهى التشغيل.
  • securityRestriction : <device(s)> <has/have> a security restricted.
  • تم رصد دخان : تم رصد دخان في <house name>.
  • tankEmpty : <device(s)> <has/have> <an empty خزان/خزانات فارغة>. يُرجى ملء <it/them> وإعادة المحاولة.
  • باستخدام شبكة الجوّال : <device/s> <is/are> استخدام شبكة جوّال احتياطية.
  • WaterLeakDetected : <device(s)> <detect(s)> تسرب المياه.