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 wrażenia użytkowników związane z Twoją aplikacją.

Co możesz usunąć

Za pomocą interfejsów Home API możesz programowo usunąć te urządzenia:

  • Matter urządzenia, do których Twoja aplikacja ma uprawnienia.
  • Matter mostki, pod warunkiem że Twoja aplikacja ma dostęp do wszystkich urządzeń połączonych przez mostek. Usunięcie mostka powoduje usunięcie wszystkich Matter połączonych z nim urządzeń.

Czego nie możesz usunąć

Za pomocą interfejsów Home API nie można programowo usunąć tych urządzeń:

  • Matter urządzenia, do których Twoja aplikacja nie ma uprawnień użytkownika.
  • Pojedyncze urządzenia połączone za mostkiem Matter.
  • Cloud-to-cloud połączone urządzenia.
  • Urządzenia z podwójną ścieżką (urządzenia, które implementują zarówno Matter jak i Cloud-to-cloud).

Ważne kwestie, które należy wziąć pod uwagę przed usunięciem urządzenia

Gdy Twoja 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 na GHA. W zależności od typu urządzenia wycofanie go może mieć dodatkowe skutki uboczne:

  • Urządzenia implementujące wiele typów urządzeń: jeśli urządzenie ma wiele funkcji – na przykład inteligentne oświetlenie, które działa też jako hub – jego usunięcie spowoduje też usunięcie wszystkich powiązanych urządzeń. Aplikacja powinna informować użytkownika, jeśli usunięcie urządzenia wpłynie na wiele jego funkcji.
  • Historia urządzenia: usunięcie urządzenia może spowodować usunięcie jego historii.
  • Powierzchnie współdzielone: zachowaj ostrożność podczas usuwania urządzeń na powierzchniach współdzielonych, ponieważ może to mieć niepożądane konsekwencje dla innych użytkowników.
  • Uwierzytelnianie: usuwanie urządzenia powinno być wykonywane tylko na uwierzytelnionych powierzchniach, takich jak telefon komórkowy, a nie na nieautoryzowanych urządzeniach, takich jak telewizory. Takie działanie narusza zasady dla deweloperów Google Home.

Usuwanie urządzenia

Sprawdzanie, czy urządzenie można usunąć, jest kosztowne i powinno być wykonywane 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 urządzenie nie jest połączone za mostkiem Matter.

Aby usunąć urządzenie Matter, wywołaj decommission() na nim:

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 funkcję 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 usunąć programowo. Aby usunąć urządzenie inne niż Matter , możesz wysłać prośbę o synchronizację (patrz Prośba o synchronizację) lub usunąć integrację Cloud-to-cloud (patrz Usuwanie wdrożonej integracji chmura-chmura).

Jeśli wywołasz funkcję decommission() na urządzeniu innym niż Matter zostanie zgłoszony błąd HomeError.

Po usunięciu urządzenia innego niż Matter sprawdź, czy urządzenie jest obecne , 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 }