Автоматизации¶
Автоматизация — это правило, по которому дом действует сам: включает свет на закате, пишет в мессенджер при протечке, прогревает баню к вашему приходу.
Всё это настраивается в одном разделе. И запуск по времени, и реакция на датчик — одна и та же форма; разница только в том, что выбрано в блоке «Когда».
Раздел большой, поэтому разделён на четыре страницы:
эта — где найти автоматизации, что их запускает и как задать условие;
Шаги автоматизации — что она умеет делать;
Группы и фоновые задачи — приборы-группы: несколько устройств или одно с программой, и циклы, которые повторяются, пока прибор включён;
Параметры и запуск — значения, которые спрашивают при запуске, разовые запуски, история и работа без интернета.
Примеры бытовых задач — в подборке идей.
Где найти¶
В веб-приложении откройте раздел Автоматизации. Список показывает все автоматизации выбранной локации. Его можно отфильтровать по Статусу («Все», «Включённые», «Выключенные») и по Типу («Все типы», «По событию», «По расписанию»).
На карточке видно название, тип («Событие», «Регулярно», «Разово»), метку состояния и — у запусков по времени — ближайшее срабатывание. Идущий прогон показан чипом «Выполняется» с текущим шагом, работа на хабе — своим чипом (см. Работа без интернета).
Метка |
Что означает |
|---|---|
Включена |
Работает. |
Выключена |
Выключена переключателем. Сама не сработает. |
В прошлом |
Все запуски разовые, они отработали, новых не запланировано. Включение не поможет — добавьте время в окне автоматизации: «Запланировать запуск». |
Нет запусков |
Включена, все запуски разовые, но все отменены и ни один не состоялся. Добавьте время так же. |
Сломана |
Остановлена сервером. Причину показывает подсказка при наведении на метку; обычно это удалённое устройство в шагах или в «Когда» — замените его в редакторе и сохраните, метка снимется. |
Создавать, редактировать и удалять автоматизации может только владелец локации. Остальные жильцы могут включать и выключать их, задавать значения параметров, добавлять и отменять разовые запуски. Кнопка + внизу справа создаёт новую. Нажатие на карточку открывает окно автоматизации, карандаш справа — редактор логики, корзина — удаление с подтверждением.
Переключатель слева от названия включает и выключает автоматизацию.
Предупреждение
Выключение — это остановка. Идущий прогон прерывается, а всё, что автоматизация успела завести, выключается. Обратное включение этого не возобновляет: автоматизация просто снова начнёт срабатывать по своим условиям. То же происходит при удалении.
Как она устроена¶
Редактор открывается сверху вниз.
Название — произвольное, для вашего удобства. Описание — необязательная заметка.
Параметры — значения, которые спрашивают при запуске, см. Параметры и запуск.
Когда — что её запускает. Либо «Событие» (изменение состояния выбранного устройства), либо «Расписание» (время). Расписаний может быть несколько.
Если — условие. Есть только у запуска по событию. Блоков бывает несколько: первый «Если», следующие «Или если». У каждого блока своё условие и свой список действий.
Тогда — что сделать. Шаги выполняются сверху вниз; они описаны на странице Шаги автоматизации.
Внизу — переключатель «Включена». Готово — нажмите «Создать» или «Сохранить». «Отмена» закрывает редактор без сохранения.
Так же устроены все окна внутри редактора — шаги, условие, расписание: правки попадают в автоматизацию только по «Сохранить», «Отмена» их сразу отбрасывает. Если закрыть окно с правками иначе — Esc, «Назад» браузера, свайпом (у редактора — и крестиком или касанием вне него), — появится вопрос «Изменения не сохранены». Вложенное окно (условие ветки, шаг внутри ветвления) сохраняет правки в родительское, и до автоматизации они дойдут вместе с его «Сохранить».
Важно
Выполняется первый блок, чьё условие верно; остальные пропускаются. Блок с незаполненным условием верен всегда.
Примечание
Своего «Тогда» у отдельного расписания нет: шаги одни на все расписания автоматизации. Поэтому «в 7 утра одно, а в 23 часа другое» — это либо две автоматизации, либо одна с двумя расписаниями и первым шагом «Ветвление», см. «Утром одно, вечером другое» ниже.
Команда с подтверждением¶
Чтобы не просто отдать команду, а убедиться, что устройство её выполнило, используйте шаг
«Ожидание» с пунктом «Перед проверкой» → «Отдать команду устройству». Шаг сам отправит
команду и будет ждать статуса, который проходит условие; отдельное «Действие» перед ним не нужно.
В «Если не дождались» задайте, что делать без подтверждения. Например: команда печи
{"state":"ON"}, условие state = ON, таймаут 2 минуты, иначе — сообщение «печь не включилась»
и конец прогона. Подробнее — в разделе «Ожидание» на странице
Шаги автоматизации.
Запуск по времени¶
Подходит для действий по часам: включить свет в 7:00, выключить обогреватель в 23:00, напомнить раз в день.
В блоке «Когда» выберите вкладку Расписание.
Нажмите на поле расписания.
Выберите Регулярное или Разовое, задайте время и сохраните.
При необходимости нажмите «Добавить» и задайте ещё расписания — у каждого свой переключатель.
Добавьте шаги в блок «Тогда», включите «Включена» и сохраните.
Блока «Если» у расписания нет: при срабатывании выполняются шаги «Тогда». Развилку по времени или по состоянию дома делают шагом «Ветвление».
Выключить одно расписание¶
Переключатель слева от расписания в редакторе выключает только его. Остальные расписания и сама автоматизация продолжают работать. Выключенное расписание не срабатывает, пока вы не включите его снова: оно остаётся выключенным после сохранения и после того, как вы выключите и снова включите всю автоматизацию.
Утром одно, вечером другое¶
Задайте два расписания, например «Ежедневно 07:00» и «Ежедневно 23:00».
Первым шагом «Тогда» добавьте «Ветвление».
В первой ветке соберите условие: слева в секции «Время» выберите сейчас (минута суток), оператор
<, справа720(полдень). Добавьте в ветку утренние шаги.В ветке «Иначе» — вечерние шаги.
Внутри ветки нельзя задать вопрос жильцу (сообщение с подтверждением или запросом значений) — для этого заведите две автоматизации.
Часовой пояс¶
Время вы вводите и видите в часовом поясе своего браузера — с учётом сезонных переходов там, где они есть. Разовый запуск — это момент: сохранённый как «17:00», он сработает в тот самый миг, в каком бы поясе вы его потом ни открыли (покажется он уже по часам того браузера). Регулярное расписание — время суток, и оно живёт в том поясе, в котором вы его задали: «каждый день в 7:00» останется семью часами утра по вашим часам и после перевода стрелок.
Если открыть регулярное расписание из браузера в другом поясе, редактор покажет ближайшее срабатывание уже по вашим часам. Пока это время не посчитано (например, сразу после правки), к времени дописан пояс расписания («07:00 · по Europe/Kaliningrad»). Пояс расписания меняется, только когда вы заново сохраняете его время: окно правки предупредит, что после сохранения расписание перейдёт на пояс этого браузера.
Регулярное¶
Каждую минуту — интервал в минутах.
Каждый час — интервал в часах (1–12) и минута запуска.
Ежедневно — часы и минуты.
Еженедельно — дни недели и время.
Ежемесячно — день месяца (или «Последний день»), раз в 1–6 месяцев, время.
Ежегодно — месяц, день, время.
Своё (cron-выражение) — выражение
минута час день месяц день_недели. Дни недели считаются от нуля, воскресенье —0: «каждое воскресенье в 9 утра» это0 9 * * 0.
«Каждую минуту» и «Каждый час» можно ограничить днями недели и окном «Только в определённые часы». Конечный час входит в окно: «с 9 до 18» срабатывает до 18:59.
Время считается в часовом поясе, в котором расписание задано (см. «Часовой пояс» выше).
Примечание
Последний день месяца. Выбирайте пункт «Последний день», а не число 31. Конкретное число понимается буквально, и месяц без такого дня пропускается: расписание «31-го» в феврале и апреле не сработает.
Разовое¶
Один запуск в указанные дату и время.
Галочка «Убрать из расписания после запуска» убирает этот запуск из списка после того, как он отработает; прогон остаётся в истории. Если запуск у автоматизации единственный, он остаётся — автоматизации нужен хотя бы один триггер.
Чтобы отменить запланированный сеанс, снимите со взвода сам запуск — переключателем слева от него в редакторе или корзиной в окне автоматизации. Выключить целиком можно и всю автоматизацию, переключателем «Включена».
Восход и закат¶
Для «Ежедневно», «Еженедельно», «Ежемесячно», «Ежегодно» и для разового запуска вместо фиксированного времени можно выбрать Восход или Закат.
Смещение — «До» или «После» на заданное время, максимум 3 часа.
Координаты обязательны: значок глобуса «Выбрать координаты» рядом со смещением, затем поиск по населённому пункту или точка на карте. Без них расчёт невозможен и сохранить не получится.
Время срабатывания само сдвигается в течение года.
Ежедневное расписание срабатывает уже сегодня, если событие ещё впереди: «Ежедневно + Закат», сохранённое днём, сработает этим вечером, а сохранённое после заката — завтра. Дни недели и месяца у «Еженедельно», «Ежемесячно» и «Ежегодно» учитываются так же. Если ближайший запуск не сегодня, в списке автоматизаций рядом с его временем стоит дата.
Пример: уличный свет. Нужны две автоматизации: одна с расписанием «Ежедневно + Закат» свет включает, вторая с «Ежедневно + Восход» — выключает. Координаты у обеих одинаковые.
Нужно время на подготовку¶
Иногда важно не «начать в 18:00», а «быть готовым к 18:00»: баня прогревается, тёплый пол выходит на температуру.
Включите в редакторе «Нужно время на подготовку» и укажите, за сколько начинать — от 1 минуты до 12 часов. Автоматизация запустится заранее. Если до назначенного времени осталось меньше, запуск произойдёт сразу.
Если в шагах есть пауза, разовый запуск ближе подготовки сохранить нельзя: паузы отсчитываются от фактического старта и сместились бы. Назначьте время не раньше, чем через время подготовки.
Разовые запуски одной автоматизации должны отстоять друг от друга хотя бы на время подготовки. И нельзя увеличить подготовку так, что уже запланированный запуск должен был бы начаться немедленно.
Настройка действует только на разовые запуски с фиксированным временем. У регулярных и солнечных расписаний опережение задают их собственным временем.
Запуск по событию устройства¶
Автоматизация срабатывает, когда выбранное устройство присылает новое состояние: сработал датчик движения, открылась дверь, изменилась температура.
В блоке «Когда» выберите вкладку Событие.
Нажмите на поле и выберите Помещение, затем Устройство. Список показывает только выбранное помещение, поэтому одноимённые устройства из разных комнат не спутать.
Нажмите на поле условия в блоке «Если» и соберите условие. Пустое условие верно всегда.
Добавьте действия в блок «Тогда».
Если нужны разные условия с разными действиями — нажмите «Добавить блок «Или если»».
Включите «Включена» и сохраните.
Когда прибору отдают команду, zigbee2mqtt сначала повторяет его прежнее состояние и только потом присылает новое. Автоматизации этот повтор не видят: «Если: Вкл/выкл = Вкл» не сработает в момент выключения. Условие «Вкл/выкл = Вкл» срабатывает на каждое сообщение, где лампа включена; чтобы сработать ровно один раз в момент включения, возьмите оператор CHANGED_TO («стало равно», см. «Как изменилось значение» ниже).
Условия¶
Условие проверяется по сообщению от устройства — тому, которое оно только что прислало. Обычная автоматизация запускается либо расписанием, либо сообщением одного устройства, и другие устройства в её условии не участвуют: в блоке «Если» сравниваются свойства сработавшего устройства, и выбирать там нечего.
Свойство¶
Свойство — это поле в сообщении устройства: state, value, temperature,
illumination и другие, смотря что устройство передаёт. В конструкторе слева набирается имя
свойства (или выбирается из списка по иконке в поле), справа — значение. Справа свойство
подставляется из списка и выглядит как {{prop:temperature}}, параметр — {{arg:Порог}}.
Отдельного выбора «свойство / значение / параметр» нет — вид операнда виден по тексту поля.
Условия объединяются в группы связками И и ИЛИ.
Свойство другого устройства — после «Ожидания»¶
Другое устройство можно сравнить в условии ветвления, если выше по цепочке стоит шаг «Ожидание» этого устройства и он дождался события. Тогда перед полем свойства появляется выбор источника: «<устройство> — в момент срабатывания» (событие, с которого всё началось) или «<устройство> — после ожидания» (то, чего дождалось «Ожидание»). Ожидание засчитывается и из ветки предыдущего ветвления. Если ожидание кончилось по таймауту, свойство считается неизвестным — ветка не подходит, проверяется следующая.
У устройства, которое отвечает на опрос, «Ожидание» засчитывает только новое событие. У устройства без обратной связи можно разрешить последний полученный статус, если он не старше заданного времени.
Примечание
У автоматизации по расписанию события нет: в условии ветки сравнивайте время, параметр или свойство устройства после «Ожидания» — иначе сохранение вернёт ошибку. Логика группы и её фоновые задачи читают любое устройство локации: там источник выбирается из всех устройств.
Функции¶
К значению свойства перед сравнением можно применить функцию — выпадающий список «функция» у
операнда. В условии она показывается в виде вызова, например ROUND(temperature, 0).
BOOL — привести значение к «да/нет».
UPPER и LOWER — привести строку к верхнему или нижнему регистру.
ROUND (0) … ROUND (3) — округлить число до 0–3 знаков после запятой. Если прибор прислал не число (например, ошибку датчика), значения нет — условие не выполняется, в том числе с «НЕ».
Функция применяется только к свойству, но не к константе справа.
Примечание
Операторы и функции — это коды, они не переводятся. Именованные пишутся заглавными в виде
вызова (CROSSES_UP(temperature, 24, 2)), сравнения — привычным знаком между операндами
(=, <, >). В списке операторов под каждым именованным кодом — короткое пояснение
по-русски.
EXISTS¶
EXISTS проверяет, что свойство есть в сообщении, независимо от значения. Условие верно, даже
если поле равно null, пустой строке, false или 0. В интерфейсе это пункты EXISTS и
NOT EXISTS в списке операторов.
Как изменилось значение¶
Можно проверять не «свойство равно X», а то, как именно оно изменилось: сравниваются «было» и «стало». «Было» — последнее известное значение свойства; сразу после перезапуска сервера оно неизвестно. Тогда CHANGED_TO срабатывает на первый же статус с нужным значением, а остальные операторы ждут настоящего перехода.
CHANGED_TO — свойство стало равно указанному. «Выключатель перешёл в ON»:
CHANGED_TO(state, "ON").CHANGED_FROM_TO — было одним значением, стало другим. «Было OFF, стало ON»:
CHANGED_FROM_TO(state, "OFF", "ON").CROSSES_UP — число пересекло порог снизу вверх:
CROSSES_UP(temperature, 30).CROSSES_DOWN — сверху вниз:
CROSSES_DOWN(humidity, 30).
Гистерезис. У порогов есть необязательное третье число — полоса, которая гасит дребезг:
CROSSES_DOWN(humidity, 30, 2). Оператор сработает один раз, а повторно — только после того, как
значение вернётся за порог не меньше чем на эту полосу. В интерфейсе это поле «гистерезис», его
можно оставить пустым.
Для CHANGED_TO и CHANGED_FROM_TO регистр букв не важен. Для порогов и свойство, и порог должны быть числами, а гистерезис — неотрицательным числом.
Время¶
Кроме свойств устройства в условии доступно текущее время — секция «Время» в списке левого поля
(в поле ляжет, например, {{now:dow}}; рядом — часовой пояс, его выбирают из списка с поиском):
сейчас (минута суток) — от 0 до 1439;
сейчас (день недели, 0 = вс);
сегодняшняя дата;
светло / темно — где вы находитесь сейчас, до заката или после;
минут до восхода и минут до заката.
Этим различают блоки «Если» и ветки «Ветвления»: «если минута суток меньше 12 × 60 — одно, иначе другое».
Ограничения¶
Сохранение с превышением вернёт ошибку с названием поля.
Что |
Предел |
|---|---|
Автоматизаций в локации (проверяется при создании) |
200 |
Расписаний и событий, не считая разовых запусков |
50 |
Параметров |
20 |
Блоков «Если» в автоматизации, веток в «Ветвлении» |
20 |
Шагов в одном блоке или ветке |
30 |
Шагов в «Если не дождались» у одного ожидания |
30 |
Шагов во всей автоматизации, включая ветки и «Если не дождались» |
100 |
Запланированных разовых запусков |
30, не больше одного на одну минуту |
Интервал «Каждую минуту» |
1–59 минут |
Пауза, таймаут ожидания |
до 12 часов |
Время на подготовку |
от 1 минуты до 12 часов |
«Ждать ответа, минут» у сообщения с вопросом |
от 1 до 60 |
Смещение от восхода или заката |
до 3 часов |
Адрес «Сообщение в топик» в правиле отмены |
не меньше двух уровней через |
Удаление¶
Нажмите корзину на карточке в списке или «Удалить» в редакторе и подтвердите. Идущий прогон будет остановлен, запущенные автоматизацией циклы — выключены. Действие необратимо.
Советы¶
Давайте автоматизациям понятные названия — в списке проще искать.
Чтобы не получать частые письма, добавьте в конец цепочки паузу.
Для разового действия используйте разовое расписание с галочкой «Убрать из расписания после запуска».
Если одно и то же правило нужно с разными числами — не копируйте автоматизацию, а заведите параметр.
См. также
Нашли ошибку на странице или не получилось? Напишите нам: rocket-home-ru@yandex.ru или в Telegram-группу https://t.me/RocketHome — укажите адрес страницы и что пошло не так.