Как задать ночной интервал, который проходит через полночь?
Ночной интервал через полночь нужно задавать как диапазон от вечернего времени до утреннего времени следующего дня. Например, период начинается вечером и заканчивается утром; проверка должна учитывать обе стороны полуночи, а не трактовать утреннюю границу как обычное время внутри того же дня.
Почему обычное сравнение ошибается
Время после полуночи численно меньше вечернего времени. Поэтому простое условие «текущее время между вечерним и утренним» может не описать ночной период корректно: после 00:00 значение уже оказалось по другую сторону границ.
Документация Home Assistant предусматривает временные интервалы через полночь. Используйте именно такую логику, когда начало находится вечером, а конец — утром.
- Вечерняя граница относится к началу периода.
- Полночь разделяет два календарных дня.
- Утренняя граница завершает период после полуночи.
Как мыслить о границах
Период состоит из двух частей: от вечернего времени до 23:59 и от 00:00 до утреннего времени. Корректная проверка объединяет их как один ночной интервал. Точные правила включения границ должны соответствовать выбранному условию и ожидаемому поведению.
Не меняйте порядок границ только ради формального сравнения: это может превратить ночной диапазон в пустой или дневной.
- Проверьте вечернюю часть интервала.
- Проверьте часть после полуночи.
- Отдельно решите поведение ровно на границе.
Проверка автоматизации
Триггер запускает автоматизацию, а временное условие лишь разрешает или запрещает продолжение в момент запуска. Для проверки воспроизведите события до полуночи и после неё и изучите трассировку обычного выполнения.
- Проверьте запуск вечером.
- Проверьте запуск утром до окончания интервала.
- Убедитесь, что дневное время не проходит условие.
Проверьте себя
- Начало задано вечером, а конец — утром.
- Логика явно учитывает переход через полночь.
- Проверены обе стороны полуночи.
Частый вопрос
Почему нельзя просто сравнить вечернюю и утреннюю границы как один дневной диапазон?
После полуночи текущее время меньше вечерней границы, поэтому обычное сравнение может дать неверный результат.