Tik op een dag in de verwachtingsstrook voor een uuroverzicht van
temperatuur, regen en wind (richting + snelheid), om de 2 uur, 12
punten per dag. Sluit na 20 seconden vanzelf of bij een tik op de
overlay zelf.
Backend: Open-Meteo levert hourly-data in dezelfde call als daily
(geen extra verzoek, dezelfde 60min-cache). Nieuwe HourlyForecastMapper
groepeert per kalenderdatum en bemonstert om het andere uur, robuust
voor de zomertijddag (23/25 uur). OpenMeteoClient::dailyForecast()
hernoemd naar forecast(), geeft nu {daily, hourly} terug. Elke dag in
de forecast-array krijgt een hourly-lijst.
Frontend: temperatuurlijn hergebruikt sparklinePath (nu ook als
sparklinePoints voor exacte uitlijning met de 12-koloms grid), regen
als kleine staafjes, windpijl (nieuw icoon) wijst waarheen de wind
waait. 20s-balk via CSS transition met reflow-restart. Servicewerker
naar v5.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
138 lines
2.0 KiB
JSON
138 lines
2.0 KiB
JSON
{
|
|
"time": [
|
|
"2026-10-25T00:00",
|
|
"2026-10-25T01:00",
|
|
"2026-10-25T02:00",
|
|
"2026-10-25T03:00",
|
|
"2026-10-25T04:00",
|
|
"2026-10-25T05:00",
|
|
"2026-10-25T06:00",
|
|
"2026-10-25T07:00",
|
|
"2026-10-25T08:00",
|
|
"2026-10-25T09:00",
|
|
"2026-10-25T10:00",
|
|
"2026-10-25T11:00",
|
|
"2026-10-25T12:00",
|
|
"2026-10-25T13:00",
|
|
"2026-10-25T14:00",
|
|
"2026-10-25T15:00",
|
|
"2026-10-25T16:00",
|
|
"2026-10-25T17:00",
|
|
"2026-10-25T18:00",
|
|
"2026-10-25T19:00",
|
|
"2026-10-25T20:00",
|
|
"2026-10-25T21:00",
|
|
"2026-10-25T22:00",
|
|
"2026-10-25T23:00",
|
|
"2026-10-25T02:00"
|
|
],
|
|
"temperature_2m": [
|
|
10,
|
|
10.1,
|
|
10.2,
|
|
10.3,
|
|
10.4,
|
|
10.5,
|
|
10.6,
|
|
10.7,
|
|
10.8,
|
|
10.9,
|
|
11,
|
|
11.1,
|
|
11.2,
|
|
11.3,
|
|
11.4,
|
|
11.5,
|
|
11.6,
|
|
11.7,
|
|
11.8,
|
|
11.9,
|
|
12,
|
|
12.1,
|
|
12.2,
|
|
12.3,
|
|
12.4
|
|
],
|
|
"precipitation": [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"wind_speed_10m": [
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5
|
|
],
|
|
"wind_direction_10m": [
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180,
|
|
180
|
|
]
|
|
}
|