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

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

ข้อผิดพลาด

คุณควรแสดงรหัสข้อผิดพลาดเมื่อเกิดปัญหาที่ทำให้คำขอ 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 : <อุปกรณ์>กำลังทำงานอยู่ ฉันจึงทำการเปลี่ยนแปลงไม่ได้
  • alreadyArmed : <device(s)> เปิดระบบอยู่แล้ว
  • alreadyAtMax : <อุปกรณ์>ตั้งค่าเป็นอุณหภูมิสูงสุดแล้ว
  • alreadyAtMin : <device(s)> ตั้งค่าเป็นอุณหภูมิต่ำสุดแล้ว
  • alreadyClosed : <device(s)> ปิดอยู่แล้ว
  • alreadyDisarmed : <device(s)> ปิดระบบอยู่แล้ว
  • alreadyDocked : <device(s)> <is/are> already docked.
  • alreadyInState : <device(s)> อยู่ในสถานะนั้นอยู่แล้ว
  • alreadyLocked : <device(s)> <is/are> already locked.
  • alreadyOff : <device(s)> ปิดอยู่แล้ว
  • alreadyOn : <device(s)> เปิดอยู่แล้ว
  • alreadyOpen : <device(s)> เปิดอยู่แล้ว
  • alreadyPaused : <device(s)> หยุดชั่วคราวอยู่แล้ว
  • alreadyStarted : <device(s)> <is/are> เริ่มต้นแล้ว
  • alreadyStopped : <device(s)> หยุดทำงานอยู่แล้ว
  • alreadyUnlocked : <device(s)> ปลดล็อกอยู่แล้ว
  • ambiguousZoneName : ขอโทษด้วย <อุปกรณ์> ไม่รู้ว่าคุณหมายถึงโซนไหน โปรดตรวจสอบว่าโซนมีชื่อที่ไม่ซ้ำกัน แล้วลองอีกครั้ง
  • amountAboveLimit : ปริมาณมากเกินกว่าที่ <device(s)> จะรับได้
  • appLaunchFailed : ขออภัย เปิด <app name> ใน <device(s)> ไม่สำเร็จ เคล็ดลับ: ยืนยัน appId และตรวจสอบว่าฮาร์ดแวร์เป้าหมายรองรับแอปดังกล่าว
  • armFailure : <อุปกรณ์>เปิดระบบไม่ได้
  • armLevelNeeded : ไม่แน่ใจว่าจะให้ตั้งค่า <device(s)> เป็นระดับไหน ลองพูดว่า "ตั้งค่า <อุปกรณ์>เป็น <ความปลอดภัยต่ำ>" หรือ "ตั้งค่า <อุปกรณ์>เป็น <ความปลอดภัยสูง>"
  • authFailure : ฉันเข้าถึง <อุปกรณ์> ไม่ได้ ลองตรวจสอบแอปดูว่าตั้งค่า <อุปกรณ์> ไว้ครบถ้วนแล้ว
  • bagFull : <device(s)> <has/have> <a full bag/full bags>. Please empty <it/them> and try again.
  • belowMinimumLightEffectsDuration : ระยะเวลาน้อยกว่าขั้นต่ำ 5 นาที โปรดลองอีกครั้ง
  • belowMinimumTimerDuration : ตั้งเวลา <device(s)> ให้สั้นขนาดนั้นไม่ได้ โปรดลองอีกครั้ง
  • binFull : <device(s)> <has/have> <a full bin/full bins>
  • cancelArmingRestricted : ขอโทษด้วย ยกเลิกการเปิดระบบ <device(s)> ไม่ได้
  • cancelTooLate : ขออภัย ยกเลิกไม่ทันแล้ว โปรดใช้ <อุปกรณ์> หรือแอปแทน
  • channelSwitchFailed : ขอโทษด้วย เปลี่ยนเป็นช่อง <channel name> ไม่ได้ ไว้ค่อยลองอีกทีนะ เคล็ดลับ: ยืนยันชื่อ/หมายเลขช่องและสถานะการสมัครใช้บริการของผู้ใช้
  • chargerIssue : ขอโทษด้วย ดูเหมือนว่า <device(s)> <has/have> <a charger issue/charger issues> เคล็ดลับ: พาร์ทเนอร์ควรตรวจสอบการตรวจวัดและประสิทธิภาพแบตเตอรี่ในระดับฮาร์ดแวร์
  • commandInsertFailed : ไม่สามารถประมวลผลคำสั่งสำหรับ <อุปกรณ์> เคล็ดลับ: ตรวจสอบประสิทธิภาพการเขียนฐานข้อมูลหรือตรรกะการจัดคิวคำสั่งภายใน
  • deadBattery : <device(s)> <has/have> <a dead battery/dead batteries>.
  • degreesOutOfRange : อุณหภูมิที่ขออยู่นอกช่วงของ <device(s)>
  • deviceAlertNeedsAssistance : <device(s)> มีการแจ้งเตือนกิจกรรมที่ทำงานอยู่และต้องการความช่วยเหลือจากคุณ
  • deviceAtExtremeTemperature : <อุปกรณ์>มี<อุณหภูมิสูงหรือต่ำเกินไป>
  • deviceBusy : ขอโทษด้วย ดูเหมือน <อุปกรณ์> กำลังทำบางอย่างอยู่ตอนนี้
  • deviceCharging : ขอโทษนะ ดูเหมือนว่า <device(s)> จะทำแบบนั้นไม่ได้ เพราะกำลังชาร์จอยู่
  • deviceClogged : ขอโทษด้วย ดูเหมือน <device(s)> จะอุดตันนะ
  • deviceCurrentlyDispensing : <device(s)> กำลังจ่ายอาหารอยู่ตอนนี้
  • deviceDoorOpen : ประตูของ <device(s)> เปิดอยู่ โปรดปิดแล้วลองอีกครั้ง
  • deviceHandleClosed : ที่จับของ <device(s)> ปิดอยู่ โปรดเปิดที่จับแล้วลองอีกครั้ง
  • deviceJammingDetected : <device(s)> ถูกรบกวนสัญญาณ
  • deviceLidOpen : ฝาของ <device(s)> เปิดอยู่ โปรดปิดฝาแล้วลองอีกครั้ง
  • deviceNeedsRepair : <device(s)> ต้องได้รับการซ่อมแซม โปรดติดต่อตัวแทนให้บริการในพื้นที่ของคุณ
  • deviceNotDocked : ขอโทษนะ ดูเหมือนว่า <อุปกรณ์> ไม่ได้ชาร์จอยู่ โปรดวาง <อุปกรณ์>บนแท่นชาร์จแล้วลองอีกครั้ง
  • deviceNotFound : <device(s)> <is/are>n't available. ลองตั้งค่า <อุปกรณ์>ใหม่อีกครั้งนะ เคล็ดลับ: ตรวจสอบว่าแบ็กเอนด์ซิงค์ Home Graph อยู่เสมอ เรียกใช้ requestSync เมื่อมีการเพิ่มหรือนำอุปกรณ์ออก
  • deviceNotMounted : ขอโทษนะ ดูเหมือนว่า <อุปกรณ์> จะทำแบบนั้นไม่ได้เพราะไม่ได้ติดตั้งไว้
  • deviceNotReady : <device(s)> ยังไม่พร้อม
  • deviceStuck : <device(s)> ติดขัดและต้องการความช่วยเหลือจากคุณ
  • deviceTampered : <device(s)> ถูกงัดแงะ
  • deviceThermalShutdown : ขอโทษนะ ดูเหมือน <อุปกรณ์> จะปิดลงเพราะมีอุณหภูมิสูงหรือต่ำเกินไป
  • directResponseOnlyUnreachable : <device(s)> ไม่รองรับรีโมตคอนโทรล
  • disarmFailure : ปิดระบบ <อุปกรณ์> ไม่ได้
  • discreteOnlyOpenClose : ขอโทษด้วย <อุปกรณ์> เปิดหรือปิดได้จนสุดเท่านั้น
  • 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)> เปิดไว้สักพักหนึ่งแล้ว โปรดเปิดประตู ดูให้แน่ใจว่ามีของอยู่ในนั้นแล้วลองอีกครั้งนะ
  • emergencyHeatOn : <device(s)> อยู่ในโหมดแหล่งความร้อนฉุกเฉิน คุณจึงต้องปรับด้วยตนเอง
  • faultyBattery : <device(s)> <has/have> <a faulty battery/faulty batteries>
  • floorUnreachable : <device(s)> ไปห้องนั้นไม่ได้ ย้าย <it/them>ไปให้ถูกชั้นแล้วลองใหม่นะ
  • functionNotSupported : จริงๆ แล้ว <อุปกรณ์> ไม่รองรับฟังก์ชันนั้น เคล็ดลับ: ตรวจสอบว่าการตอบสนอง SYNC แสดงความสามารถของอุปกรณ์อย่างถูกต้อง
  • genericDispenseNotSupported : ฉันต้องทราบว่าคุณต้องการให้จ่ายอะไร โปรดลองอีกครั้งโดยระบุชื่อรายการ
  • hardError : ขอโทษนะ เกิดข้อผิดพลาด เลยควบคุมอุปกรณ์สมาร์ทโฮมไม่ได้
  • hardError : ขอโทษนะ เกิดข้อผิดพลาด เลยควบคุมอุปกรณ์สมาร์ทโฮมไม่ได้
  • inAutoMode : ตอนนี้<อุปกรณ์>ตั้งค่าเป็นโหมดอัตโนมัติอยู่ หากต้องการเปลี่ยนอุณหภูมิ คุณจะต้องเปลี่ยน<อุปกรณ์>เป็นโหมดอื่น
  • inAwayMode : <device(s)> ตั้งค่าเป็นโหมดไม่อยู่บ้านอยู่ หากต้องการควบคุมตัวควบคุมอุณหภูมิ คุณจะต้องเปลี่ยนเป็นโหมดอยู่บ้านด้วยตนเองโดยใช้แอป Nest บนโทรศัพท์ แท็บเล็ต หรือคอมพิวเตอร์
  • inDryMode : <device(s)> ตั้งค่าเป็นโหมดทำความเย็นแบบแห้งอยู่ หากต้องการเปลี่ยนอุณหภูมิ คุณจะต้องเปลี่ยน<อุปกรณ์>เป็นโหมดอื่น
  • inEcoMode : <device(s)> ตั้งค่าเป็นโหมดอีโคอยู่ หากต้องการเปลี่ยนอุณหภูมิ คุณจะต้องเปลี่ยน<อุปกรณ์>เป็นโหมดอื่น
  • inFanOnlyMode : <device(s)> ตั้งค่าเป็นโหมดพัดลมเท่านั้นอยู่ หากต้องการเปลี่ยนอุณหภูมิ คุณจะต้องเปลี่ยน<อุปกรณ์>เป็นโหมดอื่น
  • inHeatOrCool : <device(s)> ไม่ได้อยู่ในโหมดทำความร้อน/ทำความเย็น
  • inHumidifierMode : <อุปกรณ์>ตั้งค่าเป็นโหมดเครื่องทำความชื้นอยู่ หากต้องการเปลี่ยนอุณหภูมิ คุณจะต้องเปลี่ยน<อุปกรณ์>เป็นโหมดอื่น
  • inOffMode : <อุปกรณ์> ปิดอยู่ หากต้องการเปลี่ยนอุณหภูมิ คุณจะต้องเปลี่ยนเป็นโหมดอื่น
  • inPurifierMode : <อุปกรณ์> ตั้งค่าเป็นโหมดเครื่องฟอกอากาศอยู่ หากต้องการเปลี่ยนอุณหภูมิ คุณจะต้องเปลี่ยน<อุปกรณ์>เป็นโหมดอื่น
  • inSleepMode : <device(s)> อยู่ในโหมดสลีป โปรดลองอีกครั้งในภายหลัง
  • inSoftwareUpdate : <device(s)> กำลังอัปเดตซอฟต์แวร์
  • lockFailure : ล็อก <อุปกรณ์> ไม่ได้ เคล็ดลับ: ตรวจสอบการติดขัดทางกายภาพ พลังงานต่ำ หรือมอเตอร์ขัดข้องในฮาร์ดแวร์ของล็อก
  • lockedState : <device(s)> ล็อกอยู่
  • lockedToRange : อุณหภูมินั้นอยู่นอกช่วงที่ล็อกไว้ใน <อุปกรณ์>
  • lowBattery : <device(s)> แบตเตอรี่เหลือน้อย
  • maxSettingReached : <device(s)> ตั้งค่าไว้สูงสุดแล้ว
  • maxSpeedReached : <device(s)> ตั้งค่าเป็นความเร็วสูงสุดแล้ว
  • minSettingReached : <device(s)> ตั้งค่าไว้ต่ำสุดแล้ว
  • minSpeedReached : <device(s)> ตั้งค่าเป็นความเร็วต่ำสุดอยู่แล้ว
  • monitoringServiceConnectionLost : <device(s)> <has/have> lost <its/their> connection to the monitoring service.
  • needsAttachment : ขอโทษที ดูเหมือนว่าชิ้นส่วนที่ต้องต่อกับ <อุปกรณ์> หายไป เปลี่ยนใหม่แล้วลองอีกครั้งนะ
  • needsBin : ขอโทษที ดูเหมือนว่า <device(s)> ไม่มีถังเก็บฝุ่น เปลี่ยนใหม่แล้วลองอีกครั้งนะ
  • needsPads : <device(s)> ต้องเปลี่ยนแผ่นอิเล็กโทรดใหม่
  • needsSoftwareUpdate : <device(s)> ต้องอัปเดตซอฟต์แวร์
  • needsWater : <device(s)> ต้องการน้ำ
  • networkProfileNotRecognized : ขอโทษด้วย ฉันไม่รู้จัก "<network profile>" ใน <device(s)> เคล็ดลับ: ตรวจสอบว่าสตริงชื่อโปรไฟล์ตรงกับโปรไฟล์ที่รองรับในการตอบกลับ SYNC
  • networkSpeedTestInProgress : ฉันกำลังทดสอบ<ความเร็ว>ของ<เครือข่าย>อยู่
  • noAvailableApp : ขอโทษนะ ดูเหมือนว่า <app name> จะไม่พร้อมใช้งาน
  • noAvailableChannel : ขอโทษนะ ดูเหมือนว่าชื่อช่อง <channel name> ไม่พร้อมให้บริการ
  • noChannelSubscription : ขอโทษนะ ตอนนี้คุณยังไม่ได้สมัครสมาชิกช่อง <ชื่อช่อง>
  • noTimerExists : ขอโทษที ดูเหมือนไม่ได้ตั้งตัวจับเวลาไว้ที่ <device(s)>
  • notSupported : ขอโทษนะ โหมดนั้นใช้กับ <device(s)> ไม่ได้
  • obstructionDetected : <device(s)> ตรวจพบสิ่งกีดขวาง
  • ออฟไลน์ , deviceOffline : ขอโทษนะ ดูเหมือนว่า <อุปกรณ์> จะไม่พร้อมใช้งานขณะนี้
  • onRequiresMode : โปรดระบุโหมดที่ต้องการเปิด
  • passphraseIncorrect : ขอโทษนะ ดูเหมือนว่ารหัส PIN จะไม่ถูกต้อง
  • percentOutOfRange : ขอโทษนะ ตั้งค่า <device(s)> เป็น <percent> ไม่ได้
  • pinIncorrect : (passphraseIncorrect)
  • rainDetected : ไม่ได้เปิด <อุปกรณ์> เพราะตรวจพบฝน
  • rangeTooClose : อุณหภูมิเหล่านั้นใกล้กันเกินไปสำหรับช่วงทำความร้อน-ทำความเย็นของ <device(s)> โปรดเลือกอุณหภูมิที่ห่างกันมากกว่านี้
  • relinkRequired : ขออภัย ดูเหมือนว่ามีบางอย่างผิดปกติกับบัญชีของคุณ โปรดใช้แอป Google Home หรือแอปผู้ช่วยเพื่อลิงก์ <อุปกรณ์> อีกครั้ง เคล็ดลับ: ตรวจสอบว่าเซิร์ฟเวอร์แสดงรหัสนี้เมื่อโทเค็นการรีเฟรชไม่ถูกต้องอย่างถาวร
  • remoteSetDisabled :
    • พารามิเตอร์ที่ไม่บังคับ errorCodeReason
    • currentlyArmed - ขอโทษด้วย ตอนนี้การรักษาความปลอดภัยเริ่มทำงานไปแล้ว ถ้าจะเปลี่ยนแปลง คุณต้องใช้ <อุปกรณ์> หรือแอป
    • remoteUnlockNotAllowed - ขอโทษนะ ปลดล็อก <อุปกรณ์> จากระยะไกลไม่ได้
    • remoteControlOff - ตอนนี้การดำเนินการนั้นปิดอยู่ เปิดใช้รีโมตคอนโทรลใน <อุปกรณ์> แล้วลองอีกทีนะ
    • childSafetyModeActive - การดำเนินการนั้นจะปิดไว้สำหรับ <อุปกรณ์> ขณะที่เปิดโหมดความปลอดภัยสำหรับเด็ก
  • roomsOnDifferentFloors : <device(s)> เข้าถึงห้องพวกนั้นไม่ได้เพราะอยู่คนละชั้นกัน
  • safetyShutOff : <device(s)> อยู่ในโหมดปิดระบบเพื่อความปลอดภัย คุณจึงต้องปรับด้วยตนเอง
  • sceneCannotBeApplied : ขอโทษนะ ใช้ <device(s)> ไม่ได้ เคล็ดลับ: ตรวจสอบสถานะภายในของฉากของผู้ใช้ในระบบคลาวด์ของพาร์ทเนอร์
  • securityRestriction : <device(s)> มีข้อจำกัดด้านความปลอดภัย
  • softwareUpdateNotAvailable : ขอโทษนะ ไม่มีอัปเดตซอฟต์แวร์สำหรับ <device(s)>
  • startRequiresTime : ถ้าจะทำแบบนั้น คุณต้องบอกว่าจะใช้ <device(s)> นานแค่ไหน
  • stillCoolingDown : <device(s)> กำลังทำความเย็นอยู่
  • stillWarmingUp : <device(s)> กำลังอุ่นเครื่องอยู่
  • streamUnavailable : ขอโทษที ดูเหมือนว่าตอนนี้สตรีมจาก <device(s)> จะไม่พร้อมใช้งาน
  • streamUnplayable : ขอโทษนะ ตอนนี้ฉันเล่นไลฟ์สดจาก <device(s)> ไม่ได้ เคล็ดลับ: ยืนยันการส่งสัญญาณ WebRTC/HLS และตรวจสอบว่า URL ของสตรีมถูกต้อง
  • tankEmpty : <device(s)> <has/have> <an empty tank/empty tanks>. Please fill <it/them> and try again.
  • targetAlreadyReached : ขอโทษที ดูเหมือนว่านั่นจะเป็นอุณหภูมิปัจจุบันอยู่แล้ว
  • timerValueOutOfRange : ตั้งค่า <อุปกรณ์> เป็นระยะเวลาดังกล่าวไม่ได้
  • tooManyFailedAttempts : ขออภัย พยายามไม่สำเร็จหลายครั้งเกินไป โปรดไปที่แอปของอุปกรณ์เพื่อดำเนินการดังกล่าวให้เสร็จสิ้น
  • transientError : ขออภัย เกิดข้อผิดพลาดในการควบคุม <อุปกรณ์> โปรดลองอีกครั้ง เคล็ดลับ: โดยทั่วไปแล้ว ข้อผิดพลาดเหล่านี้จะแสดงเป็นการเชื่อมต่อกับอุปกรณ์หรือบริการที่ถูกตัด รวมถึงเมื่อเปิดการเชื่อมต่อใหม่กับเซิร์ฟเวอร์ไม่ได้
  • turnedOff , deviceTurnedOff : <device(s)> ปิดอยู่ขณะนี้
  • unableToLocateDevice : ฉันค้นหา <device(s)> ไม่พบ เคล็ดลับ: ตรวจสอบการเชื่อมต่อในพื้นที่ของอุปกรณ์ (Wi-Fi/บลูทูธ)
  • unknownFoodPreset : <device(s)> ไม่รองรับการตั้งค่าอาหารล่วงหน้านั้น
  • unlockFailure : ปลดล็อก <อุปกรณ์> ไม่ได้ เคล็ดลับ: ตรวจสอบว่าฮาร์ดแวร์ติดขัด แบตเตอรี่เหลือน้อย หรือมีการป้อน PIN ไม่ถูกต้องหรือไม่
  • unpausableState : หยุด <อุปกรณ์> ชั่วคราวขณะนี้ไม่ได้
  • userCancelled : ok
  • valueOutOfRange : ตั้งค่า <อุปกรณ์> เป็นอุณหภูมินั้นไม่ได้

