Прежде чем начать использовать 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 |
|