Автоматизация — это способ автоматизировать задачи и настройки устройств в доме. Автоматизация была доступна в экосистеме 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 структуры и устройств, чтобы гарантировать, что пользователь сможет использовать автоматизацию, когда захочет.
- Разработчик планирует автоматизацию и определяет её с помощью языка описания автоматизации (Automation DSL).
- Разработчик встраивает определение автоматизации в Android-приложение на Kotlin.
- Приложение предоставляет пользователю автоматизированные сценарии на основе информации о его устройствах, включая характеристики, атрибуты, команды и события, собранные с помощью Discovery API или Device API.
- С помощью API Discovery приложение может создавать черновые сценарии автоматизации, адаптированные к типам и характеристикам устройств, присутствующих в структуре пользователя, с участием пользователя или без него.
- API устройства может предоставлять большую часть той же информации, что и API обнаружения, но он не оптимизирован для сценариев автоматизации. См. раздел «Сравнение API устройства и API обнаружения» для получения более подробной информации.
- Приложение создает фактическую автоматизацию, которая привязана к выбранной структуре.
- Теперь автоматизация доступна в структуре пользователя и может быть выполнена или удалена с помощью методов API структуры.
Пользователь может в любое время создавать новые экземпляры автоматизации, выбирая другую структуру или, в зависимости от логики приложения, возможно, другой набор устройств. Каждый раз, когда он это делает, приложение генерирует новый экземпляр автоматизации.
В самом простом случае вы можете предложить пользователям предопределенную автоматизацию, выполняющую относительно простую задачу. В качестве альтернативы вы можете представить шаблон автоматизации, который пользователь может настроить в соответствии со своими потребностями. Или вы можете написать редактор автоматизации с открытым исходным кодом, который позволит пользователю создавать сложные автоматизации, используя все доступные в API автоматизации строительные блоки.
Ограничения ресурсов
К автоматизациям в API Home применяются следующие ограничения:
| Метрика | Лимит |
|---|---|
| Максимальное количество автоматизаций на структуру | 64 |
| Максимальное количество узлов на автоматизацию | 128 |
| Максимальное количество узлов выражений на автоматизацию | 64 |
| Максимальное количество экземпляров автоматизации на структуру | 1024 |
| Максимальное количество экземпляров автоматизации на одного разработчика на одну структуру. | 64 |
| Максимальное количество казней на одно здание в день | 1024 |
| Максимальное количество выполнений на одного разработчика на одну структуру в день | 128 |