שגיאות וחריגים

במסמך הזה מפורטות השגיאות והחריגות שנתמכות באופן רשמי במכשירים לבית חכם. השתמשו בקודי השגיאות והחריגות האלה בתגובה ל-Intent, או בהתראות אם הטמעתם אותן, כדי ש-Google Assistant תתריע למשתמשי הקצה על בעיות שקשורות לפקודה או למצב המכשיר. אם התשובה מכילה פורמט שגוי או errorCode, Google Assistant תציג למשתמשים הודעת שגיאה כללית, לדוגמה: "מצטערים, המכשיר לא זמין כרגע".

שגיאות

צריך להחזיר קוד שגיאה כשבעיה גורמת לבקשת execute או query להיכשל. לדוגמה, אם מנעול של דלת תקוע ואי אפשר לנעול או לפתוח אותו, המשתמש צריך לקבל שגיאה לגבי המצב הזה.

קודי שגיאה יכולים להיות מצורפים ברמת המכשיר או ברמה הגלובלית. לדוגמה, אם למשתמש יש הרבה נורות מספק אחד והן נשלטות על ידי רכזת, כשהמשתמש מבקש לכבות את כל הנורות, הספק עשוי להחזיר שגיאה ברמת המכשיר אם נורה אחת במצב אופליין, או שגיאה ברמה הגלובלית אם כל הרכזת במצב אופליין ואי אפשר לשלוט באף נורה. אם כל המכשירים במצב אופליין, אין הבדל בין שימוש בשגיאות ברמה הגלובלית לבין שימוש בשגיאות ברמת המכשיר.

לסיכום:

  • שגיאה ברמה גלובלית: לכל המכשירים בתגובה יש את אותה שגיאה
  • שגיאה ברמה המקומית: תגובה מעורבת עם מקרים של שגיאה והצלחה

שגיאות ברמה הגלובלית

