Справочник сценариев
Всё, что можно выбрать в узлах «Когда», «Если», «Выбор», «Сделать» и «Дождаться». Как устроен сам холст — на странице Редактор сценариев.
Поводы
Повод — то, что случилось. В узле «Когда» их может быть несколько, сценарий начнётся от любого. Чего ждать в узле «Дождаться», выбирается из тех же поводов, кроме солнца и периода (в Android — только «вещь»).
| Повод | Когда срабатывает | Поля |
|---|---|---|
| вещь | Вещь включилась или выключилась: лампа, дверь, датчик движения | вещь; включилась или выключилась; «и держится» — необязательно |
| датчик | Число пересекло порог: стало теплее 25, влажность упала ниже 30 | датчик; выше и/или ниже |
| время | Каждый день в это время | часы и минуты |
| солнце | Закат или рассвет, со смещением | закат или рассвет; смещение в минутах, минус — раньше |
| кнопка | Нажали кнопку Zigbee | кнопка; нажатие |
| период | Раз в столько-то минут | каждые N минут |
| MQTT | Пришло сообщение в тему MQTT | тема; поле JSON; значение |
Вещь
«И держится» — повод сработает, только если состояние продержалось столько. Без этого правило «нет движения — гасить» срабатывало бы в первую же секунду тишины между двумя шагами по коридору.
Датчик
Повод срабатывает один раз, на переходе через порог, а не на каждое показание выше порога. Правило «выше 25 — включить вентилятор» иначе срабатывало бы каждую минуту, пока жарко.
Солнце
Смещение нужно ради «за полчаса до заката»: зимой и летом это разные часы, а имеется в виду одно и то же. Минус — раньше события, плюс — позже.
Кнопка
Кнопки берутся из сети Zigbee, список нажатий — у каждой кнопки свой: одно нажатие, двойное, тройное, удержание, отпускание. Если кнопок нет, их видно в «Диагностике» → Zigbee.
Повод слушает тему моста zigbee2mqtt/<кнопка>, поэтому работает и тогда, когда нажатия не становятся сущностью Home Assistant.
MQTT
Любая тема брокера дома, не только Zigbee: датчик на ESP, чужой сервер, свой скрипт.
- Тема. Можно с подстановками:
+— один уровень (дом/+/движение),#— всё ниже (датчики/#). - Поле JSON — сравнивать не всё сообщение, а одно поле:
action,state,occupancy. Только латиница, цифры и подчёркивание. - Значение — сработать только на него. Пусто — на любое сообщение.
Условия
Условие — то, что верно сейчас. Выбирается в узле «Если» и в каждом варианте «Выбора».
| Условие | Что проверяет |
|---|---|
| вещь | Вещь сейчас включена или выключена |
| датчик | Показание сейчас выше и/или ниже порога |
| время | Сейчас между «с» и «до». Через полночь работает: «с 22:00 до 07:00» значит ночь |
| дни | Сегодня один из выбранных дней недели |
| день/ночь | Солнце сейчас над горизонтом или под ним |
| не чаще | С прошлого запуска этого же сценария прошло больше заданного срока |
«Не чаще» — ограничитель. Дребезжащая дверь или протечка, шлющая показание раз в минуту, дадут одно уведомление, а не сотню. Сценарий, который ещё не срабатывал, условие пропускает.
В свойствах условия виден живой ответ: «сейчас да», «сейчас нет» или «сейчас неизвестно».
Действия
Действие выбирается в узле «Сделать». Один узел — одно действие.
| Действие | Что делает |
|---|---|
| переключить | Включить, выключить или переключить вещи |
| зажечь | Зажечь лампы с яркостью и тёплостью |
| пресет | Включить пресет света |
| сказать | Уведомление внутри Home Assistant |
| телефон | Уведомление на телефон |
| Алиса | Сказать через колонку Яндекса или дать ей команду |
| сценарий | Запустить другой сценарий |
| запомнить, вернуть | Снимок вещей и возврат к нему |
| звук | Звук на колонках Хомера |
| MQTT | Опубликовать сообщение в MQTT |
| HTTP | Запрос по адресу |
Переключить
Включить, выключить или переключить одну или несколько вещей: лампы, реле, розетки вперемешку.
Зажечь
Только для ламп. Яркость от 1 до 100 % и, если нужно, тёплость в кельвинах. Цвет и тёплость вместе не работают: лампа, получившая оба, исполнит команду наполовину, поэтому проверка такой сценарий не пропустит.
Пресет
Включает пресет — сцену Home Assistant, которую вы сохранили в приложении. Перечислять лампы в сценарии не нужно. См. Пресеты света.
Сказать
Уведомление внутри Home Assistant: видно и на планшете, и в телефоне. Работает у всех без настройки. Заголовок — «Дом».
Телефон
Уведомление приложения Home Assistant на телефоне, придёт и вне дома. Телефон появляется в списке сам, когда приложение Home Assistant на нём вошло в этот дом.
Алиса
Колонка Яндекса из интеграции Яндекс Станции в Home Assistant. Три режима:
| Режим | Что будет |
|---|---|
| сказать | Колонка прочтёт текст вслух |
| команда | Как будто сказали ей: «включи Радио Рекорд», «поставь таймер на 10 минут» |
| спросить | Скажет и будет слушать ответ |
Через облако
Это единственное действие, которое ходит через облако Яндекса. Без интернета колонка молчит — помните об этом, вешая на неё «протечку на кухне».
«Спросить» работает только с колонкой, к которой дом подключён напрямую. Если колонка на связи только через облако, панель предупредит красным: дом запишет сценарий, а колонка промолчит. Пропишите адрес колонки в настройках Яндекс Станции или выберите «сказать».
Сценарий
Запускает другой сценарий или любое правило дома. Позванный сценарий отработает целиком, даже если его собственный повод сейчас не подходит. Так рисуется общий хвост для двух веток: отдельным сценарием, который зовут обе.
Запомнить и вернуть
Запомнить снимает, как сейчас стоят выбранные вещи: включено ли, яркость, цвет. Вернуть ставит всё обратно — не «выключить», а именно как было.
Типичный пример: движение в коридоре → запомнить → зажечь → подождать 5 минут → вернуть.
- Снимок один на сценарий: второй «запомнить» перезапишет первый.
- Снимок живёт до перезагрузки дома. Для «вернуть через пять минут» этого хватает, для «вернуть завтра» — нет.
- «Вернуть» без «запомнить» в этом же сценарии проверка не пропустит.
Звук
Звук на колонках Хомера. Колонка играет его сама.
| Что | Варианты |
|---|---|
| Звук | звонок, перелив, сигнал, тревога, сирена — синтезируются в колонке, файлы не нужны |
| Файл | адрес mp3, wav или ogg по http:// или https://; играет не дольше минуты |
| Где | колонки Хомера этого дома, в любом сочетании; ни одна не выбрана — играют все |
Маршрут описан в пакете Home Assistant ha/homer_speaker.yaml (скрипт script.homer_speaker_sound). Список колонок в сценарии — все колонки Хомера дома: компьютер с Homer Node, запасной узел, спутники.
- Спутник, который ходит через несколько компьютеров, получит звук от того, к которому сейчас подключён.
- Выключенная колонка не роняет сценарий: следующий шаг выполнится.
MQTT
Опубликовать сообщение в тему брокера дома.
- Тема — без
+и#: подстановки бывают только у подписки. - Сообщение — текст или JSON. Работают шаблоны Home Assistant:
{{ states('sensor.x') }}подставится. - Разово или сохранить в брокере (retain): сохранённое сообщение брокер отдаст каждому, кто подпишется позже.
Мимо Home Assistant
Это тот же брокер, что у Zigbee2MQTT. Публикация в zigbee2mqtt/<лампа>/set переключит лампу мимо Home Assistant, и память ламп откатит такую яркость.
HTTP
Запрос делает сам дом: вебхук, чужой сервер, свой скрипт.
- Метод: GET, POST или PUT.
- Адрес — начинается с
http://илиhttps://. - Тело запроса (JSON) — для POST и PUT. Уходит с типом
application/json. - В адресе и теле работают шаблоны Home Assistant:
{{ states('sensor.x') }}. - Ответа ждут до 15 секунд.
Нужен пакет ha/homer_http.yaml в Home Assistant: три команды rest_command.homer_http_get, …_post, …_put. Без него дом скажет, что такой службы нет. Пакет раскатывается tools/deploy-ha.py вместе с остальными homer_*.
Подождать и Дождаться
| Узел | Поля |
|---|---|
| Подождать | длительность паузы |
| Дождаться | чего ждать: вещь, датчик, время, кнопка или MQTT (в Android — вещь); «ждать не дольше» |
Длительности показываются по-человечески: «30 с», «10 мин», «1 ч 30 мин».