デバイスを削除する

デバイスを削除するには、ストラクチャからデバイスの運用を停止します。ユーザーは Google Home app (GHA) を使用してこれを行うことができ、アプリはプログラムでスマートホーム デバイスのサービスを終了できます。削除できるデバイスには制限があります。また、デバイスを削除すると、アプリの構造とユーザー エクスペリエンスに影響する可能性があります。

削除できるもの

Home API を使用して、次のデバイスをプログラムで削除できます。

  • Matterアプリが権限を持つデバイス。
  • Matter ブリッジ。ただし、アプリがブリッジ経由で接続されたすべてのデバイスにアクセスできることが条件です。ブリッジを削除すると、それに接続されているすべての Matter デバイスが削除されます。

削除できないもの

次のデバイスは、Home API を通じてプログラムで削除することはできません。

  • アプリにユーザー権限がない Matter 台のデバイス。
  • Matter ブリッジの背後に接続された個々のデバイス。
  • Cloud-to-cloud 台のリンク済みデバイス。
  • デュアルパス デバイス(MatterCloud-to-cloud の両方を実装するデバイス)。

デバイスを削除する際の重要な考慮事項

アプリがデバイスを削除すると、構造全体から削除され、GHA を含むすべてのユーザーとすべてのアプリに影響します。デバイスの種類によっては、デバイスの廃止に伴う副作用が他にも発生する可能性があります。

  • 複数のデバイスタイプを実装するデバイス: デバイスに複数の機能がある場合(ハブとしても機能するスマートライトなど)、そのデバイスを削除すると、関連付けられているすべてのデバイスも削除されます。複数のデバイス機能に影響する場合は、アプリでユーザーに通知する必要があります。
  • デバイスの履歴: デバイスを削除すると、デバイスの履歴が削除されることがあります。
  • 共有サーフェス: 共有サーフェス上のデバイスを削除する場合は注意してください。他のユーザーに予期しない結果をもたらす可能性があります。
  • 認証: デバイスの削除は、モバイル デバイスなどの認証されたサーフェスでのみ実行されるべきです。テレビなどの認証されていないデバイスでは実行されるべきではありません。そのような行為は、Google Home デベロッパー ポリシーに違反します。

デバイスを削除する

デバイスの削除資格を確認するにはコストがかかるため、必要な場合にのみ行う必要があります。デバイスを削除できるかどうかを確認するには、次のコマンドを使用します。

swift let eligibility = try await device.decommissionEligibility

Matter デバイス

デバイスが Matter ブリッジの背後にない場合は、プログラムで Matter デバイスを削除できます。

Matter デバイスを削除するには、そのデバイスで decommission() を呼び出します。

swift let decommissionedDeviceIDs = try await device.decommission()

呼び出しでエラーがスローされなければ、成功です。

デバイスの ID が返されたものの中にあるかどうかを確認してください。decommission():

swift do { let decommissionedDeviceIDs = try await device.decommission() print("The following devices were decommissioned: \(decommissionedDeviceIDs)") } catch { print("An error occurred: \(error)") }

非物質デバイス

Matterデバイスをプログラムで削除することはできません。Matter 以外のデバイスを削除するには、同期リクエストを発行するか(同期リクエストを参照)、Cloud-to-cloud 統合を削除します(リリース済みのクラウド間統合を削除するを参照)。

電話するとdecommission()Matterデバイス、HomeErrorが投げられます。

Matterデバイスが存在するかどうかを確認し、正常に削除されたことを確認します。

swift guard try await !self.context.devices().list().contains(where: { $0.id == deviceID }) else { // The device still exists in Home APIs }

マルチソース デバイス

マルチソース デバイスは、Cloud-to-cloud API と Matter API の両方を使用するデバイスです。このようなデバイスの廃止資格を確認すると、DecommissionIneligibleReason.multiSourceDevice が返されます。これは、デバイスがマルチソースであるため、廃止できないことを示しています。

マルチソース デバイスを削除するには、次の手順を行います。

  1. Matter 以外のデバイスの説明に沿って、Cloud-to-cloud の関連付けを削除します。
  2. Matter デバイスの説明に従って、Matter デバイスを廃止します。

これらの手順の順序は重要です。廃止しようとする場合Matterデバイスを取り外す前にCloud-to-cloud協会、HomeErrorが投げられます。