API Home для iOS представляют все устройства экосистемы 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 .
Список типов устройств и их характеристик см. в разделе Поддерживаемые типы устройств на iOS .
Черты
Версии трейтов на Swift создаются для использования в Home API и содержат дополнительные функции, специфичные для Home API (отсутствующие в Matter или Cloud-to-cloud ). Например, каждый трейт имеет методы для проверки поддержки определённого атрибута или команды. Это полезно при определении возможности чтения состояния или выполнения определённых действий на устройстве пользователя, поскольку не все устройства одного типа должны обладать всеми одинаковыми функциями.
Чтобы импортировать характеристики и типы устройств, импортируйте модуль GoogleHomeTypes
в свое приложение:
import GoogleHomeTypes
Кроме того, вы можете использовать typealias
для имен типов свойств и устройств, чтобы сократить код и избежать повторения пространства имен:
import GoogleHomeTypes
typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType
Трейты также поддерживаются для использования с автоматизациями, но могут быть ограничены, а некоторые трейты доступны только для автоматизаций. Список см. в разделе «Поддержка трейтов API автоматизации на iOS» .
Состав типа устройства
API Home поддерживают большинство кластеров приложений Matter в качестве признаков в модели данных. Признаки, которые не соответствуют управлению устройствами или их состояниям и не представляют никакой пользы для конечных пользователей, такие как привязка и группы, не предоставляются через API Home.
Черты, полученные из характеристик умного дома с Cloud-to-cloud обычно имеют одинаковые названия в API Cloud-to-cloud и Home, как, например, в примере OpenCloseTrait
. Другие представлены расширениями черт Matter , созданными с использованием расширений Matter , специфичных для производителя. Эти черты заполняют пробел в чертах smart home , где функциональность разделена между Matter SDK и экосистемой Google Home. Конкретным примером этого являются типы устройств Google*
, которые пришли из Cloud-to-cloud но пока не имеют аналогов в Matter.
Типы устройств состоят из характеристик из одного или обоих источников: Matter или Cloud-to-cloud .
Например, FanDeviceType
состоит из обоих и имеет три характеристики:
- Черта
IdentifyTrait
Matter предоставляет все функциональные возможности MatterIdentifyTrait
. - Трейт
FanControlTrait
Matter предоставляет все функциональные возможности MatterFanControlTrait
. - Черта Google
ExtendedFanControlTrait
обеспечивает все функциональные возможности smart home GoogleFanSpeedTrait
, которые не охватываются чертойFanControlTrait
Matter .
Этот тип композиции характеристик обеспечивает гибкую модель для полной функциональности типа устройства, абстрагируя базовые модели данных smart home .