ข้อผิดพลาดและข้อยกเว้น

เอกสารนี้แสดงข้อผิดพลาดและข้อยกเว้นที่สนับสนุนอย่างเป็นทางการสำหรับอุปกรณ์สมาร์ทโฮม โปรดใช้รหัสข้อผิดพลาดและข้อยกเว้นเหล่านี้ในการตอบสนอง Intent หรือในการแจ้งเตือนหากคุณติดตั้งใช้งานไว้ เพื่อให้ Google Assistant แจ้งเตือนผู้ใช้ปลายทางเกี่ยวกับปัญหาที่เกี่ยวข้องกับคำสั่งหรือสถานะของอุปกรณ์ที่ระบุ หากคำตอบมีการจัดรูปแบบที่ไม่ถูกต้องหรือ errorCode Google Assistant จะแสดงข้อความแสดงข้อผิดพลาดทั่วไปให้แก่ผู้ใช้ เช่น "ขออภัย อุปกรณ์ไม่พร้อมใช้งานในขณะนี้"

ข้อผิดพลาด

คุณควรส่งคืนรหัสข้อผิดพลาดเมื่อปัญหาทำให้คำขอการรันหรือคำขอค้นหาล้มเหลว เช่น หากล็อกประตูติดอยู่และไม่สามารถล็อกหรือปลดล็อกได้ ระบบควรแสดงข้อผิดพลาดเกี่ยวกับสถานะนี้ให้ผู้ใช้ทราบ

สามารถแนบรหัสข้อผิดพลาดได้ที่ระดับอุปกรณ์หรือที่ระดับส่วนกลาง เช่น หากผู้ใช้มีไฟหลายดวงจากผู้ให้บริการรายหนึ่งและมีฮับควบคุมอยู่ เมื่อผู้ใช้ขอให้ปิดไฟทุกดวง ผู้ให้บริการอาจแสดงข้อผิดพลาดระดับอุปกรณ์หากไฟดวงเดียวออฟไลน์อยู่ หรือมีข้อผิดพลาดระดับส่วนกลางหากฮับทั้งเครื่องออฟไลน์อยู่และไม่สามารถควบคุมไฟได้ หากอุปกรณ์ทุกเครื่องออฟไลน์อยู่ ก็จะไม่มีความแตกต่างกันระหว่างการใช้ข้อผิดพลาดระดับสากลหรือระดับอุปกรณ์ เมื่ออุปกรณ์ออฟไลน์อยู่ คุณควรรายงานสถานะ {"online": false} ใน reportState แม้ว่าจะส่งคืนรหัสข้อผิดพลาด deviceOffline ก็ตาม

โดยสรุปได้ดังนี้

  • ข้อผิดพลาดระดับส่วนกลาง: อุปกรณ์ทั้งหมดในการตอบสนองมีข้อผิดพลาดเดียวกัน
  • ข้อผิดพลาดระดับท้องถิ่น: การตอบสนองแบบผสมที่มีข้อผิดพลาดและกรณีสำเร็จ

ข้อผิดพลาดระดับส่วนกลาง