קטע הקוד הבא ב-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 המשויכת במכשיר.

  • aboveMaximumLightEffectsDuration : משך הזמן הזה ארוך יותר מהמקסימום של שעה אחת. אפשר לנסות שוב.
  • aboveMaximumTimerDuration : אני יכול להגדיר את <device(s)> רק עד <time period>
  • actionNotAvailable : מצטער, נראה שאי אפשר לעשות את זה כרגע. טיפ: כדאי לאמת את מאפייני המכשיר ואת הלוגיקה של המצב הנוכחי במילוי הבקשה.
  • actionUnavailableWhileRunning : <device(s)> <is/are> currently running, so I can't make any changes.
  • 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> already locked.
  • alreadyOff : <device(s)> <is/are> already off.
  • alreadyOn : <device(s)> <is/are> already on.
  • alreadyOpen : <device(s)> <is/are> already open.
  • alreadyPaused : <device(s)> <is/are> already paused.
  • 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 : מצטערים, לא הצלחנו להפעיל את <שם האפליקציה> במכשירים <מכשירים>. טיפ: צריך לוודא שמזהה האפליקציה נכון ושהאפליקציה נתמכת בחומרה של מכשיר היעד.
  • armFailure : לא ניתן היה להפעיל את <המכשירים>.
  • armLevelNeeded : אני לא בטוח לאיזו רמה להגדיר את <device(s)>. אפשר להגיד "Set <device(s)> to <low security>" או "Set <device(s)> to <high security>"
  • authFailure : לא הצלחתי להתחבר אל <device(s)>. כדאי לבדוק באפליקציה ולוודא שההגדרה של <device/devices> הושלמה.
  • bagFull : <device(s)> <has/have> <a full bag/full bags>. Please empty <it/them> and try again.
  • belowMinimumLightEffectsDuration : משך הזמן קצר מהמינימום של 5 דקות. אפשר לנסות שוב.
  • belowMinimumTimerDuration : אני לא יכול להגדיר את <device(s)> לזמן כל כך קצר. אפשר לנסות שוב.
  • binFull : <device(s)> <has/have> <a full bin/full bins>.
  • cancelArmingRestricted : מצטער, לא הצלחתי לבטל את הדריכה של <device(s)>.
  • cancelTooLate : מצטערים, מאוחר מדי לבטל. אפשר להשתמש ב <מכשירים> או באפליקציה במקום זאת.
  • channelSwitchFailed : מצטערים, המעבר לערוץ <שם הערוץ> נכשל. אפשר לנסות שוב מאוחר יותר. טיפ: כדאי לבדוק את שמות הערוצים או המספרים שלהם ואת סטטוס המינוי של המשתמש.
  • chargerIssue : מצטערים, נראה שיש <בעיה במטען/בעיות במטען> של <המכשיר/המכשירים>. טיפ: השותף צריך לבדוק את הטלמטריה ברמת החומרה ואת תקינות הסוללה.
  • commandInsertFailed : לא ניתן לעבד פקודות עבור <device(s)>. טיפ: כדאי לבדוק את ביצועי הכתיבה של מסד הנתונים או את הלוגיקה הפנימית של תור הפקודות.
  • deadBattery : <device(s)> <has/have> <a dead battery/dead batteries>.
  • degreesOutOfRange : המעלות שביקשת לא בטווח של <device(s)>.
  • deviceAlertNeedsAssistance : <device(s)> <has/have> an active alert and <need(s)> your assistance.
  • deviceAtExtremeTemperature : <device(s)> <is/are> at <an extreme temperature/extreme temperatures>.
  • deviceBusy : מצטער, נראה ש <המכשיר/ים> כבר מבצע/ים פעולה כרגע.
  • deviceCharging : מצטער, נראה ש<device(s)> לא יכולים לעשות את זה כי (ha_shared.ItsTheyre size=$item.devices.total_device_count) בטעינה.
  • deviceClogged : מצטער, נראה שיש סתימה ב <מכשיר/ים>.
  • deviceCurrentlyDispensing : <device(s)> is already dispensing something right now.
  • deviceDoorOpen : הדלת של <device(s)> פתוחה. צריך לסגור אותה ולנסות שוב.
  • deviceHandleClosed : הידית סגורה במכשירים הבאים: <device(s)>. צריך לפתוח אותה ולנסות שוב.
  • deviceJammingDetected : <device(s)> <is/are> jammed.
  • deviceLidOpen : המכסה של <device(s)> פתוח. צריך לסגור אותו ולנסות שוב.
  • deviceNeedsRepair : צריך לתקן את <device(s)>. צריך לפנות לסוכנות השירות המקומית.
  • deviceNotDocked : מצטער, נראה ש<המכשיר/ים> לא מחובר/ים לתחנת עגינה. צריך לעגון <it/them> ולנסות שוב.
  • deviceNotFound : <device(s)> <is/are>n't available. כדאי לנסות להגדיר <it/them> שוב. טיפ: חשוב לוודא שה-backend תמיד מסנכרן את Home Graph. צריך להפעיל את requestSync בכל פעם שמוסיפים או מסירים מכשירים.
  • deviceNotMounted : מצטער, נראה שאי אפשר לבצע את הפעולה הזו ב<מכשיר/ים> כי <הוא לא מותקן/הם לא מותקנים>.
  • deviceNotReady : <device(s)> <is/are>n't ready.
  • deviceStuck : <device(s)> <is/are> stuck and needs your help.
  • deviceTampered : מישהו חיבל במכשירים <device(s)>.
  • deviceThermalShutdown : מצטער, נראה שהמכשירים <device(s)> כבו בגלל טמפרטורות קיצוניות.
  • directResponseOnlyUnreachable : <device(s)> <doesn't/don't> support remote control.
  • disarmFailure : לא ניתן היה לנטרל את <device(s)>.
  • discreteOnlyOpenClose : מצטער, אפשר רק לפתוח או לסגור את <device(s)> עד הסוף.
  • dispenseAmountAboveLimit : <device(s)> can't dispense such a large amount.
  • dispenseAmountBelowLimit : <device(s)> can't dispense such a small amount.
  • dispenseAmountRemainingExceeded : <device(s)> doesn't have enough <dispense item> to do that.
  • ‫ dispenseFractionalAmountNotSupported : <device(s)> can't dispense fractions of <dispense item>.
  • ‫ dispenseFractionalUnitNotSupported : <device(s)> doesn't support fractions of that unit for <dispense item>.
  • dispenseUnitNotSupported : <device(s)> doesn't support that unit for <dispense item>.
  • doorClosedTooLong : עבר הרבה זמן מאז שהדלת של <device(s)> נפתחה. צריך לפתוח את הדלת, לוודא שיש משהו בפנים ולנסות שוב.
  • emergencyHeatOn : <device(s)> <is/are> in Emergency Heat Mode, so <it/they>'ll have to be adjusted by hand.
  • faultyBattery : <device(s)> <has/have> <a faulty battery/faulty batteries>.
  • floorUnreachable : <device(s)> can't reach that room. צריך להעביר <it/them> לקומה הנכונה ולנסות שוב.
  • functionNotSupported : למעשה, <device(s)> לא תומך/תומכים בפונקציונליות הזו. טיפ: חשוב לוודא שהתגובה של SYNC משקפת במדויק את היכולות של המכשיר.
  • genericDispenseNotSupported : אני צריך לדעת מה אתה רוצה להוציא. אפשר לנסות שוב עם שם הפריט.
  • hardError : מצטער, הייתה בעיה ואני לא יכול לשלוט במכשיר הבית החכם שלך.
  • hardError : מצטער, משהו השתבש ואני לא יכול לשלוט במכשיר הבית החכם שלך.
  • inAutoMode : <device(s)> <is/are> currently set to auto mode. כדי לשנות את הטמפרטורה, צריך להעביר <אותו/אותם> למצב אחר.
  • inAwayMode : <device(s)> <is/are> currently set to away mode. כדי לשלוט בתרמוסטט, צריך להעביר אותו באופן ידני למצב שהייה בבית באמצעות אפליקציית Nest בטלפון, בטאבלט או במחשב.
  • inDryMode : <device(s)> <is/are> currently set to dry mode. כדי לשנות את הטמפרטורה, צריך להעביר <it/them> למצב אחר.
  • inEcoMode : <device(s)> <is/are> currently set to eco mode. כדי לשנות את הטמפרטורה, צריך להעביר <אותו/אותם> למצב אחר.
  • inFanOnlyMode : <device(s)> <is/are> currently set to fan-only mode. כדי לשנות את הטמפרטורה, צריך להעביר <אותו/אותם> למצב אחר.
  • inHeatOrCool : <device(s)> <is/are>n't in heat/cool mode.
  • inHumidifierMode : <device(s)> <is/are> currently set to humidifier mode. כדי לשנות את הטמפרטורה, צריך להעביר <it/them> למצב אחר.
  • inOffMode : <device(s)> <is/are> currently off. To change the temperature, you'll need to switch <it/them> to a different mode.
  • inPurifierMode : <device(s)> <is/are> currently set to purifier mode. כדי לשנות את הטמפרטורה, צריך להעביר <it/them> למצב אחר.
  • inSleepMode : <device(s)> <is/are> in sleep mode. אפשר לנסות שוב מאוחר יותר.
  • inSoftwareUpdate : <device(s)> <is/are> currently in a software update.
  • lockFailure : לא הצלחתי לנעול את <device(s)>. טיפ: בדקו אם יש תקלות פיזיות, בעיות חשמל או תקלות במנוע של המנעול.
  • lockedState : <device(s)> <is/are> currently locked.
  • lockedToRange : הטמפרטורה הזו מחוץ לטווח הנעול ב <מכשירים>.
  • 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> already set to the minimum speed.
  • monitoringServiceConnectionLost : <device(s)> <has/have> lost <its/their> connection to the monitoring service.
  • needsAttachment : מצטערים, נראה שחסר קובץ מצורף נדרש ב<מכשיר/ים>. צריך להחליף אותו ולנסות שוב.
  • needsBin : מצטערים, נראה שחסר מיכל ב<מכשיר/ים>. צריך להחליף אותו ולנסות שוב.
  • ‫ needsPads : <device(s)> <need(s)> new pads.
  • needsSoftwareUpdate : <device(s)> <need(s)> a software update.
  • ‫ needsWater : <device(s)> <need(s)> water.
  • networkProfileNotRecognized : מצטער, לא זיהיתי את "<network profile>" במכשיר <device(s)>. טיפ: צריך לוודא שמחרוזת שם הפרופיל תואמת לפרופילים הנתמכים בתגובת SYNC.
  • networkSpeedTestInProgress : אני כבר בודק את <המהירות/המהירויות> של <הרשת>.
  • noAvailableApp : מצטער, נראה שהאפליקציה <שם האפליקציה> לא זמינה.
  • noAvailableChannel : מצטער, נראה ששם הערוץ <channel name> לא זמין.
  • noChannelSubscription : מצטערים, כרגע אין לך מינוי לערוץ <שם הערוץ>.
  • noTimerExists : מצטער, נראה שאין טיימרים פעילים ב<מכשיר/ים>.
  • notSupported : מצטער, המצב הזה לא זמין ב<מכשירים>.
  • obstructionDetected : <device(s)> detected an obstruction.
  • offline , deviceOffline : מצטערים, נראה ש<device(s)> לא <is/are> זמינים כרגע.
  • onRequiresMode : צריך לציין איזה מצב רוצים להפעיל.
  • passphraseIncorrect : מצטערים, נראה שקוד האימות שגוי.
  • percentOutOfRange : מצטער, אני לא יכול להגדיר את <device(s)> ל-<percent>.
  • pinIncorrect : (passphraseIncorrect)
  • rainDetected : לא פתחתי את <device(s)> כי זוהה גשם.
  • rangeTooClose : הטמפרטורות קרובות מדי בשביל טווח חימום-קירור ב <מכשירים>. צריך לבחור טמפרטורות עם הפרש גדול יותר.
  • relinkRequired : מצטערים, נראה שיש בעיה בחשבון שלך. צריך להשתמש באפליקציית Google Home או אפליקציית עזרה כדי לקשר מחדש את <המכשירים>. טיפ: צריך לוודא שהשרת מחזיר את הקוד הזה כשטוקן הרענון לא תקין באופן סופי.
  • remoteSetDisabled :
    • פרמטר אופציונלי errorCodeReason
    • currentlyArmed – מצטער, מכיוון שהאבטחה כבר מופעלת, צריך להשתמש ב <מכשירים> או באפליקציה כדי לבצע שינויים.
    • remoteUnlockNotAllowed – מצטער, אני לא יכול לבטל את הנעילה של <המכשירים> מרחוק.
    • remoteControlOff – הפעולה הזו מושבתת כרגע. צריך להפעיל את השליטה מרחוק ב <מכשירים> ולנסות שוב.
    • childSafetyModeActive – הפעולה הזו מושבתת ב <מכשירים> כשמצב בטיחות הילדים מופעל.
  • roomsOnDifferentFloors : <device(s)> can't reach those rooms because they're on different floors.
  • 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> a security restriction.
  • softwareUpdateNotAvailable : מצטער, אין עדכון תוכנה זמין במכשיר <device(s)>.
  • startRequiresTime : כדי לעשות את זה, צריך להגיד לי כמה זמן להפעיל את <device(s)>.
  • stillCoolingDown : <device(s)> <is/are> still cooling down.
  • stillWarmingUp : <device(s)> <is/are> still warming up.
  • streamUnavailable : מצטערים, נראה שהשידור לא זמין כרגע ב <מכשיר/ים>.
  • streamUnplayable : מצטער, כרגע אין לי אפשרות להפעיל את השידור מ<device(s)>. טיפ: מומלץ לאמת את האותות של WebRTC/HLS ולוודא שכתובת ה-URL של השידור תקינה.
  • tankEmpty : <device(s)> <has/have> <an empty tank/empty tanks>. Please fill <it/them> and try again.
  • targetAlreadyReached : מצטער, נראה שזו כבר הטמפרטורה הנוכחית.
  • timerValueOutOfRange : אי אפשר להגדיר את <המכשירים> למשך הזמן הזה.
  • tooManyFailedAttempts : מצטערים, היו יותר מדי ניסיונות כושלים. כדי לבצע את הפעולה הזו, צריך לעבור לאפליקציה במכשיר.
  • transientError : מצטער, משהו השתבש בשליטה על <device(s)>. אפשר לנסות שוב. טיפ: בדרך כלל השגיאות האלה מתבטאות בניתוק החיבור למכשיר או לשירות. וגם אם אי אפשר לפתוח חיבורים חדשים לשרת.
  • turnedOff , deviceTurnedOff : <device(s)> <is/are> off right now.
  • unableToLocateDevice : לא הצלחתי לאתר את <device(s)>. טיפ: כדאי לבדוק את הקישוריות המקומית של המכשיר (Wi-Fi או Bluetooth).
  • unknownFoodPreset : <device(s)> doesn't support that food preset.
  • unlockFailure : לא ניתן היה לבטל את הנעילה של <device(s)>. טיפ: כדאי לבדוק אם יש תקלות בחומרה, אם הסוללה חלשה או אם הוזן קוד אימות לא תקין.
  • unpausableState : לא ניתן להשהות את <device(s)> כרגע.
  • userCancelled : ok
  • valueOutOfRange : אי אפשר להגדיר את <device(s)> לטמפרטורה הזו.

