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

เอกสารนี้แสดงข้อผิดพลาดและข้อยกเว้นที่สนับสนุนอย่างเป็นทางการสำหรับอุปกรณ์สมาร์ทโฮม โปรดใช้โค้ดข้อผิดพลาดและข้อยกเว้นที่ให้ไว้เหล่านี้ในการตอบสนองของ 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"
      }
    }
  }
}

ดำเนินการตอบกลับ

ข้อมูลโค้ด 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 ชั่วโมง โปรดลองอีกครั้ง
  • topTimerDuration : ฉันตั้งค่าได้สูงสุด <time period(s)> ไม่เกิน <time period> เท่านั้น
  • actionNotAvailable : ขออภัย ฉันดูเหมือนว่าจะทําแบบนั้นไม่ได้ในตอนนี้
  • actionUnavailableavailableGroups : <device(s)> <is/are> กำลังทำงานอยู่ ก็เลยเปลี่ยนแปลงอะไรไม่ได้
  • เปิดใช้ระบบแล้ว : <device(s)> <is/are> ติดตั้งแล้ว
  • readyAtMax : <อุปกรณ์> <is/are> ตั้งเป็นอุณหภูมิสูงสุดแล้ว
  • readyAtMin : <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)> ไม่ได้
  • armLevelRequireded : ฉันไม่แน่ใจว่าต้องตั้งค่า <device(s)> เป็นระดับใด ลองพูดว่า "ตั้งค่า <อุปกรณ์> เป็น <ความปลอดภัยในระดับต่ำ>" หรือ "ตั้งค่า <อุปกรณ์> เป็น <ความปลอดภัยระดับสูง>"
  • authFailure : ดูเหมือนจะเข้าถึง <device(s)> ไม่ได้ ลองตรวจสอบแอปเพื่อดูว่าตั้งค่า <device/devices> <is/are> ครบถ้วนแล้ว
  • BagFull : <device(s)> <has/have> <a full shoes/full box>. โปรดล้างข้อมูล <it/them> แล้วลองอีกครั้ง
  • bottomLightEffectsDuration : สั้นกว่าระยะเวลาขั้นต่ำที่ 5 นาที โปรดลองอีกครั้ง
  • belowminimumTimerDuration : ฉันตั้งค่า <device(s)> ในช่วงเวลาสั้นๆ ไม่ได้ โปรดลองอีกครั้ง
  • binFull : <device(s)> <has/have> <a full bin/full bins>
  • cancelArmingRestricted : ขออภัย ฉันยกเลิกการเปิดใช้งาน <device(s)> ไม่ได้
  • cancelTooLate : ขออภัย ยกเลิกไม่ทันแล้ว โปรดใช้ <device> หรือแอปแทน
  • channelSwitchFailed : ขออภัย เปลี่ยนเป็นช่อง <ชื่อช่อง> ไม่สำเร็จ โปรดลองอีกครั้งในภายหลัง
  • ปัญหาเกี่ยวกับที่ชาร์จ : ขออภัย ดูเหมือน <อุปกรณ์> <มี/มี> <a ที่ชาร์จ/ปัญหาเกี่ยวกับที่ชาร์จ>
  • CommandInsertFailed : ประมวลผลคำสั่งสำหรับ <device(s)> ไม่ได้
  • แบตเตอรี่หมด : <อุปกรณ์> <มี/มี> <แบตเตอรี่หมด/แบตเตอรี่หมด>
  • องศานอกช่วง : องศาที่ขออยู่นอกช่วงสำหรับ <device(s)>
  • deviceAlertneedAssistance : <device(s)> <has/have> การแจ้งเตือนที่ใช้งานอยู่และ <ต้องการความช่วยเหลือ> จากคุณ
  • deviceAtExtremeTemperature : <อุปกรณ์> <is/are> ที่ <อุณหภูมิสูงหรือต่ำเกินไป>
  • deviceBusy : ขออภัย ดูเหมือนว่า <device(s)> กำลังทำอะไรบางอย่างอยู่ตอนนี้
  • deviceCharging : ขออภัย ดูเหมือนว่า <device(s)> จะทำแบบนั้นไม่ได้เพราะกำลังชาร์จ (ha_shared.ItsHerere size=$item.devices.total_device_count)
  • deviceClogged : ขออภัย ดูเหมือน <device(s)> จะอุดตัน
  • device CurrentDispensing : <device(s)> กำลังจ่ายบางสิ่งอยู่ในขณะนี้
  • deviceDoorOpen : ประตูเปิดอยู่ใน <device(s)> โปรดปิดประตูแล้วลองอีกครั้ง
  • deviceHandleClosed : แฮนเดิลปิดอยู่ใน <device(s)> โปรดเปิดแล้วลองอีกครั้ง
  • deviceJammingDetected : <device(s)> <is/are> ติดขัด
  • deviceLidOpen : ฝาพับใน <device(s)> อยู่ โปรดปิดแล้วลองอีกครั้ง
  • deviceRequiredRepair : <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> ค้างและต้องการความช่วยเหลือ
  • อุปกรณ์ถูกดัดแปลง : <อุปกรณ์> <มี/เคย> ถูกดัดแปลง
  • deviceThermalShutdown : ขออภัย ดูเหมือน <device(s)> จะปิดลงเนื่องจากอุณหภูมิสูงหรือต่ำเกินไป
  • directResponseOnlyUnreachable : <device(s)> <ไม่/ไม่>>รองรับรีโมตคอนโทรล
  • disarmFailure : ปิดระบบ <device(s)> ไม่ได้
  • DisreteOnlyOpenClose : ขออภัย <device(s)> สามารถเปิดหรือปิดได้จนสุดเท่านั้น
  • DispenseAmountAboveLimit : <device(s)> จ่ายอาหารเยอะขนาดนั้นไม่ได้
  • DispenseAmountminimumLimit : <device(s)> จ่ายน้อยขนาดนั้นไม่ได้
  • dispenseAmountRemainingExceeded : <device(s)> มี <dispense item> ไม่เพียงพอที่จะดำเนินการดังกล่าว
  • dispenseFractionalAmountNotSupported : <device(s)> ไม่สามารถจ่ายเศษส่วนของ <dispense item>
  • dispenseFractionalUnitNotSupported : <device(s)> ไม่รองรับเศษส่วนของหน่วยนั้นสำหรับ <dispense item>
  • dispenseUnitNotSupported : <device(s)> ไม่รองรับหน่วยดังกล่าวสำหรับ <dispense item>
  • doorClosedTooLong : คุณไม่ได้เปิดประตูใน <device(s)> มาสักพักแล้ว โปรดเปิดประตู ดูให้แน่ใจว่ามีของอยู่ในนั้นแล้วลองอีกครั้ง
  • EmergencyHeatOn : <device(s)> <is/are> อยู่ในโหมด Emergency Heat ทำให้คุณ<it/their>ต้องปรับเอง
  • แบตเตอรี่เสีย : <อุปกรณ์> <มี/มี> <แบตเตอรี่เสีย/แบตเตอรี่เสีย>
  • เข้าถึงชั้นไม่ได้ : <device(s)> เข้าถึงห้องนั้นไม่ได้ โปรดย้าย <it/them>ไปที่ชั้นที่ถูกต้องแล้วลองอีกครั้ง
  • functionNotSupported : อันที่จริง <device(s)> <ไม่/ไม่ได้> รองรับฟังก์ชันดังกล่าว
  • generalDispenseNotSupported : ฉันจำเป็นต้องทราบว่าคุณต้องการจ่ายอะไร โปรดลองอีกครั้งด้วยชื่อของรายการ
  • HardError : ขออภัย มีบางอย่างผิดพลาดและฉันควบคุมอุปกรณ์ในบ้านไม่ได้
  • HardError : ขออภัย มีบางอย่างผิดพลาดและฉันควบคุมอุปกรณ์ในบ้านไม่ได้
  • inAutoMode : <device(s)> <is/are> ตั้งค่าเป็นโหมดอัตโนมัติ ถ้าจะเปลี่ยนอุณหภูมิก็ต้อง<ใช้>เปลี่ยนโหมด
  • inAwayMode : <device(s)> <is/are> ตั้งค่าเป็นโหมดไม่อยู่ ถ้าจะควบคุมตัวควบคุมอุณหภูมิ คุณจะต้องสลับเป็นโหมดอยู่บ้านด้วยตนเองโดยใช้แอป Nest ในโทรศัพท์ แท็บเล็ต หรือคอมพิวเตอร์
  • inDryMode : ขณะนี้<device(s)> <is/are> ตั้งค่าเป็นโหมดลดความชื้น ถ้าจะเปลี่ยนอุณหภูมิก็ต้อง<ใช้>เปลี่ยนโหมด
  • inEcoMode : <device(s)> <is/are> ตั้งค่าเป็นโหมดประหยัดพลังงาน ถ้าจะเปลี่ยนอุณหภูมิก็ต้อง<ใช้>เปลี่ยนโหมด
  • inFanOnlyMode : <device(s)> <is/are> ตั้งค่าเป็นโหมดพัดลมเท่านั้น ถ้าจะเปลี่ยนอุณหภูมิก็ต้อง<ใช้>เปลี่ยนโหมด
  • inHeatOrCool : <อุปกรณ์> <is/are>ไม่อยู่ในโหมดทำความร้อน/ทำความเย็น
  • inHumidifierMode : ตอนนี้<device(s)> <is/are> ตั้งค่าเป็นโหมดเครื่องทำความชื้น ถ้าจะเปลี่ยนอุณหภูมิก็ต้อง<ใช้>เปลี่ยนโหมด
  • inOffMode : <device(s)> <is/are> ปิดอยู่ ถ้าจะปรับอุณหภูมิก็จะต้องสลับ <it/them> เป็นโหมดอื่น
  • inPurifierMode : ขณะนี้<device(s)> <is/are> ตั้งค่าเป็นโหมดฟอกอากาศ ถ้าจะเปลี่ยนอุณหภูมิก็ต้อง<ใช้>เปลี่ยนโหมด
  • inSleepMode : <device(s)> <is/are> ในโหมดสลีป โปรดลองอีกครั้งภายหลัง
  • in SoftwareUpdate : <device(s)> <is/are> กำลังอยู่ในการอัปเดตซอฟต์แวร์
  • LockFailure : ล็อก <device(s)> ไม่ได้
  • LockState : <อุปกรณ์> <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> ขาดการเชื่อมต่อกับบริการตรวจสอบ
  • needAttach : ขออภัย ดูเหมือนว่า <device(s)> <is/are> ไม่มีไฟล์แนบที่จำเป็น โปรดใส่ถังผง แล้วลองอีกครั้ง
  • needBin : ขออภัย ดูเหมือน <device(s)> <is/are> จะไม่มีถังขยะ โปรดใส่ถังผง แล้วลองอีกครั้ง
  • NeedPads : <device(s)> <need(s)> แผ่นรองใหม่
  • ต้องอัปเดตซอฟต์แวร์ : <อุปกรณ์> <จำเป็น> ต้องอัปเดตซอฟต์แวร์
  • needWater : <device(s)> <need(s)>น้ำ
  • networkProfileNotRecognized : ขออภัย ฉันไม่รู้จัก "<network profile>" ใน <device(s)>
  • networkSpeedTestInProgress : ฉันทดสอบ <network> <speed/speeds>> อยู่แล้ว
  • noAvailableApp : ขออภัย ดูเหมือนว่า <ชื่อแอป> จะไม่พร้อมใช้งาน
  • noAvailableChannel : ขออภัย ดูเหมือนว่าช่อง <channel name> ไม่พร้อมให้บริการ
  • noChannelSubscription : ขออภัย คุณไม่ได้ติดตามช่อง <ชื่อช่อง> ในขณะนี้
  • noTimerExists : ขอโทษด้วย ดูเหมือนไม่ได้ตั้งตัวจับเวลาไว้ที่ <device(s)>.
  • ไม่รองรับ : ขออภัย โหมดนั้นใช้ไม่ได้กับ <device(s)>
  • การตรวจพบการกีดขวาง : <device(s)> ตรวจพบสิ่งกีดขวาง
  • ออฟไลน์ , deviceOffline : ขออภัย ดูเหมือนว่า <device(s)> <is/are> จะไม่พร้อมใช้งานในขณะนี้
  • onRequiredsMode : โปรดระบุโหมดที่ต้องการเปิด
  • รหัสผ่านไม่ถูกต้อง : ขออภัย ดูเหมือนว่า PIN จะไม่ถูกต้อง
  • percentOutOfRange : ขออภัย ตั้งค่า <device(s)> เป็น <percent> ไม่ได้
  • pinnofollow : (passphraseValid)
  • ตรวจพบฝน : ฉันไม่ได้เปิด <device(s)> เพราะตรวจพบฝนตก
  • rangeTooClose : อุปกรณ์อยู่ใกล้ช่วง Heat-Cool ของ <device>> มากเกินไป โปรดเลือกอุณหภูมิที่อยู่ห่างจากช่วง Heat-Cool มากกว่านี้
  • relinkRequired : ขออภัย ดูเหมือนว่าจะมีข้อผิดพลาดเกิดขึ้นกับบัญชีของคุณ ใช้แอป Google Home หรือ Assistant เพื่อลิงก์ <device(s)> อีกครั้ง
  • RemoteSetDisabled :
    • พารามิเตอร์ที่ไม่บังคับ errorCodeReason
    • currentlyArmed - ขออภัย การรักษาความปลอดภัยเริ่มทำงานแล้ว คุณต้องใช้ <device(s)> หรือแอปเพื่อทำการเปลี่ยนแปลงใดๆ
    • remoteUnlockNotAllowed - ขออภัย ฉันปลดล็อก <device(s)> จากระยะไกลไม่ได้
    • remoteControlOff - การดำเนินการนี้ปิดใช้อยู่ โปรดเปิดใช้รีโมตคอนโทรลใน <device(s)> แล้วลองอีกครั้ง
    • childSafetyModeActive - การดำเนินการนี้จะถูกปิดใช้ใน <device(s)> ขณะใช้งานโหมดปลอดภัยสำหรับเด็ก
  • ห้องพักOnDifferentFloors : <device(s)> เข้าถึงห้องเหล่านั้นไม่ได้เพราะอยู่คนละชั้น
  • safetyShutOff : <device(s)> <is/are> ในโหมด Safety Shut-Off คุณจึงต้องปรับเอง
  • ScnotBeApplied : ขออภัย ไม่สามารถใช้ <device(s)> ได้
  • ข้อจำกัดด้านความปลอดภัย : <อุปกรณ์> <มี/มี> ข้อจำกัดด้านความปลอดภัย
  • SoftwareUpdateNotAvailable : ขออภัย ไม่มีการอัปเดตซอฟต์แวร์ใน <device(s)>
  • startneedsTime : คุณจะต้องบอกระยะเวลาที่ต้องการเรียกใช้ <device(s)> เพื่อดำเนินการดังกล่าว
  • ยังเย็นลง : <device(s)> <is/are> ยังเย็นลง
  • ยังอุ่นเครื่อง : <device(s)> <is/are> ยังอุ่นเครื่องอยู่
  • streamUnavailable : ขออภัย ดูเหมือนว่าสตรีมจะไม่พร้อมใช้งานจาก <device(s)> ในขณะนี้
  • streamไม่ได้ : ขออภัย ฉันเล่นสตรีมจาก <device(s)> ไม่ได้ในขณะนี้
  • tankEmpty : <device(s)> <has/have> <ถังว่าง/ถังว่างเปล่า> โปรดเติม <it/them> แล้วลองอีกครั้ง
  • targetAlreadyReached : ขออภัย ดูเหมือนว่าจะเป็นอุณหภูมินั้นอยู่แล้ว
  • timeValueOutOfRange : ตั้งค่า <device(s)> สำหรับระยะเวลาดังกล่าวไม่ได้
  • tooManyFailedAttempts : ขออภัย คุณป้อนรหัสผ่านไม่สำเร็จหลายครั้งเกินไป โปรดไปที่แอปของอุปกรณ์เพื่อดำเนินการต่อให้เสร็จ
  • TransientError : ขออภัย มีบางอย่างผิดพลาดในการควบคุม <device(s)> โปรดลองอีกครั้ง
  • turnOff , deviceTurnedOff : <device(s)> <is/are> ปิดอยู่
  • notToLocateDevice : ฉันค้นหา <device(s)> ไม่เจอ
  • UnknownFoodPreset : <device(s)> ไม่รองรับค่าอาหารล่วงหน้านั้น
  • UnlockFailure : ปลดล็อก <device(s)> ไม่ได้
  • unpaavailableState : หยุด <device(s)> ชั่วคราวไม่ได้ในขณะนี้
  • userCancelled : ตกลง
  • valueOutOfRange : ตั้งค่า <device(s)> เป็นอุณหภูมินั้นไม่ได้

