Устройства в экосистеме Google Home могут быть реализованы с использованием Cloud-to-cloud , Matter или обоих. Некоторые типы устройств сложнее других, и их разработка с использованием API Home представляет собой сложную задачу, обеспечивающую бесперебойное взаимодействие с другими устройствами в экосистеме.
Одна из сложностей при реализации некоторых типов устройств заключается в том, что они могут состоять из различных комбинаций характеристик. Не все комбинации работают одинаково хорошо. Кроме того, модель данных Cloud-to-cloud соответствует модели данных Matter , но не всегда однозначно и однозначно. См. статью «Модель данных в iOS» , где более подробно рассматриваются модели данных и их сопоставления.
На этой странице содержится дополнительная информация о том, как модели данных для конкретных устройств сопоставляются друг с другом, а также даются некоторые рекомендации о том, какие характеристики следует использовать для реализации этих типов устройств.
Печь
Тип устройства «Духовка» ( OvenDeviceType
) и его характеристики компонентов не так просты в реализации по сравнению с другими типами устройств. Существует несколько способов реализации «Духовки» в Matter , но не все подходы обеспечивают бесперебойное взаимодействие с другими устройствами или экосистемой Google Home.
Картирование признаков
Вместо реализации устройства Matter Oven с использованием кластеров «Режим печи» и «Вкл./Выкл.» мы рекомендуем использовать кластер «Операционное состояние полости печи». Этот кластер представлен в API Home трейтом OvenCavityOperationalStateTrait
и соответствует трейту Cloud-to-cloud RunCycle
. Он определяет такие фазы, как «предварительный нагрев», «предварительный нагрев» и «охлаждение».
Домашние API | Cloud-to-cloud |
---|---|
OvenCavityOperationalState | RunCycle |
Модель данных «печь Cloud-to-cloud Cloud-to-cloud » имеет ограничения. Она допускает только одну камеру с одним RunCycle
. В отличие от этого, Matter моделирует многокамерную печь как конечную точку устройства с кластером рабочего состояния полости печи для каждой камеры.
Для некоторых устройств типа «печь» может быть целесообразно изменять список фаз во время работы. Например, для печей с поддержкой предварительного нагрева список фаз может отличаться во время предварительного нагрева от списка фаз нагрева или охлаждения.
Рекомендуемая реализация
Как обсуждалось в предыдущем разделе, реализация Matter Oven должна реализовывать кластер рабочего состояния полости печи, который моделируется в API Home как черта OvenCavityOperationalStateTrait
.
Для достижения наилучших результатов убедитесь, что ваше устройство Cloud-to-cloud Oven реализует трейт RunCycle
, и опубликуйте текущее состояние, установив атрибут currentRunCycle
. Этот атрибут отслеживается API Home через атрибуты OvenCavityOperationalStateTrait.phaseList
и OvenCavityOperationalStateTrait.currentPhase
.
Устройство Oven также должно публиковать уведомление о цикле работы, обновляя атрибуты priority
, status
и currentCycleRemainingTime
объекта RunCycle
. В следующем примере отправляется событие 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")
}
}
}
Полный пример см. в статье Если телевизор включен во время завершения цикла работы духовки, мигает свет в гостиной и смарт-колонка издает звуковую сигнализацию «Цикл работы духовки завершен» .