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