fix forecast korekce
Some checks failed
CI and deploy / migration-check (push) Failing after 10s
CI and deploy / deploy (push) Has been skipped

This commit is contained in:
Dusan Vojacek
2026-04-22 19:40:55 +02:00
parent 9ca4b4c577
commit e085068069
3 changed files with 10 additions and 10 deletions

View File

@@ -495,15 +495,15 @@ async def get_site_forecast_pv_slots_range(
to_ts: datetime = Query(
...,
alias="to",
description="Konec polouzavřeného intervalu (max. cca 120 h za from)",
description="Konec polouzavřeného intervalu (max. 60 dní za from)",
),
) -> dict[str, list[dict[str, Any]]]:
if to_ts <= from_ts:
raise HTTPException(status_code=422, detail="'to' must be after 'from'")
if to_ts - from_ts > timedelta(hours=120):
if to_ts - from_ts > timedelta(days=60):
raise HTTPException(
status_code=422,
detail="Span between 'from' and 'to' must be at most 120 hours",
detail="Span between 'from' and 'to' must be at most 60 days",
)
async with db.acquire() as conn:
site_ok = await conn.fetchval(
@@ -536,7 +536,7 @@ async def get_site_forecast_pv_slots_range_corrected(
to_ts: datetime = Query(
...,
alias="to",
description="Konec polouzavřeného intervalu (max. cca 120 h za from)",
description="Konec polouzavřeného intervalu (max. 60 dní za from)",
),
delta_from_ts: datetime | None = Query(
None,
@@ -563,10 +563,10 @@ async def get_site_forecast_pv_slots_range_corrected(
) -> dict[str, list[dict[str, Any]]]:
if to_ts <= from_ts:
raise HTTPException(status_code=422, detail="'to' must be after 'from'")
if to_ts - from_ts > timedelta(hours=120):
if to_ts - from_ts > timedelta(days=60):
raise HTTPException(
status_code=422,
detail="Span between 'from' and 'to' must be at most 120 hours",
detail="Span between 'from' and 'to' must be at most 60 days",
)
now = datetime.now(tz=timezone.utc)
delta_to = delta_to_ts or now

View File

@@ -14,7 +14,7 @@ as $fn$
p_from as ts_from,
case
when p_to <= p_from then p_from + interval '15 minutes'
when p_to > p_from + interval '120 hours' then p_from + interval '120 hours'
when p_to > p_from + interval '60 days' then p_from + interval '60 days'
else p_to
end as ts_to
),
@@ -64,4 +64,4 @@ as $fn$
$fn$;
comment on function ems.fn_forecast_pv_slots_range(int, timestamptz, timestamptz) is
'JSON pole {interval_start, pv_forecast_total_w} po 15 min pro [p_from, p_to); doplnění grafu plánu za hranicí planning_interval.';
'JSON pole {interval_start, pv_forecast_total_w} po 15 min pro [p_from, p_to); doplnění grafu plánu za hranicí planning_interval. Horizont je omezený na max. 60 dní.';

View File

@@ -26,7 +26,7 @@ as $fn$
p_from as ts_from,
case
when p_to <= p_from then p_from + interval '15 minutes'
when p_to > p_from + interval '120 hours' then p_from + interval '120 hours'
when p_to > p_from + interval '60 days' then p_from + interval '60 days'
else p_to
end as ts_to
),
@@ -120,4 +120,4 @@ as $fn$
$fn$;
comment on function ems.fn_forecast_pv_slots_range_corrected(int, timestamptz, timestamptz, timestamptz, timestamptz, numeric, int) is
'JSON pole {interval_start, pv_forecast_total_w, pv_forecast_corrected_w, slot_of_day} po 15 min pro [p_from, p_to). Korekce je aditivní delta profil z fn_pv_forecast_delta_profile.';
'JSON pole {interval_start, pv_forecast_total_w, pv_forecast_corrected_w, slot_of_day} po 15 min pro [p_from, p_to). Korekce je aditivní delta profil z fn_pv_forecast_delta_profile. Horizont je omezený na max. 60 dní.';