Chào mừng bạn đến với Trung tâm nhà phát triển Google Home, điểm đến mới để tìm hiểu cách phát triển các hành động nhà thông minh. Lưu ý: Bạn sẽ tiếp tục xây dựng các hành động trong bảng điều khiển Actions.

Lỗi và ngoại lệ

Tài liệu này liệt kê các lỗi và trường hợp ngoại lệ được hỗ trợ chính thức cho các thiết bị nhà thông minh. Vui lòng sử dụng các mã lỗi và ngoại lệ nhất định này trong phản hồi ý định hoặc trong thông báo nếu bạn đã triển khai mã này để 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 không chính xác hoặc errorCode, Trợ lý Google sẽ hiển thị cho người dùng một thông báo lỗi chung, chẳng hạn như "Rất tiếc, hiện tại, thiết bị chưa có sẵn".

Lỗi

Bạn nên trả về mã lỗi khi vấn đề khiến thực thi hoặc yêu cầu truy vấn thất bại. Ví dụ: nếu khoá cửa bị kẹt và không khoá được hoặc không khoá, thì người dùng sẽ được trả về lỗi về trạng thái này.

Mã lỗi có thể được đính kèm ở cấp thiết bị hoặc ở cấp toàn cầu. Ví dụ: nếu người dùng có nhiều đèn từ một nhà cung cấp và các thiết bị đó do một trung tâm điều khiển, 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 toàn cục nếu toàn bộ trung tâm của họ ở chế độ ngoại tuyến và không thể điều khiển đèn. Nếu tất cả các thiết bị đều không có kết nối mạng, sẽ không có sự khác biệt giữa việc sử dụng lỗi chung hoặc ở cấp độ thiết bị. Khi thiết bị không có kết nối mạng, bạn nên báo cáo trạng thái {"online": false} trong reportState ngay cả khi bạn trả về mã lỗi deviceOffline.

Tóm tắt:

  • Lỗi cấp toàn cục: tất cả cá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 hỗn hợp với lỗi và trường hợp thành công

Lỗi cấp toàn cầu

Đoạn mã JSON sau đây cho thấy cách bạn trả về các lỗi cấp toàn cục trong phản hồi QUERY hoặc EXECUTE.

Một ví dụ về lỗi deviceOffline toàn cục do trung tâm thực hiện việc ngoại tuyến:

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "errorCode": "deviceOffline",
    "status" : "ERROR"
  }
}

Dưới đây là một ví dụ về lỗi inSoftwareUpdate toàn cục do trung tâm cập nhật:

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "errorCode": "inSoftwareUpdate",
    "status" : "ERROR"
  }
}

Lỗi cấp thiết bị

QUERY câu trả lời

Đ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"
      }
    }
  }
}

Thực thi phản hồi

Đoạn mã JSON sau đây cho biết cách bạn trả về các lỗi ở cấp thiết bị trong phản hồi EXECUTE (Thực thi chính sách).

{
  "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 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"
          }
        }
      }
    }
  }
}

