Создайте автоматизацию по сценарию

1. Введение

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

  • Как спланировать и написать скрипт автоматизации.
  • Как протестировать скриптовую автоматизацию.

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

  • Телефон Android или iOS с приложением Google Home.
  • Интеллектуальный фонарь или другое устройство, сертифицированное для работы с Google Home и которое можно включать и выключать.

2. Настройте свое устройство

Если ваше устройство еще не настроено, настройте его у себя дома.

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

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

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

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

Для целей этой лаборатории мы планируем, чтобы скриптовая автоматизация выполняла две вещи:

  1. Включите свет (или другое интеллектуальное устройство) в определенное время.
  2. Выключайте устройство в определенное время.

Теперь, когда мы четко знаем, что именно мы хотим от нашей автоматизации по сценарию, мы откроем редактор сценариев и напишем автоматизацию по сценарию.

4. Напишите скрипт автоматизации

Скрипты автоматизации пишутся в декларативной форме с использованием языка сериализации данных YAML .

Автоматизация по сценарию состоит из двух основных разделов:

  1. Метаданные — имя сценария автоматизации и описание того, что он делает.
  2. Правила автоматизации — определяют логику запуска и поведение автоматизации.

Метаданные

Метаданные нашей автоматизации сообщают пользователю, как она называется и что она делает. Метаданные указываются в блоке metadata , который выглядит следующим образом:

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times

Правила автоматизации

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

1 стартовый состав

2 условия

3 действия

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

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

При включении нескольких ограничений разделяйте их ключевыми словами and и or , чтобы сформировать одно логическое выражение. Это выражение должно разрешиться как true , чтобы действия автоматизации продолжились.

Условие — это не то же самое, что уведомление об изменении состояния:

  • Условие представляет собой факт, который должен быть истинным в момент «срабатывания» стартера, чтобы действия могли быть выполнены.
  • Уведомление об изменении состояния — это такое событие , как включение другого устройства.

Действия — это операции, которые выполняются при выполнении стартового условия и любых ограничивающих условий.

Блок automations нашей автоматизации содержит два правила:

automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false

Обратите внимание на следующее:

  1. Есть два правила automations . Первый включает свет, а второй выключает свет.
  2. Каждое правило имеет одно действие.
  3. on: true означает включение света . Аналогично, on: false означает выключение света .
  4. Каждое правило имеет один стартовый элемент time.schedule , который сообщает системе автоматизации, в какое время запускать автоматизацию.
  5. В этой автоматизации нет никаких условий.

5. Полная скриптовая автоматизация.

Если сложить все эти части вместе, вот как выглядит полная автоматизация по сценарию:

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times
automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false
  1. Скопируйте автоматизацию (выше).
  2. Откройте веб-версию Google Home .
  3. Выберите вкладку «Автоматизация», представленную значком с тремя звездочками:
    Вкладка «Автоматизация»
  4. Нажмите + Добавить новый .
  5. В редакторе скриптов удалите шаблон автоматизации.
  6. Вставьте свою автоматизацию.
  7. Замените Desk light - Office на имя и местоположение вашего устройства.
  8. Нажмите «Подтвердить» . Редактор сценариев подчеркивает разделы вашего сценария автоматизации, содержащие ошибки. Устраняйте любые возникающие ошибки и продолжайте проверять и исправлять их до тех пор, пока ошибок больше не будет. Например, имя вашего устройства может быть другим. В этом случае вы можете использовать функцию автозаполнения, чтобы выбрать допустимое имя устройства.
  9. Нажмите Сохранить .
  10. Убедитесь, что переключатель «Активировать» под текстом вашего скрипта находится во включенном положении: Редактор сценариев с полностью проверенной и активированной автоматизацией сценариев.

6. Протестируйте автоматизацию

  1. Убедитесь, что ваше устройство подключено к сети и отображается в приложении Google Home.
  2. Если устройство в данный момент включено, выключите его.
  3. На странице «Автоматизация» веб-версии Google Home нажмите кнопку «Запустить» рядом с названием вашей автоматизации.
    Кнопка запуска скрипта
  4. Устройство должно включиться.

Теперь давайте проверим автоматизацию.

  1. Выключите устройство.
  2. Отредактируйте автоматизацию и измените время включения устройства в строке 7 на время через пять минут в будущем.
  3. Измените время «выключения устройства» в строке 14 на время вскоре после времени «включения».
  4. Нажмите «Подтвердить» . Устраните любые ошибки, которые могут возникнуть.
  5. Нажмите Сохранить .
  6. Убедитесь, что переключатель активации находится во включенном положении.
  7. Подождите, пока пройдут два стартовых времени. Устройство должно включиться и выключиться в указанное вами время.

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

Вы успешно создали скрипт автоматизации — великолепно!

В этой лаборатории вы узнали, как:

  • Как спроектировать и написать автоматизацию.
  • Как протестировать автоматику.

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

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

Попробуйте следующие упражнения:

  • Добавьте к автоматизации больше стартеров time.schedule .
  • Измените автоматизацию, чтобы включать и выключать другое устройство по тому же расписанию.
  • Не удаляя пускатели time.schedule , измените автоматизацию, чтобы устройства включались только при включении другого устройства. Обратитесь к примерам сценариев , в которых используется condition .
  • Измените автоматизацию, чтобы устройства включались только тогда, когда кто-то дома.

дальнейшее чтение

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