นำอุปกรณ์ออก

การนำอุปกรณ์ออกเกี่ยวข้องกับการเลิกใช้งานอุปกรณ์จากโครงสร้าง ผู้ใช้สามารถ ทำได้โดยใช้ Google Home app (GHA) และแอปสามารถ เลิกใช้งานอุปกรณ์สมาร์ทโฮมโดยอัตโนมัติได้ โดยมีข้อจำกัดเกี่ยวกับอุปกรณ์ที่นำออกได้ นอกจากนี้ การนำอุปกรณ์ออกอาจส่งผลต่อโครงสร้างและประสบการณ์ของผู้ใช้ สำหรับแอปของคุณ

สิ่งที่คุณนำออกได้

คุณนำอุปกรณ์ต่อไปนี้ออกโดยอัตโนมัติได้ผ่าน Home API

  • Matter อุปกรณ์ที่แอปของคุณมีสิทธิ์เข้าถึง
  • Matter ตราบใดที่แอปของคุณมีสิทธิ์เข้าถึงอุปกรณ์ทั้งหมดที่เชื่อมต่อผ่านบริดจ์ การนำบริดจ์ออกจะเป็นการนำอุปกรณ์ Matter ทั้งหมดที่เชื่อมต่อกับบริดจ์ออก

สิ่งที่คุณนำออกไม่ได้

คุณนำอุปกรณ์ต่อไปนี้ออกโดยใช้โปรแกรมผ่าน Home API ไม่ได้

  • Matter อุปกรณ์ที่แอปของคุณไม่มี สิทธิ์ของผู้ใช้
  • อุปกรณ์แต่ละเครื่องที่เชื่อมต่ออยู่หลังบริดจ์ Matter
  • มีอุปกรณ์ที่ลิงก์อยู่ Cloud-to-cloud เครื่อง
  • อุปกรณ์แบบ 2 เส้นทาง (อุปกรณ์ที่ใช้ทั้ง Matter และ Cloud-to-cloud)

ข้อควรพิจารณาที่สำคัญก่อนนำอุปกรณ์ออก

เมื่อแอปนำอุปกรณ์ออก ระบบจะนำอุปกรณ์ดังกล่าวออกจากโครงสร้างทั้งหมด ซึ่งจะส่งผลต่อผู้ใช้และแอปทั้งหมด รวมถึง GHA การเลิกใช้งานอุปกรณ์อาจส่งผลข้างเคียงเพิ่มเติมดังนี้ ทั้งนี้ขึ้นอยู่กับประเภทของอุปกรณ์

  • อุปกรณ์ที่ใช้ประเภทอุปกรณ์หลายประเภท: หากอุปกรณ์มีฟังก์ชันหลายอย่าง เช่น หลอดไฟอัจฉริยะที่ทำหน้าที่เป็นฮับด้วย การนำอุปกรณ์ดังกล่าวออกจะนำอุปกรณ์ที่เชื่อมโยงทั้งหมดออกด้วย แอปควรแจ้งให้ผู้ใช้ทราบหากฟังก์ชันของอุปกรณ์หลายอย่างจะได้รับผลกระทบ
  • ประวัติอุปกรณ์: การลบอุปกรณ์อาจส่งผลให้ระบบนำประวัติของอุปกรณ์ออก
  • แพลตฟอร์มที่แชร์: โปรดใช้ความระมัดระวังเมื่อลบอุปกรณ์ในแพลตฟอร์มที่แชร์ เนื่องจากอาจส่งผลกระทบโดยไม่ตั้งใจต่อผู้อื่น
  • การตรวจสอบสิทธิ์: การนำอุปกรณ์ออกควรดำเนินการในแพลตฟอร์มที่ผ่านการตรวจสอบสิทธิ์แล้วเท่านั้น เช่น โทรศัพท์มือถือ ไม่ใช่ในอุปกรณ์ที่ไม่ผ่านการตรวจสอบสิทธิ์ เช่น ทีวี การดำเนินการดังกล่าวละเมิดนโยบายสำหรับนักพัฒนาแอป Google Home

นำอุปกรณ์ออก

