Прежде чем начать работу с Automation API, необходимо спроектировать автоматизации.
Определите следующие параметры для каждой автоматизации:
- Обстоятельства, при которых пользователю должна быть предложена автоматизация. Например, если пользователь только что добавил в свой дом три новых светильника, он может быть заинтересован в определенной автоматизации, предназначенной для управления освещением.
- Какие типы устройств нужны для автоматизации. Например, если пользователь только что добавил три новых светильника в свой дом, его может заинтересовать определенная автоматизация, предназначенная для управления освещением. Примеры типов устройств освещения:
OnOffLightDevice,ColorTemperatureLightDevice,DimmableLightDeviceиExtendedColorLightDevice. - Какие атрибуты и команды требуются для автоматизации и поддерживаются ли они Automation API на Android.
- Параметры, которые должны активировать автоматизацию в качестве условий. Подробнее о компонентах автоматизации на Android…
- Дополнительные условия, которые определяют, должна ли автоматизация выполняться и какие действия должны быть выполнены.
- Процесс выполнения автоматизации. Должен ли он выполняться последовательно или параллельно? Требуется ли вам несколько логических путей?
При проектировании может быть полезно составить схему автоматизации, узел за узлом, с логикой, необходимой на каждом шаге.
После того как вы спроектировали автоматизацию, используйте Automation DSL, чтобы создать ее. Созданная вами автоматизация – это, по сути, шаблон. Все дома и устройства в ней являются плейсхолдерами и заменяются на конкретные дома и устройства пользователей, когда они добавляют автоматизацию в свой аккаунт.
Ниже приведены различные виды автоматизации, которые приложение может создать с помощью API Home. Фрагменты кода для этих примеров можно найти на странице Как создать автоматизацию.
Простая автоматизация
Допустим, вам нужно написать приложение, которое создает автоматизацию, поднимающую жалюзи в 8:00. Для этого приложению нужен список жалюзи (устройств с типом WindowCoveringDevice), которые есть в доме и поддерживают автоматизации. Такой список можно получить с помощью Discovery API.
Для автоматизаций, которые должны запускаться в определенное время, также необходимо убедиться, что пользователь указал почтовый адрес для выбранного дома (при создании дома или в Google Home app (GHA)). В противном случае автоматизация не сможет определить часовой пояс, в котором она должна запускаться. Discovery API поможет вам определить, был ли адрес назначен дому.
В этом случае последовательность действий будет выглядеть примерно так:
- С помощью Discovery API соберите список устройств
WindowCoveringDevice. - Если почтовый адрес не указан, сообщите пользователю, что он должен его предоставить (например, в GHA), и остановите выполнение.
- В противном случае настройте автоматизацию:
- Запустить автоматизацию в 8:00.
- Для каждых жалюзи вызовите команду
upOrOpenтипажаWindowCovering.
Сложная автоматизация
Представьте приложение, которое создает автоматизацию, включающую мигающие огни при обнаружении движения.
Одна из первых задач при реализации этого приложения – выяснить, какие источники света доступны в доме пользователя, с помощью Discovery API. Теперь ваше приложение может показать пользователю доступные лампы и, возможно, позволить ему выбрать, какие из них должны мигать.
Процесс выполнения:
- С помощью Discovery API получите список осветительных приборов в доме. Это могут быть любые устройства с типом
OnOffLightDevice,ColorTemperatureLightDevice,DimmableLightDeviceилиExtendedColorLightDevice. - Предоставьте пользователям возможность выбирать, какие индикаторы будут мигать, например с помощью специальной панели настроек.
- Настройте автоматизацию:
- Запускать автоматизацию, когда кто-то уходит или приходит, отслеживая
AreaPresenceState. - Если
presenceStateуказывает, что в здании кто-то есть, выбранные светильники должны мигать.
- Запускать автоматизацию, когда кто-то уходит или приходит, отслеживая
Общая автоматизация
В качестве примера более сложной автоматизации рассмотрим ту, которая помогает пользователю создать автоматизацию с открытым концом на основе любого или всех устройств, которые у него есть дома.
Сначала пользователю может быть предложено выбрать дом.
Затем автоматизация может показать все комнаты в доме в виде раскрывающегося списка, в котором при выборе комнаты отображаются устройства в ней. Если развернуть устройство, вы увидите поддерживаемые им условия и команды.
Пользователь может выбрать устройства, условия запуска и команды, которые хочет использовать, а автоматизация поможет ему собрать автоматизацию.
Когда все варианты и решения пользователя будут окончательными, автоматизация сгенерирует автоматизацию и сохранит ее в выбранной структуре.
В целом для такой автоматизации потребуется собрать несколько наборов данных о доме пользователя с помощью Structure API для Android, Device API для Android и Discovery API.
| API | Информация |
|---|---|
| Structure API |
|
| Device API |
|
| Discovery API |
|