zrychleni pv forecast per day
This commit is contained in:
@@ -3,10 +3,21 @@ returns jsonb
|
||||
language sql
|
||||
stable
|
||||
as $fn$
|
||||
with latest as (
|
||||
with tz as (
|
||||
select coalesce(nullif(trim(s.timezone), ''), 'Europe/Prague') as tz_name
|
||||
from ems.site s
|
||||
where s.id = p_site_id
|
||||
),
|
||||
bounds as (
|
||||
select
|
||||
((p_day::timestamp) at time zone tz.tz_name) as day_start_utc,
|
||||
(((p_day + 1)::timestamp) at time zone tz.tz_name) as day_end_utc
|
||||
from tz
|
||||
),
|
||||
latest as (
|
||||
select distinct on (fpi.interval_start, fpr.pv_array_id)
|
||||
fpi.run_id,
|
||||
fpi.pv_array_id,
|
||||
fpr.pv_array_id,
|
||||
fpi.interval_start,
|
||||
fpi.power_w,
|
||||
fpi.irradiance_wm2,
|
||||
@@ -18,22 +29,15 @@ as $fn$
|
||||
join ems.asset_pv_array apa
|
||||
on apa.id = fpr.pv_array_id
|
||||
and apa.site_id = fpr.site_id
|
||||
cross join bounds b
|
||||
where fpr.site_id = p_site_id
|
||||
and (
|
||||
fpi.interval_start at time zone coalesce(
|
||||
nullif(trim((select timezone from ems.site s where s.id = p_site_id)), ''),
|
||||
'Europe/Prague'
|
||||
)
|
||||
)::date = p_day
|
||||
and fpr.status = 'ok'
|
||||
and fpi.interval_start >= b.day_start_utc
|
||||
and fpi.interval_start < b.day_end_utc
|
||||
order by fpi.interval_start, fpr.pv_array_id, fpr.created_at desc
|
||||
),
|
||||
rows as (
|
||||
select
|
||||
case
|
||||
when controllable then 'a'
|
||||
else 'b'
|
||||
end as pole,
|
||||
jsonb_build_object(
|
||||
'run_id', run_id,
|
||||
'pv_array_id', pv_array_id,
|
||||
|
||||
Reference in New Issue
Block a user