Дом по сценариюПонятные автоматизации для повседневных задач.
← К материаламУсловия и шаблоны · 2 мин

Почему истинное условие само не запускает автоматизацию?

Истинное условие само не запускает автоматизацию. В Home Assistant триггер определяет, какое событие начинает выполнение, а условие затем проверяет состояние в этот момент. Поэтому датчик может уже показывать нужное значение, но сценарий не начнётся, если не произошло событие, указанное в триггере.

Роли триггера и условия

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

Если автоматизация запускается изменением состояния, важно описать реальное изменение сущности, включая идентификатор и, когда это нужно, переход from/to. Текущее истинное значение без нового события не заменяет переход.

  • Триггер отвечает на вопрос «когда начать».
  • Условие отвечает на вопрос «можно ли продолжить».
  • Действие выполняется только после успешной проверки условий.

Типичная ошибка

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

Также учитывайте unavailable и unknown, если такие состояния возможны: шаблонное условие должно явно обрабатывать реальные данные.

  • Свяжите запуск с изменением или другим событием.
  • Проверьте состояние в момент выполнения.
  • Не путайте текущее значение с событием его изменения.

Как диагностировать

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

  • Сначала проверьте срабатывание триггера.
  • Затем проверьте результат условий.
  • После этого анализируйте действие.

Проверьте себя

  • Есть отдельный триггер, описывающий нужное событие.
  • Условие проверяет состояние только после запуска.
  • Проверка выполнена по обычной трассировке события.

Частый вопрос

Запустится ли автоматизация, если условие уже истинно?

Нет. Нужен триггер; истинное условие лишь позволит продолжить уже начатое выполнение.

Источники