Supprimer un appareil consiste à le désactiver dans la structure. Un utilisateur peut le faire à l'aide de Google Home app (GHA), et une application peut désactiver un appareil connecté de manière programmatique. La suppression de certains appareils n'est pas possible. La suppression d'un appareil peut également avoir une incidence sur la structure et l'expérience utilisateur de votre application.
Ce que vous pouvez supprimer
Vous pouvez supprimer les appareils suivants de manière programmatique à l'aide des API Home :
- Matter appareils pour lesquels votre application dispose d'autorisations.
- Matter, à condition que votre application ait accès à tous les appareils connectés via la passerelle. Si vous supprimez le pont, tous les appareils Matter qui y sont connectés le seront également.
- Caméras et sonnettes compatibles, y compris les caméras et sonnettes Google Nest compatibles avec Matter, ainsi que les caméras partenaires compatibles. Pour en savoir plus sur les modèles compatibles et non compatibles, consultez Caméras et sonnettes.
Ce que vous ne pouvez pas supprimer
Les appareils suivants ne peuvent pas être supprimés de manière programmatique à l'aide des API Home :
- Matter appareils pour lesquels votre application ne dispose pas des autorisations utilisateur.
- Appareils individuels connectés derrière un pont Matter.
- Cloud-to-cloud appareils associés.
- Appareils à double chemin sans caméra (appareils qui implémentent Matter et Cloud-to-cloud, autres que les caméras et sonnettes compatibles).
- Les caméras et sonnettes non compatibles, y compris les écrans connectés avec caméras intégrées et les anciennes caméras qui ne sont pas compatibles avec Matter (voir Caméras et sonnettes).
Points importants à prendre en compte avant de supprimer un appareil
Lorsque votre application supprime un appareil, il est supprimé de toute la structure, ce qui affecte tous les utilisateurs et toutes les applications, y compris GHA. Selon le type d'appareil, la désactivation peut avoir d'autres effets secondaires :
- Si un appareil offre plusieurs fonctions, comme une ampoule connectée qui sert également de hub, sa suppression entraîne également la suppression de tous les appareils associés. L'application doit informer l'utilisateur si plusieurs fonctions de l'appareil sont concernées.
- Si vous supprimez une caméra ou une sonnette, l'ensemble de l'historique vidéo 24h/24, de l'historique vidéo des événements, des clips enregistrés et des données de la bibliothèque de visages familiers associés à cette caméra dans toute la structure de la maison seront définitivement supprimés.
- La désactivation d'une caméra n'annule pas les abonnements actifs, tels que Google Home Premium ou les services de surveillance partenaires. Les abonnements se poursuivent jusqu'à ce que l'utilisateur les résilie.
- Lorsqu'une caméra ou une sonnette est mise hors service, la plate-forme Home APIs présente à l'utilisateur un écran de confirmation géré par Google, expliquant que l'historique vidéo sera définitivement effacé. L'utilisateur doit confirmer cette invite avant que l'appareil ne soit supprimé.
- Soyez prudent lorsque vous supprimez des appareils sur des surfaces partagées, car cela peut avoir des conséquences imprévues pour les autres utilisateurs.
- La suppression d'un appareil ne doit être effectuée que sur des surfaces authentifiées, comme un téléphone mobile, et non sur des appareils non authentifiés comme les téléviseurs. Cela enfreint le Règlement du programme Google Home pour les développeurs.
Supprimer un appareil
La vérification de l'éligibilité d'un appareil à la suppression est coûteuse et ne doit être effectuée qu'en cas de nécessité. Pour vérifier si un appareil peut être supprimé, utilisez la commande suivante :
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.") }
Appareils Matter
Vous pouvez supprimer un appareil Matter de manière programmatique si l'appareil n'est pas derrière un pont Matter.
Pour supprimer un appareil Matter, appelez decommissionDevice() sur celui-ci :
val decommissionedDeviceIds = device.decommissionDevice()
Si l'appel ne génère pas d'erreur, cela signifie qu'il a réussi.
Vous pouvez vérifier si l'ID de l'appareil figure parmi ceux renvoyés par decommissionDevice() :
if (decommissionedDeviceIds.contains(deviceId)) { println("Decommission successful!") } else { println("Decommission failed!") }
Caméras et sonnettes
Vous pouvez supprimer les caméras et sonnettes compatibles par programmation à l'aide de decommissionDevice().
Voici quelques exemples de modèles compatibles :
- 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)
- Caméras et sonnettes de partenaires compatibles (comme onn. de Walmart)
Les caméras et sonnettes suivantes ne peuvent pas être mises hors service de manière programmatique :
- Écrans connectés avec caméras intégrées, comme Google Nest Hub Max.
- Anciennes caméras et sonnettes Nest qui ne sont pas compatibles avec Matter et qui se connectent uniquement via des services cloud, comme la Nest Cam Indoor (1re génération), la Nest Cam Outdoor (1re génération), la Nest Cam IQ et la Nest Doorbell (filaire, 1re génération).
- Caméras et sonnettes tierces Cloud-to-cloud associées.
Lorsque votre application lance la désactivation d'une caméra ou d'une sonnette, la plate-forme affiche un écran de confirmation géré par Google à l'utilisateur. Cet écran informe l'utilisateur que la suppression de la caméra efface définitivement l'ensemble de l'historique vidéo en continu, de l'historique des événements, des clips et des données de la bibliothèque de visages familiers associés à l'appareil dans toute la structure.
Si l'utilisateur ferme ou annule l'écran de confirmation,decommissionDevice() génère une HomeException.
La désactivation d'une caméra n'annule pas les abonnements actifs à la caméra (comme Google Home Premium). Les utilisateurs doivent résilier les abonnements séparément auprès du fournisseur d'abonnement.
kotlin
try {
val decommissionedDeviceIds = device.decommissionDevice()
if (decommissionedDeviceIds.contains(device.id)) {
// Camera was successfully decommissioned
}
} catch (e: HomeException) {
// Handle cancellation or decommission error
}
Appareils non Matter
Les appareils non Matter (autres que les caméras et les sonnettes compatibles) ne peuvent pas être supprimés par programmation. Pour supprimer d'autres appareils non-Matter, vous pouvez envoyer une requête de synchronisation (voir Demander une synchronisation) ou supprimer l'intégration Cloud-to-cloud (voir Supprimer une intégration cloud à cloud lancée).
Si vous appelez decommissionDevice() sur un appareil non compatible et non Matter, une HomeException est générée.
Une fois que vous avez supprimé un appareil non-Matter, vérifiez sa présence pour confirmer qu'il a bien été supprimé :
var removedDevice: HomeDevice? = null runBlockingCustom { try { removedDevice = homeManager.devices().get(deviceId) } catch (exception: Exception) { println("removal successful!") } } if (removedDevice != null) { println("removal failed!") }