Шаги автоматизации¶
Блок «Тогда» — это список шагов. Они выполняются сверху вниз, один за другим: пока шаг не закончился, следующий не начинается.
Шаг добавляют кнопкой «Добавить» и настраивают, нажав на его строку. Порядок меняют стрелками.
Название и пояснение¶
Чтобы назвать шаг, откройте его и нажмите в шапке окна значок бирки «Назвать шаг»:
Название — короткое имя вроде «Прогрев парилки». Оно встаёт в строку шага вместо технической сводки и видно в окне идущей автоматизации («шаг 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 часов. Вместо постоянной длительности можно выбрать «Параметр» — тогда длину назовёт человек при запуске. В списке только параметры типа «Продолжительность».
Третий режим, «Переменная», доступен только внутри фоновой задачи.
Ожидание¶
Пауза ждёт время, а ожидание ждёт событие: пока устройство не отчитается нужным состоянием. Этим проверяют, что команда действительно выполнена — печь включилась, помещение прогрелось.
Выберите Помещение и Устройство. Групп в списке нет: у группы нет своего адреса, и ожидание на ней досидело бы до конца таймаута.
Дальше:
«Дождаться условия» — соберите условие по свойству этого устройства. Если оставить его пустым,
шаг продолжится, как только устройство пришлёт любой новый статус. Этот статус доступен
следующим шагам — его можно подставить в команду или в текст сообщения. Операторы изменения
(CHANGED_TO, CHANGED_FROM_TO, CROSSES_UP, CROSSES_DOWN) здесь недоступны, а
проверяются только свойства самого ожидаемого устройства.
«Таймаут ожидания» — сколько ждать, максимум 12 часов.
«Перед проверкой» — что сделать в момент входа в шаг:
«Ничего не делать» — просто ждать, пока устройство пришлёт статус само;
«Запросить статус устройства» — попросить его отчитаться сейчас;
«Отдать команду устройству» — шаг сам отправит команду из появившегося поля «Команда» (например
{"state":"ON"}) и будет ждать подтверждения: условие ниже и есть эта проверка. Так «Ожидание» заменяет пару «Действие + Ожидание».
Выбирается один пункт: команда и запрос статуса вместе не отправляются.
«Принимать последний полученный статус» — не ждать нового, если устройство присылало статус недавно. Рядом задаётся, насколько старый статус ещё годится. Пункт есть только у устройства, которое не отвечает на запрос статуса: отвечающее отчитается само по «Запросить статус устройства». Годится статус не старше 12 часов; сразу после перезапуска сервера последнего статуса может не быть до следующей публикации устройства.
Если не дождались¶
Отдельный выбор из четырёх пунктов — что делать, когда таймаут истёк, а нужного статуса не было:
Продолжить прогон — идти дальше по списку;
Закончить прогон — оставшиеся шаги не выполняются; у фоновой задачи это завершает сеанс и уводит в ветку остановки;
Выполнить шаги и продолжить прогон;
Выполнить шаги и закончить прогон.
В двух последних появляется свой короткий список шагов. Он играется до того, как решится судьба цепочки, — так пишут «напиши, что печь не отвечает, и заканчивай». Внутри допустимы только «Действие», «Регистр группы» и «Сообщение» в режиме «Сообщить»; паузы, ожидания, ветвления, «Регулятора» и вопросов там нет.
Сообщение¶
Отправляет уведомление и, если нужно, спрашивает человека.
Канал выбирается в поле «Канал»:
Email — письмо на ваш подтверждённый адрес (подтвердить его можно в профиле).
Push — уведомление в браузеры, где вы разрешили их показывать. Если разрешения нет ни в одном браузере, шаг завершится ошибкой.
Telegram и MAX — сообщение в мессенджер, только текст.
У Email и Push задаются «Тема» и «Текст».
Совет
Как подтвердить email и привязать мессенджер — в разделе Уведомления.
Что сделать¶
Поле «Что сделать» решает, ждёт ли автоматизация ответа.
Сообщить — односторонняя телеграмма. Кнопок нет, автоматизация идёт дальше сразу.
Запросить подтверждение — спрашивает «да» или «нет».
Запросить значения — то же, плюс поля: например, на сколько минут включить.
В двух последних режимах в сообщение добавляется ссылка на страницу ответа. Отвечает тот, у кого эта ссылка, — авторизация не требуется, поэтому пересылать её не стоит. Ответ засчитывается по нажатию кнопки на странице, а не по переходу; повторный ответ ничего не переигрывает.
Настраиваются:
«Кнопка согласия» и «Кнопка отказа» — что будет на них написано. Оставите пустыми — подставится текст по умолчанию.
«Какие параметры запросить» — для режима «Запросить значения».
«Ждать ответа, минут» — от 1 до 60. Пока ответа нет, автоматизация занята и повторно не срабатывает, поэтому ждать дольше часа нельзя.
«Если ответа не будет» — «Продолжить прогон» (запрошенные параметры сохранят текущие значения) или «Прервать прогон».
«Если ответят отказом» — «Прервать прогон» целиком или «Продолжить прогон»: шаг завершится, цепочка пойдёт дальше, а отказ останется виден в истории.
Примечание
Значений по умолчанию у двух последних настроек нет намеренно. «Не дозвонились, значит не открываем ворота» и «не дозвонились, значит греем как обычно» одинаково законны — выбрать должен автор.
Подстановки в тексте¶
В тему и текст можно вставлять значения: параметры автоматизации, свойства устройства, по которому она сработала, и свойства устройств, статус которых дождался шаг «Ожидание».
Поставьте курсор в нужное место, нажмите иконку (x) и выберите значение. Под текстом видно превью с подстановками.
Отдельный пункт «Статус целиком (JSON)» вставит всё сообщение устройства, например
{"battery":87,"state":"ON","temperature":23.5}. Учтите: это ровно то, чем устройство отчиталось,
включая служебные поля, а Telegram обрежет отправку на 4096 символах.
Ветвление¶
Развилка внутри цепочки. Внутри — те же блоки «Если → Тогда»: работает первая подошедшая ветка, ветка без условия подходит всегда и означает «иначе». Не подошла ни одна — шаг ничего не делает.
Чем ветвление отличается от блоков «Если» самой автоматизации: те выбираются один раз, при срабатывании, а ветка — в тот момент, когда цепочка до неё дошла. После получасовой паузы или ожидания обстановка уже другая, и решать надо заново.
Пустая ветка законна и означает «в этом случае — ничего». Ветвление последним шагом с пустой веткой обрывает цепочку по условию.
Ограничения: ветвление внутри ветвления невозможно; в условии ветки нельзя пользоваться операторами
изменения (CHANGED_TO, CHANGED_FROM_TO, CROSSES_UP, CROSSES_DOWN); внутри ветки нет
«Регулятора» и сообщения с вопросом; внутри фоновой задачи ветвления нет вовсе.
Ветвление после «Ожидания» может сравнить статус, которого оно дождалось, — источник «<устройство> — после ожидания»; подробнее — в разделе «Свойство другого устройства — после «Ожидания»» на странице Автоматизации.
Настройки ждущих шагов¶
Пауза, ожидание и сообщение с вопросом — это шаги, на которых прогон ждёт. «Отменять по событию» есть у всех трёх; «Продлевать при повторном срабатывании» — только у паузы и ожидания.
Отменять по событию¶
Событие досрочно прекращает ожидание. В диалоге выбирается источник — «Устройство» (каскад Помещение → Устройство) или «Сообщение в топик» (адрес, который вы пишете сами) — и что делать дальше:
«Снять ожидание и доиграть остальные действия» — «движение прекратилось, выключить сразу»;
«Прервать прогон, остальные действия не выполнять» — «протечку устранили, перестать звонить».
Правило действует, только пока прогон стоит на этом шаге. У адреса-топика условие необязательно: без него шаг отменит любое сообщение по этому адресу. Отменяют и сообщения на вложенные уровни адреса. Адрес вы пишете сами: переименование устройства его не поправит. В условии отмены нельзя пользоваться операторами изменения и параметрами.
Продлевать при повторном срабатывании¶
Обычно новое срабатывание триггера, пока прогон спит, просто отбрасывается. С этой настройкой оно перевзводит срок шага на полную длительность.
Так пишется «выключить через десять минут после последнего движения»: каждое новое движение отодвигает выключение, а его отсутствие — нет.
Настройка есть у паузы и ожидания — только у них есть срок, который можно перевзвести, — и только у автоматизаций по событию: следующее срабатывание расписания паузу не продлевает.
Шаги внутри прибора-группы¶
У приборов, собранных из нескольких устройств, есть свои шаги. «Регулятор» доступен только в фоновой задаче, «Применить умолчание» — только в обработчике записи регистра, «Ответить» — только в ветке «Чтение» логики прибора. Шаг «Регистр группы» предлагается в логике прибора и в его фоновых задачах — им кладут значение в регистр этого прибора. Чтобы просто включить прибор из обычной автоматизации, хватает «Действия», как любому устройству.
В ветке «Событие устройства» у шага «Регистр группы» есть поле «Записать, если держится». Пока оно пустое, регистр пишется сразу, как пришёл статус устройства. Если задать, например, 5 секунд, запись случится, только если устройство всё это время оставалось в том же состоянии. Так клавиши на стене меняют запомненный режим люстры, а промежуточное «горит одна клавиша» при выключении обеих — нет. Команда из панели или Алисы в эти секунды главнее: ожидание снимается.
Что такое регистры прибора и где живут эти шаги — на странице Группы и фоновые задачи.
См. также
Нашли ошибку на странице или не получилось? Напишите нам: rocket-home-ru@yandex.ru или в Telegram-группу https://t.me/RocketHome — укажите адрес страницы и что пошло не так.