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