การตรวจสอบสิทธิ์ของอุปกรณ์ในการนำออกมีค่าใช้จ่ายสูงและควรดำเนินการเฉพาะในกรณีที่จำเป็นเท่านั้น หากต้องการตรวจสอบว่าอุปกรณ์มีสิทธิ์นำออกหรือไม่ ให้ใช้คำสั่งต่อไปนี้

val eligibility = device.checkDecommissionEligibility()

if (eligibility is DecommissionEligibility.Ineligible) {
  println("The device cannot be decommissioned.")
} else if (eligibility is DecommissionEligibility.EligibleWithSideEffects) {
  println("The device can be decommissioned but there will be side effects on other devices.")
} else if (eligibility is DecommissionEligibility.Eligible) {
  println("The device can be decommissioned.")
}

อุปกรณ์ Matter

คุณนำอุปกรณ์ Matter ออกแบบเป็นโปรแกรมได้หากอุปกรณ์ไม่ได้อยู่หลังบริดจ์ Matter

หากต้องการนำอุปกรณ์ Matter ออก ให้โทรหา decommissionDevice() ในอุปกรณ์ดังกล่าว

val decommissionedDeviceIds = device.decommissionDevice()

หากการเรียกใช้ไม่ทำให้เกิดข้อผิดพลาด แสดงว่าสำเร็จ

คุณตรวจสอบได้ว่ารหัสของอุปกรณ์อยู่ในรายการที่ส่งคืนโดย decommissionDevice() หรือไม่

if (decommissionedDeviceIds.contains(deviceId)) {
  println("Decommission successful!")
} else {
  println("Decommission failed!")
}

อุปกรณ์ที่ไม่ใช่ Matter

ไม่สามารถนำอุปกรณ์ที่ไม่ใช่ Matter ออกโดยใช้โปรแกรม หากต้องการนำอุปกรณ์ที่ไม่ใช่ Matter ออก คุณสามารถ ส่งคำขอซิงค์ (ดูส่งคำขอ ซิงค์) หรือลบการผสานรวม Cloud-to-cloud (ดู ลบการผสานรวมระบบคลาวด์ต่อระบบคลาวด์ที่เปิดตัวแล้ว)

หากคุณเรียกใช้ decommissionDevice() ในอุปกรณ์ที่Matterไม่ใช่ ChromeOS ระบบจะแสดงข้อผิดพลาด HomeException

เมื่อนำอุปกรณ์ที่ไม่ใช่ Matter ออกแล้ว ให้ตรวจสอบว่าอุปกรณ์นั้นยังอยู่หรือไม่เพื่อยืนยันว่านำออกเรียบร้อยแล้ว

var removedDevice: HomeDevice? = null
runBlockingCustom {
  try {
    removedDevice = homeManager.devices().get(deviceId)
  } catch (exception: Exception) {
    println("removal successful!")
  }
}
if (removedDevice != null) {
  println("removal failed!")
}

อุปกรณ์หลายแหล่ง

อุปกรณ์หลายแหล่งคืออุปกรณ์ที่ใช้ทั้ง API ของ Cloud-to-cloud และ Matter หากตรวจสอบสิทธิ์ในการเลิกใช้งาน ของอุปกรณ์ดังกล่าว คุณจะได้รับ DecommissionIneligibleReason.multiSourceDevice ซึ่งระบุว่าเลิกใช้งานอุปกรณ์ไม่ได้เนื่องจากเป็นอุปกรณ์แบบหลายแหล่ง

หากต้องการนำอุปกรณ์แบบหลายแหล่งที่มาออก ให้ทำตามขั้นตอนต่อไปนี้

  1. นำการเชื่อมโยง Cloud-to-cloud ออกตามที่อธิบายไว้ใน อุปกรณ์ที่ไม่ใช่ Matter
  2. เลิกใช้งานอุปกรณ์ Matter ตามที่อธิบายไว้ใน อุปกรณ์ Matter

ลำดับของขั้นตอนเหล่านี้มีความสำคัญ หากคุณพยายาม เลิกใช้งานMatterอุปกรณ์ก่อนที่จะนำการเชื่อมโยงCloud-to-cloudออก ระบบจะแสดงHomeException