Phản hồ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 sẽ tạo TTS được liên kết trên thiết bị.

  • abovemaximumLightEffectsDuration : Thời lượng vượt quá thời lượng tối đa 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.
  • action Đường hoạt động khi đang chạy : <device(s)> <is/are> hiện đang chạy, do đó, tôi không thể thực hiện bất kỳ thay đổi nào.
  • đã bật : <device(s)> <is/are> đã trang bị.
  • alreadyAtMax : <device(s)> <is/are> đã được đặt ở nhiệt độ tối đa.
  • AtAtmin : <device(s)> <is/are> đã được đặt ở nhiệt độ tối thiểu.
  • alreadyClosed : <device(s)> <is/are> đã đóng.
  • đã tắt chuông báo động : <device(s)> <is/are> đã tắt chuông báo động.
  • alreadyDocked : <device(s)> <is/are> đã gắn vào đế sạc.
  • alreadyInState : <device(s)> <is/are> đã ở trạng thái đó.
  • đã bị khóa : <device(s)> <is/are> đã bị khóa.
  • alreadyOff : <device(s)> <is/are> đã tắt.
  • OnOn : <device(s)> <is/are> đã được bật.
  • alreadyOpen : <device(s)> <is/are> đã mở.
  • alreadyPaused : <device(s)> <is/are> đã tạm dừng.
  • đã bắt đầu : <device(s)> <is/are> đã bắt đầu.
  • alreadyĐã dừng : <device(s)> <is/are> đã dừng.
  • đã được mở khóa : <device(s)> <is/are> đã được mở khóa.
  • ParallelsZoneName : Rất tiếc, <device(s)> không thể xác định bạn muốn nói đến vùng nào. Vui lòng đảm bảo bạn đã đặt tên duy nhất cho các vùng rồi thử lại.
  • amountOfLimit : Số lượng vượt quá khả năng của <device(s)>.
  • appLaunchFailed : Rất tiếc, không chạy được <app name> trên <device(s)>.
  • armFailure : <không thể hiển thị(các) thiết bị>.
  • armLevelneeded : Tôi không chắc nên đặt <device(s)> ở cấp nào. Hãy thử nói "Đặt <thiết bị>> thành <bảo mật thấp>" hoặc "Đặt <thiết bị>> thành <bảo mật cao>"
  • authFailure : Tôi dường như không thể truy cập <device(s)>. Hãy thử kiểm tra ứng dụng để đảm bảo <device/devices> <is/are> của bạn được thiết lập đầy đủ.
  • bagFull : <device(s)> <has/have> <a full bag/full bag>. Vui lòng trống <it/them> và thử lại.
  • dướiMinimumMinimumEffectsDuration : Thời lượng tối thiểu phải 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>.
  • cancelArminghạn chế : Rất tiếc, tôi không thể hủy kích hoạt <device(s)>.
  • cancelTooLate : Rất tiếc, đã quá muộn để huỷ. Hãy dùng <device(s)> hoặc ứng dụng khác.
  • channelSwitchFailed : Rất tiếc, không chuyển được 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 issue issue/charger issues>.
  • commandInsertFailed : Không thể xử lý các lệnh cho <device(s)>.
  • deadBattery : <device(s)> <has/have> <a pin chết/pin chết>.
  • DegreeOutOfRange : Các mức độ yêu cầu nằm ngoài phạm vi của <device(s)>.
  • deviceAlertneedAssistance : <device(s)> <has/have> cảnh báo đang hoạt động và <need(s)> help của bạn.
  • deviceAtExtremeNhiệt độ : <device(s)> <is/are> ở <an nhiệt độ khắc nghiệt/cực độ>.
  • deviceBusy : Rất tiếc, có vẻ như <device(s)> hiện đang thực hiện một hành động nào đó.
  • deviceCharging : Rất tiếc, có vẻ như <device(s)> không thể làm điều đó vì (ha_shared.ItsWere size=$item.devices.total_device_count) đang sạc.
  • deviceClogging : Rất tiếc, có vẻ như <device(s)> đã bị lỗi.
  • thiết bị hiện đang phân phối : <device(s)> hiện đang phân phối thứ gì đó.
  • deviceDoorOpen : Cửa đang mở trên <device(s)>. Vui lòng đóng cửa và thử lại.
  • deviceHandleClosed : Tên người dùng đã đóng trên <device(s)>. Hãy mở rồi thử lại.
  • deviceJammingDetected : <device(s)> <is/are> bị kẹt.
  • deviceLidOpen : Nắp đang mở trên <device(s)>. Vui lòng đóng nắp và thử lại.
  • deviceneedFix : <device(s)> <need(s)> cần được sửa chữa. 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)> <isn't/aren't> không được gắn vào đế sạc. Vui lòng gắn <it/them> vào rồi thử lại.
  • deviceNotFound : <device(s)> <is/are>không dùng được. Bạn nên thử thiết lập lại <it/them>.
  • deviceNotMounted : Rất tiếc, có vẻ như <device(s)> không thể làm việc đó vì <it/họ> <is/are>chưa được gắn kết.
  • deviceNotReady : <device(s)> <is/are>chưa sẵn sàng.
  • bị kẹt thiết bị : <thiết bị>> <is/are> bị kẹt và cần bạn trợ giúp.
  • deviceTampered : <device(s)> <has/have> đã bị giả mạo.
  • deviceThermalShutdown : Rất tiếc, có vẻ như <device(s)> đã tắt do nhiệt độ quá cao.
  • DirectResponseOnlyUnreachable : <device(s)> <không/không> hỗ trợ chế độ điều khiển từ xa.
  • tắt vũ khí : Không thể tắt vũ khí cho <device(s)>.
  • discreteOnlyOpenClose : Rất tiếc, bạn chỉ có thể mở hoặc đóng <device(s)> tất cả các bước.
  • dispenseAmountOfLimit : <device(s)> không thể phân phối một lượng lớn như vậy.
  • dispenseAmountBottomLimit : <device(s)> không thể phân phối một lượng nhỏ như vậy.
  • dispenseAmountRemainingVượt quá : <device(s)> không có đủ <dispense item> để thực hiện điều đó.
  • dispenseFractionalAmountNotSupported : <device(s)> không thể phân phối các phân số 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 : Đã lâu chúng tôi chưa mở cửa trên <device(s)>. Vui lòng mở cửa. Đảm bảo bạn đã cho đồ vào bên trong, sau đó thử lại.
  • khẩn cấpHeatOn : <device(s)> <is/are> ở Chế độ nhiệt khẩn cấp, vì vậy <it/chúng> sẽ phải được điều chỉnh bằng tay.
  • lỗi pin : <thiết bị>> <has/have> <a pin/lỗi bị hỏng>.
  • floorKhông thể truy cập được : <device(s)> không thể vào phòng đó. Vui lòng di chuyển <it/them> thiết bị đến đúng tầng rồi thử lại.
  • functionNotSupported : Trên thực tế, <device(s)> <không/không> 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 với tên của mục.
  • 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à 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à bạn.
  • inAutoMode : <device(s)> <is/are> hiện được đặt ở chế độ tự động. Để thay đổi nhiệt độ, bạn cần chuyển sang <it/them> một chế độ khác.
  • inAwayMode : <device(s)> <is/are> hiện đang đặt ở chế độ vắng nhà. Để đ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> hiện được đặt ở chế độ khô. Để thay đổi nhiệt độ, bạn cần chuyển sang <it/them> một chế độ khác.
  • inEcoMode : <device(s)> <is/are> hiện được đặt ở chế độ thân thiện với môi trường. Để thay đổi nhiệt độ, bạn cần chuyển sang <it/them> một chế độ khác.
  • inFanOnlyMode : <device(s)> <is/are> hiện đang đặt ở chế độ chỉ quạt. Để thay đổi nhiệt độ, bạn cần chuyển sang <it/them> một chế độ khác.
  • inHeatOrCool : <device(s)> <is/are>không ở chế độ nhiệt/lạnh.
  • inHumidifierMode : <device(s)> <is/are> hiện được đặt ở chế độ tạo ẩm. Để thay đổi nhiệt độ, bạn cần chuyển sang <it/them> một chế độ khác.
  • inOffMode : <device(s)> <is/are> 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> hiện đang đặt ở chế độ lọc. Để thay đổi nhiệt độ, bạn cần chuyển sang <it/them> một chế độ khác.
  • inSleepMode : <device(s)> <is/are> ở chế độ ngủ. Vui lòng thử lại sau.
  • inSoftwareUpdate : <device(s)> <is/are> hiện đang cập nhật phần mềm.
  • lockFailure : <device(s)> không thể khoá được.
  • lockState : <device(s)> <is/are> hiện đã bị khoá.
  • lockToRange : Nhiệt độ đó nằm ngoài phạm vi bị khóa trên <device(s)>.
  • lowPin : <device(s)> <has/have> pin yếu.
  • maxSettingReached : <device(s)> <is/are> đã được đặt thành cài đặt cao nhất.
  • maxSpeedReached : <device(s)> <is/are> đã được đặt ở tốc độ tối đa.
  • minSettingReached : <device(s)> <is/are> đã được đặt thành cài đặt thấp nhất.
  • minSpeedReached : <device(s)> <is/are> đã được đặt ở tốc độ tối thiểu.
  • monitorServiceConnectionLost : <device(s)> <has/have> đã mất <its/your> kết nối với dịch vụ giám sát.
  • cần tệp đính kèm : 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 phụ kiện rồi thử lại.
  • needBin : Rất tiếc, có vẻ như <device(s)> <is/are> thiếu thùng. Vui lòng thay phụ kiện rồi thử lại.
  • needPads : <device(s)> <need(s)> new pads.
  • needSoftwareUpdate : <device(s)> <need(s)> một bản cập nhật cho phần mềm.
  • needWater : <device(s)> <need(s)> water.
  • networkProfileNotReceived : Rất tiếc, tôi không nhận ra "<network profile>" trên <device(s)>.
  • networkSpeedTestInProgress : Tôi đang kiểm tra <network> <speed/speeds>>.
  • noAvailableApp : Rất tiếc, có vẻ như <tên ứng dụng> không có.
  • noAvailableChannel : Rất tiếc, có vẻ như chưa có kênh <channel name>.
  • noChannelSubscribe : 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 áp dụng cho <device(s)>.
  • Đã phát hiện vật cản : <device(s)> đã phát hiện một vật cản.
  • ngoại tuyến , deviceOffline : Rất tiếc, có vẻ như <device(s)> <is/are>hiện chưa dùng được.
  • onRequirementsMode : Vui lòng chỉ định chế độ bạn muốn bật.
  • cụm mật khẩu không chính xác : 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>.
  • pinSai : (passphraseSai)
  • RainDetected : Tôi không mở <device(s)> vì đã phát hiện thấy mưa.
  • rangeTooClose : Những phạm vi đó quá gần đối với phạm vi Nhiệt-Lạnh cho <thiết_bị_>>. Chọn nhiệt độ cách xa hơn.
  • Bắt buộc lại : 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 sử dụng ứng dụng Trợ lý hoặc Google Home để liên kết lại <thiết bị>.
  • RemoteSetDisabled :
    • Thông số không bắt buộc errorCodeReason
    • currentlyArmedRấ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 để thực hiện thay đổi.
    • remoteUnlockNotAllowed - Rất tiếc, tôi không thể mở khóa <device(s)> từ xa.
    • remoteControlOff - Hành động đó hiện đã bị tắt. Vui lòng bật chế độ điều khiển từ xa trên <device(s)> rồi thử lại.
    • childSafetyModeActiveThao tác đó bị tắt trên <device(s)> khi chế độ an toàn cho trẻ em đang hoạt động.
  • RoomsOnOtherFloors : <device(s)> không thể vào những phòng đó vì những phòng này nằm trên các tầng khác nhau.
  • safetyShutOff : <device(s)> <is/are> đang ở chế độ Tắt an toàn, vì vậy <it/chúng> sẽ phải được điều chỉnh bằng tay.
  • Scenekhông thể áp dụng : Rất tiếc, không thể áp dụng <device(s)>.
  • securityrestriction : <device(s)> <has/have> hạn chế bảo mật.
  • softwareUpdateNotAvailable : Rất tiếc, không có bản cập nhật phần mềm nào trên <device(s)>.
  • startRequirementsTime : Để làm việc đó, bạn cần cho tôi biết bạn muốn chạy <device(s)> trong bao lâu.
  • stillCoolingDown : <device(s)> <is/are> vẫn hạ nhiệt.
  • stillWarmingUp : <device(s)> <is/are> vẫn đang khởi động.
  • Luồng không khả dụng : Rất tiếc, có vẻ như luồng hiện không có sẵn từ <device(s)>.
  • Luồng không thể phát : Rất tiếc, tôi không thể phát luồng từ <device(s)> tại thời điểm này.
  • tankEmpty : <device(s)> <has/have> <an Empty tank/empty tank>. Hãy điền vào <it/them> và thử lại.
  • targetĐã đạt đến : Rất tiếc, có vẻ như đó là nhiệt độ hiện tại.
  • timerValueOutOfRange : <device(s)> không thể được đặt trong khoảng thời gian đó.
  • too ManyFailedCố gắng : Rất tiếc, có quá nhiều lần thử 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.
  • turnOff , deviceTurnedOff : <device(s)> <is/are> đang tắt.
  • Không thể xác định thiết bị : Tôi không thể định vị <thiết bị>.
  • FoodFoodPreset : <device(s)> không hỗ trợ chế độ nấu đó.
  • unlockFailure : <device(s)> không thể mở khoá được.
  • unpausableState : Không thể tạm dừng <device(s)> ngay bây giờ.
  • người dùng đã hủy : ok
  • valueOutOfRange : <device(s)> không thể được đặt ở nhiệt độ đó.