ข้อมูลโค้ด 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 ที่เกี่ยวข้องในอุปกรณ์

  • topLightEffectsDuration : นานกว่าระยะเวลาสูงสุด 1 ชั่วโมง โปรดลองอีกครั้ง
  • topTargetTimerDuration : ฉันตั้งค่า <device(s)> ได้สูงสุด <time period> เท่านั้น
  • actionNotavailable : ขออภัย ดูเหมือนว่าตอนนี้จะยังทำไม่ได้
  • actionUnavailablewhenRunning : <device(s)> <is/are> กำลังทำงานตอนนี้ ก็เลยเปลี่ยนแปลงอะไรไม่ได้
  • ติดอาวุธแล้ว : <device(s)> <is/are> เปิดอยู่แล้ว
  • readyAtMax : <device(s)> <is/are> ตั้งเป็นอุณหภูมิสูงสุดแล้ว
  • withAtMin : ตั้งอุณหภูมิต่ำสุด<device(s)> <is/are> แล้ว
  • ปิดแล้ว : ปิด<device(s)> <is/are> แล้ว
  • ปิดระบบแล้ว : ปิดระบบ<device(s)> <is/are> แล้ว
  • อยู่บนแท่นชาร์จแล้ว : ชาร์จ<device(s)> <is/are> แล้ว
  • alreadyInState : <device(s)> <is/are> อยู่ในสถานะนั้นแล้ว
  • ล็อกแล้ว : <device(s)> <is/are> ล็อกอยู่แล้ว
  • ปิดไปแล้ว : ปิด<device(s)> <is/are> แล้ว
  • เปิดแล้ว : เปิด<device(s)> <is/are> แล้ว
  • เปิดอยู่แล้ว : <device(s)> <is/are> เปิดอยู่แล้ว
  • หยุดชั่วคราวแล้ว : <device(s)> <is/are> หยุดชั่วคราวแล้ว
  • เริ่มแล้ว : <device(s)> <is/are> เริ่มแล้ว
  • หยุดแล้ว : <device(s)> <is/are> หยุดทำงานแล้ว
  • ปลดล็อกแล้ว : ปลดล็อก<device(s)> <is/are> แล้ว
  • ambiguousZoneName : ขออภัย <device(s)> ระบุโซนที่คุณหมายถึงไม่ได้ โปรดตรวจสอบว่าโซนมีชื่อไม่ซ้ำกันแล้วลองอีกครั้ง
  • amountAboveLimit : จำนวนมากกว่าที่ <device(s)> รองรับได้
  • appLaunchFailed : ขออภัย เปิด <app name> ใน <device(s)> ไม่สำเร็จ
  • armFailure : เปิดระบบ <device(s)> ไม่ได้
  • armLevelAddressed : ฉันไม่แน่ใจว่าควรตั้งค่า <device(s)> เป็นระดับไหน ลองพูดว่า "ตั้งค่า <อุปกรณ์> เป็น <ความปลอดภัยต่ำ>" หรือ "ตั้งค่า <อุปกรณ์> เป็น <ความปลอดภัยสูง>"
  • authFailure : ดูเหมือนว่าจะติดต่อ <device(s)> ไม่ได้ โปรดลองตรวจสอบแอปเพื่อดูว่าตั้งค่า <อุปกรณ์/อุปกรณ์> <is/are> เรียบร้อยแล้ว
  • BagFull : <device(s)> <has/have> <aสำหรับอุปกรณ์หนัก/ถุงแบบเต็ม> โปรดล้าง <it/them> ออก แล้วลองอีกครั้ง
  • bottomLightEffectsDuration : น้อยกว่าระยะเวลาขั้นต่ำที่ 5 นาที โปรดลองอีกครั้ง
  • bottomTimerDuration : ฉันตั้งค่า <device(s)> เป็นเวลาสั้นๆ ขนาดนั้นไม่ได้ โปรดลองอีกครั้ง
  • binFull : <device(s)> <has/have> <a Full bin/full bins>
  • cancelArmingRestricted : ขออภัย ฉันยกเลิกการเปิดระบบ <device(s)> ไม่ได้
  • cancelTooLate : ขออภัย ยกเลิกไม่ทันแล้ว ให้ใช้ <device(s)> หรือแอปแทน
  • channelSwitchFailed : ขออภัย เปลี่ยนเป็นช่อง <ชื่อช่อง> ไม่สำเร็จ โปรดลองอีกครั้งในภายหลัง
  • ปัญหาเกี่ยวกับที่ชาร์จ : ขออภัย ดูเหมือนว่า <อุปกรณ์> <มี> <a ปัญหาเกี่ยวกับที่ชาร์จ/ปัญหาที่ชาร์จ>
  • comInsertFailed : ประมวลผลคำสั่งสำหรับ <device(s)> ไม่ได้
  • แบตเตอรี่หมด : <อุปกรณ์> <มี/มี> <แบตเตอรี่หมด/แบตเตอรี่หมด>
  • องศาOutOfRange : องศาที่ขออยู่นอกช่วงของ <device(s)>
  • deviceAlert needAssistance : <device(s)> <has/have> การแจ้งเตือนที่ใช้งานอยู่ และ <need(s)> ความช่วยเหลือของคุณ
  • deviceAtExtremeTemperature : <อุปกรณ์> <is/are> ที่ <an อุณหภูมิสูงสุด/อุณหภูมิสูงสุด>
  • deviceBusy : ขอโทษด้วย ดูเหมือน <device(s)> กําลังทำอะไรบางอย่างอยู่ตอนนี้
  • deviceCharging : ขออภัย ดูเหมือนว่า <device(s)> จะทำแบบนั้นไม่ได้เพราะกำลังชาร์จ (ha_shared.Its theyre size=$item.devices.total_device_count)
  • deviceCloggle : ขออภัย ดูเหมือน <device(s)> จะอุดตัน
  • deviceDevicePauseing : <device(s)> กำลังจ่ายอาหารอยู่ตอนนี้
  • deviceDoorOpen : ประตูเปิดอยู่ใน <device(s)> โปรดปิดแล้วลองอีกครั้ง
  • deviceHandleClosed : แฮนเดิลปิดอยู่ใน <device(s)> โปรดเปิดแฮนเดิลแล้วลองอีกครั้ง
  • deviceJammingDetected : <device(s)> <is/are> ติด
  • deviceLidOpen : ฝาเปิดอยู่ใน <device(s)> โปรดปิดแล้วลองอีกครั้ง
  • devicedeviceRepair : <device(s)> <need(s)> ที่ต้องซ่อม โปรดติดต่อตัวแทนจำหน่ายที่ให้บริการในพื้นที่
  • deviceNotDocked : ขออภัย ดูเหมือนว่าจะชาร์จ <device(s)> <ไม่อยู่/ไม่ได้> อยู่บนแท่นชาร์จ โปรดจอด <it/them> แล้วลองอีกครั้ง
  • deviceNotFound : <device(s)> <is/are> ไม่พร้อมใช้งาน คุณอาจต้องลองตั้งค่า <it/them>อีกครั้ง
  • deviceNotMounted : ขอโทษนะ ดูเหมือนว่า <device(s)> จะทำแบบนั้นไม่ได้เพราะไม่ได้ติดตั้ง <it/their> <is/are>
  • deviceNot Ready : <device(s)> <is/are> ไม่พร้อมใช้งาน
  • deviceStuck : <device(s)> <is/are> ค้างและต้องการความช่วยเหลือจากคุณ
  • มีการดัดแปลงอุปกรณ์ : <device(s)> <ได้รับ/เคย>ถูกดัดแปลง
  • deviceThermalShutdown : ขออภัย ดูเหมือนว่า <device(s)> จะปิดลงเนื่องจากอุณหภูมิสูงหรือต่ำเกินไป
  • directResponseOnlyUnreachable : <device(s)> <doesn't/don't> รองรับรีโมตคอนโทรล
  • dearmFailure : ปิดระบบ <device(s)> ไม่ได้
  • DisreteOnlyOpenClose : ขออภัย <device(s)> เปิดหรือปิดจนสุดได้เท่านั้น
  • DispenseAmountAboveLimit : <device(s)> ไม่สามารถจ่ายอาหารจำนวนมากได้
  • depenseAmount belowLimit : <device(s)> ไม่สามารถจ่ายจำนวนเงินน้อยขนาดนี้ได้
  • DispenseAmountRemainingExceeded : <device(s)> มี <dispense item> ไม่เพียงพอที่จะดำเนินการดังกล่าว
  • DispenseFractionalAmountNotSupported : <device(s)> ไม่สามารถจ่ายเศษส่วนของ <dispense item>
  • DispenseFractionalUnitNotSupported : <device(s)> ไม่รองรับเศษส่วนของหน่วยนั้นสำหรับ <dispense item>
  • dispenseUnitNotSupported : <device(s)> ไม่รองรับหน่วยนั้นสำหรับ <dispense unit>
  • doorClosedTooLong : เปิดประตู <device(s)> มาสักพักแล้ว โปรดเปิดประตู ดูให้แน่ใจว่ามีของอยู่ในนั้นแล้วลองอีกครั้ง
  • riskHeatOn : <อุปกรณ์> <is/are> ในโหมดฉุกเฉิน จึงต้องปรับ <it/มัน> เอง
  • แบตเตอรี่ชำรุด : <อุปกรณ์> <มี/มี> <แบตเตอรี่ที่มีข้อบกพร่อง/แบตเตอรี่เสีย>
  • floorUnreachable : <device(s)> เข้าถึงห้องนั้นไม่ได้ โปรดย้าย <it/them>ไปไว้ที่ชั้นที่ถูกต้องแล้วลองอีกครั้ง
  • FunctionNotSupported : จริงๆ แล้ว <device(s)> <ไม่/ไม่รองรับ> ฟังก์ชันนั้น
  • genericDispenseNotSupported : ฉันจำเป็นต้องทราบว่าคุณต้องการจ่ายอะไร โปรดลองอีกครั้งด้วยชื่อของไอเทม
  • HardError : ขออภัย มีบางอย่างผิดพลาดทำให้ฉันควบคุมอุปกรณ์สมาร์ทโฮมไม่ได้
  • HardError : ขออภัย มีบางอย่างผิดพลาดทำให้ฉันควบคุมอุปกรณ์สมาร์ทโฮมไม่ได้
  • inAutoMode : ตอนนี้ <device(s)> <is/are> ตั้งค่าเป็นโหมดอัตโนมัติ ถ้าจะปรับอุณหภูมิ คุณต้องเปลี่ยนไปใช้โหมดอื่น<it/them>
  • inAwayMode : ขณะนี้<device(s)> <is/are> ตั้งค่าเป็นโหมดไม่อยู่ หากต้องการควบคุมตัวควบคุมอุณหภูมิ คุณจะต้องสลับเป็นโหมดอยู่บ้านด้วยตนเองโดยใช้แอป Nest ในโทรศัพท์ แท็บเล็ต หรือคอมพิวเตอร์
  • inDryMode : ตอนนี้<device(s)> <is/are> ตั้งค่าเป็นโหมดแห้ง ถ้าจะปรับอุณหภูมิ คุณต้องเปลี่ยนไปใช้โหมดอื่น<it/them>
  • inEcoMode : ตอนนี้<device(s)> <is/are> ตั้งค่าเป็นโหมดอีโค ถ้าจะปรับอุณหภูมิ คุณต้องเปลี่ยนไปใช้โหมดอื่น<it/them>
  • inFanOnlyMode : ตอนนี้ตั้ง<device(s)> <is/are> เป็นโหมดพัดลมเท่านั้น ถ้าจะปรับอุณหภูมิ คุณต้องเปลี่ยนไปใช้โหมดอื่น<it/them>
  • inHeatOrCool : <device(s)> <is/are>ไม่ได้อยู่ในโหมดทำความร้อน/ทำความเย็น
  • inHumidifierMode : ตอนนี้ตั้ง<device(s)> <is/are> เป็นโหมดเครื่องทำความชื้น ถ้าจะปรับอุณหภูมิ คุณต้องเปลี่ยนไปใช้โหมดอื่น<it/them>
  • inOffMode : ตอนนี้ <is/are> <device(s)> ปิดอยู่ หากต้องการเปลี่ยนอุณหภูมิ คุณจะต้องเปลี่ยนโหมด <it/them> เป็นโหมดอื่น
  • inPurifierMode : ตอนนี้ตั้ง<device(s)> <is/are> เป็นโหมดฟอกอากาศ ถ้าจะปรับอุณหภูมิ คุณต้องเปลี่ยนไปใช้โหมดอื่น<it/them>
  • inSleepMode : <device(s)> <is/are> ในโหมดสลีป โปรดลองอีกครั้งในภายหลัง
  • in SoftwareUpdate : <device(s)> <is/are> ขณะนี้กำลังอัปเดตซอฟต์แวร์
  • lockFailure : ล็อก <device(s)> ไม่ได้
  • LockState : <device(s)> <is/are> ล็อกอยู่
  • LockToRange : อุณหภูมินั้นอยู่นอกช่วงที่ล็อกไว้ใน <device(s)>
  • แบตเตอรี่ต่ำ : <อุปกรณ์> <มี/แบตเตอรี่เหลือน้อย>
  • maxSettingReached : <device(s)> <is/are> ตั้งค่าไว้เป็นสูงสุดแล้ว
  • maxSpeedReached : <device(s)> <is/are> ตั้งค่าเป็นความเร็วสูงสุดแล้ว
  • minSettingReached : <device(s)> <is/are> ตั้งค่าไว้เป็นการตั้งค่าต่ำสุดอยู่แล้ว
  • minSpeedReached : <device(s)> <is/are> ตั้งค่าเป็นความเร็วขั้นต่ำอยู่แล้ว
  • MonitoringServiceConnectionLost : <device(s)> <has/have> <its/their> การเชื่อมต่อ <its/their> กับบริการตรวจสอบ
  • needไฟล์แนบ : ขออภัย ดูเหมือนว่า <device(s)> <is/are> จะไม่มีไฟล์แนบที่จำเป็น โปรดใส่โค้ดใหม่แล้วลองอีกครั้ง
  • needBin : ขออภัย ดูเหมือนถัง <device(s)> <is/are> หายไป โปรดใส่โค้ดใหม่แล้วลองอีกครั้ง
  • needPads : <device(s)> <need(s)> แผ่นใหม่
  • need SoftwareUpdate : <device(s)> <need(s)> การอัปเดตซอฟต์แวร์
  • needWater : <device(s)> <need(s)> น้ำ
  • networkProfileNotRecognized : ขออภัย ฉันไม่รู้จัก "<network profile>" ใน <device(s)>
  • networkSpeedTestInProgress : ฉันกำลังทดสอบ <network> <speed/speeds>> อยู่แล้ว
  • noavailableApp : ขออภัย ดูเหมือนว่า <ชื่อแอป> จะไม่พร้อมใช้งาน
  • noavailableChannel : ขออภัย ดูเหมือนว่าช่อง <channel name> จะไม่พร้อมใช้งาน
  • noChannelSubscription : ขออภัย ตอนนี้คุณยังไม่ได้ติดตามช่อง <channel name>
  • noTimerExists : ขอโทษนะ ดูเหมือนจะไม่ได้ตั้งตัวจับเวลาไว้ใน <device(s)>
  • ไม่รองรับ : ขออภัย โหมดนั้นไม่พร้อมใช้งานใน <device(s)>
  • ตรวจพบสิ่งกีดขวาง : <device(s)> ตรวจพบสิ่งกีดขวาง
  • ออฟไลน์ , deviceOffline : ขออภัย ดูเหมือนว่า <device(s)> <is/are> จะไม่พร้อมใช้งานในขณะนี้
  • onrequiredsMode : โปรดระบุโหมดที่ต้องการเปิด
  • รหัสผ่านไม่ถูกต้อง : ขออภัย ดูเหมือนว่า PIN จะไม่ถูกต้อง
  • percentOutOfRange : ขออภัย ฉันตั้งค่า <device(s)> เป็น <percent> ไม่ได้
  • PINไม่ถูกต้อง : (รหัสผ่านไม่ถูกต้อง)
  • RainDetected : ฉันไม่ได้เปิด <device(s)> เนื่องจากตรวจพบฝน
  • ใกล้เกินไป : ช่วงนั้นอยู่ใกล้ช่วง Heat-Cool ของ <device(s)> มากเกินไป โปรดเลือกช่วงอุณหภูมิที่อยู่ห่างจากช่วง Heat-Cool มากกว่านี้
  • ต้องลิงก์อีกครั้ง : ขออภัย บัญชีน่าจะเกิดข้อผิดพลาดบางอย่าง ใช้แอป Google Home หรือ Assistant เพื่อลิงก์ <device(s)> อีกครั้ง
  • RemoteSetDisabled :
    • พารามิเตอร์ที่ไม่บังคับ errorCodeReason
    • currentlyArmed - ขออภัย เนื่องจากการรักษาความปลอดภัยเริ่มทำงานแล้ว คุณจึงต้องใช้ <device(s)> หรือแอปเพื่อทำการเปลี่ยนแปลง
    • remoteUnlockNotAllowed - ขอโทษด้วย ฉันปลดล็อก <device(s)> จากระยะไกลไม่ได้
    • remoteControlOff - การทำงานนี้ถูกปิดใช้งานอยู่ โปรดเปิดใช้รีโมตคอนโทรลใน <device(s)> แล้วลองอีกครั้ง
    • childSafetyModeActive - ระบบปิดใช้การดำเนินการนั้นใน <device(s)> ขณะเปิดใช้งานโหมดปลอดภัยสำหรับเด็ก
  • roomOnDifferentFloors : <device(s)> เข้าถึงห้องดังกล่าวไม่ได้เนื่องจากอยู่คนละชั้น
  • safetyShutOff : <อุปกรณ์> <is/are> อยู่ในโหมด Safety Shut-Off จึงต้องทำการปรับด้วยตนเอง
  • sceneCannotBeApplied : ขออภัย ใช้ <device(s)> ไม่ได้
  • SecurityRestriction : <device(s)> <มี/มีข้อจำกัดด้านความปลอดภัย
  • SoftwareUpdateNotavailable : ขออภัย ไม่มีการอัปเดตซอฟต์แวร์ใน <device(s)>
  • startRequestsTime : ถ้าจะทำอย่างนั้น คุณต้องบอกว่าจะใช้งาน <device(s)> นานแค่ไหน
  • tillCoolingDown : <device(s)> <is/are> ยังคงเย็นลงอยู่
  • tillWarmingUp : <device(s)> <is/are> ยังอุ่นเครื่องอยู่
  • สตรีมไม่พร้อมใช้งาน : ขออภัย ดูเหมือนว่าขณะนี้สตรีมไม่พร้อมใช้งานจาก <device(s)>
  • StreamUnplayable : ขออภัย ตอนนี้ยังเล่นสตรีมจาก <device(s)> ไม่ได้
  • tankEmpty : <อุปกรณ์> <มี/มี> <ถังเปล่า/ถังเปล่า> ใส่น้ำ <ถัง/ถังนั้น> เสร็จแล้ว แล้วลองอีกครั้ง
  • targetAlreadyReached : ขออภัย ดูเหมือนว่าจะเป็นอุณหภูมิปัจจุบันอยู่แล้ว
  • timerValueOutOfRange : ตั้งค่า <device(s)> ในช่วงเวลาดังกล่าวไม่ได้
  • ManyFailedAttempts : ขออภัย ดำเนินการไม่สำเร็จหลายครั้งเกินไป โปรดไปที่แอปของอุปกรณ์เพื่อดําเนินการดังกล่าวให้เสร็จสิ้น
  • transientError : ขออภัย มีบางอย่างผิดพลาดในการควบคุม <device(s)> โปรดลองอีกครั้ง
  • off , deviceTurnedOff : <device(s)> <is/are> ปิดอยู่ในขณะนี้
  • availableToLocateDevice : ฉันค้นหา <device(s)> ไม่เจอ
  • UnknownFoodPreset : <device(s)>ไม่รองรับการตั้งค่าอาหารล่วงหน้าดังกล่าว
  • UnlockFailure : ปลดล็อก <device(s)> ไม่ได้
  • unpaavailableState : หยุดชั่วคราว <device(s)> ไม่ได้ในขณะนี้
  • userCancelled : ok
  • valueOutOfRange : <device(s)> ตั้งค่าเป็นอุณหภูมินั้นไม่ได้