דיווח על מצב אונליין ואופליין

כשהמכשיר במצב אופליין, צריך לדווח על <code{"online": code="" dir="ltr" false}<="" translate="no"> ל-Report State תוך חמש דקות מההתנהגות של המכשיר. לעומת זאת, כשהמכשיר חוזר למצב אונליין, צריך לדווח על <code{"online": code="" dir="ltr" translate="no" true}<=""> ל-Report State תוך חמש דקות מהשינוי בהתנהגות המכשיר. בכל פעם שמכשיר חוזר למצב אונליין, השותף צריך לדווח על כל המצבים הנוכחיים של המכשיר באמצעות ה-API של reportStateAndNotification. בדוגמה הזו, מכשיר מסוג 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 מתאים (למכשיר היעד).

לדוגמה, אם מסנן הסיבים של המייבש מלא, המשתמש עדיין יכול להפעיל את המייבש, אבל יכול להיות שתרצו להזהיר אותו לגבי המצב הזה. באופן דומה, כשהסוללה במכשיר חלשה אבל לא ריקה, עדיין אפשר לבצע פקודה, אבל צריך להודיע למשתמשים שהסוללה במכשיר חלשה.

אם הפקודה נכשלת בגלל חריגות, הסטטוס צריך להיות "EXCEPTIONS", והחריגות צריכות להיות מדווחות באמצעות המאפיין 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"
      }
    }]
  }
}

