Jeśli linia prognozy produkcji energii słonecznej w panelu Energia w Home Assistancie zawsze spóźniała się o godzinę względem rzeczywistej produkcji, to nie było złudzenie. Poprawka autorstwa Tagliax, zmiana #188790, trafiła do gałęzi rozwojowej Home Assistanta 26 października 2026, więc znajdzie się w wydaniu 2026.11. Przesuwa każdą wartość energii z Forecast.Solar na początek okresu, którego dotyczy.

Gdzie znikała godzina

API Forecast.Solar podaje każdą wartość watt_hours_period pod znacznikiem czasu końca okresu. Według dokumentacji wartość zawsze dotyczy okresu od poprzedniego znacznika do tego, pod którym stoi. Home Assistant przekazywał te znaczniki bez zmian, a oba miejsca, które z nich korzystają, traktowały je jako początek okresu.

Skutki były takie:

  • panel Energia rysował prognozę godzinę za późno;
  • akcja get_forecast zwracała każdą wartość o jeden okres za późno, choć jej własna dokumentacja mówi, że wh_period to energia wyprodukowana w okresie, który zaczyna się o tej godzinie.

Autor pokazuje to na danych z własnej instalacji z 24 października. Pod znacznikiem 13:00 UTC jest 965 Wh, szczyt dnia, czyli energia wyprodukowana między 12:00 a 13:00. Panel rysował ją między 13:00 a 14:00. Pierwszy znacznik każdego dnia to wschód słońca z 0 Wh, a ostatni to zachód z kilkoma Wh. Ma to sens tylko wtedy, gdy wartości należą do okresu, który się w tym miejscu kończy.

Jak duży był błąd

Autor porównał prognozę z energią wyliczoną z wartości watts, czyli chwilowej mocy w każdym znaczniku, godzina po godzinie przez dwa dni. Dla Rzymu łączny błąd spadł z 3762 Wh do 7 Wh. Dla Sydney spadł z 10537 Wh do 6 Wh przy znacznikach czasu w formacie ISO 8601 i z 7000 Wh do 1991 Wh przy time=utc. Reszta tej różnicy to godziny od 23:00 do 00:00 UTC, których API nie zwraca.

Po poprawce linia prognozy w panelu Energia spada do zera razem z ostatnim słupkiem produkcji, a nie godzinę po zachodzie słońca.

Co się zmienia w automatyzacjach

Akcja get_forecast zwraca teraz inne dane, co ma znaczenie, jeśli czyta je skrypt albo szablon:

  • przy rozdzielczości raw ostatni znacznik dnia nie ma już wartości wh_period, bo o zachodzie słońca nie zaczyna się żaden okres;
  • przy rozdzielczości hourly każda godzina zawiera teraz własną energię, a nie energię z poprzedniej godziny.

Sztuczne zero, które API wstawia o północy UTC, nadal jest odfiltrowywane. Nie jest prawdziwym okresem, więc okres przed nim nie dostaje żadnej wartości.

Czego jeszcze nie poprawiono

Czujniki energy_current_hour i energy_next_hour mają ten sam problem, ale tkwi on w bibliotece forecast_solar. Ma go naprawić osobna zmiana, #465 w home-assistant-libs/forecast_solar, otwarta 26 października i wciąż czekająca na scalenie. Poprawka w Home Assistancie od niej nie zależy, a wartości watts się nie zmieniają.