Обзор API автоматизации на Android

Автоматизация — это способ автоматизировать задачи и настройки устройств в доме. Автоматизация была доступна в экосистеме Google Home в виде «Процедур» в Google Home app (GHA) и через automation script editor в Google Home for web .

Теперь автоматизация в экосистеме Google Home доступна через API Home для Android. Она использует те же базовые концепции, что и в GHA Routines и script editor , но с расширенными функциями и возможностями, которые стали возможны только благодаря API Home, включая:

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

Автоматизация выполняется с использованием Automation DSL, предметно-ориентированного языка, предназначенного для создания автоматизированных процессов на Kotlin.

Все характеристики и типы, которые вы планируете использовать в своем приложении с API Device & Structure или Automation, должны быть зарегистрированы при инициализации. См. раздел «Инициализация главного экрана на Android» .

Рекомендации в случае отзыва пользователем полных прав доступа

Если пользователь отзовет полные права доступа, все существующие автоматизации перестанут работать. Кроме того, если пользователь отзовет доступ к определенным устройствам, то запуски, условия и действия, связанные с этими устройствами, перестанут работать.

При каждом запуске приложения обязательно проверяйте, что разрешения по-прежнему действуют. Если они были отозваны, убедитесь, что все предыдущие данные удалены, включая любые данные, кэшированные в приложении.

Путь разработчика

API автоматизации — это лишь часть более масштабного процесса разработки. Он появляется после интеграции API структуры и устройств, чтобы гарантировать, что пользователь сможет использовать автоматизацию, когда захочет.

  1. Разработчик планирует автоматизацию и определяет её с помощью языка описания автоматизации (Automation DSL).
  2. Разработчик встраивает определение автоматизации в Android-приложение на Kotlin.
  3. Приложение предоставляет пользователю автоматизированные сценарии на основе информации о его устройствах, включая характеристики, атрибуты, команды и события, собранные с помощью Discovery API или Device API.
    1. С помощью API Discovery приложение может создавать черновые сценарии автоматизации, адаптированные к типам и характеристикам устройств, присутствующих в структуре пользователя, с участием пользователя или без него.
    2. API устройства может предоставлять большую часть той же информации, что и API обнаружения, но он не оптимизирован для сценариев автоматизации. См. раздел «Сравнение API устройства и API обнаружения» для получения более подробной информации.
  4. Приложение создает фактическую автоматизацию, которая привязана к выбранной структуре.
  5. Теперь автоматизация доступна в структуре пользователя и может быть выполнена или удалена с помощью методов API структуры.

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

В самом простом случае вы можете предложить пользователям предопределенную автоматизацию, выполняющую относительно простую задачу. В качестве альтернативы вы можете представить шаблон автоматизации, который пользователь может настроить в соответствии со своими потребностями. Или вы можете написать редактор автоматизации с открытым исходным кодом, который позволит пользователю создавать сложные автоматизации, используя все доступные в API автоматизации строительные блоки.

Ограничения ресурсов

К автоматизациям в API Home применяются следующие ограничения:

Таблица: Ограничения на использование ресурсов API автоматизации
Метрика Лимит
Максимальное количество автоматизаций на структуру 64
Максимальное количество узлов на автоматизацию 128
Максимальное количество узлов выражений на автоматизацию 64
Максимальное количество экземпляров автоматизации на структуру 1024
Максимальное количество экземпляров автоматизации на одного разработчика на одну структуру. 64
Максимальное количество казней на одно здание в день 1024
Максимальное количество выполнений на одного разработчика на одну структуру в день 128