-- ============================================================= -- V014__asset_model_refinement.sql -- Rozlišení limitů: AC střídač / DC FVE / baterie přes měnič / BMS+C-rate -- ============================================================= -- Střídač: nové sloupce (staré max_charge_power_w / max_discharge_power_w ponechány kvůli kompatibilitě) ALTER TABLE ems.asset_inverter ADD COLUMN IF NOT EXISTS max_ac_output_w INT, ADD COLUMN IF NOT EXISTS max_dc_input_w INT, ADD COLUMN IF NOT EXISTS max_battery_charge_w INT, ADD COLUMN IF NOT EXISTS max_battery_discharge_w INT, ADD COLUMN IF NOT EXISTS gen_port_max_power_w INT; COMMENT ON COLUMN ems.asset_inverter.max_ac_output_w IS 'Maximální AC výkon střídače v W. Deye SUN-20K = 22000 W.'; COMMENT ON COLUMN ems.asset_inverter.max_dc_input_w IS 'Maximální DC vstupní výkon z FVE v W. Deye SUN-20K = 40000 W.'; COMMENT ON COLUMN ems.asset_inverter.max_battery_charge_w IS 'Maximální výkon nabíjení baterie v W – limit střídače (ne BMS). Deye SUN-20K s LV baterií = 18000 W (350A × 51.2V).'; COMMENT ON COLUMN ems.asset_inverter.max_battery_discharge_w IS 'Maximální výkon vybíjení baterie v W – limit střídače. Deye SUN-20K s LV baterií = 18000 W.'; COMMENT ON COLUMN ems.asset_inverter.gen_port_max_power_w IS 'Maximální výkon GEN portu v W. Zahrnuje součet všech zařízení zapojených do GEN portu (mikroinvertory, ongrid střídač). Pro home-01 = 10080 W (pv-b pole). Pro druhou instalaci = 4400 W (2× 2.2 kW mikroinvertory).'; -- Baterie: C-rate a BMS ALTER TABLE ems.asset_battery ADD COLUMN IF NOT EXISTS max_charge_c_rate NUMERIC(4,2), ADD COLUMN IF NOT EXISTS max_discharge_c_rate NUMERIC(4,2), ADD COLUMN IF NOT EXISTS bms_max_charge_w INT, ADD COLUMN IF NOT EXISTS bms_max_discharge_w INT; COMMENT ON COLUMN ems.asset_battery.max_charge_c_rate IS 'Maximální nabíjecí C-rate. 0.5C pro 64 kWh = 32 kW teoretické maximum. Skutečný limit je min(bms_max_charge_w, inverter.max_battery_charge_w).'; COMMENT ON COLUMN ems.asset_battery.max_discharge_c_rate IS 'Maximální vybíjecí C-rate (symetricky k nabíjení).'; COMMENT ON COLUMN ems.asset_battery.bms_max_charge_w IS 'Maximální nabíjecí výkon dle BMS v W. Pokud NULL, použij C-rate výpočet.'; COMMENT ON COLUMN ems.asset_battery.bms_max_discharge_w IS 'Maximální vybíjecí výkon dle BMS v W. Pokud NULL, použij C-rate výpočet.'; -- Z existujících sloupců přejmenujeme sémantiku do nových (kde ještě nejsou vyplněné) UPDATE ems.asset_inverter SET max_battery_charge_w = COALESCE(max_battery_charge_w, max_charge_power_w), max_battery_discharge_w = COALESCE(max_battery_discharge_w, max_discharge_power_w) WHERE max_charge_power_w IS NOT NULL OR max_discharge_power_w IS NOT NULL; -- Seed home-01: hlavní Deye (ne ongrid řádek) UPDATE ems.asset_inverter inv SET max_ac_output_w = 22000, max_dc_input_w = 40000, max_battery_charge_w = 18000, max_battery_discharge_w = 18000, gen_port_max_power_w = 10080 FROM ems.site s WHERE s.id = inv.site_id AND s.code = 'home-01' AND inv.code = 'deye-main'; UPDATE ems.asset_battery ab SET max_charge_c_rate = 0.28, max_discharge_c_rate = 0.28, bms_max_charge_w = 18000, bms_max_discharge_w = 18000 FROM ems.asset_inverter inv JOIN ems.site s ON s.id = inv.site_id WHERE ab.inverter_id = inv.id AND s.code = 'home-01' AND inv.code = 'deye-main';