diff --git a/db/routines/R__039_fn_planning_site_context.sql b/db/routines/R__039_fn_planning_site_context.sql index fd06f5c..07f0561 100644 --- a/db/routines/R__039_fn_planning_site_context.sql +++ b/db/routines/R__039_fn_planning_site_context.sql @@ -126,7 +126,8 @@ begin select ai.deye_gen_microinverter_cutoff_enabled from ems.asset_inverter ai where ai.site_id = p_site_id - and ai.code = 'deye-main' + and ai.controllable = true + order by ai.id limit 1 ), false @@ -169,22 +170,30 @@ begin 'battery_capacity_kwh', v.battery_capacity_kwh, 'default_target_soc_pct', v.default_target_soc_pct ) - order by ch.code + order by ch.id ), '[]'::jsonb ) into v_veh from ems.asset_vehicle v join ems.asset_ev_charger ch on ch.id = v.default_charger_id - where v.site_id = p_site_id - and ch.code in ('ev-charger-1', 'ev-charger-2'); + where v.site_id = p_site_id; -- EV session per wallbox — logika v ems.fn_ev_session_planning_json -- (R__038): session se NEvyřazuje při needed_wh=0 (auto nad targetem), -- zůstává v plánu kvůli oportunistickému headroomu i jako známá zátěž. + -- Wallboxy se vybírají DYNAMICKY podle site (řazeno ch.id = stabilní pořadí + -- ev1/ev2), NE podle natvrdo kódu — uživatel může wallbox přejmenovat + -- (2026-06-14: rename 'ev-charger-1' → 'vt-ev-charger-1' oslepil plánovač). v_ev := jsonb_build_array( - ems.fn_ev_session_planning_json(p_site_id, 'ev-charger-1'), - ems.fn_ev_session_planning_json(p_site_id, 'ev-charger-2') + ems.fn_ev_session_planning_json( + p_site_id, + (select code from ems.asset_ev_charger where site_id = p_site_id order by id limit 1) + ), + ems.fn_ev_session_planning_json( + p_site_id, + (select code from ems.asset_ev_charger where site_id = p_site_id order by id offset 1 limit 1) + ) ); select ti.battery_soc_percent diff --git a/db/routines/R__063_fn_load_planning_slots_full.sql b/db/routines/R__063_fn_load_planning_slots_full.sql index db9453c..6ddf1de 100644 --- a/db/routines/R__063_fn_load_planning_slots_full.sql +++ b/db/routines/R__063_fn_load_planning_slots_full.sql @@ -209,7 +209,8 @@ begin select t.status from ems.telemetry_ev_charger t join ems.asset_ev_charger ch on ch.id = t.charger_id - where t.site_id = p_site_id and ch.code = 'ev-charger-1' + where t.site_id = p_site_id + and ch.id = (select id from ems.asset_ev_charger where site_id = p_site_id order by id limit 1) order by t.measured_at desc limit 1 ) ev1 on true @@ -217,7 +218,8 @@ begin select t.status from ems.telemetry_ev_charger t join ems.asset_ev_charger ch on ch.id = t.charger_id - where t.site_id = p_site_id and ch.code = 'ev-charger-2' + where t.site_id = p_site_id + and ch.id = (select id from ems.asset_ev_charger where site_id = p_site_id order by id offset 1 limit 1) order by t.measured_at desc limit 1 ) ev2 on true;