Ngoại lệ

Bạn nên trả về 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 (status = "SUCCESS"), hãy báo cáo các ngoại lệ bằng cách sử dụng thuộc tính StatusReport (dành cho 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 (cho thiết bị mục tiêu).

Ví dụ: nếu màn hình máy sấy đã đầy, thì 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 cho họ về trạng thái này. Tương tự như vậy, khi thiết bị có mức pin thấp và chưa hết pin, bạn vẫn có thể thực hiện một lệnh, nhưng phải cho họ biết mức pin của thiết bị yếu.

Nếu lệnh không thành công do có 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ách sử dụng tính năng StatusReport.

Ngoại lệ không chặn (SUCCESS) về thiết bị mục tiêu

Ví dụ về cách khoá cửa:

Khóa cửa trước sắp hết pin. Tôi đang khóa 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 bằng cách sử dụng StatusReport

Ví dụ này là để bật hệ thống an ninh: Ok, đ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 cách sử dụ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 ngoại lệ sau sẽ tạo TTS được liên kết trên thiết bị.

  • bagFull : <device(s)> <has/have> <a full bag/full bag>. Vui lòng trống <it/them> và thử lại.
  • binFull : <device(s)> <has/have> <a full bin/full bins>.
  • carbonMonoxideDetected : Đã phát hiện thấy khí cacbon monoxit trong <tên nhà>.
  • deviceAtExtremeNhiệt độ : <device(s)> <is/are> ở <an nhiệt độ khắc nghiệt/cực độ>.
  • deviceJammingDetected : <device(s)> <is/are> bị kẹt.
  • deviceMoved : <device(s)> <was/were> đã chuyển.
  • deviceOpen : <device(s)> <is/are> mở.
  • deviceTampered : <device(s)> <has/have> đã bị giả mạo.
  • deviceUnpluged : <device(s)> <is/are> không cắm.
  • floorKhông thể truy cập được : <device(s)> không thể vào phòng đó. Vui lòng di chuyển <it/them> thiết bị đến đúng tầng rồi thử lại.
  • HardwareFailure : <device(s)> <has/have> sự cố phần cứng.
  • inSoftwareUpdate : <device(s)> <is/are> hiện đang cập nhật phần mềm.
  • isBypass : <device(s)> <is/are> hiện đang bị bỏ qua.
  • lowPin : <device(s)> <has/have> pin yếu.
  • MotionDetected : <device(s)> <detect(s)> Motion.
  • needPads : <device(s)> <need(s)> new pads.
  • needSoftwareUpdate : <device(s)> <need(s)> một bản cập nhật cho phần mềm.
  • needWater : <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)> đã báo cáo là không có vấn đề nào.
  • RoomsOnOtherFloors : <device(s)> không thể vào những phòng đó vì những phòng này nằm trên các tầng khác nhau.
  • runCycleHoàn tất : <device(s)> <has/have> chạy xong.
  • securityrestriction : <device(s)> <has/have> hạn chế bảo mật.
  • SmokeDetected : Đã phát hiện thấy khói trong <tên nhà>.
  • tankEmpty : <device(s)> <has/have> <an Empty tank/empty tank>. Hãy điền vào <it/them> và thử lại.
  • sử dụng dịch vụ di động sao lưu : <device(s)> <is/are> sử dụng tính năng sao lưu qua mạng di động.
  • waterLeakDetected : <device(s)> <detect(s)> rò rỉ nước.