חריגה לא חוסמת (SUCCESS) לגבי מכשיר אחר שמשתמש ב-StatusReport

דוגמה להפעלת מערכת אבטחה: Ok, arming the security system.‎ החלון הקדמי פתוח.

{
  "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)> <has/have> <a full bag/full bags>. Please empty <it/them> and try again.
  • binFull : <device(s)> <has/have> <a full bin/full bins>.
  • carbonMonoxideDetected : זוהה פחמן חד-חמצני ב <שם הבית>.
  • 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)>.
  • deviceUnplugged : <device(s)> <is/are> unplugged.
  • floorUnreachable : <device(s)> can't reach that room. צריך להעביר <it/them> לקומה הנכונה ולנסות שוב.
  • hardwareFailure : <device(s)> <has/have> a hardware problem.
  • inSoftwareUpdate : <device(s)> <is/are> currently in a software update.
  • isBypassed : <device(s)> <is/are> currently bypassed.
  • lowBattery : <device(s)> <has/have> low battery.
  • motionDetected : <device(s)> <detect(s)> motion.
  • ‫ needsPads : <device(s)> <need(s)> new pads.
  • needsSoftwareUpdate : <device(s)> <need(s)> a software update.
  • ‫ needsWater : <device(s)> <need(s)> water.
  • networkJammingDetected : החיבור לרשת הביתית אל <device(s)> לא פועל כמו שצריך.
  • ‫ noIssuesReported : לא דווח על בעיות ב<מכשירים>.
  • roomsOnDifferentFloors : <device(s)> can't reach those rooms because they're on different floors.
  • runCycleFinished : <device(s)> <has/have> finished running.
  • securityRestriction : <device(s)> <has/have> a security restriction.
  • smokeDetected : זוהה עשן ב <שם הבית>.
  • tankEmpty : <device(s)> <has/have> <an empty tank/empty tanks>. Please fill <it/them> and try again.
  • usingCellularBackup : <device(s)> <is/are> using cellular backup.
  • waterLeakDetected : <device(s)> <detect(s)> a water leak.
</code{"online":></code{"online":>