Usuwanie urządzenia

Usunięcie urządzenia wiąże się z jego wycofaniem ze struktury. Użytkownik może to zrobić za pomocą Google Home app (GHA), a aplikacja może programowo wycofać 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ń, w przypadku których Twoja aplikacja ma uprawnienia.
  • Matter – pod warunkiem, że aplikacja ma dostęp do wszystkich urządzeń połączonych za pomocą mostka. Usunięcie mostka spowoduje usunięcie wszystkich połączonych z nim urządzeń Matter.

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.
  • Liczba połączonych urządzeń: Cloud-to-cloud.
  • 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 wycofanie go z użytku może mieć dodatkowe skutki uboczne:

  • Urządzenia obsługujące wiele typów urządzeń: jeśli urządzenie ma wiele funkcji, np. inteligentna lampa, która działa też jako hub, usunięcie go spowoduje też 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ądzenia: 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ć możliwe 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 kwalifikuje się do usunięcia, 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 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 }