การรายงานสถานะออนไลน์และออฟไลน์

เมื่ออุปกรณ์ออฟไลน์ คุณควรรายงาน <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": {},
        }
      }
    }

ข้อยกเว้น

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

หากคำสั่งสำเร็จ (สถานะ = "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> นำไปเททิ้งแล้วลองใหม่อีกครั้ง
  • binFull : <device(s)> <has/have> <a full bin/full bins>
  • carbonMonoxideDetected : ตรวจพบคาร์บอนมอนอกไซด์ใน <ชื่อบ้าน>
  • deviceAtExtremeTemperature : <อุปกรณ์> มี<อุณหภูมิสูงหรือต่ำเกินไป>
  • deviceJammingDetected : <device(s)> ถูกรบกวนสัญญาณ
  • deviceMoved : ย้าย <อุปกรณ์> แล้ว
  • deviceOpen : <device(s)> เปิดอยู่
  • deviceTampered : <device(s)> ถูกงัดแงะ
  • deviceUnplugged : ถอดปลั๊ก <อุปกรณ์> แล้ว
  • floorUnreachable : <device(s)> ไปห้องนั้นไม่ได้ ย้าย <it/them>ไปให้ถูกชั้นแล้วลองใหม่นะ
  • hardwareFailure : <device(s)> มีปัญหาเกี่ยวกับฮาร์ดแวร์
  • inSoftwareUpdate : <device(s)> กำลังอัปเดตซอฟต์แวร์
  • isBypassed : <device(s)> ถูกข้ามอยู่ในขณะนี้
  • lowBattery : <device(s)> แบตเตอรี่เหลือน้อย
  • motionDetected : <device(s)> ตรวจพบการเคลื่อนไหว
  • needsPads : <device(s)> <need(s)> แผ่นใหม่
  • needsSoftwareUpdate : <device(s)> ต้องอัปเดตซอฟต์แวร์
  • needsWater : <device(s)> ต้องการน้ำ
  • networkJammingDetected : การเชื่อมต่อเครือข่ายในบ้านกับ <อุปกรณ์> ทำงานไม่ถูกต้อง
  • noIssuesReported : <device(s)> ไม่ได้รายงานปัญหา
  • roomsOnDifferentFloors : <device(s)> เข้าถึงห้องพวกนั้นไม่ได้เพราะอยู่คนละชั้นกัน
  • runCycleFinished : <device(s)> ทำงานเสร็จแล้ว
  • securityRestriction : <device(s)> มีข้อจำกัดด้านความปลอดภัย
  • smokeDetected : ตรวจพบควันใน <house name>
  • 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)> ตรวจพบน้ำรั่ว
</code{"online":></code{"online":>