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

Home API представляет все устройства в экосистеме Google Home в единой модели данных. Эта модель данных охватывает все типы устройств (от Google Nest или сторонних производителей), независимо от базовой технологии умного дома (например, Matter или Cloud-to-cloud ), и предоставляет общую поверхность API для создания пользовательского опыта как для smart home так и для интеллектуальных устройств. разработчики smart home и мобильных приложений.

Типы устройств

Типы устройств, представленные в Home API, представляют собой объединение моделей данных Matter и Cloud-to-cloud . Некоторые из них получены непосредственно из Matter , некоторые являются расширением типов устройств Matter , а некоторые — из Cloud-to-cloud .

Типы устройств содержат характеристики, которые используются для контроля и управления устройствами. Как и типы устройств, характеристики извлекаются из кластеров Matter и характеристик Cloud-to-cloud и представляются в общем формате, аналогичном формату кластеров Matter . В Home API свойства, производные от Matter , называются типажами , а не кластерами .

Таким образом, типы и характеристики устройств в Home API должны быть Matter . Тип или характеристика устройства Matter имеет приоритет над аналогом Cloud-to-cloud .

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

Черты

Версии признаков Kotlin генерируются для использования в Home API и содержат дополнительные функции, специфичные для Home API (отсутствующие в Matter или Cloud-to-cloud ). Например, каждая черта имеет методы проверки того, поддерживает ли черта определенный атрибут или команду. Это полезно при определении того, можно ли выполнять чтение состояния или определенные действия на устройстве пользователя, поскольку не ожидается, что все устройства одного типа будут иметь одинаковые функции.

Каждый признак содержится в собственном пространстве имен и для использования должен быть импортирован индивидуально.

Например, чтобы использовать свойство Matter On/Off и тип устройства «Подключаемый модуль включения/выключения», импортируйте в свое приложение следующие пакеты:

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 автоматизации .

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

Домашние API поддерживают большинство кластеров приложений Matter 1.3 как характеристики модели данных. Признаки, которые не соответствуют управлению или состояниям устройства и не предлагают никаких полезных функций для конечных пользователей, например привязка и группы, не предоставляются через Home API.

Признаки, полученные из черт умного дома 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 .

Например, тип устройства Fan состоит из обоих и имеет две особенности FanControl:

  • Черта FanControl Matter предоставляет всю функциональность черты Matter FanControl.
  • Черта Google ExtendedFanControl обеспечивает все функции функции FanSpeed smart home Google, которые не покрываются чертой FanControl Matter .

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