Wenn Sie ein Gerät entfernen, wird es aus der Struktur entfernt. Ein Nutzer kann dies über Google Home app (GHA) tun und eine App kann ein Smart-Home-Gerät programmatisch außer Betrieb nehmen. Es gibt Einschränkungen hinsichtlich der Geräte, die entfernt werden können. Das Entfernen eines Geräts kann sich auch auf die Struktur und die Nutzerfreundlichkeit Ihrer App auswirken.
Was Sie entfernen können
Sie können die folgenden Geräte programmatisch über die Home APIs entfernen:
- Matter Geräte, für die Ihre App Berechtigungen hat.
- Matter-Bridges, sofern Ihre App Zugriff auf alle über die Bridge verbundenen Geräte hat. Wenn du die Bridge entfernst, werden alle damit verbundenen Matter-Geräte entfernt.
- Unterstützte Kamera- und Türklingelgeräte, einschließlich Matter-kompatibler Google Nest-Kameras und ‑Türklingeln sowie kompatibler Partnerkameras. Weitere Informationen zu unterstützten und nicht unterstützten Modellen findest du unter Kameras und Türklingeln.
Was Sie nicht entfernen können
Die folgenden Geräte können nicht programmatisch über die Home-APIs entfernt werden:
- Matter Geräte, für die Ihrer App Nutzerberechtigungen fehlen.
- Einzelne Geräte, die über eine Matter-Bridge verbunden sind.
- Cloud-to-cloud verknüpfte Geräte.
- Geräte mit Dual-Path-Funktion, die keine Kameras sind (Geräte, die sowohl Matter als auch Cloud-to-cloud implementieren, mit Ausnahme von unterstützten Kameras und Türklingeln).
- Nicht unterstützte Kamera- und Türklingelgeräte, einschließlich Smart Displays mit integrierten Kameras und älteren Kameras, die Matter nicht unterstützen (siehe Kameras und Türklingeln).
Wichtige Hinweise vor dem Entfernen eines Geräts
Wenn Ihre App ein Gerät entfernt, wird es aus der gesamten Struktur entfernt. Das wirkt sich auf alle Nutzer und alle Apps aus, einschließlich der GHA. Je nach Gerätetyp kann die Außerbetriebnahme eines Geräts zusätzliche Auswirkungen haben:
- Wenn ein Gerät mehrere Funktionen bietet, z. B. eine smarte Lampe, die auch als Hub fungiert, werden beim Entfernen auch alle zugehörigen Geräte entfernt. Die App sollte den Nutzer informieren, wenn mehrere Gerätefunktionen betroffen sind.
- Wenn Sie eine Kamera oder Türklingel entfernen, werden der gesamte lückenlose Videoverlauf, der ereignisbasierte Videoverlauf, die aufgezeichneten Clips und die Daten der Gesichterdatenbank, die mit dieser Kamera verknüpft sind, im gesamten Zuhause endgültig gelöscht.
- Durch das Außerbetriebnehmen einer Kamera werden aktive Abos wie Google Home Premium oder Partnerüberwachungsdienste nicht gekündigt. Abos laufen weiter, bis sie vom Nutzer gekündigt werden.
- Wenn eine Kamera oder Türklingel außer Betrieb genommen wird, wird dem Nutzer auf der Home APIs-Plattform ein von Google verwalteter Bestätigungsbildschirm angezeigt, auf dem erklärt wird, dass der Videoverlauf dauerhaft gelöscht wird. Der Nutzer muss diese Aufforderung bestätigen, bevor das Gerät entfernt wird.
- Seien Sie vorsichtig, wenn Sie Geräte auf gemeinsam genutzten Oberflächen löschen, da dies unbeabsichtigte Folgen für andere haben kann.
- Das Entfernen von Geräten darf nur auf authentifizierten Oberflächen wie einem Smartphone und nicht auf nicht authentifizierten Geräten wie Fernsehern erfolgen. Dies verstößt gegen die Google Home-Richtlinien für Entwickler.
Gerät entfernen
Die Prüfung der Eignung eines Geräts für das Entfernen ist kostspielig und sollte nur bei Bedarf erfolgen. Mit dem folgenden Befehl können Sie prüfen, ob ein Gerät entfernt werden kann:
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-Geräte
Sie können ein Matter-Gerät programmatisch entfernen, wenn es sich nicht hinter einer Matter-Bridge befindet.
So entfernen Sie ein Matter-Gerät: Rufen Sie decommissionDevice()
auf dem Gerät auf:
val decommissionedDeviceIds = device.decommissionDevice()
Wenn beim Aufruf kein Fehler ausgegeben wird, war er erfolgreich.
Sie können prüfen, ob die Geräte-ID zu den IDs gehört, die von decommissionDevice() zurückgegeben werden:
if (decommissionedDeviceIds.contains(deviceId)) { println("Decommission successful!") } else { println("Decommission failed!") }
Kameras und Türklingeln
Unterstützte Kameras und Türklingeln können programmatisch mit decommissionDevice() entfernt werden.
Unterstützte Modelle:
- Google Nest Cam (indoor, wired)
- Google Nest Cam (outdoor or indoor, battery)
- Google Nest Cam with floodlight
- Google Nest Doorbell (battery)
- Google Nest Doorbell (wired)
- Kompatible Partnerkameras und ‑Türklingeln (z. B. Walmart onn.)
Die folgenden Kamera- und Türklingelgeräte können nicht programmatisch außer Betrieb genommen werden:
- Smart Displays mit integrierten Kameras, z. B. Google Nest Hub Max.
- Ältere Nest-Kameras und ‑Türklingeln, die Matter nicht unterstützen und nur über Cloud-Dienste wie die Nest Cam Indoor (1. Generation), die Nest Cam Outdoor (1. Generation), die Nest Cam IQ und die Nest Doorbell (mit Kabel, 1. Generation) verbunden werden können.
- Cloud-to-cloud-Kameras und ‑Türklingeln von Drittanbietern, die verknüpft sind.
Wenn Ihre App die Außerbetriebnahme einer Kamera oder Türklingel initiiert, wird dem Nutzer auf der Plattform ein von Google verwalteter Bestätigungsbildschirm angezeigt. Auf diesem Bildschirm wird der Nutzer darüber informiert, dass durch das Entfernen der Kamera der gesamte aufgezeichnete lückenlose Videoverlauf, der Ereignisverlauf, die Clips und die Daten der Gesichterdatenbank, die mit dem Gerät verknüpft sind, in der gesamten Struktur endgültig gelöscht werden.
Wenn der Nutzer den Bestätigungsbildschirm schließt oder abbricht, löstdecommissionDevice() eine HomeException aus.
Wenn Sie eine Kamera außer Betrieb nehmen, werden aktive Kamera-Abos (z. B. Google Home Premium) nicht gekündigt. Nutzer müssen Abos separat über den Aboanbieter kündigen.
kotlin
try {
val decommissionedDeviceIds = device.decommissionDevice()
if (decommissionedDeviceIds.contains(device.id)) {
// Camera was successfully decommissioned
}
} catch (e: HomeException) {
// Handle cancellation or decommission error
}
Nicht Matter-kompatible Geräte
Matter-Geräte (mit Ausnahme von unterstützten Kameras und Türklingeln) können nicht programmatisch entfernt werden. Wenn Sie andere Geräte entfernen möchten, die nicht Matter-kompatibel sind, können Sie eine Synchronisierungsanfrage senden (siehe Synchronisierung anfordern) oder die Cloud-to-cloud-Integration löschen (siehe Gestartete Cloud-zu-Cloud-Integration löschen).
Wenn Sie decommissionDevice() auf einem nicht unterstützten Gerät aufrufen, das nicht Matter ist, wird eine HomeException ausgelöst.
Nachdem Sie ein Gerät entfernt haben, das nicht Matter ist, prüfen Sie, ob es noch vorhanden ist, um zu bestätigen, dass es erfolgreich entfernt wurde:
var removedDevice: HomeDevice? = null runBlockingCustom { try { removedDevice = homeManager.devices().get(deviceId) } catch (exception: Exception) { println("removal successful!") } } if (removedDevice != null) { println("removal failed!") }