การนำอุปกรณ์ออกเกี่ยวข้องกับการเลิกใช้งานอุปกรณ์จากโครงสร้าง ผู้ใช้สามารถ ทำได้โดยใช้ 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
ซึ่งระบุว่าเลิกใช้งานอุปกรณ์ไม่ได้เนื่องจากเป็นอุปกรณ์แบบหลายแหล่ง
หากต้องการนำอุปกรณ์แบบหลายแหล่งที่มาออก ให้ทำตามขั้นตอนต่อไปนี้
- นำการเชื่อมโยง Cloud-to-cloud ออกตามที่อธิบายไว้ใน อุปกรณ์ที่ไม่ใช่ Matter
- เลิกใช้งานอุปกรณ์ Matter ตามที่อธิบายไว้ใน อุปกรณ์ Matter
ลำดับของขั้นตอนเหล่านี้มีความสำคัญ หากคุณพยายาม
เลิกใช้งานMatterอุปกรณ์ก่อนที่จะนำการเชื่อมโยงCloud-to-cloudออก ระบบจะแสดงHomeException