การถอดอุปกรณ์ออกเกี่ยวข้องกับการปลดประจำการอุปกรณ์ออกจากโครงสร้าง ผู้ใช้สามารถ ทำได้โดยใช้ Google Home app (GHA) และแอปสามารถ เลิกใช้งานอุปกรณ์สมาร์ทโฮมโดยอัตโนมัติ มีข้อจำกัดในเรื่องอุปกรณ์ที่สามารถถอดออกได้ นอกจากนี้ การนำอุปกรณ์ออกอาจส่งผลต่อโครงสร้างและประสบการณ์ของผู้ใช้ สำหรับแอปของคุณ
สิ่งที่คุณสามารถลบออกได้
คุณนำอุปกรณ์ต่อไปนี้ออกโดยใช้โปรแกรมผ่าน Home API ได้
- อุปกรณ์ Matter เครื่องที่แอปของคุณมีสิทธิ์เข้าถึง
- Matter ตราบใดที่แอปของคุณมีสิทธิ์เข้าถึงอุปกรณ์ทั้งหมดที่เชื่อมต่อผ่านบริดจ์ การนำบริดจ์ออกจะเป็นการนำอุปกรณ์ Matter ทั้งหมดที่เชื่อมต่อกับบริดจ์ออก
สิ่งที่คุณไม่สามารถลบออกได้
ไม่สามารถลบอุปกรณ์ต่อไปนี้ออกโดยโปรแกรมผ่าน Home API ได้:
- Matter อุปกรณ์ที่แอปของคุณไม่มี สิทธิ์ของผู้ใช้
- อุปกรณ์แต่ละเครื่องที่เชื่อมต่อผ่านบริดจ์ Matter
- มีอุปกรณ์ที่ลิงก์ไว้ Cloud-to-cloud เครื่อง
- อุปกรณ์แบบ 2 เส้นทาง (อุปกรณ์ที่ใช้ทั้ง Matter และ Cloud-to-cloud)
ข้อควรพิจารณาที่สำคัญก่อนถอดอุปกรณ์
เมื่อแอปนำอุปกรณ์ออก ระบบจะนำอุปกรณ์ดังกล่าวออกจากโครงสร้างทั้งหมด ซึ่งจะส่งผลต่อผู้ใช้และแอปทั้งหมด รวมถึง GHA การเลิกใช้งานอุปกรณ์อาจส่งผลข้างเคียงเพิ่มเติมดังนี้ ทั้งนี้ขึ้นอยู่กับประเภทของอุปกรณ์
- อุปกรณ์ที่ใช้ประเภทอุปกรณ์หลายประเภท: หากอุปกรณ์มีฟังก์ชันหลายอย่าง เช่น หลอดไฟอัจฉริยะที่ทำหน้าที่เป็นฮับด้วย การนำอุปกรณ์ออกจะนำอุปกรณ์ที่เชื่อมโยงทั้งหมดออกด้วย แอปควรแจ้งให้ผู้ใช้ทราบหากฟังก์ชันของอุปกรณ์หลายอย่างจะได้รับผลกระทบ
- ประวัติอุปกรณ์: การลบอุปกรณ์อาจส่งผลให้ระบบนำประวัติของอุปกรณ์ออก
- แพลตฟอร์มที่แชร์: โปรดใช้ความระมัดระวังเมื่อลบอุปกรณ์ในแพลตฟอร์มที่แชร์ เนื่องจากอาจส่งผลกระทบโดยไม่ตั้งใจต่อผู้อื่น
- การตรวจสอบสิทธิ์: การนำอุปกรณ์ออกควรทำในแพลตฟอร์มที่ผ่านการตรวจสอบสิทธิ์เท่านั้น เช่น โทรศัพท์มือถือ ไม่ใช่ในอุปกรณ์ที่ไม่ผ่านการตรวจสอบสิทธิ์ เช่น ทีวี การกระทำดังกล่าวถือเป็นการละเมิดนโยบายสำหรับนักพัฒนา Google Home
นำอุปกรณ์ออก
การตรวจสอบสิทธิ์ของอุปกรณ์ในการนำออกมีค่าใช้จ่ายสูงและควรดำเนินการเฉพาะในกรณีที่จำเป็นเท่านั้น หากต้องการตรวจสอบว่าอุปกรณ์มีสิทธิ์นำออกหรือไม่ ให้ใช้คำสั่งต่อไปนี้
swift
let eligibility = try await device.decommissionEligibility
อุปกรณ์ Matter
คุณนำอุปกรณ์ Matter ออกแบบเป็นโปรแกรมได้หากอุปกรณ์ไม่ได้อยู่หลังบริดจ์ Matter
หากต้องการนำMatterอุปกรณ์ออก ให้โทรหา
decommission()อุปกรณ์ดังกล่าว
swift
let decommissionedDeviceIDs = try await device.decommission()
หากการเรียกใช้ไม่ทำให้เกิดข้อผิดพลาด แสดงว่าสำเร็จ
คุณตรวจสอบได้ว่ารหัสของอุปกรณ์อยู่ในรายการที่ส่งคืนโดย
decommission()หรือไม่ โดยทำดังนี้
swift
do {
let decommissionedDeviceIDs = try await device.decommission()
print("The following devices were decommissioned: \(decommissionedDeviceIDs)")
} catch {
print("An error occurred: \(error)")
}
อุปกรณ์ที่ไม่ใช่ Matter
ไม่สามารถนำอุปกรณ์ที่ไม่ใช่ Matter ออกโดยใช้โปรแกรม หากต้องการ นำอุปกรณ์ที่ไม่ใช่ Matter ออก คุณสามารถ ส่งคำขอซิงค์ (ดูส่งคำขอ ซิงค์) หรือลบการผสานรวม Cloud-to-cloud (ดู ลบการผสานรวมระบบคลาวด์ต่อระบบคลาวด์ที่เปิดตัวแล้ว)
หากคุณโทรไปที่ decommission() บนอุปกรณ์ที่ไม่ใช่ Matter ระบบจะแสดง HomeError
เมื่อคุณลบอุปกรณ์ที่ไม่ใช่ Matter ออกแล้ว ให้ตรวจสอบว่ามีอุปกรณ์นั้นอยู่หรือไม่เพื่อยืนยันว่าได้ลบออกสำเร็จแล้ว:
swift
guard try await !self.context.devices().list().contains(where: { $0.id == deviceID })
else {
// The device still exists in Home APIs
}
อุปกรณ์หลายแหล่ง
อุปกรณ์หลายแหล่งคืออุปกรณ์ที่ใช้ทั้ง API Cloud-to-cloud และ Matter หากตรวจสอบสิทธิ์ในการเลิกใช้งาน
อุปกรณ์ดังกล่าว คุณจะได้รับ
DecommissionIneligibleReason.multiSourceDevice
ซึ่งระบุว่าอุปกรณ์เลิกใช้งานไม่ได้เนื่องจากเป็นอุปกรณ์แบบหลายแหล่งที่มา
หากต้องการลบอุปกรณ์หลายแหล่ง ให้ใช้ขั้นตอนต่อไปนี้:
- ลบการเชื่อมโยง Cloud-to-cloud ตามที่อธิบายไว้ในอุปกรณ์ที่ไม่สำคัญ
- ยกเลิกการใช้งานอุปกรณ์ Matter ตามที่อธิบายไว้ในอุปกรณ์ Matter
ลำดับขั้นตอนเหล่านี้เป็นสิ่งสำคัญ หากคุณพยายาม
เลิกใช้งานMatterอุปกรณ์ก่อนที่จะนำการเชื่อมโยงCloud-to-cloudออก ระบบจะแสดงHomeError