Menghapus perangkat

Menghapus perangkat berarti menonaktifkannya dari struktur. Pengguna dapat melakukan ini menggunakan Google Home app (GHA), dan aplikasi dapat menonaktifkan perangkat smart home secara terprogram. Ada batasan mengenai perangkat mana saja yang dapat dihapus. Selain itu, menghapus perangkat dapat memengaruhi struktur dan pengalaman pengguna aplikasi Anda.

Yang dapat Anda hapus

Anda dapat menghapus perangkat berikut secara terprogram melalui Home API:

  • Perangkat Matter yang aplikasi Anda memiliki izinnya.
  • Bridge Matter, jika aplikasi Anda memiliki akses ke semua perangkat yang terhubung melalui bridge tersebut. Dengan menghapus bridge, semua perangkat Matter yang terhubung ke bridge tersebut juga dihapus.

Yang tidak dapat Anda hapus

Perangkat berikut tidak dapat dihapus secara terprogram melalui API Home:

  • Perangkat Matter yang izin penggunanya tidak dimiliki aplikasi Anda.
  • Perangkat yang terhubung di balik suatu bridge Matter.
  • Perangkat tertaut Cloud-to-cloud.
  • Perangkat jalur ganda (perangkat yang menerapkan Matter dan Cloud-to-cloud).

Pertimbangan penting sebelum menghapus perangkat

Jika aplikasi Anda menghapus perangkat, perangkat tersebut akan dihapus dari seluruh struktur, yang memengaruhi semua pengguna dan semua aplikasi, termasuk GHA. Bergantung pada jenis perangkatnya, mungkin ada efek samping tambahan dari menonaktifkan perangkat:

  • Perangkat yang menerapkan beberapa jenis perangkat: Jika perangkat memiliki beberapa fungsi - misalnya, lampu smart yang juga berfungsi sebagai hub, menghapusnya juga akan menghapus semua perangkat terkait. Aplikasi harus memberi tahu pengguna jika beberapa fungsi perangkat akan terpengaruh.
  • Histori Perangkat: Menghapus perangkat dapat menyebabkan penghapusan histori perangkat.
  • Platform Bersama: Berhati-hatilah saat menghapus perangkat di platform bersama, karena hal ini dapat menimbulkan konsekuensi yang tidak diinginkan bagi orang lain.
  • Autentikasi: Penghapusan perangkat hanya boleh dilakukan pada platform yang diautentikasi, seperti ponsel, bukan pada perangkat yang tidak diautentikasi seperti TV. Tindakan ini melanggar Kebijakan Developer Google Home.

Menghapus perangkat

Pemeriksaan kelayakan perangkat untuk dihapus dapat cukup membebani, sehingga sebaiknya hanya dilakukan jika diperlukan. Untuk memeriksa apakah suatu perangkat memenuhi syarat untuk dihapus, gunakan perintah berikut:

swift let eligibility = try await device.decommissionEligibility

Perangkat Matter

Anda dapat menghapus perangkat Matter secara terprogram jika perangkat tidak berada di balik bridge Matter.

Untuk menghapus perangkat Matter, panggil decommission() terhadap perangkat tersebut:

swift let decommissionedDeviceIDs = try await device.decommission()

Jika panggilan tidak memunculkan error, berarti berhasil.

Anda dapat memeriksa apakah ID perangkat termasuk di antara ID yang ditampilkan oleh decommission():

swift do { let decommissionedDeviceIDs = try await device.decommission() print("The following devices were decommissioned: \(decommissionedDeviceIDs)") } catch { print("An error occurred: \(error)") }

Perangkat non-Matter

Perangkat non-Matter tidak dapat dihapus secara terprogram. Untuk menghapus perangkat non-Matter, Anda dapat mengirim permintaan Sinkronisasi (lihat Minta Sinkronisasi), atau menghapus integrasi Cloud-to-cloud (lihat Menghapus integrasi cloud-ke-cloud yang diluncurkan).

Jika Anda memanggil decommission() di perangkat non-Matter, HomeError akan muncul.

Setelah Anda menghapus perangkat non-Matter, periksa keberadaan perangkat untuk memverifikasi bahwa perangkat berhasil dihapus:

swift guard try await !self.context.devices().list().contains(where: { $0.id == deviceID }) else { // The device still exists in Home APIs }

Perangkat multi-sumber

Perangkat multi-sumber adalah perangkat yang menggunakan API Cloud-to-cloud dan Matter. Jika Anda memeriksa kelayakan penonaktifan perangkat tersebut, Anda akan mendapatkan DecommissionIneligibleReason.multiSourceDevice, yang menunjukkan bahwa karena perangkat tersebut memiliki banyak sumber, perangkat tersebut tidak dapat dinonaktifkan.

Untuk menghapus perangkat multi-sumber, gunakan prosedur berikut:

  1. Hapus asosiasi Cloud-to-cloud seperti yang dijelaskan dalam Perangkat Non-Matter.
  2. Nonaktifkan perangkat Matter seperti yang dijelaskan dalam Perangkat Matter.

Urutan langkah-langkah ini penting. Jika Anda mencoba menonaktifkan perangkat Matter sebelum menghapus asosiasi Cloud-to-cloud, HomeError akan ditampilkan.