Do Home Assistant Core trafiły 21 października 2026 trzy poprawki dla godziny, która przy przejściu na czas zimowy występuje dwa razy. Dotyczą pomocnika harmonogramu, wyzwalaczy time_pattern i statystyk długoterminowych. Wszystkie przygotował Raman Gupta, sprawdził je Paulus Schoutsen, a błędy wyszły na jaw w testach opartych na właściwościach.
W Polsce zegarki cofamy w niedzielę 25 października 2026, w Stanach Zjednoczonych 1 listopada. Poprawki trafiły do gałęzi dev, z której na początku listopada powstanie Home Assistant 2026.11. Nie mają przypisanego wydania poprawkowego 2026.10, a obecna stabilna wersja 2026.10.2 z 16 października ich nie zawiera.
Harmonogram potrafił ruszać tysiące razy na sekundę
Najpoważniejszy błąd dotyczy pomocnika harmonogramu. Weźmy niedzielny blok od 01:00 do 01:45. Gdy zegar drugi raz pokazywał 01:30, pomocnik wybierał jako następne zdarzenie pierwszą godzinę 01:45, choć ta minęła już 45 minut wcześniej. Licznik czasu uruchamiał się od razu i znów ustawiał to samo minione zdarzenie, tysiące razy na sekundę, aż zegar po raz drugi doszedł do 01:45.
Winne było porównywanie dat w Pythonie. Przy tej samej strefie czasowej porównanie pomija flagę fold, która oznacza drugie przejście przez powtórzoną godzinę, więc pierwsza 01:45 wyglądała na późniejszą niż druga 01:30. Teraz pomocnik nadaje kandydatom tę samą wartość fold co bieżącej chwili, więc w powtórzonej godzinie wybiera zdarzenie, które dopiero nastąpi.
Błąd dotyczy tylko harmonogramów z blokiem, który zaczyna się albo kończy w powtórzonej godzinie.
Wyzwalacze czasowe w nietypowych strefach
Druga poprawka obejmuje wyzwalacze time_pattern tam, gdzie zegar cofa się o pół godziny albo o czas, który nie wypada na pełną godzinę. Autor podaje przykład strefy Pacific/Chatham, gdzie zegar cofa się z 03:45 na 02:45, i wspomina wyspę Lord Howe z przesunięciem o 30 minut. Wyzwalacz ustawiony na godzinę 2 powinien tej nocy zadziałać jeszcze raz o 02:45, a Home Assistant przeskakiwał od razu na 02:00 następnego dnia. Teraz szukanie kolejnego dopasowania zaczyna się od początku powtórzonego okresu. Przy zmianie o pełną godzinę, jak w Europie i w Stanach Zjednoczonych, ten błąd nie występował.
Statystyki gubiły ostatni dzień, tydzień albo miesiąc
Trzecia poprawka dotyczy rejestratora. Przy odczycie statystyk długoterminowych w podziale na dni, tygodnie lub miesiące okres ze zmianą czasu mógł zniknąć z wyniku, jeśli dane kończyły się w pierwszej godzinie tego okresu. Doba ze zmianą czasu ma 25 godzin, a kod zamykał okresy po stałej długości, więc ostatni wiersz w ogóle się nie pojawiał. Teraz kod bierze prawdziwy koniec okresu. Taka sytuacja zdarza się na przykład przy odczycie statystyk krótko po północy w dniu zmiany czasu.