fix forecast korekce
This commit is contained in:
@@ -495,15 +495,15 @@ async def get_site_forecast_pv_slots_range(
|
|||||||
to_ts: datetime = Query(
|
to_ts: datetime = Query(
|
||||||
...,
|
...,
|
||||||
alias="to",
|
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]]]:
|
) -> dict[str, list[dict[str, Any]]]:
|
||||||
if to_ts <= from_ts:
|
if to_ts <= from_ts:
|
||||||
raise HTTPException(status_code=422, detail="'to' must be after 'from'")
|
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(
|
raise HTTPException(
|
||||||
status_code=422,
|
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:
|
async with db.acquire() as conn:
|
||||||
site_ok = await conn.fetchval(
|
site_ok = await conn.fetchval(
|
||||||
@@ -536,7 +536,7 @@ async def get_site_forecast_pv_slots_range_corrected(
|
|||||||
to_ts: datetime = Query(
|
to_ts: datetime = Query(
|
||||||
...,
|
...,
|
||||||
alias="to",
|
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(
|
delta_from_ts: datetime | None = Query(
|
||||||
None,
|
None,
|
||||||
@@ -563,10 +563,10 @@ async def get_site_forecast_pv_slots_range_corrected(
|
|||||||
) -> dict[str, list[dict[str, Any]]]:
|
) -> dict[str, list[dict[str, Any]]]:
|
||||||
if to_ts <= from_ts:
|
if to_ts <= from_ts:
|
||||||
raise HTTPException(status_code=422, detail="'to' must be after 'from'")
|
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(
|
raise HTTPException(
|
||||||
status_code=422,
|
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)
|
now = datetime.now(tz=timezone.utc)
|
||||||
delta_to = delta_to_ts or now
|
delta_to = delta_to_ts or now
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ as $fn$
|
|||||||
p_from as ts_from,
|
p_from as ts_from,
|
||||||
case
|
case
|
||||||
when p_to <= p_from then p_from + interval '15 minutes'
|
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
|
else p_to
|
||||||
end as ts_to
|
end as ts_to
|
||||||
),
|
),
|
||||||
@@ -64,4 +64,4 @@ as $fn$
|
|||||||
$fn$;
|
$fn$;
|
||||||
|
|
||||||
comment on function ems.fn_forecast_pv_slots_range(int, timestamptz, timestamptz) is
|
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í.';
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ as $fn$
|
|||||||
p_from as ts_from,
|
p_from as ts_from,
|
||||||
case
|
case
|
||||||
when p_to <= p_from then p_from + interval '15 minutes'
|
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
|
else p_to
|
||||||
end as ts_to
|
end as ts_to
|
||||||
),
|
),
|
||||||
@@ -120,4 +120,4 @@ as $fn$
|
|||||||
$fn$;
|
$fn$;
|
||||||
|
|
||||||
comment on function ems.fn_forecast_pv_slots_range_corrected(int, timestamptz, timestamptz, timestamptz, timestamptz, numeric, int) is
|
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í.';
|
||||||
|
|||||||
Reference in New Issue
Block a user