Создайте шаблон автоматизации

1. Введение

Что вы узнаете

  • Как разработать и написать шаблон автоматизации.
  • Как протестировать шаблон автоматизации с помощью консоли разработчика Google Home.

Что вам понадобится

  • Телефон на базе Android или iOS с установленным приложением Google Home.
  • Это может быть либо умный светильник, встроенный в вашу систему умного дома, либо устройство, имитирующее умный светильник, в Google Home Playground .

Предварительные требования

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

2. Шаблоны и экземпляры автоматизации

Разработчики создают шаблоны автоматизации с помощью редактора шаблонов автоматизации в консоли разработчика Google Home. Шаблоны автоматизации содержат основную логику сценария, ссылаясь на типы устройств, но не на конкретные устройства.

Используя редактор сценариев автоматизации в веб-версии Google Home, конечные пользователи берут шаблон автоматизации и создают персонализированный экземпляр, который взаимодействует с конкретными устройствами в их доме. После сохранения экземпляр появляется в разделе «Домашние сценарии» в приложении Google Home (GHA).

3. Спланируйте шаблон автоматизации.

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

  • Какие устройства вы хотите автоматизировать?
  • Какой инициатор (или событие) должен запустить выполнение автоматизации?
  • Какие дополнительные условия, если таковые имеются, определяют, будет ли запущена автоматизация после её срабатывания?
  • Какие действия необходимо выполнить?

В рамках этого практического занятия ваша автоматизированная система будет выполнять две задачи:

  1. Включайте свет в определенное время.
  2. Выключайте этот же свет в определенное время.

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

4. Напишите шаблон автоматизации.

Автоматизация выполняется в декларативном стиле с использованием языка сериализации данных YAML .

Шаблон автоматизации состоит из трех основных разделов:

  1. Метаданные — название автоматизации, описание её функций и, при необходимости, несколько тегов, используемых для классификации автоматизации. Ключевые слова:
    • ОСВЕЩЕНИЕ И РОЗЕТКИ
    • КЛИМАТ И ЭНЕРГЕТИКА
    • БЕЗОПАСНОСТЬ И ОСВЕДОМЛЕННОСТЬ
    • РАЗВЛЕЧЕНИЕ
    • БЫТОВАЯ ТЕХНИКА И НЕ ТОЛЬКО
  2. Входные данные — определяют, каким типам устройств предназначена автоматизация. Механизм автоматизации использует эту информацию, чтобы определить, какие действия допустимы для этих устройств.
  3. Правила автоматизации — определяют логику запуска и поведение автоматизации.

Это шаблон автоматизации, с которым вы будете работать:

metadata:
  name:
    en: Scheduled light
  description:
    en: Turn the light on and off at specific times
  tags:
    - LIGHTING AND PLUGS
input:
  the_light:
    metadata:
      name:
        en: The light
      description:
        en: The light to be controlled
    selector:
      type: device
      multiSelect: true
      supportedTypes:
        - LIGHT
  time_on:
    metadata:
      name:
        en: Time to turn on the light.
      description:
        en: The time of day to turn on the selected light.
    selector:
      type: time
      default: sunset+30min
  time_off:
    metadata:
      name:
        en: Time to turn off the light.
      description:
        en: The time of day to turn off the selected light.
    selector:
      type: time
      default: 10:00 pm
automations:
  - name: Turn on the light
    starters:
      - type: time.schedule
        at: $time_on
    actions:
      - type: device.command.OnOff
        devices: $the_light
        on: true
  - name: Turn off the light
    starters:
      - type: time.schedule
        at: $time_off
    actions:
      - type: device.command.OnOff
        devices: $the_light
        on: false

Внимательно прочтите шаблон и обратите внимание на следующее:

  • В разделе metadata содержится название и описание данной автоматизации.
  • В разделе input определяется переменная с именем the_light , которая задает устройство типа LIGHT . Это означает, что данный шаблон может использоваться только для светильников, а не для других типов устройств. Другими словами, когда пользователю, настраивающему вашу автоматизацию у себя дома, предлагается выбрать устройство для $the_light , его выбор ограничивается устройствами указанного вами типа.
  • В разделе input также определены две переменные с именами time_on и time_off . Они позволяют пользователю указать, когда запускать автоматизацию. time_on обозначает время включения света, а time_off — время выключения света. Если пользователь не задает значение time_on или time_off , используются значения по умолчанию.
  • Раздел automations содержит два правила автоматизации. Каждое правило имеет один time.schedule starter, который указывает, в какое время следует запустить автоматизацию.

Редактор шаблонов

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

  1. Перейдите в консоль разработчика Google Home .
  2. Войдите в систему, используя ту же учетную запись, которая используется в приложении Google Home на вашем устройстве.
  3. Создайте или выберите существующий проект.
  4. В разделе «Автоматизация» нажмите «Разработать» .
  5. Нажмите «Создать шаблон» .
  6. Скопируйте шаблон автоматизации "Запланированное освещение".
  7. Вставьте шаблон автоматизации "Запланированное освещение" в редактор шаблонов.
  8. Нажмите «Проверить» . Устраните все возникающие ошибки и продолжайте проверку и исправление, пока ошибки не исчезнут.
  9. Нажмите «Сохранить» , чтобы сохранить шаблон.

5. Проверьте шаблон.

Теперь вы можете протестировать шаблон в консоли.

  1. Убедитесь, что ваш светильник подключен к сети и отображается в приложении Google Home.
  2. Если индикатор горит, выключите его.
  3. Перейдите в консоль разработчика Google Home .
  4. Откройте проект, в котором вы создали свой шаблон.
  5. Выберите «Автоматизация» , затем перейдите на вкладку «Тест» .
  6. Нажмите кнопку «Открыть» рядом с шаблоном автоматизации «Запланированное освещение».
  7. Выберите структуру, в которой вы хотите протестировать шаблон, затем нажмите «Далее» .
  8. В редакторе InputValue укажите название вашего светильника. Например, если ваш светильник называется "Настольный светильник - Офис", выберите " Desk light - Office из выпадающего меню, которое появляется при щелчке справа от lights . Или вы можете ввести название устройства.
  9. Также в редакторе InputValue укажите время time_on , например, на пять минут вперед, и измените время time_off на время вскоре после time_on .
  10. После завершения работы редактор InputValue должен выглядеть примерно так:
    inputValue:
     #add value
     the_light: Desk light - Office
     #add value
     time_off: 11:45 am
     #add value
     time_on: 11:40 am
    
  11. Нажмите «Активировать тест» .
  12. Дождитесь истечения двух временных интервалов запуска. Индикатор должен загореться и погаснуть в указанное время.

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

6. Поздравляем!

Вы успешно создали шаблон автоматизации. Отлично!

В этом практическом занятии вы научились:

  • Как разработать и написать шаблон автоматизации.
  • Как это протестировать в консоли разработчика Google Home.

Следующие шаги

В этом практическом задании вы создали очень простую автоматизацию. Автоматизация может делать гораздо больше, чем просто планировать включение/выключение света. Теперь, когда вы понимаете основы создания и тестирования шаблона автоматизации, вы можете попробовать создать шаблоны автоматизации для других типов устройств, используя различные начальные условия, условия и действия.

Дополнительная информация

Чтобы узнать больше об автоматизации Google Home, ознакомьтесь с документацией по автоматизации: