solver nastavuje stavy deye
Some checks failed
CI and deploy / migration-check (push) Failing after 14s
CI and deploy / deploy (push) Has been skipped

This commit is contained in:
Dusan Vojacek
2026-04-20 08:33:56 +02:00
parent 6447666cee
commit 43b594c8d5
10 changed files with 219 additions and 70 deletions

View File

@@ -0,0 +1,10 @@
-- Explicitní fyzický režim Deye přímo v plánu (Variant A):
-- PASSIVE / SELL / CHARGE. Exporter pak nemusí heuristicky mapovat z wattů.
ALTER TABLE ems.planning_interval
ADD COLUMN IF NOT EXISTS deye_physical_mode TEXT;
COMMENT ON COLUMN ems.planning_interval.deye_physical_mode IS
'Explicitní fyzický režim Deye pro tento slot (PASSIVE / SELL / CHARGE).
Zdroj: planning_engine.solve_dispatch() (záměr slotu), použití: control exporter (get_deye_mode).';

View File

@@ -50,6 +50,7 @@ begin
run_id, interval_start,
battery_setpoint_w, battery_soc_target_pct,
grid_setpoint_w,
deye_physical_mode,
ev1_setpoint_w, ev2_setpoint_w, ev1_via_bat_w, ev2_via_bat_w,
heat_pump_enabled, heat_pump_setpoint_w,
pv_a_curtailed_w, expected_cost_czk,
@@ -64,6 +65,7 @@ begin
(r.value->>'battery_setpoint_w')::int,
(r.value->>'battery_soc_target_pct')::numeric,
(r.value->>'grid_setpoint_w')::int,
nullif(trim(r.value->>'deye_physical_mode'), ''),
nullif(r.value->>'ev1_setpoint_w', '')::int,
nullif(r.value->>'ev2_setpoint_w', '')::int,
coalesce((r.value->>'ev1_via_bat_w')::int, 0),
@@ -86,6 +88,7 @@ begin
run_id, interval_start,
battery_setpoint_w, battery_soc_target_pct,
grid_setpoint_w,
deye_physical_mode,
ev1_setpoint_w, ev2_setpoint_w, ev1_via_bat_w, ev2_via_bat_w,
heat_pump_enabled, heat_pump_setpoint_w,
pv_a_curtailed_w, expected_cost_czk,
@@ -97,6 +100,7 @@ begin
(r.value->>'battery_setpoint_w')::int,
(r.value->>'battery_soc_target_pct')::numeric,
(r.value->>'grid_setpoint_w')::int,
nullif(trim(r.value->>'deye_physical_mode'), ''),
nullif(r.value->>'ev1_setpoint_w', '')::int,
nullif(r.value->>'ev2_setpoint_w', '')::int,
coalesce((r.value->>'ev1_via_bat_w')::int, 0),