Совместимость

Устройства в экосистеме Google Home можно реализовать с помощью Cloud-to-cloud , Matter или обоих. Некоторые типы устройств более сложны, чем другие, и представляют собой проблему для разработки при использовании Home API таким образом, чтобы обеспечить плавное взаимодействие с другими устройствами в экосистеме.

Одна из проблем при реализации некоторых из этих типов устройств заключается в том, что устройства могут иметь различные комбинации характеристик. Не все комбинации работают так же хорошо, как другие. Кроме того, модель данных Cloud-to-cloud соответствует модели данных Matter , но не всегда однозначно и однозначно. См. Модель данных , где более подробно обсуждаются модели данных и их сопоставления.

Эта страница содержит дополнительную информацию о том, как модели данных для конкретных устройств сопоставляются друг с другом, и предлагает некоторые рекомендации о том, какие характеристики использовать для реализации этих типов устройств.

Печь

Тип устройства Oven ( OvenDevice ) и свойства его компонентов не так просты в реализации по сравнению с другими типами устройств. Существует несколько способов реализации духовки в Matter , но не все подходы обеспечивают беспрепятственное взаимодействие с другими устройствами или с экосистемой Google Home.

Картирование признаков

Вместо реализации устройства Matter Oven с использованием кластеров «Режим духовки» и «Вкл. Выкл.» мы рекомендуем использовать кластер рабочего состояния духовки. Этот кластер представлен в Home API признаком OvenCavityOperationalState и сопоставляется с признаком RunCycle Cloud-to-cloud . Он определяет такие фазы, как «предварительный нагрев», «предварительный нагрев» и «охлаждение».

Домашние API Cloud-to-cloud
OvenCavityOperationalState RunCycle

Модель данных Cloud-to-cloud Oven имеет ограничения. Модель данных Cloud-to-cloud печи позволяет использовать только одну камеру с одним RunCycle . Напротив, Matter моделирует многокамерную печь как конечную точку устройства с кластером рабочего состояния камеры печи для каждой камеры.

Для некоторых устройств Oven может потребоваться изменение списка фаз во время выполнения. Например, духовки, поддерживающие предварительный нагрев, могут иметь разные записи в списке фаз на этапе предварительного нагрева и на этапах нагрева или охлаждения.

Как обсуждалось в предыдущем разделе, реализация Matter Oven должна реализовать кластер Oven Cavity Operational State, который моделируется в Home API как признак OvenCavityOperationalState .

Для достижения наилучших результатов убедитесь, что ваше устройство Cloud-to-cloud Oven реализует признак RunCycle , и опубликуйте текущее состояние, установив атрибут currentRunCycle . Этот атрибут доступен API Home через атрибуты OvenCavityOperationalState.phaseList и OvenCavityOperationalState.currentPhase .

Устройство Oven должно также публиковать уведомление устройства рабочего цикла, обновляя атрибуты priority , status и currentCycleRemainingTime RunCycle . В следующем примере отправляется событие OperationalState.OperationCompletion , которое можно использовать для указания того, что печь перешла из цикла «предварительного нагрева» в цикл «предварительного нагрева»:

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

Используйте духовку в автоматизации

При создании автоматизации для печи, реализованной с использованием кластера рабочего состояния камеры печи, обратитесь к атрибуту currentPhase , чтобы узнать, в каком цикле находится печь:

   sequential {
    val starterNode =
      starter<_>(oven, OvenDevice, OvenCavityOperationalState /* Or OperationalState */)
    condition {
      expression = starterNode.phaseList[operationalState.currentPhase.toUInt()] equals "pre-heated"
    }
    action(speaker, SpeakerDevice) {
    command(AssistantBroadcast.broadcast("Oven Cycle Complete"))
  }
  // Additional actions here as needed
}

Полный пример см. в разделе «Мигание индикаторов и объявление, когда духовка достигнет выбранной температуры» .