iOS 上的互操作性

Google Home 生态系统中的设备可以使用 Cloud-to-cloudMatter 或两者来实现。某些设备类型比其他设备类型更复杂,并且在使用 Home API 时,如果需要与其他生态系统设备顺利交互,则开发起来会面临挑战。

在实现某些此类设备类型时,面临的挑战之一是设备可以由不同的特征组合而成。并非所有组合都像其他组合一样有效。此外,Cloud-to-cloud数据 模型会映射到Matter数据模型,但并非总是以清晰的一对一方式进行映射。如需详细了解数据模型 及其映射,请参阅 iOS 上的 数据模型

本页详细介绍了特定设备的数据模型如何相互映射,并提供了一些关于使用哪些特征来实现这些设备类型的指南。

烤箱

与其他设备类型相比,烤箱 (OvenDeviceType) 设备类型及其组件特征的实现并不简单 。在 Matter中,有多种实现烤箱的方法,但并非所有方法都能与其他设备或 Google Home 生态系统实现无缝 互操作。

特征映射

我们建议您使用“烤箱腔体运行 状态”集群,而不是使用“烤箱模式”和“开/关”集群来实现 Matter 烤箱设备。此集群在 Home API 中由 OvenCavityOperationalStateTrait 特征表示,并映射到 Cloud-to-cloud RunCycle 特征。它定义了“预先升温”“已预热”和“冷却”等阶段。

Home API Cloud-to-cloud
OvenCavityOperationalState RunCycle

Cloud-to-cloud 烤箱数据模型存在限制。 Cloud-to-cloud 烤箱数据模型仅允许使用单个腔室, 且只能使用单个 RunCycle。相比之下,Matter将 多腔室烤箱建模为设备端点,每个腔室都有一个“烤箱腔体运行状态” 集群。

对于某些烤箱设备,阶段列表可能需要在运行时更改。例如,支持预热的烤箱在预热阶段的阶段列表中的条目可能与加热或冷却阶段不同。

如上一部分所述,Matter 烤箱 实现应实现“烤箱腔体运行状态”集群,该集群 在 Home API 中建模为 OvenCavityOperationalStateTrait 特征。

为获得最佳效果,请确保您的 Cloud-to-cloud 烤箱设备 实现 RunCycle 特征,并通过设置 currentRunCycle 属性来发布当前状态。Home API 可以通过 OvenCavityOperationalStateTrait.phaseListOvenCavityOperationalStateTrait.currentPhase 属性观察到此属性。

烤箱设备还应通过更新 RunCycleprioritystatuscurrentCycleRemainingTime 属性来发布运行周期设备通知。以下示例会导致发送 OperationalStateTrait.OperationCompletion 事件,可用于指示烤箱已从“预先升温”周期过渡到“已预热”周期:

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

在自动化操作中使用烤箱

为使用“烤箱腔体运行状态”集群实现的烤箱构建自动化操作时,请引用 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")
    }
  }
}

如需查看完整示例,请参阅 如果烤箱周期完成时电视处于开启状态,则客厅灯光闪烁,智能音箱会广播“烤箱周期完成”