Как создать автоматизацию на устройстве Android

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

Таким образом, последовательность выполнения будет выглядеть примерно так:

  1. С помощью Discovery API соберите список устройств WindowCoveringDevice.
  2. Если почтовый адрес не указан, сообщите пользователю, что его нужно ввести (например, в GHA), и остановите выполнение.
  3. В противном случае настройте автоматизацию:
    1. Запускать программу в 8:00.
    2. Для каждой шторы вызовите команду upOrOpen черты WindowCovering.

Сложная автоматизация

Представьте, что приложение создает автоматизацию, которая включает мигание света при обнаружении движения.

Одна из первых задач при реализации этого приложения – узнать, какие светильники доступны в доме пользователя, с помощью Discovery API. Теперь ваше приложение может показывать доступные источники света и, возможно, позволять пользователю выбирать, какие из них должны мигать.

Порядок выполнения:

  1. С помощью Discovery API получите список устройств освещения, которые есть в структуре. Это могут быть устройства с типом OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice или ExtendedColorLightDevice.
  2. Предоставьте возможность выбирать, какие лампочки будут мигать, например с помощью специальной панели настроек.
  3. Настройте автоматизацию:
    1. Запускать автоматизацию, когда кто-то покидает помещение или приходит в него, отслеживая AreaPresenceState.
    2. Если presenceState указывает, что здание занято, мигайте выбранными огнями.

Общая автоматизация

Примером более сложной автоматизации может быть сценарий, который помогает пользователю создать автоматизацию с открытым кодом на основе любых устройств, имеющихся у него дома.

Сначала автоматизация может предложить пользователю выбрать структуру.

Затем автоматизация может отобразить все комнаты в структуре в виде раскрывающегося списка, где при раскрытии комнаты показываются устройства в ней. Если развернуть список устройств, вы увидите стартеры и команды, поддерживаемые устройством.

Пользователь выбирает устройства, триггеры и команды, а автоматизация помогает ему создать ее.

Когда все решения пользователя будут приняты, автоматизация сгенерирует автоматизацию и сохранит ее в выбранной структуре.

Для автоматизации потребуется собрать несколько наборов данных о доме пользователя с помощью Structure API для Android, Device API для Android и Discovery API.

Таблица 1. API для умного дома и информация, которую они могут предоставить
APIИнформация
Structure API
  • Какие структуры доступны
  • Какие комнаты есть в доме
Device API
  • Какие устройства входят в выбранную структуру
  • где находятся устройства (в какой комнате);
Discovery API
  • Какие traits поддерживаются устройствами
  • Какие условия и команды доступны для этих характеристик
  • Какие ограничения действуют для параметров этих команд?