Menghapus perangkat

Menghapus perangkat berarti menonaktifkannya dari struktur. Pengguna dapat melakukannya menggunakan Google Home app (GHA), dan aplikasi dapat secara terprogram menonaktifkan perangkat smart home. Ada batasan terkait perangkat 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:

  • Matter perangkat yang memiliki izin aplikasi Anda.
  • Matter, asalkan aplikasi Anda memiliki akses ke semua perangkat yang terhubung melalui jembatan. Menghapus jembatan akan menghapus semua perangkat Matter yang terhubung ke jembatan tersebut.

Yang tidak dapat Anda hapus

Perangkat berikut tidak dapat dihapus secara terprogram melalui API Home:

  • Matter perangkat yang tidak memiliki izin pengguna untuk aplikasi Anda.
  • Perangkat individual yang terhubung di belakang bridge Matter.
  • Cloud-to-cloud perangkat tertaut.
  • 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 tindakan ini dapat menimbulkan konsekuensi yang tidak diinginkan bagi orang lain.
  • Autentikasi: Penghapusan perangkat hanya boleh dilakukan di platform yang diautentikasi, seperti ponsel, bukan di perangkat yang tidak diautentikasi seperti TV. Tindakan ini melanggar Kebijakan Developer Google Home.

Menghapus perangkat

Memeriksa kelayakan perangkat untuk dihapus memerlukan biaya dan hanya boleh dilakukan jika diperlukan. Untuk memeriksa apakah 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 belakang jembatan Matter.

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

swift let decommissionedDeviceIDs = try await device.decommission()

Jika panggilan tidak memunculkan error, berarti berhasil.

Anda dapat memeriksa untuk melihat 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 multisumber

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.