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

Почему ожидание for сбрасывается после перезапуска Home Assistant?

Ожидание for связано с непрерывным состоянием и может быть потеряно после перезапуска Home Assistant или перезагрузки автоматизаций. Если отсчёт должен переживать такие события, храните момент начала отдельно, например через помощник, а затем сравнивайте его с текущим временем.

Почему отсчёт прерывается

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

  • Учитывайте перезапуск системы.
  • Учитывайте перезагрузку автоматизаций.
  • Проверяйте поведение после восстановления.

Проверьте фактический сценарий

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

  • Зафиксируйте момент открытия.
  • Проверьте состояние перед перезапуском.
  • Проверьте результат после восстановления.

Храните время отдельно

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

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

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

  • Проверить поведение после перезапуска.
  • Проверить трассировку запуска.
  • Определить, нужно ли сохранять момент начала.

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

Гарантирует ли for сохранение ожидания после перезапуска?

Нет. После перезапуска или перезагрузки автоматизаций ожидание нужно проверять отдельно.

Источники