Supprimer un appareil implique de le désactiver dans la structure. Un utilisateur peut le faire à l'aide de la Google Home app (GHA), et une application peut désactiver un appareil pour la maison connectée par programmation. La suppression de certains appareils est limitée. De plus, la suppression d'un appareil peut avoir une incidence sur votre structure et sur l'expérience utilisateur de votre application.
Éléments que vous pouvez supprimer
Vous pouvez supprimer les appareils suivants par programmation via les API Home :
- Matter appareils pour lesquels votre application dispose d'autorisations.
- Matter ponts, à condition que votre application ait accès à tous les appareils connectés via le pont. La suppression du pont supprime tous les Matter appareils qui y sont connectés.
Éléments que vous ne pouvez pas supprimer
Les appareils suivants ne peuvent pas être supprimés par programmation via les API Home :
- Matter appareils pour lesquels votre application ne dispose pas des autorisations utilisateur.
- Appareils individuels connectés derrière un Matter pont.
- Cloud-to-cloud appareils associés.
- Appareils à double chemin (appareils qui implémentent à la fois Matter et Cloud-to-cloud).
Points importants à prendre en compte avant de supprimer un appareil
Lorsque votre application supprime un appareil, celui-ci est supprimé de l'ensemble de la structure, ce qui affecte tous les utilisateurs et toutes les applications, y compris le GHA. Selon le type d'appareil, la désactivation d'un appareil peut avoir d'autres effets secondaires :
- Appareils implémentant plusieurs types d'appareils : si un appareil possède plusieurs fonctions (par exemple, une ampoule connectée qui sert également de hub), sa suppression supprime également tous les appareils associés. L'application doit informer l'utilisateur si plusieurs fonctions de l'appareil seront affectées.
- Historique des appareils : la suppression d'un appareil peut entraîner la suppression de son historique.
- Surfaces partagées : 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.
- Authentification : la suppression d'un appareil ne doit être effectuée que sur des surfaces authentifiées, telles qu'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 pour les développeurs Google Home.
Supprimer un appareil
Vérifier si un appareil peut être supprimé est coûteux et ne doit être effectué que lorsque cela est nécessaire. Pour vérifier si un appareil peut être supprimé, utilisez la commande suivante :
swift
let eligibility = try await device.decommissionEligibility
Appareils Matter
Vous pouvez supprimer un Matter appareil par programmation si l' appareil ne se trouve pas derrière un pont Matter.
Pour supprimer un appareil Matter, appelez
decommission() sur celui-ci :
swift
let decommissionedDeviceIDs = try await device.decommission()
Si l'appel ne génère pas d'erreur, il a réussi.
Vous pouvez vérifier si l'ID de l'appareil figure parmi ceux renvoyés par decommission() :
swift
do {
let decommissionedDeviceIDs = try await device.decommission()
print("The following devices were decommissioned: \(decommissionedDeviceIDs)")
} catch {
print("An error occurred: \(error)")
}
Appareils non Matter
Les appareils non-Matter ne peuvent pas être supprimés par programmation. Pour supprimer un appareil non-Matter Matter, vous pouvez envoyer une requête de synchronisation (voir Envoyer une requête de synchronisation), ou supprimer l'intégration Cloud-to-cloud cloud à cloud (voir Supprimer une intégration cloud à cloud lancée).
Si vous appelez decommission() sur un
non-Matter appareil, une HomeError
est générée.
Une fois que vous avez supprimé un appareil non-Matter vérifiez la présence de l'appareil pour vous assurer qu'il a bien été supprimé :
swift
guard try await !self.context.devices().list().contains(where: { $0.id == deviceID })
else {
// The device still exists in Home APIs
}