Редактор сценариев
Сценарий — правило вида «когда стемнело — включить свет в прихожей». Он рисуется на холсте карточками и связями между ними, а исполняет его сам дом.
| Где | Как открыть |
|---|---|
| Android | Настройки → Устройства → Сценарии → «Открыть сценарии» |
| Веб | Дом → Сценарии → «+ Новый» или имя сценария |
На телевизоре холста нет: рисовать пультом нельзя. Список сценариев с «включить» и «запустить» там есть.
Где живёт сценарий
Нарисованное компилируется в обычную автоматизацию Home Assistant. Поэтому:
- сценарий работает без приложения: со спящим планшетом, телефоном в другой комнате и закрытым браузером;
- в списке автоматизаций Home Assistant он подписан «Homer · <имя>», id —
homer_flow_…; - рисунок хранится внутри самой автоматизации, в её переменных. По этой метке приложение узнаёт свои сценарии. Правила, написанные в Home Assistant руками, видно в списке, но холстом они не открываются.
Сценарий записывается в дом кнопкой «Сохранить» (в вебе ещё Ctrl+S). Над холстом видно, где он: «ещё не в доме», «не сохранено», «сохранено в доме».
Холст
- Связь тянется из кружка внизу карточки. Брошена на карточку — соединяет, брошена в пустоту — открывает палитру «Что здесь будет», и новый узел встаёт уже подключённым.
- «+ узел» внизу холста — то же, без связи.
- Тап по карточке открывает её свойства. Вещи выбираются из дома по комнатам и именам с плана, вводить
entity_idруками не нужно. - ✕ на связи убирает её. Узел удаляется корзиной в его свойствах, в вебе ещё клавишей Delete. Копия узла рядом — ⧉ в свойствах, только в вебе (Ctrl+D).
- «Разложить» расставляет дерево аккуратно. Отмена и возврат — стрелки вверху (в вебе Ctrl+Z, Ctrl+Y).
- Щипок или колесо мыши — масштаб. В вебе издалека карточки становятся цветными плашками с названием.
Только дерево
У автоматизации Home Assistant нет перехода в произвольное место и слияния веток. Поэтому сценарий — дерево:
- в узел ведёт не больше одной связи;
- из каждого выхода — не больше одной связи.
Общий хвост двух веток рисуется отдельным сценарием и зовётся из обеих действием «сценарий».
Узел, не связанный с «Когда», помечен «в стороне». Рисунок сохранится целиком, но в доме этого шага не будет, пока его не подключите.
Узлы
| Узел | Что делает | Выходы |
|---|---|---|
| Когда | С чего начинается. Поводов может быть несколько — это «ИЛИ»: «стемнело или пришли домой» | дальше |
| Если | Проверяет, стоит ли продолжать | да, нет |
| Выбор | Несколько вариантов, исполняется первый подходящий | по варианту, иначе |
| Сделать | Единственный узел, который что-то меняет в доме | дальше |
| Подождать | Пауза | дальше |
| Дождаться | Ждёт события, но не дольше срока | дождались, не дождались |
| Повторить | Ветку «повторять» столько-то раз подряд | повторять, потом |
| Хватит | Здесь ветка кончается намеренно | — |
Узел «Когда» один, он корень дерева и не удаляется. Ветка кончается и без «Хватит», если из выхода никуда не идёт связь. «Хватит» нужен, чтобы было видно: кончилась нарочно. Его причина пишется в журнал дома.
Если и повод — разные вещи. Повод — то, что случилось: «движение в коридоре». Условие — то, что верно сейчас: «в коридоре темно». Перепутав их, получите правило, которое ждёт темноты, чтобы включить свет в пустом коридоре.
Выбор читается лучше лестницы из «Если»: «утро / день / вечер / ночь» — один вопрос с четырьмя ответами. Варианты проверяются по порядку. У каждого есть подпись на связи. Ветка «иначе» есть всегда, даже пустая.
Дождаться нужен ради второго исхода. «Открыли дверь и не закрыли за пять минут» рисуется только им: ветка «не дождались».
Повторить — только с числом раз: «мигнуть трижды», «сказать дважды».
Все поводы, условия и действия — в справочнике.
Повод случился снова
Внизу холста — «Повод случился снова, пока идёт:». Это решает, что делать, если сценарий ещё не доиграл, а повод уже повторился.
| Выбор | Что будет | Когда нужен |
|---|---|---|
| пропустить | Повторный повод игнорируется. Так по умолчанию в Home Assistant | короткие сценарии без пауз |
| начать заново | Идущий запуск обрывается, начинается новый | почти всякий сценарий с паузой |
| в очередь | Отработать по разу на каждый повод, один за другим | когда важен каждый повод |
Свет по движению
«Движение — зажечь, через пять минут погасить» ставьте на «начать заново». Иначе второе движение не продлит свет, и он погаснет человеку в лицо, потому что доигрывает первый запуск.
Проверка перед записью
Пока есть ошибки, «Сохранить» не нажимается. Ошибки видны красным над холстом и в свойствах узла:
- нет названия, не выбран повод, вещь, датчик или порог;
- в узел ведут несколько связей, из одного выхода уходят две;
- пауза или срок ожидания нулевой, «повторить ноль раз»;
- «вернуть» без «запомнить» в этом же сценарии;
- у лампы выбраны и цвет, и тёплость.
Серым — подсказки, с ними записать можно: узел ни к чему не присоединён, сценарий ничего не делает, у развилки не заполнена ни одна ветка.
У условий в свойствах есть живой ответ: «сейчас да» или «сейчас нет» с текущим показанием. Так видно, пройдёт ли условие прямо сейчас.
След прошлого запуска
Открытый сценарий показывает, как прошёл его прошлый запуск, со слов самого дома:
- строка над холстом: «Прошлый запуск: дошёл до конца», «условие на „…“ не сошлось, и ветка кончилась», «остановился на „…“, не дойдя до конца», «дом сообщил об ошибке»;
- узлы, через которые прошёл запуск, подсвечены на холсте.
Это ответ на вопрос «почему он не сделал того, что я нарисовал». Чаще всего дело доходит до первой развилки и идёт не туда, куда ждали.
Если сценарий не открывается
- «Сценарий записан приложением поновее» — обновите приложение или страницу. Правка старой версией стёрла бы то, чего она не понимает.
- «Запись сценария испорчена» — рисунок прочитать не удалось. Само правило в доме цело и работает.
- «Дом не принял: …» — Home Assistant отказался записать сценарий. Текст после двоеточия — его ответ.