Модель данных на Android

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 -first. Тип устройства Matter или черта имеет приоритет над аналогом Cloud-to-cloud .

Список типов устройств и их характеристик см. в разделе Поддерживаемые типы устройств на Android .

Черты

Версии Kotlin-трейтов генерируются для использования в API Home и содержат дополнительные функции, характерные для API Home (не найденные в 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 .

Черты также поддерживаются для использования с Automations, но могут быть ограничены, и некоторые черты доступны только для Automations. Для получения списка см. Поддержка черт API Automation на Android .

Состав типа устройства

API Home поддерживают большинство кластеров приложений Matter как черты в модели данных. Черты, которые не соответствуют управлению устройствами или состояниям и не предлагают никакой полезности для конечных пользователей, такие как Binding и Groups, не отображаются через 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 предоставляет все функциональные возможности черты Identify Matter .
  • Черта FanControl Matter предоставляет все функциональные возможности черты Matter FanControl .
  • Черта ExtendedFanControl Google предоставляет все функции черты FanSpeed smart home Google, которые не охватываются чертой FanControl Matter

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