API Home для Android представляют все устройства в экосистеме Google Home в единой модели данных. Эта модель данных охватывает все типы устройств (от Google Nest или сторонних производителей), независимо от используемой технологии умного дома (например, Matter или Cloud-to-cloud ), и предоставляет единую API-панель для создания пользовательского интерфейса как для разработчиков smart home , так и для разработчиков мобильных приложений.
Типы устройств
Типы устройств, представленные в API Home, представляют собой объединение моделей данных 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 генерируются для использования в API Home и содержат дополнительные функции, специфичные для API Home (отсутствующие в Matter или Cloud-to-cloud ). Например, каждый трейт имеет методы для проверки того, поддерживает ли он определенный атрибут или команду. Это полезно при определении возможности чтения состояния или выполнения определенных действий на устройстве пользователя, поскольку не все устройства одного типа должны обладать одинаковыми функциями.
Каждый признак находится в собственном пространстве имен и для использования должен быть импортирован отдельно.
Например, чтобы использовать свойство "Включение/выключение Matter и тип устройства "Включение/выключение подключаемого блока", импортируйте в свое приложение следующие пакеты:
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
Для устройства типа «Гараж» (из системы умного дома 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 обычно имеют одинаковое имя как в Cloud-to-cloud так и в API Google Home, как, например, в случае с OpenClose. Другие представлены как расширения характеристик Matter , созданные с использованием расширений Matter , специфичных для производителей. Эти характеристики заполняют пробел в функциональности характеристик smart home , где она разделена между SDK Matter и экосистемой Google Home. Конкретным примером являются типы устройств Google* , которые передаются из Cloud-to-cloud но пока не имеют аналогов в Matter.
Типы устройств состоят из характеристик, полученных из одного или обоих источников: Matter или Cloud-to-cloud .
Например, тип устройства «Вентилятор» состоит из двух компонентов и обладает тремя характеристиками:
- Параметр
IdentifyMatter предоставляет все функции параметра MatterIdentify. - Трейт
FanControlMatter предоставляет весь функционал трейта MatterFanControl. - Компонент Google
ExtendedFanControlпредоставляет все функции компонента Google smart homeFanSpeed, которые не охватываются компонентомFanControlMatter
Такой тип композиции характеристик обеспечивает гибкую модель для полной функциональности устройств любого типа, абстрагируя базовые модели данных smart home .