במאמר הזה מפורטות השגיאות והחריגים שנתמכים באופן רשמי במכשירי בית חכם. מומלץ להשתמש בקודי השגיאות והחריגים האלה בתגובה של הכוונה או בהתראות, אם הטמעתם אותן, כדי ש-Google Assistant תתריע למשתמשי הקצה על בעיות שקשורות לפקודה או למצב מכשיר מסוימים. אם התשובה מכילה עיצוב שגוי או errorCode, Google Assistant תציג למשתמשים הודעת שגיאה כללית, למשל: "מצטער, המכשיר לא זמין כרגע".
שגיאות
צריך להחזיר קוד שגיאה כשבעיה גורמת לכך שבקשת ביצוע או בקשת שאילתה נכשלות. לדוגמה, אם מנעול דלת נתקע ואי אפשר לנעול או לפתוח אותו, צריך להחזיר למשתמש שגיאה לגבי המצב הזה.
אפשר לצרף קודי שגיאה ברמת המכשיר או ברמה הגלובלית. לדוגמה, אם למשתמש יש הרבה נורות מספק אחד והן נשלטות על ידי רכזת, כשהמשתמש מבקש לכבות את כל הנורות, הספק עשוי להחזיר שגיאה ברמת המכשיר אם נורה אחת במצב אופליין, או שגיאה ברמה הגלובלית אם הרכזת כולה במצב אופליין ואי אפשר לשלוט באף נורה. אם כל המכשירים במצב אופליין, אין הבדל בין שימוש בשגיאות ברמה הגלובלית לבין שימוש בשגיאות ברמת המכשיר.
לסיכום:
- שגיאה ברמה הגלובלית: לכל המכשירים בתשובה יש את אותה שגיאה
- שגיאה ברמה המקומית: תגובה מעורבת עם מקרים של שגיאה והצלחה
שגיאות ברמה הגלובלית
קטע ה-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)> פועל/ים כרגע, ולכן אין לי אפשרות לבצע שינויים.
- alreadyArmed : <device(s)> <is/are> already armed.
- alreadyAtMax : המכשיר/ים <is/are> כבר מוגדר/ים לטמפרטורה המקסימלית.
- alreadyAtMin : המכשיר או המכשירים כבר מוגדרים לטמפרטורה המינימלית.
- alreadyClosed : המכשיר/ים <is/are> כבר סגור/ים.
- alreadyDisarmed : <device(s)> <is/are> already disarmed.
- alreadyDocked : <device(s)> <is/are> already docked.
- alreadyInState : <device(s)> <is/are> already in that state.
- alreadyLocked : המכשיר/ים <is/are> כבר נעול/ים.
- alreadyOff : <device(s)> <is/are> already off.
- alreadyOn : המכשיר/ים <device(s)> כבר פועל/ים.
- alreadyOpen : המכשיר/ים <device(s)> כבר פתוח/ים.
- alreadyPaused : המכשיר/ים <is/are> כבר בהשהיה.
- alreadyStarted : המכשיר/ים <is/are> כבר הופעל/ו.
- alreadyStopped : המכשיר/ים <is/are> כבר הופסק/ו.
- alreadyUnlocked : <device(s)> <is/are> already unlocked.
- ambiguousZoneName : מצטערים, <device(s)> לא יכול לזהות לאיזה אזור התכוונת. צריך לוודא שלאזורים יש שמות ייחודיים ולנסות שוב.
- amountAboveLimit : הסכום הזה גבוה מהסכום שאפשר להוסיף ל<device(s)>.
- appLaunchFailed : מצטערים, הפעלת <שם האפליקציה> ב <מכשיר(ים)> נכשלה. טיפ: כדאי לוודא את מזהה האפליקציה ושהאפליקציה נתמכת בחומרה של מכשיר היעד.
- armFailure : לא ניתן להפעיל את <device(s)>.
- armLevelNeeded : I'm not sure which level to set <device(s)> to. אפשר לומר "Set <device(s)> to <low security>" או "Set <device(s)> to <high security>"
- authFailure : לא הצלחתי ליצור קשר עם <device(s)>. כדאי לבדוק באפליקציה ש<device/devices> <is/are> מוגדרים באופן מלא.
- bagFull : למכשיר/ים <device(s)> יש <a full bag/full bags>. צריך לרוקן <it/them> ולנסות שוב.
- belowMinimumLightEffectsDuration : המשך קצר יותר ממשך המינימום של 5 דקות. אפשר לנסות שוב.
- belowMinimumTimerDuration : I can't set <device(s)> for such a short time. אפשר לנסות שוב.
- binFull : <device(s)> <has/have> <a full bin/full bins>.
- cancelArmingRestricted : סליחה, לא הצלחתי לבטל את הפעלת האזעקה ב<device(s)>.
- cancelTooLate : Sorry, it's too late to cancel. במקומה, אפשר להשתמש ב-<device(s)> או באפליקציה.
- channelSwitchFailed : מצטערים, המעבר לערוץ <channel name> נכשל. אפשר לנסות שוב מאוחר יותר. כדאי לדעת: אפשר לבדוק את השמות או המספרים של הערוצים ואת סטטוס המינוי של המשתמש.
- chargerIssue : מצטערים, נראה שלמכשיר <device(s)> יש <a charger issue/charger issues>. הערה: השותף צריך לבדוק את הטלמטריה ברמת החומרה ואת תקינות הסוללה.
- commandInsertFailed : לא ניתן לעבד פקודות עבור <device(s)>. טיפ: כדאי לבדוק את ביצועי הכתיבה של מסד הנתונים או את הלוגיקה של תור הפקודות הפנימי.
- deadBattery : <device(s)> <has/have> <a dead battery/dead batteries>.
- degreesOutOfRange : המעלות שצוינו חורגות מהטווח של <device(s)>.
- deviceAlertNeedsAssistance : במכשיר/ים <device(s)> יש התראה פעילה ו<need(s)> את העזרה שלך.
- deviceAtExtremeTemperature : <device(s)> <is/are> at <an extreme temperature/extreme temperatures>.
- deviceBusy : מצטער, נראה שהמכשיר <device(s)> כבר מבצע פעולה כלשהי כרגע.
- deviceCharging : מצטער, נראה שמכשירי <device(s)> לא יכולים לעשות את זה כי (ha_shared.ItsTheyre size=$item.devices.total_device_count) בטעינה.
- deviceClogged : מצטערים, נראה שהמכשיר <device(s)> עמוס מדי.
- deviceCurrentlyDispensing : המכשיר/ים<device(s)> כבר מפיק/ים משהו כרגע.
- deviceDoorOpen : הדלת פתוחה ב <device(s)>. צריך לסגור אותה ולנסות שוב.
- deviceHandleClosed : הידית סגורה ב-<device(s)>. צריך לפתוח אותה ולנסות שוב.
- deviceJammingDetected : <device(s)> <is/are> jammed.
- deviceLidOpen : המכסה פתוח ב <device(s)>. צריך לסגור אותו ולנסות שוב.
- deviceNeedsRepair : <device(s)> <need(s)> to be repaired. צריך לפנות לסוכנות השירות המקומית.
- deviceNotDocked : מצטער, נראה ש <device(s)> <isn't/aren't> docked. צריך להניח את <it/them> באביזר העגינה ולנסות שוב.
-
deviceNotFound
:
המכשיר או המכשירים <is/are>n't זמינים. אולי כדאי לנסות להגדיר <אותו/אותם> שוב. טיפ: חשוב לוודא שהקצה העורפי תמיד מסנכרן את Home Graph. התקשרות אל
requestSyncבכל פעם שמוסיפים או מסירים מכשירים. - deviceNotMounted : מצטער, נראה שאי אפשר לעשות את זה עם <device(s)> כי <it/they> <is/are>n't mounted.
- deviceNotReady : המכשיר או המכשירים לא מוכנים.
- 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)>.
- dispenseAmountBelowLimit : אי אפשר להוציא כמות כל כך קטנה מ<device(s)>.
- dispenseAmountRemainingExceeded : למכשיר(ים) <device(s)> אין מספיק <dispense item> כדי לבצע את הפעולה הזו.
- dispenseFractionalAmountNotSupported : <device(s)> can't dispense fractions of <dispense item>.
- dispenseFractionalUnitNotSupported : המכשיר או המכשירים לא תומכים בחלקי יחידות של <dispense item>.
- dispenseUnitNotSupported : המכשיר או המכשירים <device(s)> לא תומכים ביחידה הזו של <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)>. צריך להעביר את <המכשיר/המכשירים> לקומה המתאימה ולנסות שוב.
- functionNotSupported : למעשה, המכשיר/ים <device(s)> לא תומך/ים בפונקציונליות הזו. טיפ: חשוב לוודא שהתגובה של SYNC משקפת באופן מדויק את היכולות של המכשיר.
- genericDispenseNotSupported : אני צריך לדעת מה ברצונך להנפיק. צריך לנסות שוב עם שם הפריט.
- hardError : מצטער, משהו השתבש ואין לי אפשרות לשלוט במכשיר הביתי שלך.
- hardError : מצטער, משהו השתבש ואין לי אפשרות לשלוט במכשיר הביתי שלך.
- inAutoMode : <device(s)> <is/are> currently set to auto mode. כדי לשנות את הטמפרטורה, צריך להעביר את המכשיר למצב אחר.
- inAwayMode : המכשיר/ים <is/are> מוגדר/ים כרגע למצב שהייה מחוץ לבית. כדי לשלוט בתרמוסטט, צריך לעבור למצב 'בבית' באופן ידני באמצעות אפליקציית Nest בטלפון, בטאבלט או במחשב.
- inDryMode : <device(s)> <is/are> currently set to dry mode. כדי לשנות את הטמפרטורה, צריך להעביר את המכשיר למצב אחר.
- inEcoMode : המכשיר או המכשירים <device(s)> מוגדרים כרגע למצב חיסכון באנרגיה. כדי לשנות את הטמפרטורה, צריך להעביר את המכשיר למצב אחר.
- inFanOnlyMode : המכשירים <device(s)> מוגדרים כרגע למצב מאוורר בלבד. כדי לשנות את הטמפרטורה, צריך להעביר את המכשיר למצב אחר.
- inHeatOrCool : <device(s)> <is/are>n't in heat/cool mode.
- inHumidifierMode : המכשיר/ים <is/are> מוגדר כרגע למצב מכשיר אדים. כדי לשנות את הטמפרטורה, צריך להעביר את המכשיר למצב אחר.
- inOffMode : המכשיר/ים <is/are> כרגע מושבת/ים. כדי לשנות את הטמפרטורה, צריך להעביר <it/them> למצב אחר.
- inPurifierMode : המכשיר/ים <is/are> מוגדר כרגע למצב טיהור. כדי לשנות את הטמפרטורה, צריך להעביר את המכשיר למצב אחר.
- inSleepMode : <device(s)> <is/are> in sleep mode. אפשר לנסות שוב מאוחר יותר.
- inSoftwareUpdate : <device(s)> <is/are> currently in a software update.
- lockFailure : לא ניתן לנעול את <device(s)>. כדאי לדעת: צריך לבדוק אם יש חסימות פיזיות, סוללה חלשה או כשלים במנוע של חומרת הנעילה.
- lockedState : המכשיר/ים <is/are> נעול/ים כרגע.
- lockedToRange : That temperature is outside the locked range on <device(s)>.
- lowBattery : <device(s)> <has/have> low battery.
- maxSettingReached : המכשיר או המכשירים כבר מוגדרים להגדרה הכי גבוהה.
- maxSpeedReached : המכשיר/ים כבר מוגדר/ים למהירות המקסימלית.
- minSettingReached : המכשיר או המכשירים כבר מוגדרים להגדרה הנמוכה ביותר.
- minSpeedReached : המכשיר או המכשירים כבר מוגדרים למהירות המינימלית.
- monitoringServiceConnectionLost : החיבור של <device(s)> לשירות המעקב אבד.
- needsAttachment : מצטערים, נראה שלמכשיר/ים <device(s)> <is/are> חסר קובץ מצורף נדרש. צריך להחליף אותו ולנסות שוב.
- needsBin : מצטערים, נראה שחסר מיכל ל <device(s)> <is/are>. צריך להחליף אותו ולנסות שוב.
- 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 : I'm already testing the <network> <speed/speeds>>.
- noAvailableApp : מצטערים, נראה שהאפליקציה <app name> לא זמינה.
- noAvailableChannel : מצטערים, נראה שהערוץ <channel name> לא זמין.
- noChannelSubscription : מצטערים, נראה שאין לך מינוי לערוץ <channel name> כרגע.
- noTimerExists : מצטער, נראה שלא מוגדרים טיימרים ב<device(s)>.
- notSupported : מצטערים, המצב הזה לא זמין עבור <device(s)>.
- obstructionDetected : זוהה חסימה ב<device(s)>.
- offline , deviceOffline : מצטערים, נראה שהמכשיר/ים <device(s)> לא זמין/ים כרגע.
- onRequiresMode : עליך לציין את המצב שברצונך להפעיל.
- passphraseIncorrect : מצטערים, נראה שקוד האימות שגוי.
- percentOutOfRange : מצטער, אין לי אפשרות להגדיר את <device(s)> לערך <percent>.
- pinIncorrect : (passphraseIncorrect)
- rainDetected : לא פתחתי את <device(s)> כי זוהה גשם.
- rangeTooClose : הטמפרטורות קרובות מדי לטווח חימום וקירור של <device(s)>. צריך לבחור טמפרטורות עם הפרש גדול יותר.
- relinkRequired : מצטערים, נראה שמשהו השתבש בחשבון שלך. עליך להשתמש באפליקציית Google Home או Assistant כדי לקשר מחדש את <שם המכשיר/ים>. הערה: חשוב לוודא שהשרת מחזיר את הקוד הזה כש<b>טוקן רענון</b> לא תקף באופן קבוע.
-
remoteSetDisabled
:
- פרמטר אופציונלי
errorCodeReason -
currentlyArmed– מצטערים, מכיוון שהאבטחה כבר מופעלת, צריך להשתמש ב <device(s)> או באפליקציה כדי לבצע שינויים. -
remoteUnlockNotAllowed– מצטער, אין לי אפשרות לבטל את הנעילה של <device(s)> מרחוק. -
remoteControlOff– הפעולה הזו מושבתת כרגע. צריך להפעיל את השלט הרחוק ב <device(s)> ולנסות שוב. -
childSafetyModeActive– הפעולה הזו מושבתת ב <device(s)> בזמן שמצב בטוח לילדים פעיל.
- פרמטר אופציונלי
- roomsOnDifferentFloors : למכשיר/ים <device(s)> אין גישה לחדרים האלה כי הם נמצאים בקומות שונות.
- safetyShutOff : המכשיר/ים <device(s)> נמצא/ים במצב השבתה בטיחותית, ולכן צריך לבצע את ההתאמות באופן ידני.
- 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 : המכשיר/ים <is/are> עדיין מתחמם/ים.
- streamUnavailable : מצטערים, נראה שהסטרימינג לא זמין כרגע במכשיר או במכשירים <device(s)>.
- streamUnplayable : מצטער, אין לי אפשרות להפעיל את הסטרימינג מ<device(s)> כרגע. טיפ: כדאי לאמת את האיתות של WebRTC/HLS ולוודא שכתובת ה-URL של הסטרימינג תקינה.
- tankEmpty : למכשיר/ים<device(s)> <has/have> <an empty tank/empty tanks>. צריך למלא <it/them> ולנסות שוב.
- targetAlreadyReached : מצטער, נראה שזאת כבר הטמפרטורה הנוכחית.
- timerValueOutOfRange : לא ניתן להגדיר את משך הזמן הזה ב-<device(s)>.
- tooManyFailedAttempts : מצטערים, היו יותר מדי ניסיונות כושלים. כדי להשלים את הפעולה הזו, צריך לעבור לאפליקציה במכשיר.
- transientError : מצטערים, משהו השתבש בשליטה ב <device(s)>. נסה שוב. טיפ: בדרך כלל השגיאות האלה מתבטאות בניתוק של החיבור למכשיר או לשירות. גם אם אי אפשר לפתוח חיבורים חדשים לשרת.
- turnedOff , deviceTurnedOff : <device(s)> <is/are> off right now.
- unableToLocateDevice : לא הצלחתי לאתר את <device(s)>. טיפ: כדאי לבדוק את הקישוריות המקומית של המכשיר (Wi-Fi/Bluetooth).
- unknownFoodPreset : המכשיר/ים <device(s)> לא תומך/ים בהגדרת המזון הזו.
- 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 תוך חמש דקות מההתנהגות של המכשיר. בכל פעם שמכשיר חוזר למצב אונליין, השותף צריך לדווח על כל מצבי המכשיר הנוכחיים באמצעותreportStateAndNotification API.
בדוגמה הזו אפשר לראות שסוג המכשיר light נמצא במצב אונליין, ומוצגים כל המצבים הנוכחיים של המכשיר.
"requestId": "test-request-id",
"agentUserId": "agent-user-1",
"payload":{
"devices": {
"states": {
"device-id-1": {
"brightness": 65,
"on": true,
"online": true
}
"notifications": {},
}
}
}חריגים
צריך להחזיר חריגה כשקיימת בעיה או התראה שמשויכת לפקודה. יכול להיות שהפקודה תצליח או תיכשל.
אם הפקודה בוצעה בהצלחה (סטטוס = 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)> יש <a full bag/full bags>. צריך לרוקן <it/them> ולנסות שוב.
- 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)>. צריך להעביר את <המכשיר/המכשירים> לקומה המתאימה ולנסות שוב.
- hardwareFailure : <device(s)> <has/have> a hardware problem.
- inSoftwareUpdate : המכשיר או המכשירים <device(s)> נמצאים כרגע בתהליך של עדכון תוכנה.
- 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 : לא דווחו בעיות ב<device(s)>.
- roomsOnDifferentFloors : למכשיר/ים <device(s)> אין גישה לחדרים האלה כי הם נמצאים בקומות שונות.
- 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>. צריך למלא <it/them> ולנסות שוב.
- usingCellularBackup : <device(s)> <is/are> using cellular backup.
- waterLeakDetected : <device(s)> <detect(s)> a water leak.