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

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

  • aboveMaxLightEffectsDuration : มากกว่าระยะเวลาสูงสุด 1 ชั่วโมง โปรดลองอีกครั้ง
  • ที่ด้านบน maxDurationDuration : ฉันตั้งค่า <device(s)> ได้ไม่เกิน <time period>
  • actionNotavailable : ขออภัย ตอนนี้เราไม่สามารถทําแบบนั้นได้
  • actionUnavailableDoesRunning : <device(s)> <is/are> กําลังทํางานอยู่ตอนนี้ ก็เลยแก้ไขอะไรไม่ได้
  • Armed : <device(s)> <is/are> เปิดเครื่องแล้ว
  • alreadyAtMax : <device(s)> <is/are> ตั้งค่าเป็นอุณหภูมิสูงสุดแล้ว
  • alreadyAtMin : <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 : ขออภัย เปิด <ชื่อแอป> ใน <device(s)> ไม่สําเร็จ
  • ArmFailure : <device(s)> เปิดระบบไม่ได้
  • armLevelRequireed : ฉันไม่แน่ใจว่าจะตั้งค่า <device(s)> เป็นระดับใด ลองพูดว่า "ตั้ง <อุปกรณ์> เป็น <ความปลอดภัยต่ํา>" หรือ "ตั้ง <อุปกรณ์> เป็น <ความปลอดภัยสูง>"
  • authFailure : ฉันไม่สามารถเข้าถึง <device(s)> ลองตรวจสอบแอปเพื่อให้แน่ใจว่าได้ตั้งค่า <device/devices> <is/are> เรียบร้อยแล้ว
  • BagFull : <device(s)> <has/have> <a full bags/full bags> โปรดล้างข้อมูล <it/them> แล้วลองอีกครั้ง
  • ต่ํากว่าMinimumLightEffectsDuration : น้อยกว่าระยะเวลาขั้นต่ํา 5 นาที โปรดลองอีกครั้ง
  • ต่ํากว่าMinimumMinimumDuration : ฉันตั้งค่า <device(s)> เป็นระยะเวลาสั้นๆ ไม่ได้ โปรดลองอีกครั้ง
  • binFull : <device(s)> <has/have> <a full bin/full bins>
  • cancelArmingRestricted : ขออภัย ฉันยกเลิกการเปิดใช้งาน <device(s)> ไม่ได้
  • cancelTooLate : ขออภัย ยกเลิกไม่ทัน โปรดใช้ <device> หรือแอปแทน
  • channelSwitchFailed : ขออภัย เปลี่ยนเป็นช่อง <channel name> ไม่สําเร็จ โปรดลองอีกครั้งในภายหลัง
  • ที่ชาร์จ : ขออภัย ดูเหมือนว่า <device(s)> <has/have> <aแสดงถึงปัญหาที่ชาร์จ/ปัญหาเกี่ยวกับที่ชาร์จ>
  • commandInsertFailed : ประมวลผลคําสั่งสําหรับ <device(s)> ไม่ได้
  • แบตเตอรี่หมด : <device(s)> <has/have> <a deadแบตเตอรี่/adad eriess>
  • องศาภายนอก : องศาที่ขออยู่นอกช่วงของ <อุปกรณ์(s)>
  • deviceAlertRequiresAssistance : <device(s)> <has/have> a active notification and <need(s(s)> ความช่วยเหลือของคุณ
  • deviceAtExtremeTemperature : <device(s)> <is/are> ที่ <antremtemp/tremeอุณหภูมิs>
  • อุปกรณ์ไม่ว่าง : ขออภัย ดูเหมือนว่า <device(s)> กําลังทําอะไรอยู่
  • การชาร์จอุปกรณ์ : ขออภัย ดูเหมือนว่า <device(s)> ดําเนินการดังกล่าวไม่ได้เนื่องจากการชาร์จ (ha_shared.Itsโฆษณาเหล่านั้นre size=$item.devices.total_device_count)
  • deviceClogged : ขออภัย ดูเหมือนว่า <device(s)> อุดตันนะ
  • deviceCurrentDispensing : <device(s)> กําลังจ่ายอาหารอยู่ตอนนี้
  • deviceDoorOpen : ประตูเปิดอยู่ใน <device(s)> โปรดปิดประตูดังกล่าวแล้วลองอีกครั้ง
  • deviceHandleClosed : แฮนเดิลปิดอยู่ใน <device(s)> โปรดเปิดแฮนเดิลแล้วลองอีกครั้ง
  • deviceJammingDetected : <device(s)> <is/are> ติดขัด
  • deviceLidOpen : ฝาเปิดใน <device(s)> โปรดปิดฝาแล้วลองใหม่
  • deviceneedsRepair : <device(s)> <need(s)> ที่จะได้รับการซ่อมแซม โปรดติดต่อตัวแทนจําหน่ายในพื้นที่
  • deviceNotDocked : ขออภัย ดูเหมือนว่าอุปกรณ์ <is(s)> <isn't/aren't> อยู่ที่แท่นชาร์จ โปรดเสียบ <it/them> แล้วลองอีกครั้ง
  • deviceNotFound : <device(s)> <is/are> ไม่พร้อมใช้งาน คุณอาจต้องลองตั้งค่า <it/them> อีกครั้ง
  • deviceNotMounted : ขออภัย ดูเหมือนว่า <device(s)> ทําแบบนั้นไม่ได้ เนื่องจาก <it/they> <is/are> ไม่ได้ต่อเชื่อม
  • deviceNotReady : <device(s)> <is/are>ยังไม่พร้อม
  • deviceStuck : <device(s)> <is/are> ติดขัดและต้องการความช่วยเหลือจากคุณ
  • deviceTampered : <device(s)> <has/have> ถูกแก้ไข
  • deviceThermalShutdown : ขออภัย ดูเหมือนว่า <device(s)> ปิดตัวลงเพราะอุณหภูมิสูงหรือต่ําเกินไป
  • directResponseOnlyUnreachable : <device(s)> <don't/don't> สนับสนุนการควบคุมระยะไกล
  • disarmFailure : ปิด <device(s)> ไม่ได้
  • discreteOnlyOpenClose : ขออภัย <device(s)> เปิดหรือปิดได้จนสุด
  • dispenseAmountAboveLimit : <device(s)> ไม่สามารถจ่ายยาได้เป็นจํานวนมาก
  • dispenseAmountLowLimit : <device(s)> จ่ายเงินจํานวนนี้น้อยไม่ได้
  • dispenseAmountRemainingExceeded : <device(s)> มี <dispense item> ไม่เพียงพอสําหรับดําเนินการ
  • dispenseFractionalAmountNotSupported : <device(s)> ไม่สามารถกระจายเศษส่วนของ <dispense item>
  • dispenseFractionalUnitNotSupported : <device(s)> ไม่รองรับเศษส่วนของหน่วยนั้นสําหรับ <dispense item>
  • dispenseUnitNotSupported : <device(s)> ไม่รองรับหน่วยดังกล่าวสําหรับ <dispense item>
  • GateClosedTooLong : ประตูบน <device(s)> ได้เปิดไว้แล้ว โปรดเปิดประตู ดูให้แน่ใจว่ามีของอยู่ในนั้นแล้วลองอีกครั้ง
  • EmergencyHeatOn : <device(s)> <is/are> ในโหมดฉุกเฉิน จึงต้องปรับ <it/them> ด้วยตนเอง
  • โหมดแบตเตอรี่ผิดพลาด : <อุปกรณ์) <มี/มี> <aแบตเตอรี่ผิดพลาด/แบตเตอรี่ขัดข้อง>
  • floorUnreachable : <device(s)> เข้าถึงห้องดังกล่าวไม่ได้ โปรดย้าย <it/them> ไปยังชั้นที่ถูกต้องแล้วลองอีกครั้ง
  • functionNotSupported : อันที่จริง <device(s)> <don't/don’t> รองรับฟังก์ชันดังกล่าว
  • 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)> <เป็น/เป็น> ตั้งค่าเป็นโหมดพัดลมเท่านั้น ถ้าจะปรับอุณหภูมิก็ต้อง <it/them> เป็นโหมดอื่น
  • inHeatOrCool : <device(s)> <is/are>ไม่ได้อยู่ในโหมดทําความร้อน/ทําความเย็น
  • inHumidifierMode : <device(s)> <เป็น/เป็น> ตั้งค่าเป็นโหมดเครื่องทําความชื้น ถ้าจะปรับอุณหภูมิก็ต้อง <it/them> เป็นโหมดอื่น
  • inOffMode : <device(s)> <is/are> ปิดอยู่ ถ้าจะเปลี่ยนอุณหภูมิ คุณต้องสลับ <it/them> เป็นโหมดอื่น
  • inPurifierMode : <device(s)> <is/are> ตั้งค่าเป็นโหมดฟอกอากาศ ถ้าจะปรับอุณหภูมิก็ต้อง <it/them> เป็นโหมดอื่น
  • inSleepMode : <device(s)> <is/are> ในโหมดสลีป โปรดลองอีกครั้งภายหลัง
  • inSoftwareUpdate : <device(s)> <is/are> อยู่ในการอัปเดตซอฟต์แวร์
  • lockFailure : <device(s)> ล็อกไม่ได้
  • lockState : <device(s)> <is/are> ถูกล็อกอยู่ในขณะนี้
  • lockToRange : อุณหภูมินั้นอยู่นอกช่วงที่ล็อกใน <device(s)>
  • แบตเตอรี่ต่ํา : <device(s)> <has/have> แบตเตอรี่ต่ํา
  • 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> สูญเสียการเชื่อมต่อ <it//>> กับบริการ Monitoring
  • needAttachment : ขออภัย ดูเหมือนว่า <device/s>จะ<จําเป็น/ไม่มี>ไฟล์แนบที่จําเป็น โปรดเปลี่ยนใหม่แล้วลองอีกครั้ง
  • needBin : ขออภัย ดูเหมือนว่า <device/s> <is/are> ไม่มีถัง โปรดเปลี่ยนใหม่แล้วลองอีกครั้ง
  • NeedPads : <device(s)> <need(s)> แผ่นใหม่
  • needSoftwareUpdate : <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> อยู่ในขณะนี้
  • ไม่มีตัวจับเวลาที่มีอยู่ : ขออภัย ดูเหมือนว่าไม่มีตัวจับเวลาที่ตั้งไว้ใน <อุปกรณ์ >
  • ไม่รองรับ : ขออภัย โหมดนี้ไม่พร้อมให้บริการสําหรับ <device(s)>
  • obstructionDetected : <device(s)> ตรวจพบสิ่งกีดขวาง
  • ออฟไลน์ , อุปกรณ์ออฟไลน์ : ขออภัย ดูเหมือนว่า <device(s)> <is/are>ไม่พร้อมใช้งานในขณะนี้
  • onRequiresMode : โปรดระบุโหมดที่ต้องการเปิด
  • รหัสผ่านไม่ถูกต้อง : ขออภัย ดูเหมือนว่า PIN นี้ไม่ถูกต้อง
  • เปอร์เซ็นต์ภายนอก : ขออภัย ฉันตั้งค่า <อุปกรณ์> เป็น <เปอร์เซ็นต์> ไม่ได้
  • PIN ไม่ถูกต้อง : (รหัสผ่านไม่ถูกต้อง)
  • RainDetected : ฉันไม่ได้เปิด <device(s)> เพราะตรวจพบฝน
  • rangeTooClose : บริเวณเหล่านี้อยู่ใกล้ช่วง Heat-Cool ของ <device(s)> มากเกินไป โปรดเลือกช่วงอุณหภูมิที่อยู่ห่างจากช่วงนี้มากกว่า
  • ต้องการลิงก์อีกครั้ง : ขออภัย ดูเหมือนว่ามีบางอย่างผิดปกติกับบัญชี โปรดใช้แอป Google Home หรือแอป Assistant เพื่อลิงก์ <device(s)>อีกครั้ง
  • RemoteSetDisabled :
    • พารามิเตอร์ที่ไม่บังคับ errorCodeReason
    • currentlyArmed - ขออภัย เนื่องจากระบบรักษาความปลอดภัยเปิดอยู่แล้ว คุณจะต้องใช้ <device(s)> หรือแอปเพื่อทําการเปลี่ยนแปลง
    • remoteUnlockNotAllowed - ขออภัย ฉันปลดล็อก <อุปกรณ์> จากระยะไกลไม่ได้
    • remoteControlOff - การทํางานนั้นถูกปิดใช้งานอยู่ในขณะนี้ โปรดเปิดใช้รีโมตคอนโทรลใน <อุปกรณ์> แล้วลองอีกครั้ง
    • childSafetyModeActive - การดําเนินการนี้จะปิดใช้งาน <device(s)> ขณะที่ใช้งานโหมดปลอดภัยสําหรับเด็ก
  • RoomsOnDifferentFloors : <device(s)> เข้าถึงห้องเหล่านั้นไม่ได้เนื่องจากอยู่คนละชั้น
  • SafetyShutOff : <device(s)> <is/are> ในโหมดปิดความปลอดภัย ดังนั้นคุณจะต้อง <it/them> ปรับเอง
  • modeCannotBeApplied : ใช้ <device(s)> ไม่ได้
  • securityRestriction : <device(s)> <has/have> ข้อจํากัดด้านความปลอดภัย
  • SoftwareUpdateNotNot : ขออภัย ไม่มีการอัปเดตซอฟต์แวร์ให้บริการใน <device(s)>
  • startRequiresTime : วิธีการคือให้บอกเวลาที่ต้องการเรียกใช้ <device(s)>
  • tillCoolingDown : <device(s)> <is/are> ยังอยู่ระหว่างรอให้ระบบเย็นลง
  • tillWarmingUp : <device(s)> <is/are> ยังทําความร้อนอยู่
  • StreamUnavailable : ขออภัย ดูเหมือนว่าสตรีมจะใช้งานไม่ได้จาก <device(s)>
  • streamUnplayable : ขออภัย ตอนนี้ฉันเปิดสตรีมจาก <device(s)> ไม่ได้
  • tankEmpty : <device(s)> <has/have> <an empty tank/empty tank> โปรดกรอก <it/them> แล้วลองอีกครั้ง
  • targetAlreadyReached : ขออภัย ดูเหมือนว่าอุณหภูมินั้นเป็นอุณหภูมิปัจจุบันแล้ว
  • TimerValueOutOfRange : <device(s)> ภายในระยะเวลาดังกล่าวไม่ได้
  • FailedFailedAttempts มากเกินไป : ขออภัย คุณป้อนรหัสผ่านผิดหลายครั้งเกินไป โปรดไปที่แอปของอุปกรณ์เพื่อดําเนินการดังกล่าวให้เสร็จ
  • transientError : ขออภัย มีบางอย่างผิดพลาดในการควบคุม <device(s)> โปรดลองอีกครั้ง
  • turnOff , deviceTurnedOff : <device(s)> <is/are> ปิดอยู่ตอนนี้
  • unableToLocationeDevice : ฉันหา <device(s)> ไม่เจอ
  • UnknownFoodPreset : <device(s)> ไม่รองรับการตั้งค่าอาหารล่วงหน้านั้น
  • UnlockFailure : <device(s)> ปลดล็อกไม่ได้
  • unpausableState : <device(s)> หยุดชั่วคราวไม่ได้ในขณะนี้
  • userCancelled : ok
  • valueOutOfRange : <device(s)> ตั้งค่าเป็นอุณหภูมินั้นไม่ได้

