iOS 上的互通性

Google Home 生態系統中的裝置可使用 Cloud-to-cloudMatter 或兩者實作。部分裝置類型比其他裝置複雜,使用 Home API 時,若要與生態系統中的其他裝置順暢介接,開發過程會面臨挑戰。

導入部分裝置類型時,其中一項挑戰是裝置可能由不同特徵組合而成。並非所有組合都能達到相同效果。此外,Cloud-to-cloud 資料模型會對應至 Matter 資料模型,但並非一對一的明確對應。請參閱「iOS 上的資料模型」,深入瞭解資料模型及其對應關係。

本頁提供更多資訊,說明特定裝置的資料模型如何相互對應,並提供一些指引,說明要使用哪些特徵來實作這些裝置類型。

烤箱

與其他裝置類型相比,Oven (OvenDeviceType) 裝置類型及其元件特徵的實作方式較為複雜。您可以透過多種方式實作 Oven Matter,但並非所有方法都能與其他裝置或 Google Home 生態系統順暢互通。

特徵對應

建議您使用 Oven Cavity Operational State 叢集,而非透過 Oven Mode 和 On Off 叢集實作 Matter Oven 裝置。這個叢集在 Home API 中以 OvenCavityOperationalStateTrait 特徵表示,並對應至 Cloud-to-cloud RunCycle 特徵。例如「預熱」、「預熱完成」和「冷卻」。

Home API Cloud-to-cloud
OvenCavityOperationalState RunCycle

Cloud-to-cloud Oven 資料模型有其限制。Cloud-to-cloud烤箱資料模型只允許單一烤箱室,且只能有一個RunCycle。相較之下,Matter會將多腔烤箱建模為裝置端點,並為每個腔室提供烤箱腔室運作狀態叢集。

對於部分 Oven 裝置,階段清單可能適合在執行階段變更。舉例來說,支援預熱的烤箱在預熱階段的階段清單中,可能會有與加熱或冷卻階段不同的項目。

如上一節所述,Matter 烤箱實作項目應實作 Oven Cavity Operational State 叢集,該叢集在 Home API 中會以 OvenCavityOperationalStateTrait 特徵建模。

為獲得最佳結果,請確保Cloud-to-cloud烤箱裝置實作 RunCycle 特徵,並設定 currentRunCycle 屬性來發布目前狀態。這項屬性可透過 OvenCavityOperationalStateTrait.phaseListOvenCavityOperationalStateTrait.currentPhase 屬性,由 Home API 觀察。

Oven 裝置也應發布執行週期裝置通知,方法是更新 RunCycleprioritystatuscurrentCycleRemainingTime 屬性。以下範例會導致系統傳送 OperationalStateTrait.OperationCompletion 事件,可用於指出烤箱已從「預熱」週期轉換為「預熱完成」週期:

{
  "currentRunCycle": [
    {
      "currentCycle": "pre-heating",
      "nextCycle": "pre-heated",
      "lang": "en"
    }
  ],
  "currentTotalRemainingTime": 1200,
  "currentCycleRemainingTime": 300
}

在自動化動作中使用烤箱

使用 Oven Cavity Operational State 叢集實作烤箱的自動化功能時,請參閱 currentPhase 屬性,瞭解烤箱目前處於哪個週期:

sequential {
  let operationalState = starter(
    oven,
    OvenDeviceType.self,
    OvenCavityOperationalStateTrait.self
  )
  operationalState
  condition {
    operationalState.phaseList[operationalState.currentPhase.toUInt()].equals("pre-heated")
  }
  for speaker in speakers {
    action(speaker, SpeakerDeviceType.self) {
      Google.AssistantBroadcastTrait.broadcast(msg: "Oven Cycle Complete")
    }
  }
}

如需完整範例,請參閱「如果烤箱完成運作時電視正在播放節目,客廳的燈光會閃爍,智慧音箱則會播報『烤箱完成運作』」。