Шаги автоматизации¶
Блок «Тогда» — это список шагов. Они выполняются сверху вниз, один за другим: пока шаг не закончился, следующий не начинается.
Шаг добавляют кнопкой «Добавить» и настраивают, нажав на его строку. Порядок меняют стрелками.
Название и пояснение¶
Чтобы назвать шаг, откройте его и нажмите в шапке окна значок бирки «Назвать шаг»:
Название — короткое имя вроде «Прогрев парилки». Оно встаёт в строку шага вместо технической сводки и видно в окне идущей автоматизации («шаг 2 из 7 · Насыщение»), в истории запусков и чипом в списке автоматизаций.
Описание — зачем шаг сделан так. Прячется за значком (i) рядом с названием.
К полям шага возвращает стрелка «Вернуться к шагу». Ветки «Ветвления» называют в его окне: нажмите на подпись ветки («Ветка 1», «Иначе»).
Описание есть и у самой автоматизации (поле под названием), и у настроек прибора — у группы в редакторе её логики. Везде, где поля для показа нет, описание показывает значок (i).
Действие¶
Отдаёт команду. У шага два подтипа.
Устройство¶
Выберите Устройство — начните набирать имя, список подскажет («Все помещения» показывают приборы всех комнат, Помещение сужает список). Чтобы просто включить или выключить прибор, нажмите «Включить» или «Выключить» — команда готова. Для остального нажмите «Установить состояние» и задайте параметры: яркость, температуру, режим — смотря что устройство умеет. Строк «Установить состояние» может быть несколько.
Кнопок «Включить» и «Выключить» нет, когда команда уже набрана, и у многоклавишного выключателя: у него каждая клавиша — своя строка, выберите её в «Установить состояние».
У строки два поля: ключ и значение. Набранное руками — это и есть значение (или ключ). Иконка списка справа в поле открывает варианты по секциям:
Значения — варианты умения (включить, выключить, режимы);
Параметры — параметр автоматизации, в поле ляжет
{{arg:Яркость}};Свойства — значение из сообщения устройства-триггера или устройства, статус которого дождался шаг «Ожидание», в поле ляжет
{{prop:brightness}};Регистры — только в логике прибора,
{{expose:power}}.
Отдельного переключателя «значение / параметр / свойство» нет: что выбрано, видно по самому
тексту поля. В списке ключей, после умений устройства, идут ключи, которые устройство само
присылает и которыми можно управлять, — например каналы двухклавишного реле «Вкл/выкл — левый»
(state_left) и «Вкл/выкл — правый» (state_right); для них в списке значения есть
«Включить» и «Выключить». Показания датчиков ключами команды не предлагаются. Ключ можно и
набрать руками: он уйдёт в сообщение как набран.
Так одна автоматизация с параметром «яркость» заменяет десяток одинаковых.
Предупреждение
Подставленное значение уходит в устройство как есть, без пересчёта, который панель делает для введённого руками. У ламп Zigbee яркость на проводе задаётся в шкале 0–254, а не 0–100, поэтому такой параметр удобно сразу объявить в шкале 0–254.
Примечание
Выключение камина Milafire отдавайте отдельным шагом и выбирайте в списке «Выключить», а не параметром или свойством.
Ту же команду можно набрать руками: переключатель над сообщением — «Сообщение как JSON» или
«Сообщение по полям». Адрес устройства на вкладке «Устройство» подставляется сам; свой адрес
пишут на вкладке «Публикация в топик». Иконка (x) в поле вставляет параметр или свойство на место курсора; в
свёрнутом виде вместо подставленного значения видна метка вроде @яркость.
Публикация в топик¶
Отправляет своё сообщение по своему адресу — например устройству за чужим мостом или собственному контроллеру.
Адрес пишется хвостом, без префикса дома: его подставляет брокер. Шаблоны + и # недопустимы —
публиковать можно в конкретный адрес, а не в маску. В адрес можно вставить параметр; если после
подстановки в адресе появился пустой уровень, + или #, шаг завершится ошибкой.
Пауза¶
Задержка перед следующим шагом: включить свет, подождать пять минут, выключить.
Часы, минуты и секунды, максимум 12 часов. Вместо постоянной длительности можно выбрать «Параметр» — тогда длину назовёт человек при запуске. В списке только параметры типа «Продолжительность».
Третий режим, «Переменная», доступен только внутри фоновой задачи.
Ожидание¶
Пауза ждёт время, а ожидание ждёт событие: пока устройство не отчитается нужным состоянием. Этим проверяют, что команда действительно выполнена — печь включилась, помещение прогрелось. Одно ожидание может ждать сразу несколько устройств.
Окно шага разбито на вкладки: «Ждать» (рядом с именем — таймаут, например «Ждать · 30 сек.») и по вкладке на каждое устройство. Новый шаг открывается на вкладке устройства. Ещё одно устройство добавляет вкладка + («Добавить устройство»), убрать его — кнопка «Убрать устройство из ожидания» внизу его вкладки. Вкладки «Ждать» и + всегда на виду по краям; если устройств много, их вкладки прокручиваются между ними. На телефоне вместо вкладок устройств рядом с «Ждать» — список «Устройства: N» и кнопка +: в списке выберите нужное устройство, крестик у него убирает его из ожидания. Точка на вкладке значит, что там что-то не заполнено: «Сохранить» откроет эту вкладку.
Вкладка устройства¶
Выберите Устройство (поиск по имени, Помещение — фильтр). Одно устройство в шаге ждётся один раз: выбранное на другой вкладке в списке не предлагается. Группу тоже можно выбрать: её статус публикует сервер, и на «Запросить статус устройства» группа отвечает сама. «Отдать команду» группе без логики, чьё состояние от команды не меняется, нового статуса не даст — такое ожидание досидит до таймаута.
«Сначала отправить прибору» — что сделать в момент входа в шаг:
«Ничего не делать» — просто ждать, пока устройство пришлёт статус само;
«Запросить статус устройства» — попросить его отчитаться сейчас;
«Отдать команду устройству» — шаг сам отправит команду из появившегося поля «Команда» (кнопки «Включить» / «Выключить» или «Установить состояние», как в «Действии») и будет ждать подтверждения: условие ниже и есть эта проверка. Так «Ожидание» заменяет пару «Действие + Ожидание» — в списке типа шага оно так и подписано: «Команда и проверка ответа».
Выбирается один пункт: команда и запрос статуса вместе не отправляются. Команды и запросы всех устройств шага уходят сразу, а не по очереди.
«Дождаться условия» — соберите условие по свойству этого устройства. Если оставить его пустым,
устройство засчитывается, как только пришлёт любой новый статус. Этот статус доступен следующим
шагам — его можно подставить в команду или в текст сообщения. Операторы изменения (CHANGED_TO,
CHANGED_FROM_TO, CROSSES_UP, CROSSES_DOWN) здесь недоступны, а проверяются только
свойства самого устройства вкладки.
«Принимать последний полученный статус» — не ждать нового, если устройство присылало статус недавно. Рядом задаётся, насколько старый статус ещё годится. Пункт есть только у устройства, которое не отвечает на запрос статуса: отвечающее отчитается само по «Запросить статус устройства». Годится статус не старше 12 часов; сразу после перезапуска сервера последнего статуса может не быть до следующей публикации устройства.
«Не раньше чем через» — для устройств, которые присылают ложные события. Например, торшер на команду «выключить» сначала отчитывается прежним «включено» и лишь потом настоящим «выключено». До заданного срока устройство не засчитывается, а в этот момент решает последний полученный статус: ложное «включено», за которым пришло «выключено», не сработает, а настоящий ответ, пришедший раньше срока, не потеряется. Срок задаётся в миллисекундах, от 1 до 3000: ложное эхо приходит за доли секунды. Без условия этот пункт просто откладывает решение.
Вкладка «Ждать»¶
Кого дождаться — при двух устройствах и больше:
всех — дальше, когда дождались каждого; не дождались хотя бы одного до таймаута — срабатывает «Если не дождались»;
любого — дальше, как только дождались одного, остальных больше не ждём. «Если не дождались» — только если не ответил никто. Статусы устройств, которых не дождались, следующим шагам могут быть недоступны — в меню подстановки такие свойства помечены «может не быть».
«Таймаут ожидания» — сколько ждать, максимум 12 часов. Новое ожидание получает 1 минуту, под полями — быстрые значения «30 с», «1 мин», «5 мин», «1 ч». Таймаут общий для всех устройств шага.
Здесь же — продление при повторном срабатывании и отмена по событию: они действуют на весь шаг. В логике группы продления нет.
В «Записи» и «Чтении» логики группы новое ожидание получает таймаут 2 секунды, а «Не раньше чем через» при включении — 1000 мс: панель ждёт ответа группы 3 секунды, и весь прогон должен в них уложиться, иначе панель покажет «Потеря связи». Саму группу в списке устройств здесь не предлагают: ответ группы уходит только после прогона, ждать себя она не может.
Пример — включить два реле и убедиться, что включились оба:
Вкладка устройства: реле 1, «Отдать команду устройству»
{"state":"ON"}, условие «включено».+, реле 2 — так же.
«Ждать»: всех, таймаут 30 секунд, «Если не дождались» — «Закончить прогон».
Следующий шаг — «Сообщение»: «Оба реле включены».
Команды уходят обоим реле сразу, и проверка занимает не больше 30 секунд, а не 30 + 30.
Если не дождались¶
Отдельный выбор из четырёх пунктов — что делать, когда таймаут истёк, а нужного статуса не было:
Продолжить прогон — идти дальше по списку;
Закончить прогон — оставшиеся шаги не выполняются; у фоновой задачи это завершает сеанс и уводит в ветку остановки;
Выполнить шаги и продолжить прогон;
Выполнить шаги и закончить прогон.
В двух последних появляется свой короткий список шагов. Он играется до того, как решится судьба цепочки, — так пишут «напиши, что печь не отвечает, и заканчивай». Внутри допустимы только «Действие», «Регистр группы» и «Сообщение» в режиме «Сообщить»; паузы, ожидания, ветвления, «Регулятора» и вопросов там нет. В истории прогона строка «Не дождались» называет все устройства шага, которых не дождались.
Сообщение¶
Отправляет уведомление и, если нужно, спрашивает человека.
Канал выбирается в поле «Канал»:
Email — письмо на ваш подтверждённый адрес (подтвердить его можно в профиле).
Push — уведомление в браузеры, где вы разрешили их показывать. Если разрешения нет ни в одном браузере, шаг завершится ошибкой.
Telegram и MAX — сообщение в мессенджер, только текст.
У Email и Push задаются «Тема» и «Текст».
Совет
Как подтвердить email и привязать мессенджер — в разделе Уведомления.
Что сделать¶
Поле «Что сделать» решает, ждёт ли автоматизация ответа.
Сообщить — односторонняя телеграмма. Кнопок нет, автоматизация идёт дальше сразу.
Запросить подтверждение — спрашивает «да» или «нет».
Запросить значения — то же, плюс поля: например, на сколько минут включить.
В двух последних режимах в сообщение добавляется ссылка на страницу ответа. Отвечает тот, у кого эта ссылка, — авторизация не требуется, поэтому пересылать её не стоит. Ответ засчитывается по нажатию кнопки на странице, а не по переходу; повторный ответ ничего не переигрывает.
Настраиваются:
«Кнопка согласия» и «Кнопка отказа» — что будет на них написано. Оставите пустыми — подставится текст по умолчанию.
«Какие параметры запросить» — для режима «Запросить значения».
«Ждать ответа, минут» — от 1 до 60. Пока ответа нет, автоматизация занята и повторно не срабатывает, поэтому ждать дольше часа нельзя.
«Если ответа не будет» — «Продолжить прогон» (запрошенные параметры сохранят текущие значения) или «Прервать прогон».
«Если ответят отказом» — «Прервать прогон» целиком или «Продолжить прогон»: шаг завершится, цепочка пойдёт дальше, а отказ останется виден в истории.
Примечание
Значений по умолчанию у двух последних настроек нет намеренно. «Не дозвонились, значит не открываем ворота» и «не дозвонились, значит греем как обычно» одинаково законны — выбрать должен автор.
Подстановки в тексте¶
В тему и текст можно вставлять значения: параметры автоматизации, свойства устройства, по которому она сработала, и свойства устройств, статус которых дождался шаг «Ожидание».
Поставьте курсор в нужное место, нажмите иконку (x) и выберите значение. Под текстом видно превью с подстановками.
Отдельный пункт «Статус целиком (JSON)» вставит всё сообщение устройства, например
{"battery":87,"state":"ON","temperature":23.5}. Учтите: это ровно то, чем устройство отчиталось,
включая служебные поля, а Telegram обрежет отправку на 4096 символах.
Ветвление¶
Развилка внутри цепочки. Внутри — те же блоки «Если → Тогда»: работает первая подошедшая ветка, ветка без условия подходит всегда. Поэтому «Иначе» — только последняя ветка; ветка без условия выше неё подписана «Ветка N — задайте условие», и окно не сохранится, пока условия нет. Новая ветка встаёт перед «Иначе». Не подошла ни одна — шаг ничего не делает.
Чем ветвление отличается от блоков «Если» самой автоматизации: те выбираются один раз, при срабатывании, а ветка — в тот момент, когда цепочка до неё дошла. После получасовой паузы или ожидания обстановка уже другая, и решать надо заново.
Пустая ветка законна и означает «в этом случае — ничего». Ветвление последним шагом с пустой веткой обрывает цепочку по условию.
Ограничения: ветвление внутри ветвления невозможно; в условии ветки нельзя пользоваться операторами
изменения (CHANGED_TO, CHANGED_FROM_TO, CROSSES_UP, CROSSES_DOWN); внутри ветки нет
«Регулятора» и сообщения с вопросом; внутри фоновой задачи ветвления нет вовсе.
Ветвление после «Ожидания» может сравнить статус, которого оно дождалось, — источник «<устройство> — после ожидания»; подробнее — в разделе «Свойство другого устройства — после «Ожидания»» на странице Автоматизации.
Настройки ждущих шагов¶
Пауза, ожидание и сообщение с вопросом — это шаги, на которых прогон ждёт. «Отменять по событию» есть у всех трёх; «Продлевать при повторном срабатывании» — только у паузы и ожидания.
Отменять по событию¶
Событие досрочно прекращает ожидание. В диалоге выбирается источник — «Устройство» (каскад Помещение → Устройство) или «Сообщение в топик» (адрес, который вы пишете сами) — и что делать дальше:
«Снять ожидание и доиграть остальные действия» — «движение прекратилось, выключить сразу»;
«Прервать прогон, остальные действия не выполнять» — «протечку устранили, перестать звонить».
Правило действует, только пока прогон стоит на этом шаге. У адреса-топика условие необязательно: без него шаг отменит любое сообщение по этому адресу. Отменяют и сообщения на вложенные уровни адреса. Адрес вы пишете сами: переименование устройства его не поправит. В условии отмены нельзя пользоваться операторами изменения и параметрами.
Продлевать при повторном срабатывании¶
Обычно новое срабатывание триггера, пока прогон спит, просто отбрасывается. С этой настройкой оно перевзводит срок шага на полную длительность.
Так пишется «выключить через десять минут после последнего движения»: каждое новое движение отодвигает выключение, а его отсутствие — нет.
Настройка есть у паузы и ожидания — только у них есть срок, который можно перевзвести, — и только у автоматизаций по событию: следующее срабатывание расписания паузу не продлевает. В логике группы её нет: новая команда группе прерывает шаги прошлой и выполняется сама.
Шаги внутри прибора-группы¶
У приборов, собранных из нескольких устройств, есть свои шаги. «Регулятор» доступен только в фоновой задаче. Шаг «Регистр группы» предлагается в логике прибора и в его фоновых задачах — им кладут значение в регистр этого прибора. Чтобы просто включить прибор из обычной автоматизации, хватает «Действия», как любому устройству.
В ветке «Событие устройства» у шага «Регистр группы» есть поле «Записать, если держится». Пока оно пустое, регистр пишется сразу, как пришёл статус устройства. Если задать, например, 5 секунд, запись случится, только если устройство всё это время оставалось в том же состоянии. Так клавиши на стене меняют запомненный режим люстры, а промежуточное «горит одна клавиша» при выключении обеих — нет. Команда из панели или Алисы в эти секунды главнее: ожидание снимается.
Что такое регистры прибора и где живут эти шаги — на странице Группы и фоновые задачи.
См. также
Нашли ошибку на странице или не получилось? Напишите нам: rocket-home-ru@yandex.ru или в Telegram-группу https://t.me/RocketHome — укажите адрес страницы и что пошло не так.