Usunięcie urządzenia polega na wycofaniu go ze struktury. Użytkownik może to zrobić za pomocą Google Home app (GHA), a aplikacja może programowo wycofać z użytku inteligentne urządzenie domowe. Istnieją ograniczenia dotyczące tego, które urządzenia można usunąć. Usunięcie urządzenia może też wpłynąć na strukturę i sposób korzystania z aplikacji przez użytkowników.
Co możesz usunąć
Za pomocą interfejsów Home API możesz programowo usuwać te urządzenia:
- Matter urządzeń, na których Twoja aplikacja ma uprawnienia.
- Matter mostków, pod warunkiem że aplikacja ma dostęp do wszystkich urządzeń połączonych za ich pomocą. Usunięcie mostka spowoduje usunięcie wszystkich urządzeń Matter z nim połączonych.
Czego nie możesz usunąć
Tych urządzeń nie można usunąć automatycznie za pomocą interfejsów Home API:
- Matter urządzeń, na których Twoja aplikacja nie ma uprawnień użytkownika.
- Poszczególne urządzenia połączone za pomocą mostka Matter.
- Cloud-to-cloud połączonych urządzeń.
- Urządzenia z dwoma ścieżkami (urządzenia, które implementują zarówno Matter, jak i Cloud-to-cloud).
Ważne uwagi przed usunięciem urządzenia
Gdy aplikacja usunie urządzenie, zostanie ono usunięte z całej struktury, co wpłynie na wszystkich użytkowników i wszystkie aplikacje, w tym GHA. W zależności od typu urządzenia mogą wystąpić dodatkowe skutki uboczne wycofania go z użytku:
- Urządzenia obsługujące wiele typów urządzeń: jeśli urządzenie ma wiele funkcji, np. inteligentna lampa, która działa również jako hub, usunięcie go spowoduje usunięcie wszystkich powiązanych urządzeń. Aplikacja powinna informować użytkownika, jeśli zmiana wpłynie na działanie wielu funkcji urządzenia.
- Historia urządzeń: usunięcie urządzenia może spowodować usunięcie jego historii.
- Wspólne miejsca: zachowaj ostrożność podczas usuwania urządzeń ze wspólnych miejsc, ponieważ może to mieć niepożądane konsekwencje dla innych użytkowników.
- Uwierzytelnianie: usuwanie urządzenia powinno być przeprowadzane tylko na uwierzytelnionych platformach, takich jak telefony komórkowe, a nie na nieuwierzytelnionych urządzeniach, takich jak telewizory. Narusza to zasady dla deweloperów Google Home.
Usuwanie urządzenia
Sprawdzanie, czy urządzenie kwalifikuje się do usunięcia, jest kosztowne i należy je przeprowadzać tylko w razie potrzeby. Aby sprawdzić, czy urządzenie można usunąć, użyj tego polecenia:
swift
let eligibility = try await device.decommissionEligibility
Urządzenia Matter
Urządzenie Matter możesz usunąć programowo, jeśli nie jest ono połączone z mostkiem Matter.
Aby usunąć Matter urządzenie, zadzwoń
decommission() na nie:
swift
let decommissionedDeviceIDs = try await device.decommission()
Jeśli wywołanie nie spowoduje błędu, oznacza to, że się powiodło.
Możesz sprawdzić, czy identyfikator urządzenia znajduje się wśród identyfikatorów zwróconych przez decommission():
swift
do {
let decommissionedDeviceIDs = try await device.decommission()
print("The following devices were decommissioned: \(decommissionedDeviceIDs)")
} catch {
print("An error occurred: \(error)")
}
Urządzenia inne niż Matter
Urządzeń innych niż Matter nie można usuwać programowo. Aby usunąć urządzenie inne niż Matter, możesz wysłać prośbę o synchronizację (patrz Wysyłanie prośby o synchronizację) lub usunąć integrację Cloud-to-cloud (patrz Usuwanie wdrożonej integracji typu chmura-chmura).
Jeśli wywołasz funkcję decommission() na urządzeniu, które nie jest urządzeniem Matter, zostanie zgłoszony wyjątek HomeError.
Po usunięciu urządzenia innego niż Matter sprawdź, czy urządzenie jest nadal widoczne, aby potwierdzić, że zostało usunięte:
swift
guard try await !self.context.devices().list().contains(where: { $0.id == deviceID })
else {
// The device still exists in Home APIs
}
Urządzenia z wieloma źródłami
Urządzenia wielokanałowe to urządzenia, które korzystają z interfejsów Cloud-to-cloud i Matter. Jeśli sprawdzisz, czy takie urządzenie kwalifikuje się do wycofania z użytku, otrzymasz komunikat DecommissionIneligibleReason.multiSourceDevice, który będzie oznaczać, że urządzenie nie może zostać wycofane z użytku, ponieważ pochodzi z wielu źródeł.
Aby usunąć urządzenie z wieloma źródłami, wykonaj te czynności:
- Usuń powiązanie Cloud-to-cloud zgodnie z opisem w sekcji Urządzenia inne niż Matter.
- Wycofaj urządzenie Matter zgodnie z instrukcjami w sekcji Urządzenia Matter.
Kolejność tych kroków jest ważna. Jeśli spróbujesz wycofać urządzenie Matter przed usunięciem powiązania Cloud-to-cloud, zostanie zgłoszony wyjątek HomeError.