ข้อยกเว้น

คุณควรส่งคืนข้อยกเว้นเมื่อมีปัญหาหรือการแจ้งเตือนที่เชื่อมโยงกับคำสั่ง คำสั่งนี้อาจสำเร็จหรือล้มเหลว

หากคำสั่งสำเร็จ (สถานะ = "สำเร็จ") ให้รายงานข้อยกเว้นโดยใช้ลักษณะ 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"
      }
    }]
  }
}

ข้อยกเว้นที่ไม่บล็อก (สำเร็จ) เกี่ยวกับอุปกรณ์อื่นโดยใช้ StatusReport

ตัวอย่างการเปิดใช้งานระบบรักษาความปลอดภัย: การเปิดระบบรักษาความปลอดภัย หน้าต่างด้านหน้าเปิดอยู่

{
  "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สำหรับอุปกรณ์หนัก/ถุงแบบเต็ม> โปรดล้าง <it/them> ออก แล้วลองอีกครั้ง
  • binFull : <device(s)> <has/have> <a Full bin/full bins>
  • CarbonMonoxideDetected : ตรวจพบคาร์บอนมอนอกไซด์ใน <ชื่อบ้าน>
  • deviceAtExtremeTemperature : <อุปกรณ์> <is/are> ที่ <an อุณหภูมิสูงสุด/อุณหภูมิสูงสุด>
  • deviceJammingDetected : <device(s)> <is/are> ติด
  • deviceMoved : ย้าย<device(s)> <was/were> แล้ว
  • deviceOpen : <device(s)> <is/are> เปิดอยู่
  • มีการดัดแปลงอุปกรณ์ : <device(s)> <ได้รับ/เคย>ถูกดัดแปลง
  • deviceUnplugged : <device(s)> <is/are> ไม่ได้เสียบปลั๊ก
  • floorUnreachable : <device(s)> เข้าถึงห้องนั้นไม่ได้ โปรดย้าย <it/them>ไปไว้ที่ชั้นที่ถูกต้องแล้วลองอีกครั้ง
  • ฮาร์ดแวร์ล้มเหลว : <อุปกรณ์> <มี/มีปัญหา> ฮาร์ดแวร์
  • in SoftwareUpdate : <device(s)> <is/are> ขณะนี้กำลังอัปเดตซอฟต์แวร์
  • ข้ามแล้ว : ข้าม<device(s)> <is/are> อยู่ในขณะนี้
  • แบตเตอรี่ต่ำ : <อุปกรณ์> <มี/แบตเตอรี่เหลือน้อย>
  • MotionDetected : <device(s)> <detect(s)> การเคลื่อนไหว
  • needPads : <device(s)> <need(s)> แผ่นใหม่
  • need SoftwareUpdate : <device(s)> <need(s)> การอัปเดตซอฟต์แวร์
  • needWater : <device(s)> <need(s)> น้ำ
  • networkJammingDetected : การเชื่อมต่อเครือข่ายในบ้านกับ <device(s)> ทำงานไม่ถูกต้อง
  • noIssuesReported : <device(s)> รายงานว่าไม่พบปัญหา
  • roomOnDifferentFloors : <device(s)> เข้าถึงห้องดังกล่าวไม่ได้เนื่องจากอยู่คนละชั้น
  • runCycleFinished : <device(s)> <has/have> ทำงานเสร็จแล้ว
  • SecurityRestriction : <device(s)> <มี/มีข้อจำกัดด้านความปลอดภัย
  • SmokeDetected : ตรวจพบควันใน <ชื่อบ้าน>
  • tankEmpty : <อุปกรณ์> <มี/มี> <ถังเปล่า/ถังเปล่า> ใส่น้ำ <ถัง/ถังนั้น> เสร็จแล้ว แล้วลองอีกครั้ง
  • usingCellularBackup : <device(s)> <is/are> กำลังใช้ฟีเจอร์ใช้อินเทอร์เน็ตมือถือเป็นเครือข่ายสำรอง
  • WaterLeakDetected : <อุปกรณ์> <detect(s)> น้ำรั่ว