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 mã lỗi và mã ngoại lệ đã cho trong phản hồi ý định hoặc trong thông báo nếu bạn đã triển khai, để 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 có định dạng không chính xác hoặc errorCode, Trợ lý Google sẽ đưa ra thông báo lỗi chung cho người dùng, 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ì người dùng sẽ nhận được thông báo lỗi về trạng thái này.
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 của 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 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 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 không có mạng, thì không có sự khác biệt giữa việc sử dụng lỗi ở cấp độ toàn cục hoặc cấp độ thiết bị.
Tóm tắt:
- Lỗi ở cấp độ chung: tất cả thiết bị trong phản hồi đều có cùng một lỗi
- Lỗi ở cấp địa phương: phản hồi kết hợp với các trường hợp lỗi và thành công
Lỗi ở cấp độ toàn cầu
Đoạn mã JSON sau đây cho biết cách bạn trả về lỗi ở cấp độ toàn cầu 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ầu 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ị
Câu trả lời cho TRUY VẤN
Đoạn mã JSON sau đây cho biết cách 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 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áo cáo lỗi ở cấp thiết bị trong một 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 một 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 liên quan trên thiết bị.
- aboveMaximumLightEffectsDuration : Thời lượng này dài hơn thời lượng tối đa là 1 giờ. Vui lòng thử lại sau.
- 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. Mẹo: Xác minh các đặc điểm của thiết bị và logic trạng thái hiện tại trong phương thức thực hiện của bạn.
- 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)> đã đóng.
- 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)> đã bị khoá.
- 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)> đã được mở khoá.
- ambiguousZoneName : Rất tiếc, <device(s)> không xác định được khu vực bạn muốn nói đến. Vui lòng đảm bảo các vùng của bạn có tên riêng biệt rồi thử lại.
- amountAboveLimit : <device(s)> chưa thể đáp ứng được yêu cầu đó.
- appLaunchFailed : Rất tiếc, không thể chạy <app name> trên <device(s)>. Mẹo: Xác minh appId và đảm bảo rằng ứng dụng được hỗ trợ trên phần cứng mục tiêu.
- armFailure : Không thể kích hoạt <device(s)>.
- 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ế độ <bảo mật thấp>" hoặc "Đặt <thiết bị> ở chế độ <bảo mật cao>"
- authFailure : Có vẻ như tôi không kết nối được với <device(s)>. Hãy thử kiểm tra ứng dụng để đảm bảo <device/devices> đã được thiết lập hoàn chỉnh.
- bagFull : <device(s)> <has/have> <a full bag/full bags>. Please empty <it/them> and try again.
- belowMinimumLightEffectsDuration : Thời lượng này ngắn hơn thời lượng tối thiểu là 5 phút. Vui lòng thử lại sau.
- belowMinimumTimerDuration : Tôi không thể đặt <device(s)> cho thời gian ngắn như vậy. Vui lòng thử lại sau.
- 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 <thiết bị>.
- cancelTooLate : Rất tiếc, đã quá muộn để huỷ. Hãy 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. Mẹo: Xác minh tên/số kênh và trạng thái gói thuê bao của người dùng.
- chargerIssue : Rất tiếc, có vẻ như <device(s)> gặp <a charger issue/charger issues>. Mẹo: Đối tác nên kiểm tra dữ liệu đo từ xa ở cấp phần cứng và tình trạng pin.
- commandInsertFailed : Không thể xử lý lệnh cho <device(s)>. Mẹo: Hãy kiểm tra hiệu suất ghi của cơ sở dữ liệu hoặc logic xếp hàng lệnh nội bộ.
- 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 pin.
- 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 của <device(s)> đang mở. Vui lòng đóng cửa rồi thử lại.
- deviceHandleClosed : Tay cầm đã đóng trên <device(s)>. Vui lòng mở tay cầm rồi thử lại.
- deviceJammingDetected : <device(s)> <is/are> jammed.
- deviceLidOpen : Nắp đang mở trên <device(s)>. 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ý dịch vụ tại địa phương.
- deviceNotDocked : Rất tiếc, có vẻ như <device(s)> chưa được gắn vào đế sạc. Vui lòng gắn <máy/chúng> vào đế sạc rồi thử lại.
-
deviceNotFound
:
<device(s)> <is/are>n't available. Bạn nên thử thiết lập lại <it/them>. Lưu ý: Đảm bảo rằng phần phụ trợ của bạn luôn đồng bộ hoá Home Graph. Gọi
requestSyncbất cứ khi nào thiết bị được thêm hoặc xoá. - deviceNotMounted : Rất tiếc, có vẻ như <device(s)> không thể làm việc đó vì chưa được lắp.
- deviceNotReady : <device(s)> chưa sẵn sàng.
- deviceStuck : <device(s)> bị kẹt và cần bạn trợ giúp.
- 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)> không hỗ trợ điều khiển từ xa.
- disarmFailure : Không tắt được <thiết bị>.
- discreteOnlyOpenClose : Rất tiếc, <device(s)> chỉ có thể mở hoặc đóng hoàn toàn.
- dispenseAmountAboveLimit : <device(s)> không thể phân phối một lượng lớn như vậy.
- dispenseAmountBelowLimit : <device(s)> không thể phân phối một lượng ít như vậy.
- dispenseAmountRemainingExceeded : <device(s)> không có đủ <dispense item> để làm việc đó.
- dispenseFractionalAmountNotSupported : <device(s)> không thể phân phối một phần <dispense item>.
- dispenseFractionalUnitNotSupported : <device(s)> không hỗ trợ phân phối <dispense item> theo số thập phân của đơn vị đó.
- 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)> đang ở Chế độ sưởi ấm khẩn cấp, nên bạn sẽ phải điều chỉnh <it/they> theo cách thủ công.
- faultyBattery : <device(s)> <has/have> <a faulty battery/faulty batteries>.
- floorUnreachable : <device(s)> không thể vào phòng đó. Vui lòng đưa <it/them> đến đúng tầng rồi thử lại.
- functionNotSupported : Thực ra, <device(s)> không hỗ trợ chức năng đó. Mẹo: Đảm bảo phản hồi SYNC phản ánh chính xác các chức năng của thiết bị.
- genericDispenseNotSupported : Tôi cần biết bạn muốn phân phối nội dung gì. Vui lòng thử lại bằng tên của mặt hàng.
- hardError : Rất tiếc, đã xảy ra sự cố nên tôi không thể điều khiển thiết bị trong nhà bạn.
- hardError : Rất tiếc, đã xảy ra sự cố nên tôi không thể điều khiển thiết bị trong nhà bạn.
- inAutoMode : <device(s)> <is/are> currently set to auto mode. Để thay đổi nhiệt độ, bạn cần chuyển <it/them> sang một chế độ khác.
- inAwayMode : <device(s)> hiện đang được đặt ở chế độ vắng nhà. Để điều khiển máy điều nhiệt, bạn cần chuyển máy điều nhiệt 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)> hiện đang được đặt ở chế độ sấy khô. Để thay đổi nhiệt độ, bạn cần chuyển <it/them> sang một chế độ khác.
- inEcoMode : <device(s)> hiện đang được đặt ở chế độ tiết kiệm năng lượng. Để thay đổi nhiệt độ, bạn cần chuyển <it/them> sang một chế độ khác.
- inFanOnlyMode : <device(s)> hiện đang được đặt ở chế độ chỉ quạt. Để thay đổi nhiệt độ, bạn cần chuyển <it/them> sang một chế độ khác.
- inHeatOrCool : <device(s)> <is/are>n't in heat/cool mode.
- inHumidifierMode : <device(s)> hiện đang được đặt ở chế độ máy tạo ẩm. Để thay đổi nhiệt độ, bạn cần chuyển <it/them> sang một chế độ khác.
- inOffMode : <device(s)> hiện đang tắt. Để thay đổi nhiệt độ, bạn cần chuyển <it/them> sang một chế độ khác.
- inPurifierMode : <device(s)> <is/are> currently set to purifier mode. Để thay đổi nhiệt độ, bạn cần chuyển <it/them> sang một chế độ khác.
- inSleepMode : <device(s)> đang ở chế độ ngủ. Vui lòng thử lại sau.
- inSoftwareUpdate : <device(s)> <is/are> currently in a software update.
- lockFailure : Không khoá được <thiết bị>. Mẹo: Kiểm tra xem phần cứng của khoá có bị kẹt, pin yếu hoặc hỏng động cơ hay không.
- lockedState : <device(s)> hiện đang bị khoá.
- lockedToRange : Nhiệt độ đó nằm ngoài phạm vi đã khoá trên <thiết bị>.
- lowBattery : <device(s)> <has/have> low battery.
- maxSettingReached : <device(s)> <is/are> already set to the highest setting.
- maxSpeedReached : <device(s)> đã được đặt ở tốc độ tối đa.
- minSettingReached : <device(s)> đã được đặt ở mức thấp nhất.
- 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 : Rất tiếc, có vẻ như <device(s)> thiếu phụ kiện bắt buộc. Vui lòng thay thùng đựng rồi thử lại.
- needsBin : Rất tiếc, có vẻ như <device(s)> thiếu thùng đựng. Vui lòng thay thùng đựng rồi thử lại.
- needsPads : <device(s)> <need(s)> new pads.
- needsSoftwareUpdate : <device(s)> <need(s)> a software update.
- needsWater : <device(s)> cần nước.
- networkProfileNotRecognized : Rất tiếc, tôi không nhận ra "<network profile>" trên <device(s)>. Mẹo: Xác minh chuỗi tên hồ sơ khớp với các hồ sơ được hỗ trợ trong phản hồi SYNC.
- networkSpeedTestInProgress : Tôi đang kiểm tra <tốc độ> <mạng>.
- 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 <tên kênh>.
- 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 <device(s)>.
- obstructionDetected : <device(s)> phát hiện thấy vật cản.
- ngoại tuyến , deviceOffline : Rất tiếc, có vẻ như <device(s)> hiện không hoạt động.
- 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 : Vì phát hiện thấy mưa nên tôi không mở <thiết bị>.
- rangeTooClose : Phạm vi đó quá hẹp để làm phạm vi Sưởi ấm – Làm mát cho <device(s)>. Hãy chọn các mức nhiệt độ cách xa nhau hơn.
- 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 <device(s)>. Lưu ý: Đảm bảo máy chủ của bạn trả về mã này khi mã làm mới không hợp lệ vĩnh viễn.
-
remoteSetDisabled
:
- Tham số không bắt buộc
errorCodeReason currentlyArmed– Rất tiếc, vì chế độ an ninh đang hoạt động nên bạn cần dùng <device(s)> 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á <thiết bị> từ xa.remoteControlOff– Thao tác đó hiện không thực hiện được. Hãy bật tính năng điều khiển từ xa trên <device(s)> rồi thử lại.childSafetyModeActive– Bạn không thực hiện được thao tác đó cho <thiết bị> khi chế độ an toàn cho trẻ em đang hoạt động.
- Tham số không bắt buộc
- 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)> đang ở Chế độ tắt an toàn, vì vậy, bạn phải điều chỉnh <it/they> theo cách thủ công.
- sceneCannotBeApplied : Rất tiếc, không thể áp dụng <device(s)>. Mẹo: Kiểm tra tình trạng nội bộ của cảnh của người dùng trên đám mây của đối tác.
- 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 cho <device(s)>.
- startRequiresTime : Để làm như vậy, bạn cần cho tôi biết bạn muốn <device(s)> hoạt động trong bao lâu.
- stillCoolingDown : <device(s)> vẫn đang hạ nhiệt.
- stillWarmingUp : <device(s)> <is/are> still warming up.
- streamUnavailable : Rất tiếc, có vẻ như <device(s)> hiện không thể phát trực tiếp.
- streamUnplayable : Rất tiếc, hiện tại tôi không thể phát trực tiếp từ <device(s)>. Mẹo: Xác minh tín hiệu WebRTC/HLS và đảm bảo URL của luồng phát là hợp lệ.
- 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 <device(s)> trong khoảng thời gian đó.
- tooManyFailedAttempts : Rất tiếc, bạn đã nhập sai quá nhiều lần. Vui lòng truy cập vào ứ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. Lưu ý: Thông thường, những lỗi này biểu hiện dưới dạng kết nối với thiết bị hoặc dịch vụ bị rớt. Ngoài ra, nếu không thể mở kết nối mới đến máy chủ.
- turnedOff , deviceTurnedOff : <device(s)> <is/are> off right now.
- unableToLocateDevice : Tôi không thể tìm thấy <device(s)>. Mẹo: Kiểm tra kết nối cục bộ của thiết bị (Wi-Fi/Bluetooth).
- unknownFoodPreset : <device(s)> không hỗ trợ chế độ nấu đó.
- unlockFailure : Không mở khoá được <device(s)>. Mẹo: Kiểm tra xem có bị kẹt phần cứng, pin yếu hoặc nhập mã PIN không hợp lệ hay không.
- unpausableState : Không thể tạm dừng <device(s)> ngay bây giờ.
- userCancelled : ok
- valueOutOfRange : Không thể đặt <device(s)> thành nhiệt độ đó.
Báo cáo trạng thái trực tuyến và ngoại tuyến
Khi một thiết bị không có mạng, bạn nên báo cáo <code{"online": code="" dir="ltr" false}<="" translate="no"> cho Báo cáo trạng thái trong vòng 5 phút kể từ khi thiết bị có hành vi đó. Ngược lại, khi thiết bị trở lại trạng thái trực tuyến, bạn nên báo cáo <code{"online": code="" dir="ltr" translate="no" true}<=""> cho Báo cáo trạng thái trong vòng 5 phút kể từ khi thiết bị có hành vi đó. Bất cứ khi nào thiết bị kết nối mạng trở lại, đối tác phải báo cáo tất cả trạng thái hiện tại của thiết bị bằng cách sử dụng APIreportStateAndNotification.
Ví dụ này cho thấy một loại thiết bị light đang trực tuyến và báo cáo tất cả trạng thái hiện tại của thiết bị.
"requestId": "test-request-id",
"agentUserId": "agent-user-1",
"payload":{
"devices": {
"states": {
"device-id-1": {
"brightness": 65,
"on": true,
"online": true
}
"notifications": {},
}
}
}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 này 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à thiết bị mục tiêu) hoặc bằng cách trả về exceptionCode thích hợp (đối với thiết bị mục tiêu).
Ví dụ: nếu lưới lọc xơ vả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 thiết bị sắp hết pin nhưng chưa hết hẳn, bạn vẫn có thể thực thi lệnh nhưng nên cho người dùng biết rằng thiết bị sắp hết pin.
Nếu lệnh không thành công do ngoại lệ, thì trạng thái phải là "EXCEPTIONS" và các ngoại lệ phải được báo cáo bằ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 sắp hết 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" } }] } }
Trường hợp ngoại lệ không chặn (SUCCESS) về một thiết bị khác sử dụng StatusReport
Ví dụ sau đây là về việc bật hệ thống an ninh: Được rồi, tôi đang bậ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 liên quan 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í carbon monoxide trong <house name>.
- 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ể vào phòng đó. Vui lòng đưa <it/them> đế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)> hiện đang được bỏ qua.
- 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 <thiết bị> đang gặp trục trặc.
- 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 <house name>.
- 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)> phát hiện rò rỉ nước.