Сценарии¶
Сценарии позволяют автоматизировать действия в умном доме: выполнять команды устройствам по расписанию или при изменении состояния другого устройства.
Где находятся сценарии¶
В веб-приложении откройте раздел Сценарии. Список показывает все сценарии выбранной локации. Можно отфильтровать их по статусу: Все, Активные, Неактивные. Кнопка Обновить перезагружает список.
Создание и редактирование сценариев доступно только владельцу локации. Чтобы создать сценарий, нажмите кнопку + (внизу справа). Чтобы изменить существующий — нажмите на карточку сценария.
Переключатель на карточке включает или отключает сценарий без удаления (режим «Пауза»).
Общая схема¶
У каждого сценария есть:
Название — произвольное, для вашего удобства.
Когда — что запускает сценарий: одно из двух:
Устройство — срабатывание по изменению состояния выбранного устройства;
Расписания — запуск по времени (регулярно или один раз).
В зависимости от типа «Когда»:
для расписаний — блок Тогда (список действий);
для устройства — первый блок Если и при необходимости блоки Или если; в каждом задаётся условие и список Тогда (действия при выполнении условия).
Активен — включён ли сценарий.
После настройки нажмите Создать или Сохранить. Отмена закрывает панель без сохранения.
Сценарий по расписанию¶
Подходит для автоматизации по времени: включить свет в 7:00, отправить напоминание раз в день и т.п.
Шаги¶
В блоке Когда выберите вкладку Расписания.
Нажмите на поле расписания (или «Добавить», если список пуст).
В диалоге Расписание выберите тип:
Регулярное — повтор по расписанию:
Каждую минуту / Каждый час / Ежедневно / Еженедельно / Ежемесячно / Ежегодно — задайте интервал и время;
Пользовательское (CRON) — введите cron-выражение вручную.
Для Ежедневно, Еженедельно, Ежемесячно, Ежегодно можно выбрать альтернативный режим времени: Восход или Закат с смещением до ±3 часов (часы и минуты). В этом случае нужно указать координаты через диалог «Выбрать координаты» (поиск по населённому пункту).
Единовременное — один запуск в указанные дату и время (часы и минуты). Либо по Восходу/Закату на выбранную дату с смещением до ±3 часов и координатами.
Сохраните расписание в диалоге.
При необходимости добавьте ещё расписания кнопкой Добавить (можно включать/выключать каждое переключателем).
В блоке Тогда добавьте одно или несколько действий (см. раздел «Действия» ниже).
Включите переключатель Активен и нажмите Создать или Сохранить.
Пример: свет по закату и восходу¶
Чтобы привязать автоматизацию к рассвету или закату (например, уличное освещение), используйте режим времени Восход или Закат в расписании.
Уличный свет: включить на закате, выключить на рассвете
Создайте сценарий по расписанию. В блоке Когда добавьте два расписания (или настройте два отдельных сценария).
Включение
Расписание Регулярное → Ежедневно, режим времени Закат. При необходимости задайте смещение (например −15 минут — за 15 минут до заката). Нажмите Выбрать координаты и укажите населённый пункт или точку на карте. В Тогда — действие «включить» нужное устройство (свет).
Выключение
Второе расписание — Ежедневно, режим Восход, при необходимости смещение (например +30 минут после восхода) и те же координаты. В Тогда — действие «выключить» то же устройство.
Время срабатывания будет автоматически меняться в течение года в зависимости от координат.
Сценарий по устройству¶
Сценарий запускается при изменении состояния выбранного устройства (например, датчик движения сработал). Задаётся один блок Если и при необходимости дополнительные блоки Или если; в каждом — условие и список Тогда (действия при выполнении этого условия).
Важно
Порядок проверки блоков: Выполняется первый по порядку блок команд с истинным условием. Незаполненное условие считается истинным.
Шаги¶
В блоке Когда выберите вкладку Устройство.
Нажмите на поле и в диалоге выберите Помещение и Устройство — это триггер, по которому будет запускаться сценарий. Сохраните.
Добавьте хотя бы один блок Если: - Нажмите на область условия (или «Условие (если)» в диалоге). - В конструкторе условия соберите выражение: выберите объект (устройство), свойство (state, value, temperature и т.д.) и оператор/значение. Можно объединять условия в группы (И/ИЛИ). - Нажмите Сохранить в диалоге условия.
В блоке Тогда для этого блока добавьте действия (устройство, пауза, сообщение). При необходимости нажмите Добавить для нескольких действий.
Если нужно несколько разных условий с разными действиями — нажмите Добавить блок «Или если» и настройте условие и «Тогда» для нового блока (он будет проверяться только если все предыдущие условия ложны).
Включите Активен и нажмите Создать или Сохранить.
Заполнение логических выражений¶
В условиях Если и Или если вы задаёте выражения, которые проверяются по данным от устройства (по порядку; выполняется только первый блок с истинным условием, см. выше). Ниже — откуда берутся Свойства и какие функции можно применять к ним перед сравнением.
Откуда берутся «Свойства»¶
Свойства в условии — это поля из сообщения от устройства. Когда сценарий запускается по триггеру «Устройство», воркер получает сообщение (payload) от этого устройства по MQTT. В выражении вы выбираете объект (устройство/источник) и свойство — имя поля в этом сообщении. Примеры полей: state, value, temperature, illumination и т.п. — в зависимости от того, что устройство передаёт в payload. То есть свойства всегда привязаны к данным, пришедшим в сообщении от устройства при срабатывании сценария.
Функции над значениями свойств¶
К значению свойства (но не к константе/значению справа) перед сравнением можно применить функцию (в интерфейсе — выпадающий список «Функция» у операнда-свойства). Для констант (введённое вами значение) функции не предусмотрены.
Bool — привести значение свойства к логическому типу (истина/ложь).
Upper — привести строку к верхнему регистру (для сравнения без учёта регистра).
Lower — привести строку к нижнему регистру.
Round (0) … Round (3) — округление числа до 0, 1, 2 или 3 знаков после запятой.
Функция применяется только к операнду-свойству; вторым операндом может быть константа или другое свойство (у другого свойства при необходимости тоже можно задать функцию).
EXISTS¶
EXISTS проверяет, присутствует ли свойство в сообщении от устройства — независимо от его значения. Условие истинно, если поле есть в payload, даже если значение равно null, пустой строке, false, 0 и т.п.
В интерфейсе: кнопки EXISTS / NOT EXISTS (проверка наличия или отсутствия свойства «объект.свойство» в сообщении).
Операторы переходов состояния¶
В сценариях по устройству можно проверять не просто «свойство равно X», а как именно изменилось значение: во что оно перешло или пересёк ли числовой порог. Для этого используются операторы переходов.
При срабатывании сценария от устройства система знает два значения одного и того же свойства: то, что было до этого события, и то, что стало сейчас — значение в только что полученном сообщении от устройства. Операторы переходов сравнивают эти «было» и «стало» и срабатывают только если изменение подходит под условие.
CHANGED_TO (переход в значение) — свойство стало равно указанному значению (вкл/выкл, MUTE и т.п.). Например: «выключатель перешёл в состояние ON».
CHANGED_FROM_TO (переход из/в) — свойство было одним значением и стало другим. Например: «было OFF, стало ON» (включили выключатель).
CROSSES_UP (порог вверх) — числовое свойство пересекло порог снизу вверх. Например: температура была ниже 30°C и стала 30°C или выше.
CROSSES_DOWN (порог вниз) — числовое свойство пересекло порог сверху вниз. Например: температура была выше 18°C и стала 18°C или ниже.
Примеры условий (в интерфейсе или в выражении):
«Выключатель перешёл в ON» —
payload.Switch.state CHANGED_TO "ON"«Выключатель был выключен и включился» —
payload.Switch.state CHANGED_FROM_TO "OFF->ON"«Температура поднялась выше 30» —
payload.temperature CROSSES_UP "30"«Температура опустилась до 18 или ниже» —
payload.temperature CROSSES_DOWN "18"
Для CHANGED_TO и CHANGED_FROM_TO сравнение не зависит от регистра (ON, on, On — одно и то же). Для CROSSES_UP и CROSSES_DOWN свойство должно быть числом (или приводиться к числу).
Действия (Тогда)¶
В блоке Тогда можно комбинировать действия. Типы:
- Устройство
Выберите помещение и устройство. Для управления состоянием нажмите Установить состояние и задайте параметры (питание вкл/выкл, яркость, температура и т.д. в зависимости от возможностей устройства). Можно добавить несколько строк «Установить состояние» для одного устройства.
- Пауза
Задержка перед следующим действием. Укажите часы, минуты и секунды (максимум 12 часов). Удобно для цепочек: включить свет → подождать 5 минут → выключить.
- Сообщение
Отправка письма на ваш email. Тема и текст задаются в форме. Отправка возможна только на подтверждённый email — укажите и подтвердите его в разделе «Профиль» → «Аккаунт».
Удаление сценария¶
В режиме редактирования сценария нажмите Удалить. Подтвердите удаление. Это действие необратимо.
Советы¶
Давайте сценариям понятные названия, чтобы потом легко найти нужный.
Если вы настраиваете отправку email‑уведомлений о событиях, но хотите избежать слишком частых сообщений, просто добавьте в конец сценария паузу необходимой длительности.
Если вам необходим более сложный сценарий - воспользуйтесь NodeRED https://rocket-home.ru/docs/nodered.html