เอกสารนี้จะแสดงข้อผิดพลาดและข้อยกเว้นที่รองรับอย่างเป็นทางการสำหรับอุปกรณ์สมาร์ทโฮม โปรดใช้ข้อผิดพลาดและรหัสข้อยกเว้นเหล่านี้ในการตอบสนองของ Intent หรือในการแจ้งเตือนหากคุณติดตั้งใช้งานแล้ว เพื่อให้ Google Assistant แจ้งผู้ใช้ปลายทางเกี่ยวกับปัญหาที่เกี่ยวข้องกับคําสั่งหรือสถานะของอุปกรณ์ หากคำตอบมีการจัดรูปแบบไม่ถูกต้องหรือมี errorCode
Google Assistant จะแสดงข้อความแสดงข้อผิดพลาดทั่วไปแก่ผู้ใช้ เช่น "ขออภัย device ไม่พร้อมให้บริการในขณะนี้"
ข้อผิดพลาด
คุณควรส่งคืนรหัสข้อผิดพลาดเมื่อปัญหาทำให้คำขอการรันหรือคำขอค้นหาล้มเหลว เช่น หากล็อกประตูติดขัดและล็อกหรือปลดล็อกไม่ได้ ระบบควรแสดงข้อผิดพลาดเกี่ยวกับสถานะนี้แก่ผู้ใช้
สามารถแนบรหัสข้อผิดพลาดได้ที่ระดับอุปกรณ์หรือที่ระดับส่วนกลาง ตัวอย่างเช่น หากผู้ใช้มีหลอดไฟหลายดวงจากผู้ให้บริการรายเดียวและควบคุมด้วยฮับ เมื่อผู้ใช้ขอให้ปิดหลอดไฟทั้งหมด ผู้ให้บริการอาจแสดงข้อผิดพลาดระดับอุปกรณ์หากหลอดไฟดวงเดียวออฟไลน์อยู่ หรือแสดงข้อผิดพลาดระดับระบบหากฮับทั้งหมดออฟไลน์อยู่และควบคุมหลอดไฟไม่ได้ หากอุปกรณ์ทุกเครื่องออฟไลน์อยู่ ก็จะไม่มีความแตกต่างกันระหว่างการใช้ข้อผิดพลาดระดับสากลหรือระดับอุปกรณ์
เมื่ออุปกรณ์ออฟไลน์ คุณควรรายงาน {"online": false}
ไปยังรายงานสถานะภายใน 5 นาทีหลังจากเห็นลักษณะการทำงานของอุปกรณ์
โดยสรุป
- ข้อผิดพลาดระดับระบบ: อุปกรณ์ทั้งหมดในการตอบกลับมีข้อผิดพลาดเดียวกัน
- ข้อผิดพลาดระดับท้องถิ่น: การตอบกลับแบบผสมที่มีทั้งกรณีที่เกิดข้อผิดพลาดและกรณีที่สําเร็จ
ข้อผิดพลาดระดับส่วนกลาง
ข้อมูลโค้ด 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 ที่เชื่อมโยงในอุปกรณ์
- aboveMaximumLightEffectsDuration : นานกว่าระยะเวลาสูงสุดที่ 1 ชั่วโมงแล้วนะ โปรดลองอีกครั้ง
- aboveMaximumTimerDuration : ฉันตั้งค่า <device(s)> ได้สูงสุด <time period>
- actionNotavailable : ขออภัย ดูเหมือนว่าตอนนี้จะยังทำไม่ได้
- actionUnavailableAnyavailable : <device(s)> <is/are> กําลังทํางานอยู่ ก็เลยเปลี่ยนแปลงอะไรไม่ได้
- ติดอาวุธแล้ว : <device(s)> <is/are> เปิดอยู่แล้ว
- 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)> <is/are> closed already.
- 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)> <is/are> locked already.
- ปิดไปแล้ว : ปิด <device(s)> <is/are> แล้ว
- alreadyOn : <device(s)> <is/are> on already.
- alreadyOpen : <device(s)> <is/are> open already.
- alreadyPaused : <device(s)> <is/are> already paused.
- เริ่มแล้ว : <device(s)> <is/are> เริ่มแล้ว
- alreadyStopped : <device(s)> <is/are> stopped already.
- ปลดล็อกแล้ว : ปลดล็อก <device(s)> <is/are> แล้ว
- ambiguousZoneName : ขออภัย <device(s)> ไม่รู้ว่าคุณหมายถึงโซนไหน โปรดตรวจสอบว่าโซนมีชื่อไม่ซ้ำกันแล้วลองอีกครั้ง
- amountAboveLimit : จำนวนเกินกว่าที่ <device(s)> จะรองรับ
- appLaunchFailed : ขออภัย ไม่สามารถเปิด <ชื่อแอป> ใน <อุปกรณ์>
- armFailure : เปิดระบบ <device(s)> ไม่ได้
- armLevelNeeded : ฉันไม่แน่ใจว่าจะให้ตั้งค่า <device(s)> เป็นระดับไหน ลองพูดว่า "ตั้งค่า <อุปกรณ์> เป็น <ความปลอดภัยต่ำ>" หรือ "ตั้งค่า <อุปกรณ์> เป็น <ความปลอดภัยสูง>"
- authFailure : ดูเหมือนว่าจะติดต่อ <device(s)> ไม่ได้ โปรดลองตรวจสอบแอปเพื่อดูว่าตั้งค่า <อุปกรณ์/อุปกรณ์> <is/are> เรียบร้อยแล้ว
- BagFull : <device(s)> <has/have> <aสำหรับอุปกรณ์เคลื่อนที่/ถุงแบบเต็ม> โปรดล้าง <it/them> ออก แล้วลองอีกครั้ง
- bottomLightEffectsDuration : น้อยกว่าระยะเวลาขั้นต่ำที่ 5 นาที โปรดลองอีกครั้ง
- belowMinimumTimerDuration : ฉันตั้งค่า <device(s)> ให้สั้นขนาดนั้นไม่ได้ โปรดลองอีกครั้ง
- binFull : <device(s)> <has/have> <a Full bin/full bins>
- cancelArmingRestricted : ขออภัย เรายกเลิกการตั้งอาวุธ <device(s)> ไม่ได้
- cancelTooLate : ขออภัย ยกเลิกไม่ทันแล้ว ใช้ <device(s)> หรือแอปแทน
- channelSwitchFailed : ขออภัย เปลี่ยนเป็นช่อง <ชื่อช่อง> ไม่สำเร็จ โปรดลองอีกครั้งในภายหลัง
- ปัญหาเกี่ยวกับที่ชาร์จ : ขออภัย ดูเหมือนว่า <อุปกรณ์> <มี> <a ปัญหาเกี่ยวกับที่ชาร์จ/ปัญหาที่ชาร์จ>
- commandInsertFailed : ประมวลผลคําสั่งสําหรับ <device(s)> ไม่ได้
- แบตเตอรี่หมด : <อุปกรณ์> <มี/มี> <แบตเตอรี่หมด/แบตเตอรี่หมด>
- degreesOutOfRange : อุณหภูมิที่ขออยู่นอกช่วงของ <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 : ขอโทษนะ ดูเหมือน <device(s)> จะทำอะไรบางอย่างอยู่ตอนนี้
- deviceCharging : ขออภัย ดูเหมือนว่า <device(s)> จะทำแบบนั้นไม่ได้เพราะกำลังชาร์จ (ha_shared.Its theyre size=$item.devices.total_device_count)
- deviceClogged : ขออภัย ดูเหมือนว่า <device(s)> จะอุดตัน
- deviceCurrentlyDispensing : <device(s)> กำลังจ่ายอาหารอยู่ตอนนี้
- deviceDoorOpen : ประตูของ <device(s)> เปิดอยู่ โปรดปิดแล้วลองอีกครั้ง
- deviceHandleClosed : แฮนเดิลปิดอยู่ใน <device(s)> โปรดเปิดแฮนเดิลแล้วลองอีกครั้ง
- deviceJammingDetected : <device(s)> <is/are> ติด
- deviceLidOpen : ฝาของ <device(s)> เปิดอยู่ โปรดปิดฝาแล้วลองอีกครั้ง
- deviceNeedsRepair : <device(s)> <need(s)> to be repaired. โปรดติดต่อตัวแทนจำหน่ายที่ให้บริการในพื้นที่
- deviceNotDocked : ขออภัย ดูเหมือนว่าจะชาร์จ <device(s)> <ไม่อยู่/ไม่ได้> อยู่บนแท่นชาร์จ โปรดวาง <อุปกรณ์>เข้าแท่นชาร์จแล้วลองอีกครั้ง
- deviceNotFound : <device(s)> <is/are> ไม่พร้อมใช้งาน คุณอาจต้องลองตั้งค่า <อุปกรณ์> อีกครั้ง
- deviceNotMounted : ขออภัย ดูเหมือนว่า <device(s)> จะทำแบบนั้นไม่ได้เนื่องจาก <it/they> <is/are>n't mounted
- deviceNotReady : <device(s)> <is/are>ไม่พร้อม
- deviceStuck : <device(s)> <is/are> ค้างและต้องการความช่วยเหลือจากคุณ
- มีการดัดแปลงอุปกรณ์ : <device(s)> <ได้รับ/เคย>ถูกดัดแปลง
- deviceThermalShutdown : ขออภัย ดูเหมือนว่า <device(s)> จะปิดลงเพราะมีอุณหภูมิสูงหรือต่ำเกินไป
- directResponseOnlyUnreachable : <device(s)> <doesn't/don't> support remote control.
- dearmFailure : ปิดระบบ <device(s)> ไม่ได้
- discreteOnlyOpenClose : ขออภัย <device(s)> เปิดหรือปิดจนสุดได้เท่านั้น
- dispenseAmountAboveLimit : <device(s)> จ่ายอาหารเยอะขนาดนั้นไม่ได้
- dispenseAmountBelowLimit : <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)> เปิดไว้นานแล้ว โปรดเปิดประตู ดูให้แน่ใจว่ามีของอยู่ในนั้นแล้วลองอีกครั้ง
- errorHeatOn : <อุปกรณ์> <is/are> ในโหมดฉุกเฉิน จึงต้องปรับ <it/มัน> เอง
- faultyBattery : <device(s)> <has/have> <a faulty battery/faulty batteries>.
- floorUnreachable : <device(s)> เข้าถึงห้องนั้นไม่ได้ โปรดย้าย <อุปกรณ์> ไปชั้นเดียวกันแล้วลองใหม่
- functionNotSupported : จริงๆ แล้ว <device(s)> <doesn't/don't> รองรับฟังก์ชันการทำงานนั้น
- genericDispenseNotSupported : ฉันจำเป็นต้องทราบว่าคุณต้องการจ่ายอะไร โปรดลองอีกครั้งด้วยชื่อของของที่จะจ่าย
- hardError : ขออภัย เกิดข้อผิดพลาดขึ้น เลยควบคุมอุปกรณ์ในบ้านไม่ได้
- hardError : ขออภัย เกิดข้อผิดพลาดขึ้น เลยควบคุมอุปกรณ์ในบ้านไม่ได้
- inAutoMode : ปัจจุบัน <device(s)> <is/are> ตั้งค่าเป็นโหมดอัตโนมัติ หากต้องการเปลี่ยนอุณหภูมิ คุณต้องเปลี่ยน <อุปกรณ์> เป็นโหมดอื่น
- inAwayMode : <device(s)> <is/are> currently set to away mode. หากต้องการควบคุมตัวควบคุมอุณหภูมิ คุณจะต้องสลับเป็นโหมดอยู่บ้านด้วยตนเองโดยใช้แอป Nest ในโทรศัพท์ แท็บเล็ต หรือคอมพิวเตอร์
- inDryMode : <device(s)> <is/are> currently set to dry mode. หากต้องการเปลี่ยนอุณหภูมิ คุณต้องเปลี่ยน <อุปกรณ์> เป็นโหมดอื่น
- inEcoMode : <device(s)> <is/are> currently set to eco mode. หากต้องการเปลี่ยนอุณหภูมิ คุณจะต้องเปลี่ยน <it/them> เป็นโหมดอื่น
- inFanOnlyMode : ตอนนี้ตั้ง <device(s)> <is/are> เป็นโหมดพัดลมเท่านั้น หากต้องการเปลี่ยนอุณหภูมิ คุณจะต้องเปลี่ยน <it/them> เป็นโหมดอื่น
- inHeatOrCool : <device(s)> <is/are>ไม่ได้อยู่ในโหมดทำความร้อน/ทำความเย็น
- inHumidifierMode : ตอนนี้<device(s)> <is/are> ตั้งค่าเป็นโหมดเครื่องทำความชื้น ถ้าจะปรับอุณหภูมิ คุณต้องเปลี่ยนไปใช้โหมดอื่น<it/them>
- inOffMode : ตอนนี้ <device(s)> <is/are> ปิดอยู่ หากต้องการเปลี่ยนอุณหภูมิ คุณจะต้องเปลี่ยน <it/them> เป็นโหมดอื่น
- inPurifierMode : <device(s)> <is/are> currently set to purifier mode. หากต้องการเปลี่ยนอุณหภูมิ คุณจะต้องเปลี่ยน <it/them> เป็นโหมดอื่น
- inSleepMode : <device(s)> <is/are> ในโหมดสลีป โปรดลองอีกครั้งในภายหลัง
- inSoftwareUpdate : <device(s)> <is/are> currently in a software update.
- lockFailure : ล็อก <device(s)> ไม่ได้
- lockedState : <device(s)> <is/are> currently locked.
- lockedToRange : อุณหภูมินั้นอยู่นอกช่วงที่ล็อกไว้ใน <device(s)>
- แบตเตอรี่ต่ำ : <อุปกรณ์> <มี/แบตเตอรี่เหลือน้อย>
- maxSettingReached : <device(s)> <is/are> already set to the highest setting.
- maxSpeedReached : <device(s)> <is/are> set to the maximum speed already.
- minSettingReached : <device(s)> <is/are> ตั้งค่าไว้เป็นการตั้งค่าต่ำสุดอยู่แล้ว
- minSpeedReached : <device(s)> <is/are> set to the minimum speed already.
- monitoringServiceConnectionLost : <device(s)> <has/have> lost <its/their> connection to the monitoring service.
- needsAttachment : ขออภัย ดูเหมือนว่า <device(s)> <is/are> ไม่มีไฟล์แนบที่จำเป็น โปรดเปลี่ยนใหม่แล้วลองอีกครั้ง
- needsBin : ขออภัย ดูเหมือนว่า <device(s)> <is/are> ไม่มีถังขยะ โปรดใส่โค้ดใหม่แล้วลองอีกครั้ง
- needsPads : <device(s)> <need(s)> new pads.
- needsSoftwareUpdate : <device(s)> <need(s)> a software update.
- needsWater : <device(s)> <need(s)> water.
- networkProfileNotRecognized : ขออภัย ฉันไม่รู้จัก "<network profile>" ใน <device(s)>
- networkSpeedTestInProgress : ฉันกำลังทดสอบ <network> <speed/speeds>> อยู่แล้ว
- noavailableApp : ขออภัย ดูเหมือนว่า <ชื่อแอป> จะไม่พร้อมใช้งาน
- noAvailableChannel : ขออภัย ดูเหมือนว่าช่อง <channel name> ไม่พร้อมให้บริการ
- noChannelSubscription : ขออภัย ตอนนี้คุณยังไม่ได้ติดตามช่อง <channel name>
- noTimerExists : ขออภัย ดูเหมือนว่าไม่ได้ตั้งตัวจับเวลาไว้ที่ <device(s)>
- notSupported : ขออภัย โหมดดังกล่าวไม่พร้อมใช้งานใน <device(s)>
- obstructionDetected : <device(s)> ตรวจพบสิ่งกีดขวาง
- ออฟไลน์ , deviceOffline : ขออภัย ดูเหมือนว่า <device(s)> <is/are> จะไม่พร้อมใช้งานในขณะนี้
- onRequiresMode : โปรดระบุโหมดที่ต้องการเปิด
- passphraseIncorrect : ขออภัย ดูเหมือนว่ารหัส PIN จะไม่ถูกต้อง
- percentOutOfRange : ขออภัย ฉันตั้งค่า <device(s)> เป็น <percent> ไม่ได้
- pinIncorrect : (passphraseIncorrect)
- RainDetected : ฉันไม่ได้เปิด <device(s)> เนื่องจากตรวจพบฝน
- rangeTooClose : ช่วงนั้นอยู่ใกล้ช่วงทำความร้อน • ทำความเย็นของ <device(s)> มากเกินไป เลือกช่วงของอุณหภูมิที่อยู่ห่างจากช่วงดังกล่าวมากกว่านี้
- relinkRequired : ขออภัย ดูเหมือนจะเกิดข้อผิดพลาดกับบัญชีของคุณ โปรดใช้แอป Google Home หรือ Assistant เพื่อลิงก์ <device(s)> อีกครั้ง
-
remoteSetDisabled
:
- พารามิเตอร์ที่ไม่บังคับ
errorCodeReason
currentlyArmed
- ขออภัย เนื่องจากการรักษาความปลอดภัยเริ่มทำงานแล้ว คุณจึงต้องใช้ <device(s)> หรือแอปเพื่อทำการเปลี่ยนแปลงremoteUnlockNotAllowed
- ขอโทษด้วย ฉันปลดล็อก <device(s)> จากระยะไกลไม่ได้remoteControlOff
- การดำเนินการนี้ปิดใช้อยู่ โปรดเปิดใช้รีโมตคอนโทรลใน <device(s)> แล้วลองอีกครั้งchildSafetyModeActive
- ระบบปิดใช้การดำเนินการนั้นใน <device(s)> ขณะเปิดใช้งานโหมดปลอดภัยสำหรับเด็ก
- พารามิเตอร์ที่ไม่บังคับ
- roomsOnDifferentFloors : <device(s)> เข้าถึงห้องเหล่านั้นไม่ได้เนื่องจากอยู่คนละชั้นกัน
- safetyShutOff : <device(s)> <is/are> in Safety Shut-Off Mode, so <it/they>'ll have to be adjusted by hand.
- sceneCannotBeApplied : ขออภัย ไม่สามารถติดตั้ง <device(s)> ได้
- securityRestriction : <device(s)> <has/have> a security restriction.
- SoftwareUpdateNotavailable : ขออภัย ไม่มีการอัปเดตซอฟต์แวร์ใน <device(s)>
- startRequiresTime : หากต้องการดำเนินการดังกล่าว คุณต้องบอกเราว่าต้องการใช้ <device(s)> นานแค่ไหน
- stillCoolingDown : <device(s)> <is/are> still cooling down.
- stillWarmingUp : <device(s)> <is/are> still warming up.
- streamUnavailable : ขออภัย ดูเหมือนว่าตอนนี้จะสตรีมจาก <device(s)> ไม่ได้
- streamUnplayable : ขออภัย ตอนนี้ยังเปิดสตรีมจาก <device(s)> ไม่ได้
- tankEmpty : <อุปกรณ์> <มี/มี> <ถังเปล่า/ถังเปล่า> โปรดเติม<ถัง/ถังเหล่านั้น> แล้วลองอีกครั้ง
- targetAlreadyReached : ขออภัย ดูเหมือนว่าจะเป็นอุณหภูมิปัจจุบันอยู่แล้ว
- timerValueOutOfRange : ตั้งค่า <device(s)> เป็นระยะเวลาดังกล่าวไม่ได้
- tooManyFailedAttempts : ขออภัย พยายามไม่สำเร็จหลายครั้งเกินไป โปรดไปที่แอปของอุปกรณ์เพื่อดำเนินการต่อให้เสร็จ
- transientError : ขออภัย เกิดข้อผิดพลาดบางอย่างในการควบคุม <device(s)> โปรดลองอีกครั้ง
- turnedOff , deviceTurnedOff : <device(s)> <is/are> off right now.
- unableToLocateDevice : ฉันไม่สามารถค้นหา <device(s)>
- ไม่ทราบFoodPreset : <device(s)>ไม่รองรับการตั้งค่าอาหารล่วงหน้าดังกล่าว
- unlockFailure : ปลดล็อก <device(s)> ไม่ได้
- สถานะหยุดชั่วคราวไม่ได้ : หยุด <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" } }] } }
Non-blocking exception (SUCCESS) about another device using 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 bag/full bags>. Please empty <it/them> and try again.
- binFull : <device(s)> <has/have> <a full bin/full bins>
- carbonMonoxideDetected : ตรวจพบคาร์บอนมอนอกไซด์ใน <ชื่อบ้าน>
- 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> เปิดอยู่
- deviceTampered : <device(s)> <has/have> been tampered with.
- deviceUnplugged : <device(s)> <is/are> unplugged.
- floorUnreachable : <device(s)> ไปห้องนั้นไม่ได้ โปรดย้าย <อุปกรณ์> ไปชั้นเดียวกันแล้วลองใหม่
- ฮาร์ดแวร์ล้มเหลว : <อุปกรณ์> <มี/มีปัญหา> ฮาร์ดแวร์
- in SoftwareUpdate : <device(s)> <is/are> ขณะนี้กำลังอัปเดตซอฟต์แวร์
- isBypassed : <device(s)> <is/are> currently bypassed.
- lowBattery : <device(s)> <has/have> low battery.
- MotionDetected : <device(s)> <detect(s)> การเคลื่อนไหว
- needsPads : <device(s)> <need(s)> new pads.
- needsSoftwareUpdate : <device(s)> <need(s)> a software update.
- needsWater : <device(s)> <need(s)> water.
- networkJammingDetected : การเชื่อมต่อเครือข่ายในบ้านกับ <device(s)> ทำงานผิดปกติ
- noIssuesReported : <device(s)> ไม่ได้รายงานปัญหาใดๆ
- roomsOnDifferentFloors : <device(s)> เข้าถึงห้องเหล่านั้นไม่ได้เนื่องจากอยู่คนละชั้นกัน
- runCycleFinished : <device(s)> <has/have> finished running.
- SecurityRestriction : <device(s)> <มี/มีข้อจำกัดด้านความปลอดภัย
- smokeDetected : ตรวจพบควันใน <ชื่อบ้าน>
- 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 : <อุปกรณ์> <detect(s)> น้ำรั่ว