Почему ожидание for сбрасывается после перезапуска Home Assistant?
Ожидание for связано с непрерывным состоянием и может быть потеряно после перезапуска Home Assistant или перезагрузки автоматизаций. Если отсчёт должен переживать такие события, храните момент начала отдельно, например через помощник, а затем сравнивайте его с текущим временем.
Почему отсчёт прерывается
Выдержка for требует, чтобы Home Assistant отслеживал состояние в течение заданного периода. Перезапуск системы или перезагрузка автоматизаций прерывает текущий контекст ожидания. Нельзя считать, что уже прошедшая часть времени будет автоматически восстановлена.
- Учитывайте перезапуск системы.
- Учитывайте перезагрузку автоматизаций.
- Проверяйте поведение после восстановления.
Проверьте фактический сценарий
Проверка должна включать открытое состояние до перезапуска и состояние после него. Трассировка помогает определить, был ли запуск и дошёл ли он до действия. Это надёжнее, чем предположение о сохранении таймера.
- Зафиксируйте момент открытия.
- Проверьте состояние перед перезапуском.
- Проверьте результат после восстановления.
Храните время отдельно
Если ожидание должно быть устойчивым, можно сохранить время начала в помощнике. После запуска или восстановления автоматизация проверяет сохранённый момент и текущее время. Такой подход требует явной обработки пустого, устаревшего или некорректного значения.
- Сохраняйте момент начала.
- Сравнивайте его с текущим временем.
- Обрабатывайте недоступные и неизвестные данные.
Проверьте себя
- Проверить поведение после перезапуска.
- Проверить трассировку запуска.
- Определить, нужно ли сохранять момент начала.
Частый вопрос
Гарантирует ли for сохранение ожидания после перезапуска?
Нет. После перезапуска или перезагрузки автоматизаций ожидание нужно проверять отдельно.