API Home для Android представляют все устройства экосистемы Google Home в единой модели данных. Эта модель данных охватывает все типы устройств (от Google Nest и сторонних производителей), независимо от базовой технологии умного дома (например, Matter или Cloud-to-cloud ), и предоставляет общую API-платформу для разработки пользовательского опыта как для разработчиков smart home , так и для разработчиков мобильных приложений.
Типы устройств
Типы устройств, представленные в Home API, представляют собой объединение моделей данных Matter и Cloud-to-cloud . Некоторые из них являются производными непосредственно от Matter , некоторые являются расширением типов устройств Matter , а некоторые — производными от Cloud-to-cloud .
Типы устройств содержат характеристики, используемые для управления устройствами. Как и типы устройств, характеристики выводятся из кластеров Matter и характеристик Cloud-to-cloud и представлены в общем формате, аналогичном формату кластеров Matter . В API Home характеристики, полученные из Matter называются характеристиками , а не кластерами .
Таким образом, типы устройств и характеристики в API Home изначально ориентированы на Matter . Тип устройства или характеристики Matter имеют приоритет над аналогами Cloud-to-cloud .
Список типов устройств и их характеристик см. в разделе Поддерживаемые типы устройств на Android .
Черты
Версии трейтов на Kotlin создаются для использования в Home API и содержат дополнительные функции, специфичные для Home API (отсутствующие в Matter или Cloud-to-cloud ). Например, каждый трейт имеет методы для проверки поддержки определённого атрибута или команды. Это полезно при определении возможности чтения состояния или выполнения определённых действий на устройстве пользователя, поскольку не все устройства одного типа должны обладать всеми одинаковыми функциями.
Каждый признак содержится в своем собственном пространстве имен и должен импортироваться отдельно для использования.
Например, чтобы использовать свойство Matter On/Off и тип устройства On/Off Plug-in Unit, импортируйте в свое приложение следующие пакеты:
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
Для типа устройства Garage (из умного дома Google) включите сочетание характеристик Matter и Google:
import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice
В Android Studio реализована функция автодополнения, и она часто автоматически обрабатывает полные имена пакетов при добавлении строк import
в исходные файлы проекта. Однако имена пакетов различаются для разных типов устройств и трейтов. Чтобы проверить правильность имени пакета для каждого DeviceType
или Trait
, см. справку.
Трейты также поддерживаются для использования с автоматизациями, но могут быть ограничены, а некоторые трейты доступны только для автоматизаций. Список см. в разделе «Поддержка трейтов API автоматизации на Android» .
Состав типа устройства
API Home поддерживают большинство кластеров приложений Matter в качестве признаков в модели данных. Признаки, которые не соответствуют управлению устройствами или их состояниям и не представляют никакой пользы для конечных пользователей, такие как привязка и группы, не предоставляются через API Home.
Характеристики, полученные из характеристик умного дома Cloud-to-cloud , как правило, имеют одинаковые названия в API Cloud-to-cloud и Home, как, например, в примере OpenClose. Другие характеристики представлены как расширения характеристик Matter , созданные с использованием расширений Matter , специфичных для производителя. Эти характеристики заполняют пробел в характеристиках smart home , где функциональность разделена между Matter SDK и экосистемой Google Home. Конкретным примером этого являются типы устройств Google*
, которые пришли из Cloud-to-cloud но пока не имеют аналогов в Matter.
Типы устройств состоят из характеристик из одного или обоих источников: Matter или Cloud-to-cloud .
Например, тип устройства «Вентилятор» состоит из обоих типов и обладает тремя характеристиками:
- Черта
Identify
Matter предоставляет все функциональные возможности MatterIdentify
. - Черта
FanControl
Matter обеспечивает все функциональные возможности черты MatterFanControl
. - Черта
ExtendedFanControl
Google обеспечивает все функции чертыFanSpeed
smart home Google, которые не охватываются чертойFanControl
Matter
Этот тип композиции характеристик обеспечивает гибкую модель для полной функциональности типа устройства, абстрагируя базовые модели данных smart home .