Tài liệu này liệt kê các lỗi và ngoại lệ được hỗ trợ chính thức cho thiết bị nhà thông minh. Vui lòng sử dụng các lỗi và mã ngoại lệ này trong phản hồi ý định hoặc trong thông báo nếu bạn đã triển khai thông báo, để Trợ lý Google cảnh báo người dùng cuối về các vấn đề liên quan đến một lệnh hoặc trạng thái thiết bị nhất định. Nếu phản hồi chứa định dạng hoặc errorCode
không chính xác, Trợ lý Google sẽ đưa ra cho người dùng một thông báo lỗi chung, ví dụ: "Rất tiếc, thiết bị hiện không hoạt động".
Lỗi
Bạn nên trả về mã lỗi khi một vấn đề khiến yêu cầu thực thi hoặc truy vấn không thành công. Ví dụ: nếu khoá cửa bị kẹt và không thể khoá hoặc mở khoá, thì lỗi về trạng thái này sẽ được trả về cho người dùng.
Bạn có thể đính kèm mã lỗi ở cấp thiết bị hoặc ở cấp toàn cục. Ví dụ: nếu người dùng có nhiều đèn từ một nhà cung cấp và các đèn đó được điều khiển bằng một trung tâm, thì khi người dùng yêu cầu tắt tất cả đèn, nhà cung cấp có thể trả về lỗi cấp thiết bị nếu một đèn không có kết nối mạng hoặc lỗi cấp toàn cục nếu toàn bộ trung tâm không có kết nối mạng và không thể điều khiển đèn nào. Nếu tất cả thiết bị đều ở chế độ ngoại tuyến, thì việc sử dụng lỗi cấp toàn cục hay cấp thiết bị sẽ không có gì khác biệt.
Khi một thiết bị không có kết nối mạng, bạn nên báo cáo {"online": false}
cho Trạng thái báo cáo trong vòng 5 phút kể từ hành vi của thiết bị.
Tóm tắt:
- Lỗi cấp toàn cục: tất cả thiết bị trong phản hồi đều gặp cùng một lỗi
- Lỗi cấp cục bộ: phản hồi kết hợp các trường hợp lỗi và thành công
Lỗi cấp toàn cục
Đoạn mã JSON sau đây cho biết cách bạn trả về lỗi cấp toàn cục trong phản hồi QUERY hoặc EXECUTE.
Ví dụ về lỗi cấp toàn cục deviceOffline
do trung tâm đang ngoại tuyến:
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "errorCode": "deviceOffline", "status" : "ERROR" } }
Ví dụ về lỗi cấp toàn cục inSoftwareUpdate
do trung tâm đang cập nhật:
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "errorCode": "inSoftwareUpdate", "status" : "ERROR" } }
Lỗi cấp thiết bị
Phản hồi QUERY
Đoạn mã JSON sau đây cho biết cách bạn trả về lỗi cấp thiết bị trong phản hồi QUERY.
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "devices": { "device-id-1": { "errorCode": "deviceOffline", "status" : "ERROR" }, "device-id-2": { "errorCode": "deviceOffline", "status" : "ERROR" } } } }
Phản hồi EXECUTE
Đoạn mã JSON sau đây cho biết cách bạn trả về lỗi cấp thiết bị trong phản hồi 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 } } ] } }
Thông báo có lỗi
Thông báo chủ động
Đoạn mã JSON sau đây cho biết cách bạn báo cáo lỗi cấp thiết bị trong thông báo chủ động.
{ "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" } } } } } }
Câu trả lời tiếp theo
Đoạn mã JSON sau đây cho biết cách bạn báo cáo lỗi cấp thiết bị trong phản hồi tiếp theo.
{ "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" } } } } } } }
Danh sách lỗi
Các lỗi sau đây sẽ tạo ra TTS được liên kết trên thiết bị.
- aboveMaximumLightEffectsDuration : Thời lượng tối đa là 1 giờ. Vui lòng thử lại.
- aboveMaximumTimerDuration : Tôi chỉ có thể đặt <device(s)> trong tối đa <time period>
- actionNotAvailable : Rất tiếc, tôi chưa thể làm việc đó ngay lúc này.
- 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> đã được đặt ở nhiệt độ tối đa.
- alreadyAtMin : <device(s)> <is/are> đã được đặt ở nhiệt độ thấp nhất.
- alreadyClosed : <device(s)> <is/are> already closed.
- alreadyDisarmed : <device(s)> <is/are> đã được tắt báo động.
- alreadyDocked : <device(s)> <is/are> already docked.
- alreadyInState : <device(s)> <is/are> đã ở trạng thái đó.
- 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> đã bắt đầu.
- alreadyStopped : <device(s)> <is/are> đã dừng.
- alreadyUnlocked : <device(s)> <is/are> đã được mở khoá.
- ambiguousZoneName : Rất tiếc, <device(s)> không thể xác định bạn muốn nói đến vùng nào. Hãy nhớ đặt tên duy nhất cho các vùng rồi thử lại.
- amountAboveLimit : Đó là số lượng lớn hơn mức <device(s)> có thể hỗ trợ.
- appLaunchFailed : Rất tiếc, không thể chạy <app name> trên <device(s)>.
- armFailure : Không thể kích hoạt <(các) thiết bị>.
- armLevelNeeded : Tôi không chắc nên đặt <device(s)> ở mức nào. Hãy thử nói "Đặt <thiết bị> ở chế độ <mức độ bảo mật thấp>" hoặc "Đặt <thiết bị> ở chế độ <mức độ bảo mật cao>"
- authFailure : Có vẻ như tôi không thể kết nối với <device(s)>. Hãy thử kiểm tra ứng dụng để đảm bảo <device/devices> <is/are> đã được thiết lập đầy đủ.
- bagFull : <device(s)> <has/have> <a full bag/full bags>. Please empty <it/them> and try again.
- belowMinimumLightEffectsDuration : Thời lượng tối thiểu là 5 phút. Vui lòng thử lại.
- belowMinimumTimerDuration : Tôi không thể đặt <device(s)> trong thời gian ngắn như vậy. Vui lòng thử lại.
- binFull : <device(s)> <has/have> <a full bin/full bins>.
- cancelArmingRestricted : Rất tiếc, tôi không thể huỷ kích hoạt <(các) thiết bị>.
- cancelTooLate : Rất tiếc, đã quá muộn để huỷ. Thay vào đó, hãy sử dụng <device(s)> hoặc ứng dụng.
- channelSwitchFailed : Rất tiếc, không thể chuyển sang kênh <channel name>. Vui lòng thử lại sau.
- chargerIssue : Rất tiếc, có vẻ như <device(s)> <has/have> <a charger issue/charger issues>.
- commandInsertFailed : Không thể xử lý các lệnh cho <device(s)>.
- deadBattery : <device(s)> <has/have> <a dead battery/dead batteries>.
- degreesOutOfRange : Mức độ bạn yêu cầu nằm ngoài phạm vi của <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 : Rất tiếc, có vẻ như <device(s)> hiện đang làm gì đó.
- deviceCharging : Rất tiếc, có vẻ như <device(s)> không làm được việc đó vì (ha_shared.ItsTheyre size=$item.devices.total_device_count) đang sạc.
- deviceClogged : Rất tiếc, có vẻ như <device(s)> bị tắc.
- deviceCurrentlyDispensing : <device(s)> hiện đang phân phối thứ gì đó.
- deviceDoorOpen : Cửa đang mở trên <(các) thiết bị>. Vui lòng đóng cửa rồi thử lại.
- deviceHandleClosed : Tên xử lý đã đóng trên <(các) thiết bị>. Vui lòng mở và thử lại.
- deviceJammingDetected : <device(s)> <is/are> jammed.
- deviceLidOpen : Nắp đang mở trên <(các) thiết bị>. Vui lòng đóng nắp rồi thử lại.
- deviceNeedsRepair : <device(s)> <need(s)> to be repaired. Vui lòng liên hệ với đại lý bảo dưỡng tại địa phương.
- deviceNotDocked : Rất tiếc, có vẻ như <device(s)> <isn't/aren't> đã được gắn vào đế sạc. Vui lòng gắn <thiết bị/thiết bị> vào đế sạc rồi thử lại.
- deviceNotFound : <device(s)> <is/are>không có sẵn. Bạn nên thử thiết lập lại <thiết bị/thiết bị>.
- deviceNotMounted : Rất tiếc, có vẻ như <device(s)> không thể làm việc đó vì <it/they> <is/are>n't mounted.
- deviceNotReady : <device(s)> <is/are>chưa sẵn sàng.
- deviceStuck : <device(s)> <is/are> stuck and needs your help.
- deviceTampered : <device(s)> <has/have> been tampered with.
- deviceThermalShutdown : Rất tiếc, có vẻ như <device(s)> đã tắt do nhiệt độ quá cao hoặc quá thấp.
- directResponseOnlyUnreachable : <device(s)> <doesn't/don't> hỗ trợ điều khiển từ xa.
- disarmFailure : Không thể tắt báo động cho <(các) thiết bị>.
- discreteOnlyOpenClose : Rất tiếc, <device(s)> chỉ có thể mở hoặc đóng hết mức.
- dispenseAmountAboveLimit : <(các) thiết bị> không thể phân phối một lượng lớn như vậy.
- dispenseAmountBelowLimit : <(các) thiết bị> không thể phân phối một lượng nhỏ như vậy.
- dispenseAmountRemainingExceeded : <device(s)> không có đủ <dispense item> để thực hiện việc đó.
- dispenseFractionalAmountNotSupported : <device(s)> không thể phân phối các phần của <dispense item>.
- dispenseFractionalUnitNotSupported : <device(s)> không hỗ trợ các phân số của đơn vị đó cho <dispense item>.
- dispenseUnitNotSupported : <device(s)> không hỗ trợ đơn vị đó cho <dispense item>.
- doorClosedTooLong : Cửa trên <device(s)> đã mở được một lúc rồi. Vui lòng mở cửa. Đảm bảo bạn đã cho đồ vào bên trong, sau đó thử lại.
- emergencyHeatOn : <device(s)> <is/are> ở Chế độ sưởi ấm khẩn cấp nên bạn phải tự điều chỉnh <it/they>.
- faultyBattery : <device(s)> <has/have> <a faulty battery/faulty batteries>.
- floorUnreachable : <device(s)> không thể kết nối với phòng đó. Vui lòng đưa <thiết bị/thiết bị> đến đúng tầng rồi thử lại.
- functionNotSupported : Thực ra, <device(s)> <doesn't/don't> hỗ trợ chức năng đó.
- genericDispenseNotSupported : Tôi cần biết bạn muốn phân phối gì. Vui lòng thử lại, kèm theo tên mặt hàng bạn muốn phân phối.
- hardError : Rất tiếc, đã xảy ra lỗi nên tôi không thể điều khiển thiết bị trong nhà của bạn.
- hardError : Rất tiếc, đã xảy ra lỗi nên tôi không thể điều khiển thiết bị trong nhà của bạn.
- inAutoMode : <device(s)> <is/are> currently set to auto mode. Để thay đổi nhiệt độ, bạn cần chuyển <thiết bị> sang chế độ khác.
- inAwayMode : <device(s)> <is/are> currently set to away mode. Để điều khiển máy điều nhiệt, bạn cần chuyển máy này sang chế độ ở nhà theo cách thủ công bằng ứng dụng Nest trên điện thoại, máy tính bảng hoặc máy tính.
- inDryMode : <device(s)> <is/are> currently set to dry mode. Để thay đổi nhiệt độ, bạn cần chuyển <thiết bị> sang chế độ khác.
- inEcoMode : <device(s)> <is/are> currently set to eco mode. Để thay đổi nhiệt độ, bạn cần chuyển <thiết bị> sang chế độ khác.
- inFanOnlyMode : <device(s)> <is/are> currently set to fan-only mode. Để thay đổi nhiệt độ, bạn cần chuyển <thiết bị> sang chế độ khác.
- inHeatOrCool : <device(s)> <is/are>không ở chế độ sưởi/làm mát.
- inHumidifierMode : <device(s)> <is/are> currently set to humidifier mode. Để thay đổi nhiệt độ, bạn cần chuyển <thiết bị> sang chế độ khác.
- 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. Để thay đổi nhiệt độ, bạn cần chuyển <thiết bị> sang chế độ khác.
- inSleepMode : <device(s)> <is/are> ở chế độ ngủ. Vui lòng thử lại sau.
- inSoftwareUpdate : <device(s)> <is/are> currently in a software update.
- lockFailure : Không thể khoá <(các) thiết bị>.
- lockedState : <device(s)> <is/are> currently locked.
- lockedToRange : Nhiệt độ đó nằm ngoài phạm vi bị khoá trên <device(s)>.
- lowBattery : <device(s)> <has/have> low battery.
- maxSettingReached : <device(s)> <is/are> đã được đặt thành chế độ cài đặt cao nhất.
- maxSpeedReached : <device(s)> <is/are> đã được đặt thành tốc độ tối đa.
- minSettingReached : <device(s)> <is/are> đã được đặt thành chế độ cài đặt thấp nhất.
- minSpeedReached : <device(s)> <is/are> đã được đặt thành tốc độ tối thiểu.
- monitoringServiceConnectionLost : <(các) thiết bị> <đã/đang> mất kết nối với dịch vụ giám sát.
- needsAttachment : Rất tiếc, có vẻ như <device(s)> <is/are> thiếu một tệp đính kèm bắt buộc. Vui lòng thay thế rồi thử lại.
- needsBin : Rất tiếc, có vẻ như <device(s)> <is/are> thiếu thùng rác. Vui lòng thay thế rồi thử lại.
- needsPads : <device(s)> <need(s)> new pads.
- needsSoftwareUpdate : <device(s)> <need(s)> a software update.
- needsWater : <device(s)> <need(s)> water.
- networkProfileNotRecognized : Rất tiếc, tôi không nhận ra "<network profile>" trên <device(s)>.
- networkSpeedTestInProgress : Tôi đang kiểm thử <network> <speed/speeds>>.
- noAvailableApp : Rất tiếc, có vẻ như <app name> không hoạt động.
- noAvailableChannel : Rất tiếc, có vẻ như bạn không có kênh <channel name>.
- noChannelSubscription : Rất tiếc, hiện bạn chưa đăng ký kênh <channel name>.
- noTimerExists : Rất tiếc, có vẻ như không có đồng hồ hẹn giờ nào được đặt trên <device(s)>.
- notSupported : Rất tiếc, chế độ đó không dùng được cho <(các) thiết bị>.
- obstructionDetected : <(các) thiết bị> đã phát hiện thấy vật cản.
- offline , deviceOffline : Rất tiếc, có vẻ như <device(s)> <is/are>không hoạt động được lúc này.
- onRequiresMode : Vui lòng chỉ định chế độ bạn muốn bật.
- passphraseIncorrect : Rất tiếc, có vẻ như mã PIN đó không chính xác.
- percentOutOfRange : Rất tiếc, tôi không thể đặt <device(s)> thành <percent>.
- pinIncorrect : (passphraseIncorrect)
- rainDetected : Tôi không mở <device(s)> vì phát hiện thấy mưa.
- rangeTooClose : Dải nhiệt độ của bạn quá sát nhau và không sử dụng được cho chế độ Sưởi ấm–Làm mát của <(các) thiết bị>. Vui lòng chọn nhiệt độ cách xa nhau.
- relinkRequired : Rất tiếc, có vẻ như đã xảy ra sự cố với tài khoản của bạn. Vui lòng dùng ứng dụng Trợ lý hoặc Google Home để liên kết lại <(các) thiết bị>.
-
remoteSetDisabled
:
- Tham số tuỳ chọn
errorCodeReason
currentlyArmed
– Rất tiếc, vì chế độ an ninh đang hoạt động nên bạn cần dùng <(các) thiết bị> hoặc ứng dụng này để thực hiện bất kỳ thay đổi nào.remoteUnlockNotAllowed
– Rất tiếc, tôi không thể mở khoá <(các) thiết bị> từ xa.remoteControlOff
– Thao tác đó hiện không thực hiện được. Vui lòng bật tính năng điều khiển từ xa trên <(các) thiết bị> rồi thử lại.childSafetyModeActive
– Bạn không thực hiện được thao tác đó cho <(các) thiết bị> khi chế độ an toàn cho trẻ em đang hoạt động.
- Tham số tuỳ chọn
- roomsOnDifferentFloors : <device(s)> không thể vào những phòng đó vì những phòng đó không ở cùng một tầng.
- safetyShutOff : <device(s)> <is/are> ở Chế độ tắt an toàn nên bạn sẽ phải điều chỉnh <it/they> bằng tay.
- sceneCannotBeApplied : Rất tiếc, không thể áp dụng <(các) thiết bị>.
- securityRestriction : <device(s)> <has/have> a security restriction.
- softwareUpdateNotAvailable : Rất tiếc, không có bản cập nhật phần mềm nào trên <(các) thiết bị>.
- startRequiresTime : Để làm như vậy, bạn cần cho tôi biết bạn muốn <device(s)> chạy trong bao lâu.
- stillCoolingDown : <device(s)> <is/are> still cooling down.
- stillWarmingUp : <device(s)> <is/are> still warming up.
- streamUnavailable : Rất tiếc, có vẻ như luồng dữ liệu từ <device(s)> hiện không sử dụng được.
- streamUnplayable : Rất tiếc, tôi không thể phát luồng dữ liệu từ <(các) thiết bị> tại thời điểm này.
- tankEmpty : <device(s)> <has/have> <an empty tank/empty tanks>. Please fill <it/them> and try again.
- targetAlreadyReached : Rất tiếc, có vẻ như đó là nhiệt độ hiện tại.
- timerValueOutOfRange : Không thể đặt <(các) thiết bị> trong khoảng thời gian đó.
- tooManyFailedAttempts : Rất tiếc, bạn đã thử quá nhiều lần nhưng không thành công. Vui lòng mở ứng dụng trên thiết bị của bạn để hoàn tất thao tác đó.
- transientError : Rất tiếc, đã xảy ra lỗi khi điều khiển <device(s)>. Vui lòng thử lại.
- turnedOff , deviceTurnedOff : <device(s)> <is/are> off right now.
- unableToLocateDevice : Tôi không thể định vị <device(s)>.
- unknownFoodPreset : <device(s)> không hỗ trợ chế độ nấu đó.
- unlockFailure : Không thể mở khoá <(các) thiết bị>.
- unpausableState : <device(s)> không thể tạm dừng ngay bây giờ.
- userCancelled : ok
- valueOutOfRange : Không thể đặt <(các) thiết bị> ở nhiệt độ đó.
Ngoại lệ
Bạn nên trả về một ngoại lệ khi có vấn đề hoặc cảnh báo liên quan đến một lệnh. Lệnh có thể thành công hoặc không thành công.
Nếu lệnh thành công (trạng thái = "SUCCESS"), hãy báo cáo các trường hợp ngoại lệ bằng cách sử dụng đặc điểm StatusReport
(đối với các thiết bị không phải là mục tiêu) hoặc bằng cách trả về một exceptionCode
thích hợp (đối với thiết bị mục tiêu).
Ví dụ: nếu lưới lọc bụi của máy sấy đã đầy, người dùng vẫn có thể khởi động máy sấy, nhưng bạn nên cảnh báo họ về trạng thái này. Tương tự, khi pin của thiết bị yếu nhưng chưa hết, bạn vẫn có thể thực thi lệnh nhưng phải cho họ biết pin của thiết bị đang yếu.
Nếu lệnh không thành công do các ngoại lệ, thì trạng thái sẽ là "EXCEPTIONS" (NGOẠI LỆ) và các ngoại lệ sẽ được báo cáo bằng cách sử dụng đặc điểm StatusReport
.
Trường hợp ngoại lệ không chặn (THÀNH CÔNG) về thiết bị mục tiêu
Ví dụ này là để khoá cửa:
Khoá cửa trước yếu pin. Đang khoá cửa trước.
{ "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" } }] } }
Ngoại lệ không chặn (SUCCESS) về một thiết bị khác sử dụng StatusReport
Ví dụ này là để kích hoạt hệ thống an ninh: Ok, kích hoạt hệ thống an ninh. Cửa sổ phía trước đang mở.
{ "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" }] } }] } }
Chặn ngoại lệ về một thiết bị khác bằng 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" } ] } } } }
Danh sách ngoại lệ
Các trường hợp ngoại lệ sau đây sẽ tạo ra TTS được liên kết trên thiết bị.
- 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 : Phát hiện thấy khí CO trong <tên nhà>.
- 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)> <has/have> been tampered with.
- deviceUnplugged : <device(s)> <is/are> unplugged.
- floorUnreachable : <device(s)> không thể kết nối với phòng đó. Vui lòng đưa <thiết bị/thiết bị> đến đúng tầng rồi thử lại.
- 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 : kết nối mạng gia đình với <device(s)> không hoạt động đúng cách.
- noIssuesReported : <device(s)> không báo cáo vấn đề nào.
- roomsOnDifferentFloors : <device(s)> không thể vào những phòng đó vì những phòng đó không ở cùng một tầng.
- runCycleFinished : <device(s)> <has/have> finished running.
- securityRestriction : <device(s)> <has/have> a security restriction.
- smokeDetected : Đã phát hiện thấy khói trong <tên nhà>.
- 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.