fix(elecprice): handle mixed UTC offsets in Tibber prices around DST (#1448)

Once Tibber publishes prices across a DST change, the series holds
timestamps with two UTC offsets and pd.to_datetime() raises "Mixed
timezones detected", so every optimization run is canceled. Parse via
UTC and convert back to the configured timezone.

Fixes #1446
This commit is contained in:
sarankumar
2026-10-25 06:10:48 +01:00
committed by GitHub
parent baafe570ff
commit cdbaae45ba
2 changed files with 25 additions and 1 deletions
@@ -317,7 +317,11 @@ class ElecPriceTibber(ElecPriceProvider):
if series.empty:
return series
series = series.sort_index()
series.index = pd.to_datetime([to_datetime(index).isoformat() for index in series.index])
# Parse via UTC: around a DST change the series mixes UTC offsets
# (e.g. +02:00 and +01:00), which pd.to_datetime() refuses to combine.
index = pd.to_datetime([to_datetime(index).isoformat() for index in series.index], utc=True)
timezone = self.config.general.timezone
series.index = index.tz_convert(timezone) if timezone else index
series = series.groupby(level=0).mean().sort_index()
return series.dropna()