デバイスを削除するには、ストラクチャからデバイスの運用を停止します。ユーザーは Google Home app (GHA) を使用してこれを行うことができ、アプリはプログラムでスマートホーム デバイスを廃止できます。削除できるデバイスには制限があります。また、デバイスを削除すると、アプリの構造とユーザー エクスペリエンスに影響する可能性があります。
削除できるもの
Home API を使用して、次のデバイスをプログラムで削除できます。
- アプリに権限が付与されている Matter 台のデバイス。
- Matter ブリッジ。ただし、アプリがブリッジ経由で接続されているすべてのデバイスにアクセスできることが条件です。ブリッジを削除すると、それに接続されているすべての Matter デバイスが削除されます。
削除できないもの
次のデバイスは、Home API を介してプログラムで削除できません。
- アプリにユーザー権限がない Matter 台のデバイス。
- Matter ブリッジの背後に接続された個々のデバイス。
- Cloud-to-cloud 台のリンク済みデバイス。
- デュアルパス デバイス(Matter と Cloud-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()
によって返された ID の中に含まれているかどうかを確認します。
swift
do {
let decommissionedDeviceIDs = try await device.decommission()
print("The following devices were decommissioned: \(decommissionedDeviceIDs)")
} catch {
print("An error occurred: \(error)")
}
Matter 以外のデバイス
Matter 以外のデバイスはプログラムで削除できません。Matter 以外のデバイスを削除するには、同期リクエストを発行するか(同期リクエストを参照)、Cloud-to-cloud 統合を削除します(リリース済みのクラウド間統合を削除するを参照)。
Matter 以外のデバイスで decommission()
を呼び出すと、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
が返されます。これは、デバイスがマルチソースであるため、廃止できないことを示しています。
マルチソース デバイスを削除するには、次の手順を行います。
- Matter 以外のデバイスの説明に沿って、Cloud-to-cloud の関連付けを削除します。
- Matter デバイスの説明に沿って Matter デバイスを廃止します。
これらの手順の順序は重要です。Cloud-to-cloud の関連付けを削除する前に Matter デバイスの利用停止を試みると、HomeError
がスローされます。