ข้อยกเว้น

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

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

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

หากคําสั่งทํางานไม่สําเร็จเนื่องจากมีข้อยกเว้น สถานะควรเป็น "ยกเว้น" และควรรายงานข้อยกเว้นโดยใช้ลักษณะเฉพาะของ StatusReport

ข้อยกเว้นที่ยังสามารถบล็อก (SUCCESS) เกี่ยวกับอุปกรณ์เป้าหมาย

ตัวอย่างนี้มีไว้สําหรับล็อกประตู

ล็อกประตูหน้าแบตเตอรี่เหลือน้อย กําลังล็อกประตูหน้า

{
  "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 bags/full bags> โปรดล้างข้อมูล <it/them> แล้วลองอีกครั้ง
  • binFull : <device(s)> <has/have> <a full bin/full bins>
  • carbonMonoxideDetected : ตรวจพบคาร์บอนมอนอกไซด์ใน <ชื่อบ้าน>
  • deviceAtExtremeTemperature : <device(s)> <is/are> ที่ <antremtemp/tremeอุณหภูมิs>
  • deviceJammingDetected : <device(s)> <is/are> ติดขัด
  • deviceMoved : <device(s)> <was/were> ย้ายแล้ว
  • deviceOpen : <device(s)> <is/are> open
  • deviceTampered : <device(s)> <has/have> ถูกแก้ไข
  • อุปกรณ์ที่ไม่ได้เสียบปลั๊ก : <device(s)> <is/are> unplugged
  • floorUnreachable : <device(s)> เข้าถึงห้องดังกล่าวไม่ได้ โปรดย้าย <it/them> ไปยังชั้นที่ถูกต้องแล้วลองอีกครั้ง
  • hardwareFailure : <device(s)> <has/have> เมื่อมีปัญหาเกี่ยวกับฮาร์ดแวร์
  • inSoftwareUpdate : <device(s)> <is/are> อยู่ในการอัปเดตซอฟต์แวร์
  • isBypassed : <device(s)> <is/are> ถูกข้ามอยู่ในขณะนี้
  • แบตเตอรี่ต่ํา : <device(s)> <has/have> แบตเตอรี่ต่ํา
  • MotionDetected : <device(s)> <detect(s)> การเคลื่อนไหว
  • NeedPads : <device(s)> <need(s)> แผ่นใหม่
  • needSoftwareUpdate : <device(s)> <need(s)> การอัปเดตซอฟต์แวร์
  • NeedWater : <device(s)> <need(s)> น้ํา
  • NetworkJammingDetected : การเชื่อมต่อเครือข่ายในบ้านกับ <device(s)> ทํางานไม่ถูกต้อง
  • noIssuesReported : <device(s)> รายงานปัญหา
  • RoomsOnDifferentFloors : <device(s)> เข้าถึงห้องเหล่านั้นไม่ได้เนื่องจากอยู่คนละชั้น
  • runCycleFinished : <device(s)> <has/have> ทํางานเสร็จแล้ว
  • securityRestriction : <device(s)> <has/have> ข้อจํากัดด้านความปลอดภัย
  • smokeDetected : ตรวจพบควันใน <ชื่อบ้าน>
  • tankEmpty : <device(s)> <has/have> <an empty tank/empty tank> โปรดกรอก <it/them> แล้วลองอีกครั้ง
  • โดยใช้ฟีเจอร์ใช้อินเทอร์เน็ตมือถือ : <device(s)> <is/are> โดยใช้ฟีเจอร์ใช้อินเทอร์เน็ตมือถือเป็นเครือข่ายสํารอง
  • WaterLeakDetected : <device(s)> <detect(s)> น้ํารั่ว