Битлента
Умный дом и устройства в сети5 мин чтения·

Триггер, условие и действие: как устроены автоматизации умного дома

Из чего состоит сценарий умного дома, чем триггер отличается от условия, как избежать зацикливания и как проверять автоматизацию перед запуском.

Кратко

Автоматизация обычно состоит из триггера, условий и действий. Триггер запускает сценарий, условия решают, выполнять ли действие, а действия меняют состояние устройств. Ошибки нередко возникают на стыках частей.

Три части сценария и в чём их разница

Автоматизации в разных системах выглядят по-разному, но логика у них общая. Сначала происходит событие, затем проверяется, подходит ли момент, затем что-то выполняется. Эти три шага называют триггером, условием и действием.

Триггер отвечает на вопрос «когда». Это может быть время, закат, сработавший датчик движения, открытая дверь, нажатая кнопка, приход телефона в зону дома. Триггер запускает проверку и сам по себе ничего не делает.

Условие отвечает на вопрос «а нужно ли сейчас». Например, света включать не требуется, если за окном светло, а ночью, если вы дома и спите, не стоит включать яркий потолочный свет. Условие проверяется в момент срабатывания триггера и либо пропускает сценарий дальше, либо останавливает.

Действие отвечает на вопрос «что сделать»: включить лампу, закрыть шторы, прислать уведомление, запустить другой сценарий. Действий может быть несколько, и часто между ними можно поставить паузу.

Типичные примеры в виде таблицы

Ниже показано, как одна и та же идея раскладывается на части. Это иллюстрация логики, а не готовый рецепт для конкретного приложения.

ЗадачаТриггерУсловиеДействие
Свет в коридоре ночьюДвижение в коридореВремя с вечера до утраВключить тусклый свет, выключить через паузу
Предупреждение о протечкеДатчик воды сработалНетПерекрыть клапан, прислать уведомление
Закрыть шторы вечеромЗакатВы не отключили сценарийЗакрыть шторы, приглушить свет
Выключить технику при уходеВсе ушли из домаНет открытых дверейВыключить розетки и свет
Утренний режимБудильник или времяРабочий деньВключить свет, повысить температуру

Видно, что условие чаще всего «чистит» сценарий от лишних срабатываний. Если сценарий срабатывает слишком часто, добавьте условие, а не пытайтесь менять триггер. Если ничего не происходит, проверьте, не отсекает ли ваше условие все варианты.

Условия «и» и «или» и ловушки логики

Когда условий несколько, нужно понимать, как они объединяются. Вариант «и» требует выполнения всех условий сразу, вариант «или» достаточно одного. Типичная ошибка: человек ставит два условия «время после захода» и «движение в комнате» и ожидает, что сценарий сработает в любом из случаев, но система требует оба одновременно.

Вторая ловушка связана с «залипшими» состояниями. Датчик движения сообщает о движении и через заданное время возвращается в состояние «нет движения». Если вы запускаете выключение света по триггеру «движения нет», убедитесь, что в системе заданы время ожидания и порядок событий. Иначе свет выключится в тот момент, когда вы сидите неподвижно и читаете.

Третья ловушка касается состояния устройств. Команда «переключить» меняет состояние на противоположное, а команды «включить» и «выключить» задают конкретное. В сценариях стоит выбирать конкретные, чтобы повторный запуск не давал обратного результата. Это особенно важно для устройств с ИК-управлением, где реальное состояние неизвестно.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Как не получить зацикливание и конфликт сценариев

Зацикливание возникает, когда действие одного сценария запускает триггер другого, а тот возвращает всё обратно. Пример: сценарий включает свет при движении, а другой выключает свет при смене состояния лампы, и они бьются между собой.

Чтобы избежать неприятностей:

  • Давайте каждому сценарию понятное имя, по которому видно, что он делает.
  • Не создавайте два сценария на одно и то же устройство с противоположными действиями без чёткого разграничения по условиям.
  • Добавляйте паузы между действиями и после срабатывания, чтобы датчики успели вернуться в исходное состояние.
  • Для опасных действий, например отключения нагревательных приборов, не полагайтесь только на один датчик.
  • Оставляйте возможность ручного управления: выключатель или кнопка должны работать независимо от автоматики.
  • Автоматику, связанную с отоплением, водой и электроприборами большой мощности, не делайте единственной защитой: штатные защиты и устройства безопасности не заменяйте, а подключение таких узлов согласуйте со специалистом.

Если сценарии начали вести себя странно, временно отключите их по одному и смотрите, какой вызывает проблему. Журнал автоматизаций, если система его ведёт, показывает цепочку событий и помогает найти момент, где началась «драка».

Проверка перед тем, как оставить на автомате

Новый сценарий сначала проверяют вручную, а уже потом оставляют на самостоятельную работу.

  1. Запустите действие вручную из приложения и убедитесь, что устройства откликаются.
  2. Сымитируйте триггер: пройдите мимо датчика, откройте дверь, дождитесь времени.
  3. Проверьте условия, меняя их по одному: что будет, если вы дома или нет, днём или ночью.
  4. Посмотрите, что происходит при пропадании связи: сценарий может остановиться или выполниться частично.
  5. Через несколько дней просмотрите журнал и убедитесь, что срабатываний не больше и не меньше ожидаемого.

Следите за временем срабатывания: об этом подробнее на странице про сценарии, идущие не вовремя. А если часть логики можно выполнять без облака, обратитесь к странице про локальные сценарии. Чем проще сценарий, тем легче его диагностировать, поэтому разбивайте сложные задачи на несколько небольших.

Где исполняется сценарий: облако, хаб или устройство

Один и тот же сценарий может выполняться в разных местах, и от этого зависит его надёжность. Облачное выполнение означает, что логику обрабатывает сервер производителя: при пропадании интернета сценарий не запустится. Выполнение на хабе означает, что логика хранится в вашей сети и продолжает работать без внешней связи. Сценарии, записанные в самом устройстве, например таймер лампы, простые, но ограниченные по возможностям.

Практический вывод таков. Для важных задач, например отопления и защиты от протечки, выбирайте место выполнения, не зависящее от интернета. Для удобных, но необязательных, например утренней сцены, облако вполне допустимо. В приложении обычно указано, где работает сценарий, а если нет, проверить можно просто: отключите интернет у роутера и посмотрите, что сработает.

О локальной работе подробнее сказано на странице про умный дом без интернета. Там же стоит посмотреть, какие сценарии разумно переносить на хаб.

Если вы только начинаете, возьмите один простой сценарий и доведите его до стабильной работы, прежде чем строить следующий. Например, включение света в коридоре по движению с выключением через паузу. Когда он работает без сюрпризов в течение нескольких недель, добавляйте условие по времени суток, затем уведомления. Такой постепенный путь проще диагностировать, чем набор из десятка автоматизаций, созданных за один вечер.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
автоматизациясценариитриггерумный дом

Часто задаваемые вопросы

Читайте также