ข้อยกเว้น

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

หากคำสั่งประสบความสำเร็จ (สถานะ = "สำเร็จ") ให้รายงานข้อยกเว้นโดยใช้ลักษณะ StatusReport (สำหรับอุปกรณ์อื่นที่ไม่ใช่เป้าหมาย) หรือโดยการแสดง exceptionCode ที่เหมาะสม (สำหรับอุปกรณ์เป้าหมาย)

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

หากคำสั่งล้มเหลวเนื่องจากข้อยกเว้น สถานะควรเป็น "EXCEPTIONS" และควรรายงานข้อยกเว้นโดยใช้ Trait 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

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

{
  "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 full shoes/full box>. โปรดล้างข้อมูล <it/them> แล้วลองอีกครั้ง
  • binFull : <device(s)> <has/have> <a full bin/full bins>
  • Carbon MonoxideDetected : ตรวจพบคาร์บอนมอนอกไซด์ใน <house name>
  • deviceAtExtremeTemperature : <อุปกรณ์> <is/are> ที่ <อุณหภูมิสูงหรือต่ำเกินไป>
  • deviceJammingDetected : <device(s)> <is/are> ติดขัด
  • ย้ายแล้ว : <device(s)> <was/were>.
  • deviceOpen : <device(s)> <is/are> เปิดอยู่
  • อุปกรณ์ถูกดัดแปลง : <อุปกรณ์> <มี/เคย> ถูกดัดแปลง
  • deviceUnplugged : <device(s)> <is/are> ถอดปลั๊กแล้ว
  • เข้าถึงชั้นไม่ได้ : <device(s)> เข้าถึงห้องนั้นไม่ได้ โปรดย้าย <it/them>ไปที่ชั้นที่ถูกต้องแล้วลองอีกครั้ง
  • HardwareFailure : <device(s)> <has/have> ปัญหาด้านฮาร์ดแวร์
  • in SoftwareUpdate : <device(s)> <is/are> กำลังอยู่ในการอัปเดตซอฟต์แวร์
  • มีการข้าม : ข้าม<device(s)> <is/are> แล้ว
  • แบตเตอรี่ต่ำ : <อุปกรณ์> <มี/มี> แบตเตอรี่เหลือน้อย
  • ตรวจพบการเคลื่อนไหว : <device(s)> <detect(s)> Motion.
  • NeedPads : <device(s)> <need(s)> แผ่นรองใหม่
  • ต้องอัปเดตซอฟต์แวร์ : <อุปกรณ์> <จำเป็น> ต้องอัปเดตซอฟต์แวร์
  • needWater : <device(s)> <need(s)>น้ำ
  • networkJammingDetected : การเชื่อมต่อเครือข่ายในบ้านกับ <device(s)> ทำงานไม่ถูกต้อง
  • noIssuesReported : <device(s)> รายงานว่าไม่มีปัญหา
  • ห้องพักOnDifferentFloors : <device(s)> เข้าถึงห้องเหล่านั้นไม่ได้เพราะอยู่คนละชั้น
  • RunCycleFinished : <device(s)> <has/have>; ทำงานเสร็จแล้ว
  • ข้อจำกัดด้านความปลอดภัย : <อุปกรณ์> <มี/มี> ข้อจำกัดด้านความปลอดภัย
  • ตรวจพบควัน : ตรวจพบควันใน <ชื่อบ้าน>
  • tankEmpty : <device(s)> <has/have> <ถังว่าง/ถังว่างเปล่า> โปรดเติม <it/them> แล้วลองอีกครั้ง
  • usingCellular Backup : <อุปกรณ์> <is/are> โดยใช้ฟีเจอร์ใช้อินเทอร์เน็ตมือถือเป็นเครือข่ายสำรอง
  • waterLeakDetected : <device(s)> <detect(s)> น้ำรั่ว