เอกสารนี้แสดงข้อผิดพลาดและข้อยกเว้นที่รองรับอย่างเป็นทางการสำหรับอุปกรณ์สมาร์ทโฮม โปรดใช้รหัสข้อผิดพลาดและรหัสข้อยกเว้นที่ระบุเหล่านี้ในคำตอบของ Intent
หรือในการแจ้งเตือน
หากคุณได้ติดตั้งใช้งานแล้ว เพื่อให้ Google Assistant แจ้งเตือนผู้ใช้ปลายทางถึงปัญหา
ที่เกี่ยวข้องกับคำสั่งหรือสถานะอุปกรณ์ที่ระบุ หากการตอบกลับมีการจัดรูปแบบไม่ถูกต้อง
หรือมี errorCode
Google Assistant จะแสดงข้อความแสดงข้อผิดพลาดทั่วไปแก่ผู้ใช้ เช่น "ขออภัย device ยังไม่พร้อมให้บริการในขณะนี้"
ข้อผิดพลาด
คุณควรแสดงรหัสข้อผิดพลาดเมื่อปัญหาทำให้คำขอ execute หรือ query ล้มเหลว เช่น หากกลอนประตูติดขัดและล็อกหรือปลดล็อกไม่ได้ ระบบควรแสดงข้อผิดพลาดเกี่ยวกับสถานะนี้แก่ผู้ใช้
คุณแนบรหัสข้อผิดพลาดได้ที่ระดับอุปกรณ์หรือระดับส่วนกลาง ตัวอย่างเช่น หากผู้ใช้มีหลอดไฟหลายดวงจากผู้ให้บริการรายหนึ่งและควบคุมผ่านฮับ เมื่อผู้ใช้ขอให้ปิดไฟทั้งหมด ผู้ให้บริการอาจแสดงข้อผิดพลาดระดับอุปกรณ์หากหลอดไฟดวงใดดวงหนึ่งออฟไลน์ หรือข้อผิดพลาดระดับโลกหากฮับทั้งหมดออฟไลน์และควบคุมหลอดไฟไม่ได้ หากอุปกรณ์ทั้งหมดออฟไลน์ การใช้ข้อผิดพลาดระดับโลกหรือระดับอุปกรณ์จะไม่มีความแตกต่างกัน
โดยสรุป
- ข้อผิดพลาดระดับโลก: อุปกรณ์ทั้งหมดในการตอบกลับมีข้อผิดพลาดเดียวกัน
- ข้อผิดพลาดระดับท้องถิ่น: การตอบกลับแบบผสมที่มีกรณีข้อผิดพลาดและกรณีที่สำเร็จ
ข้อผิดพลาดระดับโลก
ข้อมูลโค้ด 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 : ขอโทษนะ ดูเหมือนตอนนี้จะทำแบบนั้นไม่ได้
- actionUnavailableWhileRunning : ขณะนี้ <device(s)> กำลังทำงานอยู่ ฉันจึงเปลี่ยนแปลงอะไรไม่ได้
- alreadyArmed : <device(s)> <is/are> already armed.
- alreadyAtMax : <device(s)> ตั้งเป็นอุณหภูมิสูงสุดแล้ว
- alreadyAtMin : <device(s)> ตั้งเป็นอุณหภูมิต่ำสุดแล้ว
- alreadyClosed : <device(s)> <is/are> already closed.
- 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> already locked.
- alreadyOff : <device(s)> <is/are> already off.
- alreadyOn : <device(s)> <is/are> already on.
- alreadyOpen : <device(s)> <is/are> already open.
- alreadyPaused : <device(s)> <is/are> already paused.
- alreadyStarted : <device(s)> <is/are> already started.
- alreadyStopped : <device(s)> <is/are> already stopped.
- alreadyUnlocked : <device(s)> <is/are> already unlocked.
- ambiguousZoneName : ขอโทษด้วย <device(s)> ไม่รู้ว่าคุณหมายถึงโซนไหน โปรดตรวจสอบว่าโซนมีชื่อไม่ซ้ำกันและลองอีกครั้ง
- amountAboveLimit : จำนวนดังกล่าวมากเกินกว่าที่ <device(s)> รองรับ
- appLaunchFailed : ขออภัย เปิด <ชื่อแอป> ใน <อุปกรณ์> ไม่สำเร็จ
- armFailure : เปิดระบบ <device(s)> ไม่ได้
- armLevelNeeded : ไม่แน่ใจว่าจะให้ตั้งค่า <device(s)> เป็นระดับไหน ลองพูดว่า "ตั้งค่า <อุปกรณ์> เป็น <ความปลอดภัยต่ำ>" หรือ "ตั้งค่า <อุปกรณ์> เป็น <ความปลอดภัยสูง>"
- authFailure : ดูเหมือนว่าฉันจะสื่อสารกับ <device(s)> ไม่ได้ ลองตรวจสอบแอปดูว่าตั้งค่า <device/devices> ไว้ครบถ้วนแล้ว
- bagFull : <device(s)> <has/have> <a full bag/full bags>. Please empty <it/them> and try again.
- belowMinimumLightEffectsDuration : สั้นกว่าระยะเวลาขั้นต่ำที่ 5 นาทีนะ โปรดลองอีกครั้ง
- belowMinimumTimerDuration : ฉันตั้งเวลา <device(s)> ให้สั้นขนาดนั้นไม่ได้ โปรดลองอีกครั้ง
- binFull : <อุปกรณ์> <มี/มี> <ถังขยะเต็ม/ถังขยะเต็ม>
- cancelArmingRestricted : ขออภัย ฉันยกเลิกการติดอาวุธ <device(s)> ไม่ได้
- cancelTooLate : ขอโทษที ยกเลิกไม่ทันแล้ว ใช้ <device(s)> หรือแอปแทน
- channelSwitchFailed : ขอโทษด้วย เปลี่ยนเป็นช่อง <ชื่อช่อง> ไม่ได้ ไว้ค่อยลองอีกทีนะ
- chargerIssue : ขอโทษด้วย ดูเหมือน <device(s)> <has/have> <a charger issue/charger issues>
- commandInsertFailed : ประมวลผลคำสั่งสำหรับ <device(s)> ไม่ได้
- deadBattery : <device(s)> <has/have> <a dead battery/dead batteries>.
- degreesOutOfRange : อุณหภูมิที่ขออยู่นอกช่วงสำหรับ <อุปกรณ์>
- 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)> จะทำแบบนั้นไม่ได้เพราะกำลังชาร์จอยู่
- deviceClogged : ขอโทษด้วย ดูเหมือน <device(s)> จะอุดตันนะ
- deviceCurrentlyDispensing : <device(s)> กำลังจ่ายอาหารอยู่ตอนนี้
- deviceDoorOpen : ประตูเปิดอยู่บน <device(s)> โปรดปิดประตูแล้วลองอีกครั้ง
- deviceHandleClosed : ปิดแฮนเดิลใน <device(s)> แล้ว โปรดเปิดและลองอีกครั้ง
- deviceJammingDetected : อุปกรณ์ <is/are> ถูกรบกวน
- deviceLidOpen : ฝาเปิดอยู่บน <device(s)> โปรดปิดฝาและลองอีกครั้ง
- deviceNeedsRepair : <device(s)> <need(s)> to be repaired. โปรดติดต่อตัวแทนจำหน่ายที่ให้บริการในพื้นที่
- deviceNotDocked : ขอโทษนะ ดูเหมือนว่า <device(s)> <isn't/aren't> ไม่ได้ชาร์จอยู่ โปรดเสียบปลั๊ก <it/them> แล้วลองอีกครั้ง
- deviceNotFound : <device(s)> <is/are>n't available. คุณอาจต้องลองตั้งค่าอีกครั้ง
- deviceNotMounted : ขอโทษนะ ดูเหมือนว่า <device(s)> จะทำแบบนั้นไม่ได้เพราะยังไม่ได้ติดตั้ง
- deviceNotReady : <device(s)> <is/are>n't ready.
- deviceStuck : <device(s)> ค้างและต้องการความช่วยเหลือจากคุณ
- deviceTampered : มีการดัดแปลง <device(s)>
- deviceThermalShutdown : ขอโทษด้วย ดูเหมือนว่า <device(s)> จะปิดลงเนื่องจากอุณหภูมิสูงหรือต่ำเกินไป
- directResponseOnlyUnreachable : <device(s)> <doesn't/don't> support remote control.
- disarmFailure : ปลดอาวุธ <device(s)> ไม่ได้
- discreteOnlyOpenClose : ขอโทษนะ <device(s)> เปิดหรือปิดจนสุดได้เท่านั้น
- dispenseAmountAboveLimit : <device(s)> จ่ายอาหารเยอะขนาดนั้นไม่ได้
- dispenseAmountBelowLimit : <device(s)> จ่ายอาหารน้อยขนาดนั้นไม่ได้
- dispenseAmountRemainingExceeded : <device(s)> มี <dispense item> ไม่เพียงพอที่จะทำเช่นนั้น
- dispenseFractionalAmountNotSupported : <device(s)> can't dispense fractions of <dispense item>.
- dispenseFractionalUnitNotSupported : <device(s)> ไม่รองรับเศษส่วนของหน่วยนั้นสำหรับ <dispense item>
- dispenseUnitNotSupported : <device(s)> ไม่รองรับหน่วยดังกล่าวสำหรับ <dispense item>
- doorClosedTooLong : ประตูของ <device(s)> เปิดไว้สักพักหนึ่งแล้ว โปรดเปิดประตู ดูให้แน่ใจว่ามีของอยู่ในนั้นแล้วลองอีกครั้ง
- emergencyHeatOn : <device(s)> <is/are> in Emergency Heat Mode, so <it/they>'ll have to be adjusted by hand.
- faultyBattery : <device(s)> <has/have> <a faulty battery/faulty batteries>.
- floorUnreachable : <device(s)> ไปห้องนั้นไม่ได้ โปรดย้าย <it/them> ไปยังชั้นที่ถูกต้องแล้วลองอีกครั้ง
- functionNotSupported : จริงๆ แล้ว <device(s)> <doesn't/don't> รองรับฟังก์ชันนั้น
- genericDispenseNotSupported : ฉันจำเป็นต้องทราบว่าคุณต้องการจ่ายอะไร โปรดลองอีกครั้งด้วยชื่อของของที่จะจ่าย
- hardError : ขอโทษนะ เกิดข้อผิดพลาด เลยควบคุมอุปกรณ์ในบ้านไม่ได้
- hardError : ขอโทษนะ เกิดข้อผิดพลาด เลยควบคุมอุปกรณ์ในบ้านไม่ได้
- inAutoMode : ขณะนี้มีการตั้งค่า <device(s)> เป็นโหมดอัตโนมัติ ถ้าจะปรับอุณหภูมิก็ต้องเปลี่ยนเป็นโหมดอื่นก่อนนะ
- inAwayMode : ขณะนี้<device(s)> <is/are> ตั้งค่าเป็นโหมดอยู่นอกบ้าน หากต้องการควบคุมตัวควบคุมอุณหภูมิ คุณจะต้องสลับเป็นโหมด Home เองโดยใช้แอป Nest ในโทรศัพท์ แท็บเล็ต หรือคอมพิวเตอร์
- inDryMode : ขณะนี้<device(s)> <is/are> ตั้งค่าเป็นโหมดถนอมผ้า ถ้าจะปรับอุณหภูมิก็ต้องเปลี่ยนเป็นโหมดอื่นก่อนนะ
- inEcoMode : ขณะนี้<device(s)> <is/are> ตั้งค่าเป็นโหมดประหยัดพลังงาน ถ้าจะปรับอุณหภูมิก็ต้องเปลี่ยนเป็นโหมดอื่นก่อนนะ
- inFanOnlyMode : ขณะนี้มีการตั้งค่า <device(s)> เป็นโหมดพัดลมเท่านั้น ถ้าจะปรับอุณหภูมิก็ต้องเปลี่ยนเป็นโหมดอื่นก่อนนะ
- inHeatOrCool : <device(s)> <is/are>n't in heat/cool mode.
- inHumidifierMode : <device(s)> <is/are> currently set to humidifier mode. ถ้าจะปรับอุณหภูมิก็ต้องเปลี่ยนเป็นโหมดอื่นก่อนนะ
- inOffMode : ตอนนี้ <อุปกรณ์> ปิดอยู่ ถ้าจะปรับอุณหภูมิก็ต้องเปลี่ยนเป็นโหมดอื่นก่อนนะ
- inPurifierMode : ขณะนี้ <device(s)> ตั้งค่าเป็นโหมดฟอกอากาศ ถ้าจะปรับอุณหภูมิก็ต้องเปลี่ยนเป็นโหมดอื่นก่อนนะ
- inSleepMode : <device(s)> <is/are> in sleep mode. โปรดลองอีกครั้งในภายหลัง
- inSoftwareUpdate : ขณะนี้ <device(s)> <is/are> อยู่ในการอัปเดตซอฟต์แวร์
- lockFailure : ล็อก <device(s)> ไม่ได้
- lockedState : ขณะนี้ <device(s)> ล็อกอยู่
- lockedToRange : อุณหภูมินั้นอยู่นอกช่วงที่ล็อกไว้ใน <device(s)>
- lowBattery : <device(s)> <has/have> low battery.
- maxSettingReached : <device(s)> <is/are> already set to the highest setting.
- maxSpeedReached : <device(s)> <is/are> already set to the maximum speed.
- minSettingReached : <device(s)> <is/are> already set to the lowest setting.
- minSpeedReached : <device(s)> <is/are> already set to the minimum speed.
- monitoringServiceConnectionLost : <device(s)> <has/have> lost <its/their> connection to the monitoring service.
- needsAttachment : ขอโทษที ดูเหมือนว่าชิ้นส่วนที่ต้องต่อกับ <device(s)> หายไป โปรดเปลี่ยนใหม่แล้วลองอีกครั้ง
- needsBin : ขอโทษที ดูเหมือนว่าถังเก็บฝุ่นใน <device(s)> หายไป โปรดเปลี่ยนใหม่แล้วลองอีกครั้ง
- 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 : ขอโทษนะ ดูเหมือนว่าช่อง <ชื่อช่อง> ไม่พร้อมให้บริการ
- noChannelSubscription : ขอโทษนะ ตอนนี้คุณยังไม่ได้สมัครสมาชิกช่อง <ชื่อช่อง>
- noTimerExists : ขอโทษที ดูเหมือนไม่ได้ตั้งตัวจับเวลาไว้ที่ <device(s)> นะ
- notSupported : ขออภัย โหมดดังกล่าวไม่พร้อมใช้งานสำหรับ <device(s)>
- obstructionDetected : <device(s)> detected an obstruction.
- ออฟไลน์ , deviceOffline : ขอโทษนะ ดูเหมือนว่า <device(s)> จะไม่พร้อมใช้งานในตอนนี้
- onRequiresMode : โปรดระบุโหมดที่ต้องการเปิด
- passphraseIncorrect : ขอโทษนะ ดูเหมือนว่ารหัส PIN จะไม่ถูกต้อง
- percentOutOfRange : ขออภัย ฉันตั้งค่า <อุปกรณ์> เป็น <เปอร์เซ็นต์> ไม่ได้
- pinIncorrect : (passphraseIncorrect)
- rainDetected : ฉันไม่ได้เปิด <device(s)> เพราะตรวจพบฝนตก
- rangeTooClose : ช่วงที่เลือกอยู่ใกล้ช่วงทำความร้อน • ทำความเย็นของ <device(s)> มากเกินไป เลือกช่วงของอุณหภูมิที่อยู่ห่างจากช่วงทำความร้อน • ทำความเย็นมากกว่านี้
- relinkRequired : ขอโทษด้วย ดูเหมือนจะเกิดข้อผิดพลาดกับบัญชีของคุณนะ โปรดใช้แอป Google Home หรือ Assistant เพื่อลิงก์ <device(s)> อีกครั้ง
-
remoteSetDisabled
:
- พารามิเตอร์ที่ไม่บังคับ
errorCodeReason
currentlyArmed
- ขอโทษด้วย ตอนนี้การรักษาความปลอดภัยเริ่มทำงานไปแล้ว ถ้าจะเปลี่ยนแปลง คุณต้องใช้ <device(s)> หรือแอปremoteUnlockNotAllowed
- ขอโทษนะ ฉันปลดล็อก <อุปกรณ์> จากระยะไกลไม่ได้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 : <device(s)> <has/have> <an empty tank/empty tanks>. Please fill <it/them> and try again.
- targetAlreadyReached : ขอโทษที ดูเหมือนว่าจะเป็นอุณหภูมินั้นอยู่แล้ว
- timerValueOutOfRange : ตั้งเวลา <อุปกรณ์> ตามระยะเวลาดังกล่าวไม่ได้
- tooManyFailedAttempts : ขออภัย คุณพยายามไม่สำเร็จหลายครั้งเกินไป โปรดไปที่แอปของอุปกรณ์เพื่อดำเนินการต่อให้เสร็จ
- transientError : ขออภัย เกิดข้อผิดพลาดบางอย่างในการควบคุม <device(s)> โปรดลองอีกครั้ง
- turnedOff , deviceTurnedOff : <device(s)> <is/are> off right now.
- unableToLocateDevice : ฉันค้นหา <device(s)> ไม่พบ
- unknownFoodPreset : <device(s)> ไม่รองรับการตั้งค่าอาหารล่วงหน้านั้น
- unlockFailure : ปลดล็อก <device(s)> ไม่ได้
- unpausableState : ตอนนี้หยุด <device(s)> ชั่วคราวไม่ได้
- userCancelled : ok
- valueOutOfRange : ตั้งค่า <device(s)> เป็นอุณหภูมินั้นไม่ได้
การรายงานสถานะออนไลน์และออฟไลน์
เมื่ออุปกรณ์ออฟไลน์ คุณควรรายงาน <code{"online": code="" dir="ltr" false}<="" translate="no"> ไปยัง รายงานสถานะ ภายใน 5 นาทีหลังจาก พฤติกรรมของอุปกรณ์ ในทางกลับกัน เมื่ออุปกรณ์กลับมาอยู่ในสถานะออนไลน์ คุณควรรายงาน <code{"online": code="" dir="ltr" translate="no" true}<=""> ไปยังรายงานสถานะภายใน 5 นาทีหลังจากพฤติกรรมของอุปกรณ์ เมื่อใดก็ตามที่อุปกรณ์กลับมาออนไลน์ พาร์ทเนอร์ควรรายงานสถานะปัจจุบันทั้งหมดของอุปกรณ์โดยใช้reportStateAndNotification
API
ตัวอย่างนี้แสดงว่าlight
ประเภทอุปกรณ์ออนไลน์อยู่ และรายงาน
สถานะอุปกรณ์ปัจจุบันทั้งหมด
"requestId": "test-request-id",
"agentUserId": "agent-user-1",
"payload":{
"devices": {
"states": {
"device-id-1": {
"brightness": 65,
"on": true,
"online": true
}
"notifications": {},
}
}
}
ข้อยกเว้น
คุณควรส่งคืนข้อยกเว้นเมื่อมีปัญหาหรือการแจ้งเตือนที่เชื่อมโยงกับ คำสั่ง คำสั่งอาจสำเร็จหรือไม่ก็ได้
หากคำสั่งสำเร็จ (status = "SUCCESS") ให้รายงานข้อยกเว้น
โดยใช้ลักษณะ 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" } }] } }
ข้อยกเว้นที่ไม่บล็อก (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 bag/full bags>. Please empty <it/them> and try again.
- binFull : <อุปกรณ์> <มี/มี> <ถังขยะเต็ม/ถังขยะเต็ม>
- carbonMonoxideDetected : ตรวจพบคาร์บอนมอนอกไซด์ใน <ชื่อบ้าน>
- deviceAtExtremeTemperature : <device(s)> <is/are> at <an extreme temperature/extreme temperatures>.
- deviceJammingDetected : อุปกรณ์ <is/are> ถูกรบกวน
- deviceMoved : <device(s)> <was/were> moved.
- deviceOpen : <device(s)> <is/are> open.
- deviceTampered : มีการดัดแปลง <device(s)>
- deviceUnplugged : <device(s)> <is/are> unplugged.
- floorUnreachable : <device(s)> ไปห้องนั้นไม่ได้ โปรดย้าย <it/them> ไปยังชั้นที่ถูกต้องแล้วลองอีกครั้ง
- hardwareFailure : <device(s)> <has/have> a hardware problem.
- inSoftwareUpdate : ขณะนี้ <device(s)> <is/are> อยู่ในการอัปเดตซอฟต์แวร์
- isBypassed : ขณะนี้<device(s)> <is/are> ถูกข้าม
- lowBattery : <device(s)> <has/have> low battery.
- motionDetected : <device(s)> <detect(s)> motion.
- 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)> <has/have> a security restriction.
- 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 : <device(s)> <detect(s)> a water leak.