移除裝置

移除裝置時,必須從結構中停用裝置。使用者可以透過 Google Home app (GHA) 執行這項操作,應用程式則可以透過程式輔助停用智慧住宅裝置。可移除的裝置有限制。此外,移除裝置可能會影響應用程式的結構和使用者體驗。

可移除的內容

您可以透過 Home API,以程式輔助方式移除下列裝置:

  • 應用程式具有權限的 Matter 部裝置。
  • Matter 橋接器,前提是應用程式可存取透過橋接器連線的所有裝置。移除橋接器後,所有連線的 Matter 裝置都會一併移除。
  • 支援的攝影機和門鈴裝置,包括支援 Matter 的 Google Nest 攝影機和門鈴,以及相容的合作夥伴攝影機。如要瞭解支援和不支援的型號,請參閱「攝影機和門鈴」。

無法移除的內容

下列裝置無法透過 Google Home API 以程式輔助方式移除:

  • Matter 裝置,但您的應用程式缺少使用者權限。
  • 連線至Matter橋接器的個別裝置。
  • Cloud-to-cloud 部連結的裝置。
  • 非攝影機雙路徑裝置 (實作 Matter 和 Cloud-to-cloud 的裝置,但支援的攝影機和門鈴除外)。
  • 不支援的攝影機和門鈴裝置,包括內建攝影機的智慧螢幕,以及不支援 Matter 的舊版攝影機 (請參閱「攝影機和門鈴」)。

移除裝置前的重要注意事項

應用程式移除裝置時,整個結構都會受到影響,包括所有使用者和所有應用程式 (包括 GHA)。視裝置類型而定,停用裝置可能會產生其他副作用:

  • 如果裝置提供多項功能 (例如智慧型燈具同時也是中樞裝置),移除這類裝置也會一併移除所有相關聯的裝置。如果多項裝置功能受到影響,應用程式應告知使用者。
  • 移除攝影機或門鈴後,系統會永久刪除整個住家結構體中,與該攝影機相關聯的所有全天候錄影記錄、事件錄影記錄、錄製的片段和熟面孔資料庫資料。
  • 停用攝影機不會取消有效訂閱項目,例如 Google Home Premium 或合作夥伴監控服務。訂閱方案會持續有效,直到使用者取消為止。
  • 停用攝影機或門鈴時,Home API 平台會向使用者顯示 Google 管理的確認畫面,說明錄影記錄將永久刪除。使用者必須確認這個提示,裝置才會移除。
  • 請小心刪除共用介面上的裝置,因為這可能會對其他使用者造成意外影響。
  • 移除裝置時,只能使用已通過驗證的介面 (例如手機),不得使用未通過驗證的裝置 (例如電視)。否則將違反 Google Home 開發人員政策。

移除裝置

檢查裝置是否符合移除資格的成本很高,因此只有在必要時才應執行。如要檢查裝置是否符合移除資格,請使用下列指令:

val eligibility = device.checkDecommissionEligibility()

if (eligibility is DecommissionEligibility.Ineligible) {
  println("The device cannot be decommissioned.")
} else if (eligibility is DecommissionEligibility.EligibleWithSideEffects) {
  println("The device can be decommissioned but there will be side effects on other devices.")
} else if (eligibility is DecommissionEligibility.Eligible) {
  println("The device can be decommissioned.")
}

Matter 裝置

如果裝置不在 Matter 橋接器後方,您可以透過程式輔助方式移除 Matter 裝置。

如要移除 Matter 裝置,請撥打 decommissionDevice() 電話:

val decommissionedDeviceIds = device.decommissionDevice()

如果呼叫未擲回錯誤,即代表成功。

您可以檢查裝置 ID 是否在 decommissionDevice() 傳回的 ID 中:

if (decommissionedDeviceIds.contains(deviceId)) {
  println("Decommission successful!")
} else {
  println("Decommission failed!")
}

攝影機和門鈴

您可以使用 decommissionDevice(),以程式輔助方式移除支援的攝影機和門鈴。

支援的機型包括:

  • Google Nest Cam (indoor, wired)
  • Google Nest Cam (outdoor or indoor, battery)
  • Google Nest Cam with floodlight
  • Google Nest Doorbell (battery)
  • Google Nest Doorbell (wired)
  • 相容的合作夥伴攝影機和門鈴 (例如 Walmart onn.)

下列攝影機和門鈴裝置無法以程式輔助方式停用:

  • 內建攝影機的智慧螢幕,例如 Google Nest Hub Max。
  • 不支援 Matter 且僅透過雲端服務連線的舊版 Nest 攝影機和門鈴,例如 Nest Cam Indoor (第 1 代)、Nest Cam Outdoor (第 1 代)、Nest Cam IQ 和 Nest Doorbell (有線版,第 1 代)。
  • 已連結的第三方Cloud-to-cloud攝影機和門鈴。

當應用程式啟動攝影機或門鈴的停用程序時,平台會向使用者顯示 Google 管理的確認畫面。這個畫面會告知使用者,移除攝影機後,系統會永久刪除整個結構中與該裝置相關聯的所有全天候錄影記錄、事件記錄、影像片段和熟面孔資料庫資料。

如果使用者關閉或取消確認畫面,decommissionDevice() 會擲回 HomeException。

停用攝影機不會取消有效的攝影機訂閱方案 (例如 Google Home Premium)。使用者必須透過訂閱方案供應商另外取消訂閱。

kotlin try { val decommissionedDeviceIds = device.decommissionDevice() if (decommissionedDeviceIds.contains(device.id)) { // Camera was successfully decommissioned } } catch (e: HomeException) { // Handle cancellation or decommission error }

非 Matter 裝置

非 Matter 裝置 (支援的攝影機和門鈴除外) 無法透過程式輔助方式移除。如要移除其他非 Matter 裝置,可以發出同步要求 (請參閱「要求同步」),或刪除 Cloud-to-cloud 整合 (請參閱「刪除已啟動的雲端對雲端整合」)。

如果您在不支援的非 Matter 裝置上呼叫 decommissionDevice(),系統會擲回 HomeException。

移除非 Matter 裝置後,請檢查裝置是否仍在清單中,確認是否已成功移除:

var removedDevice: HomeDevice? = null
runBlockingCustom {
  try {
    removedDevice = homeManager.devices().get(deviceId)
  } catch (exception: Exception) {
    println("removal successful!")
  }
}
if (removedDevice != null) {
  println("removal failed!")
}