Прежде чем начать использовать API автоматизации, вам следует спроектировать свою автоматизацию.
Определите следующие параметры для каждой автоматизации:
- Обстоятельства, при которых пользователю следует предлагать автоматизацию. Например, если пользователь только что добавил в свой дом три новых светильника, ему может быть интересна конкретная автоматика, специально предназначенная для управления освещением.
- Какие типы устройств необходимы для автоматизации? Например, если пользователь только что добавил в свой дом три новых светильника, ему может быть интересна конкретная система автоматизации, предназначенная для управления освещением. Примеры типов устройств освещения:
OnOffLightDevice
,ColorTemperatureLightDevice
,DimmableLightDevice
илиExtendedColorLightDevice
. - Какие атрибуты и команды необходимы для автоматизации и поддерживаются ли они API автоматизации на Android .
- Трейты, которые должны активировать автоматизацию как стартеры. Стартеры обсуждаются в разделе «Компоненты автоматизации на Android» .
- Дополнительные условия, которые определяют, должна ли автоматизация фактически запускаться и какие действия должны быть выполнены.
- Поток выполнения для автоматизации. Должен ли он выполняться последовательно или параллельно? Требуется ли несколько логических путей?
При проектировании может быть полезно составить схему потока автоматизации, узел за узлом, с логикой, необходимой на каждом этапе.
После того, как вы спроектировали автоматизацию, используйте Automation DSL для её создания. Создаваемая вами автоматизация, по сути, является «шаблоном» — все структуры и устройства в нём являются заглушками и заполняются структурой и устройствами каждого пользователя, когда он «адаптирует» автоматизацию для собственного использования.
Ниже приведены различные типы автоматизации, которые приложение может создать с помощью API Home. Фрагменты кода для этих примеров см. на странице «Создание автоматизации» .
Простая автоматизация
Допустим, вам нужно написать приложение, которое создаёт автоматизацию, поднимающую жалюзи в 8:00 утра. Для этого приложению необходим список жалюзи (устройств типа WindowCoveringDevice
), присутствующих в структуре, поддерживающей автоматизацию. Этот список можно получить через Discovery API.
Для автоматизации, которая должна запускаться в определённое время, необходимо также убедиться, что пользователь указал адрес выбранного строения в Google Home app (GHA) . В противном случае автоматизация не будет знать часовой пояс, в котором она будет запущена. API Discovery поможет вам определить, был ли указан адрес для строения.
Таким образом, поток выполнения будет выглядеть примерно так:
- Используя Discovery API, соберите список устройств
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 обнаружения |
|