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