Menghapus perangkat berarti menonaktifkannya dari struktur. Pengguna dapat melakukannya menggunakan Google Home app (GHA), dan aplikasi dapat menonaktifkan perangkat smart home secara terprogram. 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, sehingga 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:
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.") }
Perangkat Matter
Anda dapat menghapus perangkat Matter secara terprogram jika perangkat tidak berada di belakang jembatan Matter.
Untuk menghapus perangkat Matter, panggil
decommissionDevice()
di perangkat tersebut:
val decommissionedDeviceIds = device.decommissionDevice()
Jika panggilan tidak memunculkan error, berarti berhasil.
Anda dapat memeriksa apakah ID perangkat termasuk di antara ID yang ditampilkan oleh
decommissionDevice()
:
if (decommissionedDeviceIds.contains(deviceId)) { println("Decommission successful!") } else { println("Decommission failed!") }
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 decommissionDevice()
di perangkat
non-Matter, HomeException
akan muncul.
Setelah Anda menghapus perangkat non-Matter, periksa keberadaan perangkat untuk memverifikasi bahwa perangkat berhasil dihapus:
var removedDevice: HomeDevice? = null runBlockingCustom { try { removedDevice = homeManager.devices().get(deviceId) } catch (exception: Exception) { println("removal successful!") } } if (removedDevice != null) { println("removal failed!") }
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:
- Hapus asosiasi Cloud-to-cloud seperti yang dijelaskan dalam Perangkat non-Matter.
- 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, HomeException
akan ditampilkan.