From 484f1f85fcf67bf5fc4690600cba48575ed99db9 Mon Sep 17 00:00:00 2001 From: Dusan Vojacek Date: Thu, 11 Jun 2026 10:48:13 +0200 Subject: [PATCH] =?UTF-8?q?F=C3=A1ze=200:=20ekonomick=C3=BD=20regresn?= =?UTF-8?q?=C3=AD=20harness=20pl=C3=A1nova=C4=8De?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - scripts/harness/extract_fixtures.py: extrakce vstupů solveru (fn_planning_site_context + fn_load_planning_slots_full) do JSON fixtures - backend/tests/test_golden_replay.py: golden gate — replay fixtures přes solve_dispatch_two_pass, bit-perfektní diff proti snapshotům (GOLDEN_UPDATE=1 pro vědomou regeneraci); 4 scénáře: home-01 neg-sell extrém / normal, BA81, KV1 - scripts/harness/economics_report.py: actual (audit_interval) vs oracle MILP (perfect hindsight, čistá ekonomika bez heuristických penalt), SoC-adjusted Baseline home-01 2026-05-12..06-09: GAP 2185 Kč / 29 dní (~27 %). Známý stav: 4/124 testů test_planning_dispatch_milp.py failuje už na main. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../fixtures/BA81_2026-06-09_normal.json | 4933 ++++++++++++++ .../fixtures/KV1_2026-06-09_fixed_normal.json | 5662 ++++++++++++++++ .../home-01_2026-06-07_neg_sell_deep.json | 5673 +++++++++++++++++ .../fixtures/home-01_2026-06-09_normal.json | 5673 +++++++++++++++++ .../snapshots/BA81_2026-06-09_normal.json | 3181 +++++++++ .../KV1_2026-06-09_fixed_normal.json | 3181 +++++++++ .../home-01_2026-06-07_neg_sell_deep.json | 3181 +++++++++ .../snapshots/home-01_2026-06-09_normal.json | 3181 +++++++++ backend/tests/test_golden_replay.py | 193 + scripts/harness/README.md | 78 + scripts/harness/economics_report.py | 306 + scripts/harness/extract_fixtures.py | 219 + 12 files changed, 35461 insertions(+) create mode 100644 backend/tests/golden/fixtures/BA81_2026-06-09_normal.json create mode 100644 backend/tests/golden/fixtures/KV1_2026-06-09_fixed_normal.json create mode 100644 backend/tests/golden/fixtures/home-01_2026-06-07_neg_sell_deep.json create mode 100644 backend/tests/golden/fixtures/home-01_2026-06-09_normal.json create mode 100644 backend/tests/golden/snapshots/BA81_2026-06-09_normal.json create mode 100644 backend/tests/golden/snapshots/KV1_2026-06-09_fixed_normal.json create mode 100644 backend/tests/golden/snapshots/home-01_2026-06-07_neg_sell_deep.json create mode 100644 backend/tests/golden/snapshots/home-01_2026-06-09_normal.json create mode 100644 backend/tests/test_golden_replay.py create mode 100644 scripts/harness/README.md create mode 100644 scripts/harness/economics_report.py create mode 100644 scripts/harness/extract_fixtures.py diff --git a/backend/tests/golden/fixtures/BA81_2026-06-09_normal.json b/backend/tests/golden/fixtures/BA81_2026-06-09_normal.json new file mode 100644 index 0000000..7fd08a6 --- /dev/null +++ b/backend/tests/golden/fixtures/BA81_2026-06-09_normal.json @@ -0,0 +1,4933 @@ +{ + "fixture_version": 1, + "meta": { + "site_id": 3, + "site_code": "BA81", + "prague_day": "2026-06-09", + "window_from": "2026-06-09T00:00:00+02:00", + "window_to": "2026-06-10T12:00:00+02:00", + "horizon_hours": 36, + "soc_wh": 3125.0, + "soc_source": "audit_interval", + "tag": "normal", + "extracted_at": "2026-06-11T10:25:16.457492+02:00", + "dsn_host": "10.200.200.1:5432", + "note": "Vstupy plánovače zmrazené k okamžiku extrakce (context = aktuální konfigurace, sloty = fn_load_planning_slots_full nad historickými cenami/forecasty). EV sessions vynulovány, operating_mode=AUTO." + }, + "context_json": { + "grid": { + "max_export_power_w": 16000, + "max_import_power_w": 17000, + "block_export_on_negative_sell": false, + "deye_gen_microinverter_cutoff_enabled": true + }, + "market": { + "sale_pricing_mode": "spot", + "purchase_pricing_mode": "fixed" + }, + "soc_wh": 3125.0, + "battery": { + "min_soc_wh": 1250.0, + "soc_max_wh": 12500.0, + "arb_floor_wh": 3750.0, + "reserve_soc_wh": 3750.0, + "charge_efficiency": 0.95, + "charge_slot_buffer": 1.3, + "max_charge_power_w": 6250, + "planner_soc_max_wh": 12500.0, + "usable_capacity_wh": 12500, + "discharge_efficiency": 0.95, + "discharge_slot_buffer": 1.5, + "max_discharge_power_w": 6250, + "degradation_cost_czk_kwh": 0.3, + "planner_discharge_floor_percent": null, + "planner_neg_sell_prep_soc_percent": 80.0, + "planner_terminal_soc_value_factor": 0.2, + "planner_neg_sell_full_soc_tail_slots": 4, + "planner_daytime_charge_price_quantile": 0.7, + "planner_daytime_charge_target_enabled": true, + "planner_extreme_buy_threshold_czk_kwh": -5.0, + "planner_night_baseload_buffer_percent": 20, + "planner_neg_sell_vent_min_sell_czk_kwh": null, + "planner_discharge_relax_prewindow_slots": 8, + "planner_charge_commitment_penalty_czk_kwh": 0.2 + }, + "tuv_temp": 55.0, + "vehicles": [ + { + "max_charge_power_w": 11000, + "battery_capacity_kwh": 60.0, + "default_target_soc_pct": 80.0 + } + ], + "heat_pump": { + "tuv_min_temp_c": 0, + "tuv_target_temp_c": 55, + "rated_heating_power_w": 0 + }, + "ev_sessions": [], + "operating_mode": "AUTO", + "planning_config": {}, + "tuv_delta_stats": [ + { + "dow": 0, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 23, + "delta": 0.0 + } + ] + }, + "slot_rows": [ + { + "slot_ord": 0, + "interval_start": "2026-06-08T22:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.313, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 215, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 1, + "interval_start": "2026-06-08T22:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.9835, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 215, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 2, + "interval_start": "2026-06-08T22:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.8125, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 215, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 3, + "interval_start": "2026-06-08T22:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.78575, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 215, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 4, + "interval_start": "2026-06-08T23:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.95725, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 140, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 5, + "interval_start": "2026-06-08T23:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.9115, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 140, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 6, + "interval_start": "2026-06-08T23:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.843, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 140, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 7, + "interval_start": "2026-06-08T23:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.81825, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 140, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 8, + "interval_start": "2026-06-09T00:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.70975, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 114, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 9, + "interval_start": "2026-06-09T00:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.66775, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 114, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 10, + "interval_start": "2026-06-09T00:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.74625, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 114, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 11, + "interval_start": "2026-06-09T00:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.61625, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 114, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 12, + "interval_start": "2026-06-09T01:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.66675, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 114, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 13, + "interval_start": "2026-06-09T01:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.5895, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 114, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 14, + "interval_start": "2026-06-09T01:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.56575, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 114, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 15, + "interval_start": "2026-06-09T01:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.50025, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 114, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 16, + "interval_start": "2026-06-09T02:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.6405, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 113, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 17, + "interval_start": "2026-06-09T02:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.54125, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 113, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 18, + "interval_start": "2026-06-09T02:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.479, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 113, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 19, + "interval_start": "2026-06-09T02:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.4945, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 113, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 20, + "interval_start": "2026-06-09T03:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.72125, + "is_predicted_price": false, + "pv_a_forecast_w": 194, + "pv_b_forecast_w": 10, + "load_baseline_w": 118, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 21, + "interval_start": "2026-06-09T03:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.73675, + "is_predicted_price": false, + "pv_a_forecast_w": 353, + "pv_b_forecast_w": 55, + "load_baseline_w": 118, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 22, + "interval_start": "2026-06-09T03:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.77775, + "is_predicted_price": false, + "pv_a_forecast_w": 342, + "pv_b_forecast_w": 130, + "load_baseline_w": 118, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 23, + "interval_start": "2026-06-09T03:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.92275, + "is_predicted_price": false, + "pv_a_forecast_w": 873, + "pv_b_forecast_w": 214, + "load_baseline_w": 118, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 24, + "interval_start": "2026-06-09T04:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.971, + "is_predicted_price": false, + "pv_a_forecast_w": 1419, + "pv_b_forecast_w": 434, + "load_baseline_w": 127, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 3750.0, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 25, + "interval_start": "2026-06-09T04:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.131, + "is_predicted_price": false, + "pv_a_forecast_w": 1796, + "pv_b_forecast_w": 313, + "load_baseline_w": 127, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 3809.592857142857, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 26, + "interval_start": "2026-06-09T04:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.14725, + "is_predicted_price": false, + "pv_a_forecast_w": 2041, + "pv_b_forecast_w": 375, + "load_baseline_w": 127, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 3869.1857142857143, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 27, + "interval_start": "2026-06-09T04:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.10075, + "is_predicted_price": false, + "pv_a_forecast_w": 2318, + "pv_b_forecast_w": 477, + "load_baseline_w": 127, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 3928.7785714285715, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 28, + "interval_start": "2026-06-09T05:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.39375, + "is_predicted_price": false, + "pv_a_forecast_w": 2851, + "pv_b_forecast_w": 570, + "load_baseline_w": 180, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 3988.3714285714286, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 29, + "interval_start": "2026-06-09T05:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.18775, + "is_predicted_price": false, + "pv_a_forecast_w": 3677, + "pv_b_forecast_w": 683, + "load_baseline_w": 180, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4047.964285714286, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 30, + "interval_start": "2026-06-09T05:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.15675, + "is_predicted_price": false, + "pv_a_forecast_w": 4463, + "pv_b_forecast_w": 818, + "load_baseline_w": 180, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4107.557142857143, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 31, + "interval_start": "2026-06-09T05:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.98075, + "is_predicted_price": false, + "pv_a_forecast_w": 3494, + "pv_b_forecast_w": 846, + "load_baseline_w": 180, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4167.15, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 32, + "interval_start": "2026-06-09T06:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.24775, + "is_predicted_price": false, + "pv_a_forecast_w": 4385, + "pv_b_forecast_w": 1062, + "load_baseline_w": 334, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4226.742857142857, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 33, + "interval_start": "2026-06-09T06:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.07125, + "is_predicted_price": false, + "pv_a_forecast_w": 5082, + "pv_b_forecast_w": 1261, + "load_baseline_w": 334, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4286.335714285714, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 34, + "interval_start": "2026-06-09T06:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.97475, + "is_predicted_price": false, + "pv_a_forecast_w": 4837, + "pv_b_forecast_w": 1330, + "load_baseline_w": 334, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4345.928571428572, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 35, + "interval_start": "2026-06-09T06:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.4705, + "is_predicted_price": false, + "pv_a_forecast_w": 7021, + "pv_b_forecast_w": 1741, + "load_baseline_w": 334, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4405.521428571428, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 36, + "interval_start": "2026-06-09T07:00:00+00:00", + "buy_price": 4.085976, + "sell_price": 3.076, + "is_predicted_price": false, + "pv_a_forecast_w": 6478, + "pv_b_forecast_w": 1708, + "load_baseline_w": 348, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4465.114285714286, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 37, + "interval_start": "2026-06-09T07:15:00+00:00", + "buy_price": 4.085976, + "sell_price": 2.6115, + "is_predicted_price": false, + "pv_a_forecast_w": 7680, + "pv_b_forecast_w": 2148, + "load_baseline_w": 348, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4524.707142857143, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 38, + "interval_start": "2026-06-09T07:30:00+00:00", + "buy_price": 4.085976, + "sell_price": 2.44025, + "is_predicted_price": false, + "pv_a_forecast_w": 7351, + "pv_b_forecast_w": 2276, + "load_baseline_w": 348, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4584.3, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 39, + "interval_start": "2026-06-09T07:45:00+00:00", + "buy_price": 4.085976, + "sell_price": 2.07, + "is_predicted_price": false, + "pv_a_forecast_w": 7925, + "pv_b_forecast_w": 2460, + "load_baseline_w": 348, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4643.892857142857, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 40, + "interval_start": "2026-06-09T08:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.392, + "is_predicted_price": false, + "pv_a_forecast_w": 5096, + "pv_b_forecast_w": 1873, + "load_baseline_w": 381, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4703.4857142857145, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 41, + "interval_start": "2026-06-09T08:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.01775, + "is_predicted_price": false, + "pv_a_forecast_w": 4927, + "pv_b_forecast_w": 1867, + "load_baseline_w": 381, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4763.078571428571, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 42, + "interval_start": "2026-06-09T08:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.83775, + "is_predicted_price": false, + "pv_a_forecast_w": 6444, + "pv_b_forecast_w": 2363, + "load_baseline_w": 381, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4822.671428571429, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 43, + "interval_start": "2026-06-09T08:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.452, + "is_predicted_price": false, + "pv_a_forecast_w": 5574, + "pv_b_forecast_w": 2143, + "load_baseline_w": 381, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4882.2642857142855, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 44, + "interval_start": "2026-06-09T09:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.93975, + "is_predicted_price": false, + "pv_a_forecast_w": 6445, + "pv_b_forecast_w": 2445, + "load_baseline_w": 733, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4941.857142857143, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 45, + "interval_start": "2026-06-09T09:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.48175, + "is_predicted_price": false, + "pv_a_forecast_w": 7130, + "pv_b_forecast_w": 2682, + "load_baseline_w": 733, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5001.45, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 46, + "interval_start": "2026-06-09T09:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.222, + "is_predicted_price": false, + "pv_a_forecast_w": 8293, + "pv_b_forecast_w": 3089, + "load_baseline_w": 733, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5061.042857142857, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 47, + "interval_start": "2026-06-09T09:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 0.795, + "is_predicted_price": false, + "pv_a_forecast_w": 7745, + "pv_b_forecast_w": 2683, + "load_baseline_w": 733, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5120.635714285714, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 48, + "interval_start": "2026-06-09T10:00:00+00:00", + "buy_price": 4.085976, + "sell_price": 1.0795, + "is_predicted_price": false, + "pv_a_forecast_w": 7537, + "pv_b_forecast_w": 2450, + "load_baseline_w": 305, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5180.228571428572, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 49, + "interval_start": "2026-06-09T10:15:00+00:00", + "buy_price": 4.085976, + "sell_price": 0.499, + "is_predicted_price": false, + "pv_a_forecast_w": 6827, + "pv_b_forecast_w": 2061, + "load_baseline_w": 305, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5239.821428571428, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 1484.375, + "charge_cum_wh": 3831.1125, + "charge_layer": "grid_pm", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 50, + "interval_start": "2026-06-09T10:30:00+00:00", + "buy_price": 4.085976, + "sell_price": 0.4115, + "is_predicted_price": false, + "pv_a_forecast_w": 7679, + "pv_b_forecast_w": 2529, + "load_baseline_w": 305, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5299.414285714286, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 1484.375, + "charge_cum_wh": 2346.7375, + "charge_layer": "grid_pm", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 51, + "interval_start": "2026-06-09T10:45:00+00:00", + "buy_price": 4.085976, + "sell_price": 0.7, + "is_predicted_price": false, + "pv_a_forecast_w": 8102, + "pv_b_forecast_w": 2594, + "load_baseline_w": 305, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5359.007142857143, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 52, + "interval_start": "2026-06-09T11:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 0.95, + "is_predicted_price": false, + "pv_a_forecast_w": 8166, + "pv_b_forecast_w": 2785, + "load_baseline_w": 279, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5418.6, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 53, + "interval_start": "2026-06-09T11:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.004, + "is_predicted_price": false, + "pv_a_forecast_w": 7358, + "pv_b_forecast_w": 2518, + "load_baseline_w": 279, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5478.192857142857, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 54, + "interval_start": "2026-06-09T11:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 0.6115, + "is_predicted_price": false, + "pv_a_forecast_w": 3848, + "pv_b_forecast_w": 998, + "load_baseline_w": 279, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5537.785714285715, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 1084.6625, + "charge_cum_wh": 4915.775, + "charge_layer": "pv_a", + "charge_slot_reason": "pv_layer_a" + }, + { + "slot_ord": 55, + "interval_start": "2026-06-09T11:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 0.825, + "is_predicted_price": false, + "pv_a_forecast_w": 3260, + "pv_b_forecast_w": 703, + "load_baseline_w": 279, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5597.378571428571, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 56, + "interval_start": "2026-06-09T12:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 0.20475, + "is_predicted_price": false, + "pv_a_forecast_w": 3127, + "pv_b_forecast_w": 777, + "load_baseline_w": 273, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5656.971428571429, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 1484.375, + "charge_cum_wh": 862.3625, + "charge_layer": "grid_pm", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 57, + "interval_start": "2026-06-09T12:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.0935, + "is_predicted_price": false, + "pv_a_forecast_w": 3523, + "pv_b_forecast_w": 1229, + "load_baseline_w": 273, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5716.564285714286, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 58, + "interval_start": "2026-06-09T12:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.27575, + "is_predicted_price": false, + "pv_a_forecast_w": 4581, + "pv_b_forecast_w": 1814, + "load_baseline_w": 273, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5776.157142857143, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 59, + "interval_start": "2026-06-09T12:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.325, + "is_predicted_price": false, + "pv_a_forecast_w": 2434, + "pv_b_forecast_w": 668, + "load_baseline_w": 273, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5835.75, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 60, + "interval_start": "2026-06-09T13:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 0.68675, + "is_predicted_price": false, + "pv_a_forecast_w": 3651, + "pv_b_forecast_w": 1353, + "load_baseline_w": 234, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5895.342857142857, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 1133.1125, + "charge_cum_wh": 6048.8875, + "charge_layer": "pv_a", + "charge_slot_reason": "pv_layer_a" + }, + { + "slot_ord": 61, + "interval_start": "2026-06-09T13:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.45, + "is_predicted_price": false, + "pv_a_forecast_w": 3883, + "pv_b_forecast_w": 1505, + "load_baseline_w": 234, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5954.935714285714, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 62, + "interval_start": "2026-06-09T13:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.575, + "is_predicted_price": false, + "pv_a_forecast_w": 2971, + "pv_b_forecast_w": 1184, + "load_baseline_w": 234, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6014.528571428571, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 63, + "interval_start": "2026-06-09T13:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.57475, + "is_predicted_price": false, + "pv_a_forecast_w": 2103, + "pv_b_forecast_w": 0, + "load_baseline_w": 234, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6074.121428571429, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 64, + "interval_start": "2026-06-09T14:00:00+00:00", + "buy_price": 4.085976, + "sell_price": 0.77575, + "is_predicted_price": false, + "pv_a_forecast_w": 2213, + "pv_b_forecast_w": 708, + "load_baseline_w": 180, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6133.714285714285, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 65, + "interval_start": "2026-06-09T14:15:00+00:00", + "buy_price": 4.085976, + "sell_price": 1.59975, + "is_predicted_price": false, + "pv_a_forecast_w": 2719, + "pv_b_forecast_w": 930, + "load_baseline_w": 180, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6193.307142857143, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 66, + "interval_start": "2026-06-09T14:30:00+00:00", + "buy_price": 4.085976, + "sell_price": 2.15725, + "is_predicted_price": false, + "pv_a_forecast_w": 2267, + "pv_b_forecast_w": 0, + "load_baseline_w": 180, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6252.9, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 67, + "interval_start": "2026-06-09T14:45:00+00:00", + "buy_price": 4.085976, + "sell_price": 2.90325, + "is_predicted_price": false, + "pv_a_forecast_w": 2420, + "pv_b_forecast_w": 67, + "load_baseline_w": 180, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6312.492857142857, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 68, + "interval_start": "2026-06-09T15:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.3185, + "is_predicted_price": false, + "pv_a_forecast_w": 2466, + "pv_b_forecast_w": 689, + "load_baseline_w": 151, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6372.085714285714, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 69, + "interval_start": "2026-06-09T15:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.2975, + "is_predicted_price": false, + "pv_a_forecast_w": 2380, + "pv_b_forecast_w": 1107, + "load_baseline_w": 151, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6431.678571428572, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 70, + "interval_start": "2026-06-09T15:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.70625, + "is_predicted_price": false, + "pv_a_forecast_w": 2325, + "pv_b_forecast_w": 650, + "load_baseline_w": 151, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6491.271428571428, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 71, + "interval_start": "2026-06-09T15:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.6955, + "is_predicted_price": false, + "pv_a_forecast_w": 2173, + "pv_b_forecast_w": 751, + "load_baseline_w": 151, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6550.864285714286, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 72, + "interval_start": "2026-06-09T16:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.4265, + "is_predicted_price": false, + "pv_a_forecast_w": 1211, + "pv_b_forecast_w": 52, + "load_baseline_w": 131, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6610.457142857143, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 73, + "interval_start": "2026-06-09T16:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.52625, + "is_predicted_price": false, + "pv_a_forecast_w": 330, + "pv_b_forecast_w": 0, + "load_baseline_w": 131, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6670.05, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 74, + "interval_start": "2026-06-09T16:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.9655, + "is_predicted_price": false, + "pv_a_forecast_w": 52, + "pv_b_forecast_w": 0, + "load_baseline_w": 131, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6729.642857142857, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 75, + "interval_start": "2026-06-09T16:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.246, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 131, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6789.2357142857145, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 76, + "interval_start": "2026-06-09T17:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.8435, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 184, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6848.828571428571, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 77, + "interval_start": "2026-06-09T17:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.202, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 184, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6908.421428571429, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 78, + "interval_start": "2026-06-09T17:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.2405, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 184, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 6968.0142857142855, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 79, + "interval_start": "2026-06-09T17:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.2065, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 24, + "load_baseline_w": 184, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 7027.607142857143, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 80, + "interval_start": "2026-06-09T18:00:00+00:00", + "buy_price": 4.085976, + "sell_price": 3.417, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 37, + "load_baseline_w": 299, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 81, + "interval_start": "2026-06-09T18:15:00+00:00", + "buy_price": 4.085976, + "sell_price": 3.44875, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 28, + "load_baseline_w": 299, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 82, + "interval_start": "2026-06-09T18:30:00+00:00", + "buy_price": 4.085976, + "sell_price": 3.36275, + "is_predicted_price": false, + "pv_a_forecast_w": 35, + "pv_b_forecast_w": 14, + "load_baseline_w": 299, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 83, + "interval_start": "2026-06-09T18:45:00+00:00", + "buy_price": 4.085976, + "sell_price": 3.418, + "is_predicted_price": false, + "pv_a_forecast_w": 12, + "pv_b_forecast_w": 5, + "load_baseline_w": 299, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 84, + "interval_start": "2026-06-09T19:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.548, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 297, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.514, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 85, + "interval_start": "2026-06-09T19:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.514, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 297, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.47625, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 86, + "interval_start": "2026-06-09T19:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.47625, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 297, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.4515, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 87, + "interval_start": "2026-06-09T19:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.343, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 297, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.4515, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 88, + "interval_start": "2026-06-09T20:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.4515, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 308, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.33475, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 89, + "interval_start": "2026-06-09T20:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.33475, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 308, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 90, + "interval_start": "2026-06-09T20:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.17175, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 308, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 91, + "interval_start": "2026-06-09T20:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.8545, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 308, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 92, + "interval_start": "2026-06-09T21:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.2335, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 253, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 93, + "interval_start": "2026-06-09T21:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.9755, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 253, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 94, + "interval_start": "2026-06-09T21:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.85425, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 253, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 95, + "interval_start": "2026-06-09T21:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.6585, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 253, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 96, + "interval_start": "2026-06-09T22:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.044, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 202, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 97, + "interval_start": "2026-06-09T22:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.95725, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 202, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 98, + "interval_start": "2026-06-09T22:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.9015, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 202, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 99, + "interval_start": "2026-06-09T22:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.80425, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 202, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 100, + "interval_start": "2026-06-09T23:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.872, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 147, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 101, + "interval_start": "2026-06-09T23:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.75, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 147, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 102, + "interval_start": "2026-06-09T23:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.667, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 147, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 103, + "interval_start": "2026-06-09T23:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.55225, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 147, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 104, + "interval_start": "2026-06-10T00:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.65275, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 118, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 105, + "interval_start": "2026-06-10T00:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.5555, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 118, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 106, + "interval_start": "2026-06-10T00:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.5945, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 118, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 107, + "interval_start": "2026-06-10T00:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.56875, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 118, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 108, + "interval_start": "2026-06-10T01:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.64, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 101, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 109, + "interval_start": "2026-06-10T01:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.6335, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 101, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 110, + "interval_start": "2026-06-10T01:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.63, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 101, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 111, + "interval_start": "2026-06-10T01:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.665, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 101, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 112, + "interval_start": "2026-06-10T02:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.57725, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 111, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 113, + "interval_start": "2026-06-10T02:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.644, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 111, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 114, + "interval_start": "2026-06-10T02:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.73275, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 111, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 115, + "interval_start": "2026-06-10T02:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.836, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 111, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 116, + "interval_start": "2026-06-10T03:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.672, + "is_predicted_price": false, + "pv_a_forecast_w": 183, + "pv_b_forecast_w": 5, + "load_baseline_w": 131, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 117, + "interval_start": "2026-06-10T03:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.751, + "is_predicted_price": false, + "pv_a_forecast_w": 309, + "pv_b_forecast_w": 14, + "load_baseline_w": 131, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 118, + "interval_start": "2026-06-10T03:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.78675, + "is_predicted_price": false, + "pv_a_forecast_w": 240, + "pv_b_forecast_w": 28, + "load_baseline_w": 131, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 119, + "interval_start": "2026-06-10T03:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.9925, + "is_predicted_price": false, + "pv_a_forecast_w": 630, + "pv_b_forecast_w": 46, + "load_baseline_w": 131, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 120, + "interval_start": "2026-06-10T04:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.029, + "is_predicted_price": false, + "pv_a_forecast_w": 1165, + "pv_b_forecast_w": 194, + "load_baseline_w": 134, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 3750.0, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 121, + "interval_start": "2026-06-10T04:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.17475, + "is_predicted_price": false, + "pv_a_forecast_w": 1397, + "pv_b_forecast_w": 32, + "load_baseline_w": 134, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 3809.592857142857, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 122, + "interval_start": "2026-06-10T04:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.16225, + "is_predicted_price": false, + "pv_a_forecast_w": 1696, + "pv_b_forecast_w": 50, + "load_baseline_w": 134, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 3869.1857142857143, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 123, + "interval_start": "2026-06-10T04:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.075, + "is_predicted_price": false, + "pv_a_forecast_w": 1971, + "pv_b_forecast_w": 157, + "load_baseline_w": 134, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 3928.7785714285715, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 124, + "interval_start": "2026-06-10T05:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.31375, + "is_predicted_price": false, + "pv_a_forecast_w": 2027, + "pv_b_forecast_w": 86, + "load_baseline_w": 440, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 3988.3714285714286, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 125, + "interval_start": "2026-06-10T05:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.25, + "is_predicted_price": false, + "pv_a_forecast_w": 2203, + "pv_b_forecast_w": 207, + "load_baseline_w": 440, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4047.964285714286, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 126, + "interval_start": "2026-06-10T05:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.17275, + "is_predicted_price": false, + "pv_a_forecast_w": 2218, + "pv_b_forecast_w": 223, + "load_baseline_w": 440, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4107.557142857143, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 127, + "interval_start": "2026-06-10T05:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.148, + "is_predicted_price": false, + "pv_a_forecast_w": 2511, + "pv_b_forecast_w": 342, + "load_baseline_w": 440, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4167.15, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 128, + "interval_start": "2026-06-10T06:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.3255, + "is_predicted_price": false, + "pv_a_forecast_w": 2846, + "pv_b_forecast_w": 494, + "load_baseline_w": 509, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4226.742857142857, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 3.1415, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 129, + "interval_start": "2026-06-10T06:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 3.1415, + "is_predicted_price": false, + "pv_a_forecast_w": 3074, + "pv_b_forecast_w": 430, + "load_baseline_w": 509, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4286.335714285714, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 2.99225, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 130, + "interval_start": "2026-06-10T06:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.99225, + "is_predicted_price": false, + "pv_a_forecast_w": 3043, + "pv_b_forecast_w": 392, + "load_baseline_w": 509, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4345.928571428572, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 2.97975, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 131, + "interval_start": "2026-06-10T06:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.489, + "is_predicted_price": false, + "pv_a_forecast_w": 3712, + "pv_b_forecast_w": 603, + "load_baseline_w": 509, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4405.521428571428, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 2.97975, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 132, + "interval_start": "2026-06-10T07:00:00+00:00", + "buy_price": 4.085976, + "sell_price": 2.97975, + "is_predicted_price": false, + "pv_a_forecast_w": 3957, + "pv_b_forecast_w": 485, + "load_baseline_w": 307, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4465.114285714286, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 2.58125, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 133, + "interval_start": "2026-06-10T07:15:00+00:00", + "buy_price": 4.085976, + "sell_price": 2.58125, + "is_predicted_price": false, + "pv_a_forecast_w": 3938, + "pv_b_forecast_w": 417, + "load_baseline_w": 307, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4524.707142857143, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 2.3435, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 134, + "interval_start": "2026-06-10T07:30:00+00:00", + "buy_price": 4.085976, + "sell_price": 2.22725, + "is_predicted_price": false, + "pv_a_forecast_w": 3683, + "pv_b_forecast_w": 335, + "load_baseline_w": 307, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4584.3, + "future_avoided_buy_czk_kwh": 4.085976, + "future_sell_opportunity_czk_kwh": 2.3435, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 135, + "interval_start": "2026-06-10T07:45:00+00:00", + "buy_price": 4.085976, + "sell_price": 2.1195, + "is_predicted_price": false, + "pv_a_forecast_w": 3605, + "pv_b_forecast_w": 379, + "load_baseline_w": 307, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4643.892857142857, + "future_avoided_buy_czk_kwh": 3.087726, + "future_sell_opportunity_czk_kwh": 2.3435, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 136, + "interval_start": "2026-06-10T08:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.3435, + "is_predicted_price": false, + "pv_a_forecast_w": 3434, + "pv_b_forecast_w": 340, + "load_baseline_w": 328, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4703.4857142857145, + "future_avoided_buy_czk_kwh": 3.087726, + "future_sell_opportunity_czk_kwh": 2.05425, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 137, + "interval_start": "2026-06-10T08:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.05425, + "is_predicted_price": false, + "pv_a_forecast_w": 3173, + "pv_b_forecast_w": 231, + "load_baseline_w": 328, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4763.078571428571, + "future_avoided_buy_czk_kwh": 3.087726, + "future_sell_opportunity_czk_kwh": 2.01725, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 138, + "interval_start": "2026-06-10T08:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 2.01725, + "is_predicted_price": false, + "pv_a_forecast_w": 2872, + "pv_b_forecast_w": 71, + "load_baseline_w": 328, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4822.671428571429, + "future_avoided_buy_czk_kwh": 3.087726, + "future_sell_opportunity_czk_kwh": 1.96725, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 139, + "interval_start": "2026-06-10T08:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.68475, + "is_predicted_price": false, + "pv_a_forecast_w": 3264, + "pv_b_forecast_w": 553, + "load_baseline_w": 328, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4882.2642857142855, + "future_avoided_buy_czk_kwh": 3.087726, + "future_sell_opportunity_czk_kwh": 1.96725, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 140, + "interval_start": "2026-06-10T09:00:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.96725, + "is_predicted_price": false, + "pv_a_forecast_w": 2678, + "pv_b_forecast_w": 153, + "load_baseline_w": 841, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 4941.857142857143, + "future_avoided_buy_czk_kwh": 3.087726, + "future_sell_opportunity_czk_kwh": 1.74825, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 141, + "interval_start": "2026-06-10T09:15:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.74825, + "is_predicted_price": false, + "pv_a_forecast_w": 3112, + "pv_b_forecast_w": 656, + "load_baseline_w": 841, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5001.45, + "future_avoided_buy_czk_kwh": 3.087726, + "future_sell_opportunity_czk_kwh": 1.575, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 142, + "interval_start": "2026-06-10T09:30:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.575, + "is_predicted_price": false, + "pv_a_forecast_w": 2435, + "pv_b_forecast_w": 74, + "load_baseline_w": 841, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5061.042857142857, + "future_avoided_buy_czk_kwh": 3.087726, + "future_sell_opportunity_czk_kwh": 1.415, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 143, + "interval_start": "2026-06-10T09:45:00+00:00", + "buy_price": 3.087726, + "sell_price": 1.415, + "is_predicted_price": false, + "pv_a_forecast_w": 2385, + "pv_b_forecast_w": 0, + "load_baseline_w": 841, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 2781.0, + "night_baseload_buffer_wh": 556.2, + "safety_soc_target_wh": 5120.635714285714, + "future_avoided_buy_czk_kwh": 3.087726, + "future_sell_opportunity_czk_kwh": 1.415, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 3.087726, + "charge_acquisition_cutoff_at": "2026-06-09T05:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 9375.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + } + ] +} diff --git a/backend/tests/golden/fixtures/KV1_2026-06-09_fixed_normal.json b/backend/tests/golden/fixtures/KV1_2026-06-09_fixed_normal.json new file mode 100644 index 0000000..0f6c8f0 --- /dev/null +++ b/backend/tests/golden/fixtures/KV1_2026-06-09_fixed_normal.json @@ -0,0 +1,5662 @@ +{ + "fixture_version": 1, + "meta": { + "site_id": 4, + "site_code": "KV1", + "prague_day": "2026-06-09", + "window_from": "2026-06-09T00:00:00+02:00", + "window_to": "2026-06-10T12:00:00+02:00", + "horizon_hours": 36, + "soc_wh": 1500.0, + "soc_source": "audit_interval", + "tag": "fixed_normal", + "extracted_at": "2026-06-11T10:25:26.863837+02:00", + "dsn_host": "10.200.200.1:5432", + "note": "Vstupy plánovače zmrazené k okamžiku extrakce (context = aktuální konfigurace, sloty = fn_load_planning_slots_full nad historickými cenami/forecasty). EV sessions vynulovány, operating_mode=AUTO." + }, + "context_json": { + "grid": { + "max_export_power_w": 8000, + "max_import_power_w": 17000, + "block_export_on_negative_sell": true, + "deye_gen_microinverter_cutoff_enabled": false + }, + "market": { + "sale_pricing_mode": "spot", + "purchase_pricing_mode": "fixed" + }, + "soc_wh": 1500.0, + "battery": { + "min_soc_wh": 1250.0, + "soc_max_wh": 12500.0, + "arb_floor_wh": 3750.0, + "reserve_soc_wh": 3750.0, + "charge_efficiency": 0.95, + "charge_slot_buffer": 1.3, + "max_charge_power_w": 6250, + "planner_soc_max_wh": 12500.0, + "usable_capacity_wh": 12500, + "discharge_efficiency": 0.95, + "discharge_slot_buffer": 1.5, + "max_discharge_power_w": 6250, + "degradation_cost_czk_kwh": 0.3, + "planner_discharge_floor_percent": null, + "planner_neg_sell_prep_soc_percent": 100.0, + "planner_terminal_soc_value_factor": 0.2, + "planner_neg_sell_full_soc_tail_slots": 4, + "planner_daytime_charge_price_quantile": 0.7, + "planner_daytime_charge_target_enabled": true, + "planner_extreme_buy_threshold_czk_kwh": -5.0, + "planner_night_baseload_buffer_percent": 20, + "planner_neg_sell_vent_min_sell_czk_kwh": null, + "planner_discharge_relax_prewindow_slots": 8, + "planner_charge_commitment_penalty_czk_kwh": 0.2 + }, + "tuv_temp": 55.0, + "vehicles": [], + "heat_pump": { + "tuv_min_temp_c": 45.0, + "tuv_target_temp_c": 55.0, + "rated_heating_power_w": 0 + }, + "ev_sessions": [], + "operating_mode": "AUTO", + "planning_config": {}, + "tuv_delta_stats": [ + { + "dow": 0, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 23, + "delta": 0.0 + } + ] + }, + "slot_rows": [ + { + "slot_ord": 0, + "interval_start": "2026-06-08T22:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.313, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 286, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 1, + "interval_start": "2026-06-08T22:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.9835, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 286, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 2, + "interval_start": "2026-06-08T22:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.8125, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 286, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 3, + "interval_start": "2026-06-08T22:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.78575, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 286, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 4, + "interval_start": "2026-06-08T23:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.95725, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 272, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 5, + "interval_start": "2026-06-08T23:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.9115, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 272, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 6, + "interval_start": "2026-06-08T23:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.843, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 272, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 7, + "interval_start": "2026-06-08T23:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.81825, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 272, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 8, + "interval_start": "2026-06-09T00:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.70975, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 279, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 9, + "interval_start": "2026-06-09T00:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.66775, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 279, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 10, + "interval_start": "2026-06-09T00:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.74625, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 279, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 11, + "interval_start": "2026-06-09T00:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.61625, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 279, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 12, + "interval_start": "2026-06-09T01:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.66675, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 261, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 13, + "interval_start": "2026-06-09T01:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.5895, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 261, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 14, + "interval_start": "2026-06-09T01:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.56575, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 261, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 15, + "interval_start": "2026-06-09T01:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.50025, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 261, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 16, + "interval_start": "2026-06-09T02:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.6405, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 237, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 17, + "interval_start": "2026-06-09T02:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.54125, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 237, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 18, + "interval_start": "2026-06-09T02:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.479, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 237, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 19, + "interval_start": "2026-06-09T02:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.4945, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 237, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 20, + "interval_start": "2026-06-09T03:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.72125, + "is_predicted_price": false, + "pv_a_forecast_w": 15, + "pv_b_forecast_w": 0, + "load_baseline_w": 231, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 21, + "interval_start": "2026-06-09T03:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.73675, + "is_predicted_price": false, + "pv_a_forecast_w": 88, + "pv_b_forecast_w": 0, + "load_baseline_w": 231, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 22, + "interval_start": "2026-06-09T03:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.77775, + "is_predicted_price": false, + "pv_a_forecast_w": 198, + "pv_b_forecast_w": 0, + "load_baseline_w": 231, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 23, + "interval_start": "2026-06-09T03:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.92275, + "is_predicted_price": false, + "pv_a_forecast_w": 621, + "pv_b_forecast_w": 0, + "load_baseline_w": 231, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 24, + "interval_start": "2026-06-09T04:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.971, + "is_predicted_price": false, + "pv_a_forecast_w": 932, + "pv_b_forecast_w": 0, + "load_baseline_w": 289, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 3750.0, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 25, + "interval_start": "2026-06-09T04:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.131, + "is_predicted_price": false, + "pv_a_forecast_w": 1135, + "pv_b_forecast_w": 0, + "load_baseline_w": 289, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 3844.6285714285714, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 26, + "interval_start": "2026-06-09T04:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.14725, + "is_predicted_price": false, + "pv_a_forecast_w": 1272, + "pv_b_forecast_w": 0, + "load_baseline_w": 289, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 3939.2571428571428, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 27, + "interval_start": "2026-06-09T04:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.10075, + "is_predicted_price": false, + "pv_a_forecast_w": 1688, + "pv_b_forecast_w": 0, + "load_baseline_w": 289, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4033.885714285714, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 28, + "interval_start": "2026-06-09T05:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.39375, + "is_predicted_price": false, + "pv_a_forecast_w": 1783, + "pv_b_forecast_w": 0, + "load_baseline_w": 299, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4128.5142857142855, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 29, + "interval_start": "2026-06-09T05:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.18775, + "is_predicted_price": false, + "pv_a_forecast_w": 1910, + "pv_b_forecast_w": 0, + "load_baseline_w": 299, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4223.142857142857, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 30, + "interval_start": "2026-06-09T05:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.15675, + "is_predicted_price": false, + "pv_a_forecast_w": 2087, + "pv_b_forecast_w": 0, + "load_baseline_w": 299, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4317.771428571428, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 31, + "interval_start": "2026-06-09T05:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.98075, + "is_predicted_price": false, + "pv_a_forecast_w": 2243, + "pv_b_forecast_w": 0, + "load_baseline_w": 299, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4412.4, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 32, + "interval_start": "2026-06-09T06:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.24775, + "is_predicted_price": false, + "pv_a_forecast_w": 2476, + "pv_b_forecast_w": 0, + "load_baseline_w": 305, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4507.028571428571, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 33, + "interval_start": "2026-06-09T06:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.07125, + "is_predicted_price": false, + "pv_a_forecast_w": 2772, + "pv_b_forecast_w": 0, + "load_baseline_w": 305, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4601.657142857143, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 34, + "interval_start": "2026-06-09T06:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.97475, + "is_predicted_price": false, + "pv_a_forecast_w": 2834, + "pv_b_forecast_w": 0, + "load_baseline_w": 305, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4696.285714285715, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 35, + "interval_start": "2026-06-09T06:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.4705, + "is_predicted_price": false, + "pv_a_forecast_w": 3176, + "pv_b_forecast_w": 0, + "load_baseline_w": 305, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4790.914285714286, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 36, + "interval_start": "2026-06-09T07:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.076, + "is_predicted_price": false, + "pv_a_forecast_w": 3481, + "pv_b_forecast_w": 0, + "load_baseline_w": 263, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4885.542857142857, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 37, + "interval_start": "2026-06-09T07:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.6115, + "is_predicted_price": false, + "pv_a_forecast_w": 3890, + "pv_b_forecast_w": 0, + "load_baseline_w": 263, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4980.171428571429, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 38, + "interval_start": "2026-06-09T07:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.44025, + "is_predicted_price": false, + "pv_a_forecast_w": 3679, + "pv_b_forecast_w": 0, + "load_baseline_w": 263, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5074.8, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 39, + "interval_start": "2026-06-09T07:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.07, + "is_predicted_price": false, + "pv_a_forecast_w": 3421, + "pv_b_forecast_w": 0, + "load_baseline_w": 263, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5169.428571428572, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 40, + "interval_start": "2026-06-09T08:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.392, + "is_predicted_price": false, + "pv_a_forecast_w": 3568, + "pv_b_forecast_w": 0, + "load_baseline_w": 238, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5264.057142857143, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 41, + "interval_start": "2026-06-09T08:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.01775, + "is_predicted_price": false, + "pv_a_forecast_w": 3383, + "pv_b_forecast_w": 0, + "load_baseline_w": 238, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5358.685714285714, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 42, + "interval_start": "2026-06-09T08:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.83775, + "is_predicted_price": false, + "pv_a_forecast_w": 3408, + "pv_b_forecast_w": 0, + "load_baseline_w": 238, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5453.314285714286, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 43, + "interval_start": "2026-06-09T08:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.452, + "is_predicted_price": false, + "pv_a_forecast_w": 4019, + "pv_b_forecast_w": 0, + "load_baseline_w": 238, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5547.942857142857, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 44, + "interval_start": "2026-06-09T09:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.93975, + "is_predicted_price": false, + "pv_a_forecast_w": 4668, + "pv_b_forecast_w": 0, + "load_baseline_w": 516, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5642.571428571428, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 45, + "interval_start": "2026-06-09T09:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.48175, + "is_predicted_price": false, + "pv_a_forecast_w": 4605, + "pv_b_forecast_w": 0, + "load_baseline_w": 516, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5737.2, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 46, + "interval_start": "2026-06-09T09:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.222, + "is_predicted_price": false, + "pv_a_forecast_w": 5821, + "pv_b_forecast_w": 0, + "load_baseline_w": 516, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5831.828571428571, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 1259.9375, + "charge_cum_wh": 12104.1875, + "charge_layer": "pv_a", + "charge_slot_reason": "pv_layer_a" + }, + { + "slot_ord": 47, + "interval_start": "2026-06-09T09:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 0.795, + "is_predicted_price": false, + "pv_a_forecast_w": 5763, + "pv_b_forecast_w": 0, + "load_baseline_w": 516, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5926.457142857143, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 1246.1625, + "charge_cum_wh": 6215.85, + "charge_layer": "pv_a", + "charge_slot_reason": "pv_layer_a" + }, + { + "slot_ord": 48, + "interval_start": "2026-06-09T10:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.0795, + "is_predicted_price": false, + "pv_a_forecast_w": 5133, + "pv_b_forecast_w": 0, + "load_baseline_w": 752, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 6021.085714285714, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 1040.4875, + "charge_cum_wh": 10495.6, + "charge_layer": "pv_a", + "charge_slot_reason": "pv_layer_a" + }, + { + "slot_ord": 49, + "interval_start": "2026-06-09T10:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 0.499, + "is_predicted_price": false, + "pv_a_forecast_w": 4935, + "pv_b_forecast_w": 0, + "load_baseline_w": 752, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 6115.714285714285, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 993.4625, + "charge_cum_wh": 2263.1375, + "charge_layer": "pv_a", + "charge_slot_reason": "pv_layer_a" + }, + { + "slot_ord": 50, + "interval_start": "2026-06-09T10:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 0.4115, + "is_predicted_price": false, + "pv_a_forecast_w": 5309, + "pv_b_forecast_w": 0, + "load_baseline_w": 752, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 6210.342857142857, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 1082.2875, + "charge_cum_wh": 1269.675, + "charge_layer": "pv_a", + "charge_slot_reason": "pv_layer_a" + }, + { + "slot_ord": 51, + "interval_start": "2026-06-09T10:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 0.7, + "is_predicted_price": false, + "pv_a_forecast_w": 5068, + "pv_b_forecast_w": 0, + "load_baseline_w": 752, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 6304.971428571429, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 1025.05, + "charge_cum_wh": 4385.675, + "charge_layer": "pv_a", + "charge_slot_reason": "pv_layer_a" + }, + { + "slot_ord": 52, + "interval_start": "2026-06-09T11:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 0.95, + "is_predicted_price": false, + "pv_a_forecast_w": 6757, + "pv_b_forecast_w": 0, + "load_baseline_w": 428, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 6399.6, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 1484.375, + "charge_cum_wh": 8305.6125, + "charge_layer": "pv_a", + "charge_slot_reason": "pv_layer_a" + }, + { + "slot_ord": 53, + "interval_start": "2026-06-09T11:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.004, + "is_predicted_price": false, + "pv_a_forecast_w": 5268, + "pv_b_forecast_w": 0, + "load_baseline_w": 428, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 6494.228571428572, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 1149.5, + "charge_cum_wh": 9455.1125, + "charge_layer": "pv_a", + "charge_slot_reason": "pv_layer_a" + }, + { + "slot_ord": 54, + "interval_start": "2026-06-09T11:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 0.6115, + "is_predicted_price": false, + "pv_a_forecast_w": 4362, + "pv_b_forecast_w": 0, + "load_baseline_w": 428, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 6588.857142857143, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 934.325, + "charge_cum_wh": 3197.4625, + "charge_layer": "pv_a", + "charge_slot_reason": "pv_layer_a" + }, + { + "slot_ord": 55, + "interval_start": "2026-06-09T11:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 0.825, + "is_predicted_price": false, + "pv_a_forecast_w": 2977, + "pv_b_forecast_w": 0, + "load_baseline_w": 428, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 6683.4857142857145, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 605.3875, + "charge_cum_wh": 6821.2375, + "charge_layer": "pv_a", + "charge_slot_reason": "pv_layer_a" + }, + { + "slot_ord": 56, + "interval_start": "2026-06-09T12:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 0.20475, + "is_predicted_price": false, + "pv_a_forecast_w": 1340, + "pv_b_forecast_w": 0, + "load_baseline_w": 551, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 6778.114285714286, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 187.3875, + "charge_cum_wh": 187.3875, + "charge_layer": "pv_a", + "charge_slot_reason": "pv_layer_a" + }, + { + "slot_ord": 57, + "interval_start": "2026-06-09T12:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.0935, + "is_predicted_price": false, + "pv_a_forecast_w": 2019, + "pv_b_forecast_w": 0, + "load_baseline_w": 551, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 6872.742857142857, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 348.65, + "charge_cum_wh": 10844.25, + "charge_layer": "pv_a", + "charge_slot_reason": "pv_layer_a" + }, + { + "slot_ord": 58, + "interval_start": "2026-06-09T12:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.27575, + "is_predicted_price": false, + "pv_a_forecast_w": 3912, + "pv_b_forecast_w": 0, + "load_baseline_w": 551, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 6967.371428571429, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 59, + "interval_start": "2026-06-09T12:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.325, + "is_predicted_price": false, + "pv_a_forecast_w": 1995, + "pv_b_forecast_w": 0, + "load_baseline_w": 551, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 7062.0, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 60, + "interval_start": "2026-06-09T13:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 0.68675, + "is_predicted_price": false, + "pv_a_forecast_w": 1791, + "pv_b_forecast_w": 0, + "load_baseline_w": 1104, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 7156.628571428571, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 163.1625, + "charge_cum_wh": 3360.625, + "charge_layer": "pv_a", + "charge_slot_reason": "pv_layer_a" + }, + { + "slot_ord": 61, + "interval_start": "2026-06-09T13:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.45, + "is_predicted_price": false, + "pv_a_forecast_w": 2425, + "pv_b_forecast_w": 0, + "load_baseline_w": 1104, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 7251.257142857143, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 62, + "interval_start": "2026-06-09T13:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.575, + "is_predicted_price": false, + "pv_a_forecast_w": 2374, + "pv_b_forecast_w": 0, + "load_baseline_w": 1104, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 7345.885714285714, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 63, + "interval_start": "2026-06-09T13:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.57475, + "is_predicted_price": false, + "pv_a_forecast_w": 1729, + "pv_b_forecast_w": 0, + "load_baseline_w": 1104, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 7440.5142857142855, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 64, + "interval_start": "2026-06-09T14:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 0.77575, + "is_predicted_price": false, + "pv_a_forecast_w": 2854, + "pv_b_forecast_w": 0, + "load_baseline_w": 395, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 7535.142857142857, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 584.0125, + "charge_cum_wh": 4969.6875, + "charge_layer": "pv_a", + "charge_slot_reason": "pv_layer_a" + }, + { + "slot_ord": 65, + "interval_start": "2026-06-09T14:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.59975, + "is_predicted_price": false, + "pv_a_forecast_w": 2437, + "pv_b_forecast_w": 0, + "load_baseline_w": 395, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 7629.771428571428, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 66, + "interval_start": "2026-06-09T14:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.15725, + "is_predicted_price": false, + "pv_a_forecast_w": 2020, + "pv_b_forecast_w": 0, + "load_baseline_w": 395, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 7724.4, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 67, + "interval_start": "2026-06-09T14:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.90325, + "is_predicted_price": false, + "pv_a_forecast_w": 2946, + "pv_b_forecast_w": 0, + "load_baseline_w": 395, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 7819.028571428571, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 68, + "interval_start": "2026-06-09T15:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.3185, + "is_predicted_price": false, + "pv_a_forecast_w": 2883, + "pv_b_forecast_w": 0, + "load_baseline_w": 227, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 7913.657142857143, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 69, + "interval_start": "2026-06-09T15:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.2975, + "is_predicted_price": false, + "pv_a_forecast_w": 2841, + "pv_b_forecast_w": 0, + "load_baseline_w": 227, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 8008.285714285715, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 70, + "interval_start": "2026-06-09T15:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.70625, + "is_predicted_price": false, + "pv_a_forecast_w": 2739, + "pv_b_forecast_w": 0, + "load_baseline_w": 227, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 8102.914285714286, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 71, + "interval_start": "2026-06-09T15:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.6955, + "is_predicted_price": false, + "pv_a_forecast_w": 2490, + "pv_b_forecast_w": 0, + "load_baseline_w": 227, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 8197.542857142857, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 72, + "interval_start": "2026-06-09T16:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.4265, + "is_predicted_price": false, + "pv_a_forecast_w": 2087, + "pv_b_forecast_w": 0, + "load_baseline_w": 254, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 8292.171428571428, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 73, + "interval_start": "2026-06-09T16:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.52625, + "is_predicted_price": false, + "pv_a_forecast_w": 1689, + "pv_b_forecast_w": 0, + "load_baseline_w": 254, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 8386.8, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 74, + "interval_start": "2026-06-09T16:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.9655, + "is_predicted_price": false, + "pv_a_forecast_w": 1350, + "pv_b_forecast_w": 0, + "load_baseline_w": 254, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 8481.42857142857, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 75, + "interval_start": "2026-06-09T16:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.246, + "is_predicted_price": false, + "pv_a_forecast_w": 803, + "pv_b_forecast_w": 0, + "load_baseline_w": 254, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 8576.057142857142, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 76, + "interval_start": "2026-06-09T17:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.8435, + "is_predicted_price": false, + "pv_a_forecast_w": 458, + "pv_b_forecast_w": 0, + "load_baseline_w": 171, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 8670.685714285713, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 77, + "interval_start": "2026-06-09T17:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.202, + "is_predicted_price": false, + "pv_a_forecast_w": 202, + "pv_b_forecast_w": 0, + "load_baseline_w": 171, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 8765.314285714287, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 78, + "interval_start": "2026-06-09T17:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.2405, + "is_predicted_price": false, + "pv_a_forecast_w": 88, + "pv_b_forecast_w": 0, + "load_baseline_w": 171, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 8859.942857142858, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 79, + "interval_start": "2026-06-09T17:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.2065, + "is_predicted_price": false, + "pv_a_forecast_w": 54, + "pv_b_forecast_w": 0, + "load_baseline_w": 171, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 8954.57142857143, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 80, + "interval_start": "2026-06-09T18:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.417, + "is_predicted_price": false, + "pv_a_forecast_w": 25, + "pv_b_forecast_w": 0, + "load_baseline_w": 436, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 81, + "interval_start": "2026-06-09T18:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.44875, + "is_predicted_price": false, + "pv_a_forecast_w": 45, + "pv_b_forecast_w": 0, + "load_baseline_w": 436, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 82, + "interval_start": "2026-06-09T18:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.36275, + "is_predicted_price": false, + "pv_a_forecast_w": 29, + "pv_b_forecast_w": 0, + "load_baseline_w": 436, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 83, + "interval_start": "2026-06-09T18:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.418, + "is_predicted_price": false, + "pv_a_forecast_w": 8, + "pv_b_forecast_w": 0, + "load_baseline_w": 436, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 84, + "interval_start": "2026-06-09T19:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.548, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 362, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.514, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 85, + "interval_start": "2026-06-09T19:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.514, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 362, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.47625, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 86, + "interval_start": "2026-06-09T19:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.47625, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 362, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.4515, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 87, + "interval_start": "2026-06-09T19:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.343, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 362, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.4515, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 88, + "interval_start": "2026-06-09T20:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.4515, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 239, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.33475, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 89, + "interval_start": "2026-06-09T20:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.33475, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 239, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 90, + "interval_start": "2026-06-09T20:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.17175, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 239, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 91, + "interval_start": "2026-06-09T20:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.8545, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 239, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 92, + "interval_start": "2026-06-09T21:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.2335, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 228, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 93, + "interval_start": "2026-06-09T21:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.9755, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 228, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 94, + "interval_start": "2026-06-09T21:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.85425, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 228, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 95, + "interval_start": "2026-06-09T21:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.6585, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 228, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 96, + "interval_start": "2026-06-09T22:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.044, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 288, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 97, + "interval_start": "2026-06-09T22:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.95725, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 288, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 98, + "interval_start": "2026-06-09T22:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.9015, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 288, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 99, + "interval_start": "2026-06-09T22:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.80425, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 288, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 100, + "interval_start": "2026-06-09T23:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.872, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 274, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 101, + "interval_start": "2026-06-09T23:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.75, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 274, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 102, + "interval_start": "2026-06-09T23:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.667, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 274, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 103, + "interval_start": "2026-06-09T23:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.55225, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 274, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 104, + "interval_start": "2026-06-10T00:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.65275, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 271, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 105, + "interval_start": "2026-06-10T00:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.5555, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 271, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 106, + "interval_start": "2026-06-10T00:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.5945, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 271, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 107, + "interval_start": "2026-06-10T00:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.56875, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 271, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 108, + "interval_start": "2026-06-10T01:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.64, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 263, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 109, + "interval_start": "2026-06-10T01:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.6335, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 263, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 110, + "interval_start": "2026-06-10T01:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.63, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 263, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 111, + "interval_start": "2026-06-10T01:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.665, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 263, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 112, + "interval_start": "2026-06-10T02:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.57725, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 239, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 113, + "interval_start": "2026-06-10T02:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.644, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 239, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 114, + "interval_start": "2026-06-10T02:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.73275, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 239, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 115, + "interval_start": "2026-06-10T02:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.836, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 239, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 116, + "interval_start": "2026-06-10T03:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.672, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 250, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 117, + "interval_start": "2026-06-10T03:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.751, + "is_predicted_price": false, + "pv_a_forecast_w": 37, + "pv_b_forecast_w": 0, + "load_baseline_w": 250, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 118, + "interval_start": "2026-06-10T03:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.78675, + "is_predicted_price": false, + "pv_a_forecast_w": 66, + "pv_b_forecast_w": 0, + "load_baseline_w": 250, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 119, + "interval_start": "2026-06-10T03:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.9925, + "is_predicted_price": false, + "pv_a_forecast_w": 374, + "pv_b_forecast_w": 0, + "load_baseline_w": 250, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 120, + "interval_start": "2026-06-10T04:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.029, + "is_predicted_price": false, + "pv_a_forecast_w": 584, + "pv_b_forecast_w": 0, + "load_baseline_w": 245, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 3750.0, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 121, + "interval_start": "2026-06-10T04:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.17475, + "is_predicted_price": false, + "pv_a_forecast_w": 693, + "pv_b_forecast_w": 0, + "load_baseline_w": 245, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 3844.6285714285714, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 122, + "interval_start": "2026-06-10T04:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.16225, + "is_predicted_price": false, + "pv_a_forecast_w": 800, + "pv_b_forecast_w": 0, + "load_baseline_w": 245, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 3939.2571428571428, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 123, + "interval_start": "2026-06-10T04:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.075, + "is_predicted_price": false, + "pv_a_forecast_w": 1163, + "pv_b_forecast_w": 0, + "load_baseline_w": 245, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4033.885714285714, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 124, + "interval_start": "2026-06-10T05:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.31375, + "is_predicted_price": false, + "pv_a_forecast_w": 1339, + "pv_b_forecast_w": 0, + "load_baseline_w": 262, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4128.5142857142855, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 125, + "interval_start": "2026-06-10T05:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.25, + "is_predicted_price": false, + "pv_a_forecast_w": 1442, + "pv_b_forecast_w": 0, + "load_baseline_w": 262, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4223.142857142857, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 126, + "interval_start": "2026-06-10T05:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.17275, + "is_predicted_price": false, + "pv_a_forecast_w": 1673, + "pv_b_forecast_w": 0, + "load_baseline_w": 262, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4317.771428571428, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 127, + "interval_start": "2026-06-10T05:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.148, + "is_predicted_price": false, + "pv_a_forecast_w": 1995, + "pv_b_forecast_w": 0, + "load_baseline_w": 262, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4412.4, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 128, + "interval_start": "2026-06-10T06:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.3255, + "is_predicted_price": false, + "pv_a_forecast_w": 2356, + "pv_b_forecast_w": 0, + "load_baseline_w": 233, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4507.028571428571, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 3.1415, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 129, + "interval_start": "2026-06-10T06:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 3.1415, + "is_predicted_price": false, + "pv_a_forecast_w": 2445, + "pv_b_forecast_w": 0, + "load_baseline_w": 233, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4601.657142857143, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 2.99225, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 130, + "interval_start": "2026-06-10T06:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.99225, + "is_predicted_price": false, + "pv_a_forecast_w": 2445, + "pv_b_forecast_w": 0, + "load_baseline_w": 233, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4696.285714285715, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 2.97975, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 131, + "interval_start": "2026-06-10T06:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.489, + "is_predicted_price": false, + "pv_a_forecast_w": 2921, + "pv_b_forecast_w": 0, + "load_baseline_w": 233, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4790.914285714286, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 2.97975, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 132, + "interval_start": "2026-06-10T07:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.97975, + "is_predicted_price": false, + "pv_a_forecast_w": 3042, + "pv_b_forecast_w": 0, + "load_baseline_w": 276, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4885.542857142857, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 2.58125, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 133, + "interval_start": "2026-06-10T07:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.58125, + "is_predicted_price": false, + "pv_a_forecast_w": 3163, + "pv_b_forecast_w": 0, + "load_baseline_w": 276, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 4980.171428571429, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 2.3435, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 134, + "interval_start": "2026-06-10T07:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.22725, + "is_predicted_price": false, + "pv_a_forecast_w": 2982, + "pv_b_forecast_w": 0, + "load_baseline_w": 276, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5074.8, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 2.3435, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 135, + "interval_start": "2026-06-10T07:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.1195, + "is_predicted_price": false, + "pv_a_forecast_w": 2641, + "pv_b_forecast_w": 0, + "load_baseline_w": 276, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5169.428571428572, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 2.3435, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 136, + "interval_start": "2026-06-10T08:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.3435, + "is_predicted_price": false, + "pv_a_forecast_w": 2351, + "pv_b_forecast_w": 0, + "load_baseline_w": 254, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5264.057142857143, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 2.05425, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 137, + "interval_start": "2026-06-10T08:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.05425, + "is_predicted_price": false, + "pv_a_forecast_w": 2541, + "pv_b_forecast_w": 0, + "load_baseline_w": 254, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5358.685714285714, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 2.01725, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 138, + "interval_start": "2026-06-10T08:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 2.01725, + "is_predicted_price": false, + "pv_a_forecast_w": 1913, + "pv_b_forecast_w": 0, + "load_baseline_w": 254, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5453.314285714286, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 1.96725, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 139, + "interval_start": "2026-06-10T08:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.68475, + "is_predicted_price": false, + "pv_a_forecast_w": 2066, + "pv_b_forecast_w": 0, + "load_baseline_w": 254, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5547.942857142857, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 1.96725, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 140, + "interval_start": "2026-06-10T09:00:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.96725, + "is_predicted_price": false, + "pv_a_forecast_w": 2014, + "pv_b_forecast_w": 0, + "load_baseline_w": 248, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5642.571428571428, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 1.74825, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 141, + "interval_start": "2026-06-10T09:15:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.74825, + "is_predicted_price": false, + "pv_a_forecast_w": 2292, + "pv_b_forecast_w": 0, + "load_baseline_w": 248, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5737.2, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 1.575, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 142, + "interval_start": "2026-06-10T09:30:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.575, + "is_predicted_price": false, + "pv_a_forecast_w": 2243, + "pv_b_forecast_w": 0, + "load_baseline_w": 248, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5831.828571428571, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 1.415, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 143, + "interval_start": "2026-06-10T09:45:00+00:00", + "buy_price": 6.3525, + "sell_price": 1.415, + "is_predicted_price": false, + "pv_a_forecast_w": 1793, + "pv_b_forecast_w": 0, + "load_baseline_w": 248, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 4416.0, + "night_baseload_buffer_wh": 883.2, + "safety_soc_target_wh": 5926.457142857143, + "future_avoided_buy_czk_kwh": 6.3525, + "future_sell_opportunity_czk_kwh": 1.415, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 6.3525, + "charge_acquisition_cutoff_at": "2026-06-09T15:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 11000.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + } + ] +} diff --git a/backend/tests/golden/fixtures/home-01_2026-06-07_neg_sell_deep.json b/backend/tests/golden/fixtures/home-01_2026-06-07_neg_sell_deep.json new file mode 100644 index 0000000..48d5100 --- /dev/null +++ b/backend/tests/golden/fixtures/home-01_2026-06-07_neg_sell_deep.json @@ -0,0 +1,5673 @@ +{ + "fixture_version": 1, + "meta": { + "site_id": 2, + "site_code": "home-01", + "prague_day": "2026-06-07", + "window_from": "2026-06-07T00:00:00+02:00", + "window_to": "2026-06-08T12:00:00+02:00", + "horizon_hours": 36, + "soc_wh": 28160.0, + "soc_source": "audit_interval", + "tag": "neg_sell_deep", + "extracted_at": "2026-06-11T10:24:51.300939+02:00", + "dsn_host": "10.200.200.1:5432", + "note": "Vstupy plánovače zmrazené k okamžiku extrakce (context = aktuální konfigurace, sloty = fn_load_planning_slots_full nad historickými cenami/forecasty). EV sessions vynulovány, operating_mode=AUTO." + }, + "context_json": { + "grid": { + "max_export_power_w": 13500, + "max_import_power_w": 17000, + "block_export_on_negative_sell": false, + "deye_gen_microinverter_cutoff_enabled": false + }, + "market": { + "sale_pricing_mode": "spot", + "purchase_pricing_mode": "spot" + }, + "soc_wh": 28160.0, + "battery": { + "min_soc_wh": 6400.0, + "soc_max_wh": 64000.0, + "arb_floor_wh": 12800.0, + "reserve_soc_wh": 12800.0, + "charge_efficiency": 0.95, + "charge_slot_buffer": 1.3, + "max_charge_power_w": 18000, + "planner_soc_max_wh": 64000.0, + "usable_capacity_wh": 64000, + "discharge_efficiency": 0.95, + "discharge_slot_buffer": 1.5, + "max_discharge_power_w": 18000, + "degradation_cost_czk_kwh": 0.15, + "planner_discharge_floor_percent": 5.0, + "planner_neg_sell_prep_soc_percent": 80.0, + "planner_terminal_soc_value_factor": 0.9, + "planner_neg_sell_full_soc_tail_slots": 4, + "planner_daytime_charge_price_quantile": 0.7, + "planner_daytime_charge_target_enabled": true, + "planner_extreme_buy_threshold_czk_kwh": -2.0, + "planner_night_baseload_buffer_percent": 20, + "planner_neg_sell_vent_min_sell_czk_kwh": -1.0, + "planner_discharge_relax_prewindow_slots": 8, + "planner_charge_commitment_penalty_czk_kwh": 0.2 + }, + "tuv_temp": 55.0, + "vehicles": [ + { + "max_charge_power_w": 11000, + "battery_capacity_kwh": 75.0, + "default_target_soc_pct": 80.0 + }, + { + "max_charge_power_w": 7400, + "battery_capacity_kwh": 52.0, + "default_target_soc_pct": 90.0 + } + ], + "heat_pump": { + "tuv_min_temp_c": 0, + "tuv_target_temp_c": 55, + "rated_heating_power_w": 0 + }, + "ev_sessions": [], + "operating_mode": "AUTO", + "planning_config": {}, + "tuv_delta_stats": [ + { + "dow": 0, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 23, + "delta": 0.0 + } + ] + }, + "slot_rows": [ + { + "slot_ord": 0, + "interval_start": "2026-06-06T22:00:00+00:00", + "buy_price": 4.756077, + "sell_price": 2.92325, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 456, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 1, + "interval_start": "2026-06-06T22:15:00+00:00", + "buy_price": 4.349197, + "sell_price": 2.61475, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 456, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 2, + "interval_start": "2026-06-06T22:30:00+00:00", + "buy_price": 4.32117, + "sell_price": 2.5935, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 456, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 3, + "interval_start": "2026-06-06T22:45:00+00:00", + "buy_price": 4.276657, + "sell_price": 2.55975, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 456, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 4, + "interval_start": "2026-06-06T23:00:00+00:00", + "buy_price": 4.22522, + "sell_price": 2.52075, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 439, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 5, + "interval_start": "2026-06-06T23:15:00+00:00", + "buy_price": 4.155318, + "sell_price": 2.46775, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 439, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 6, + "interval_start": "2026-06-06T23:30:00+00:00", + "buy_price": 3.975289, + "sell_price": 2.33125, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 439, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 7, + "interval_start": "2026-06-06T23:45:00+00:00", + "buy_price": 3.76954, + "sell_price": 2.17525, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 439, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 8, + "interval_start": "2026-06-07T00:00:00+00:00", + "buy_price": 4.063655, + "sell_price": 2.39825, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 436, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 9, + "interval_start": "2026-06-07T00:15:00+00:00", + "buy_price": 3.799215, + "sell_price": 2.19775, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 436, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 10, + "interval_start": "2026-06-07T00:30:00+00:00", + "buy_price": 3.759978, + "sell_price": 2.168, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 436, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 11, + "interval_start": "2026-06-07T00:45:00+00:00", + "buy_price": 3.48235, + "sell_price": 1.9575, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 436, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 12, + "interval_start": "2026-06-07T01:00:00+00:00", + "buy_price": 3.762616, + "sell_price": 2.17, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 452, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 13, + "interval_start": "2026-06-07T01:15:00+00:00", + "buy_price": 3.479382, + "sell_price": 1.95525, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 452, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 14, + "interval_start": "2026-06-07T01:30:00+00:00", + "buy_price": 3.344854, + "sell_price": 1.85325, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 452, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 15, + "interval_start": "2026-06-07T01:45:00+00:00", + "buy_price": 3.025021, + "sell_price": 1.61075, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 452, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 16, + "interval_start": "2026-06-07T02:00:00+00:00", + "buy_price": 3.165814, + "sell_price": 1.7175, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 462, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 17, + "interval_start": "2026-06-07T02:15:00+00:00", + "buy_price": 2.988092, + "sell_price": 1.58275, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 462, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 18, + "interval_start": "2026-06-07T02:30:00+00:00", + "buy_price": 2.8351, + "sell_price": 1.46675, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 462, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 19, + "interval_start": "2026-06-07T02:45:00+00:00", + "buy_price": 2.583849, + "sell_price": 1.27625, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 462, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 20, + "interval_start": "2026-06-07T03:00:00+00:00", + "buy_price": 2.673864, + "sell_price": 1.3445, + "is_predicted_price": false, + "pv_a_forecast_w": 10, + "pv_b_forecast_w": 9, + "load_baseline_w": 455, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 21, + "interval_start": "2026-06-07T03:15:00+00:00", + "buy_price": 2.195433, + "sell_price": 0.98175, + "is_predicted_price": false, + "pv_a_forecast_w": 48, + "pv_b_forecast_w": 49, + "load_baseline_w": 455, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 22, + "interval_start": "2026-06-07T03:30:00+00:00", + "buy_price": 1.809655, + "sell_price": 0.68925, + "is_predicted_price": false, + "pv_a_forecast_w": 236, + "pv_b_forecast_w": 139, + "load_baseline_w": 455, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 23, + "interval_start": "2026-06-07T03:45:00+00:00", + "buy_price": 0.889722, + "sell_price": -0.00825, + "is_predicted_price": false, + "pv_a_forecast_w": 59, + "pv_b_forecast_w": 0, + "load_baseline_w": 455, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_grid_charge" + }, + { + "slot_ord": 24, + "interval_start": "2026-06-07T04:00:00+00:00", + "buy_price": 0.778934, + "sell_price": -0.09225, + "is_predicted_price": false, + "pv_a_forecast_w": 281, + "pv_b_forecast_w": 55, + "load_baseline_w": 475, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 12800.0, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_grid_charge" + }, + { + "slot_ord": 25, + "interval_start": "2026-06-07T04:15:00+00:00", + "buy_price": 0.673422, + "sell_price": -0.17225, + "is_predicted_price": false, + "pv_a_forecast_w": 427, + "pv_b_forecast_w": 19, + "load_baseline_w": 475, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 13041.264285714286, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_grid_charge" + }, + { + "slot_ord": 26, + "interval_start": "2026-06-07T04:30:00+00:00", + "buy_price": 0.651001, + "sell_price": -0.18925, + "is_predicted_price": false, + "pv_a_forecast_w": 530, + "pv_b_forecast_w": 0, + "load_baseline_w": 475, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 13282.528571428571, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 27, + "interval_start": "2026-06-07T04:45:00+00:00", + "buy_price": 0.574175, + "sell_price": -0.2475, + "is_predicted_price": false, + "pv_a_forecast_w": 823, + "pv_b_forecast_w": 0, + "load_baseline_w": 475, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 13523.792857142857, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 28, + "interval_start": "2026-06-07T05:00:00+00:00", + "buy_price": 0.565602, + "sell_price": -0.254, + "is_predicted_price": false, + "pv_a_forecast_w": 1215, + "pv_b_forecast_w": 0, + "load_baseline_w": 880, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 13765.057142857142, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 29, + "interval_start": "2026-06-07T05:15:00+00:00", + "buy_price": 0.505263, + "sell_price": -0.29975, + "is_predicted_price": false, + "pv_a_forecast_w": 1499, + "pv_b_forecast_w": 0, + "load_baseline_w": 880, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 14006.32142857143, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 30, + "interval_start": "2026-06-07T05:30:00+00:00", + "buy_price": 0.504933, + "sell_price": -0.3, + "is_predicted_price": false, + "pv_a_forecast_w": 1677, + "pv_b_forecast_w": 0, + "load_baseline_w": 880, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 14247.585714285715, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 31, + "interval_start": "2026-06-07T05:45:00+00:00", + "buy_price": 0.504658, + "sell_price": -0.30025, + "is_predicted_price": false, + "pv_a_forecast_w": 2633, + "pv_b_forecast_w": 733, + "load_baseline_w": 880, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 14488.85, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 32, + "interval_start": "2026-06-07T06:00:00+00:00", + "buy_price": 0.504658, + "sell_price": -0.30025, + "is_predicted_price": false, + "pv_a_forecast_w": 3034, + "pv_b_forecast_w": 977, + "load_baseline_w": 911, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 14730.114285714286, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 33, + "interval_start": "2026-06-07T06:15:00+00:00", + "buy_price": 0.503557, + "sell_price": -0.30125, + "is_predicted_price": false, + "pv_a_forecast_w": 2832, + "pv_b_forecast_w": 1748, + "load_baseline_w": 911, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 14971.378571428571, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 34, + "interval_start": "2026-06-07T06:30:00+00:00", + "buy_price": 0.501905, + "sell_price": -0.30275, + "is_predicted_price": false, + "pv_a_forecast_w": 3638, + "pv_b_forecast_w": 2888, + "load_baseline_w": 911, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 15212.642857142857, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 35, + "interval_start": "2026-06-07T06:45:00+00:00", + "buy_price": 0.448502, + "sell_price": -0.35125, + "is_predicted_price": false, + "pv_a_forecast_w": 4338, + "pv_b_forecast_w": 3584, + "load_baseline_w": 911, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 15453.907142857142, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 36, + "interval_start": "2026-06-07T07:00:00+00:00", + "buy_price": 1.105087, + "sell_price": -0.3325, + "is_predicted_price": false, + "pv_a_forecast_w": 4646, + "pv_b_forecast_w": 3874, + "load_baseline_w": 2020, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 15695.171428571428, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 37, + "interval_start": "2026-06-07T07:15:00+00:00", + "buy_price": 1.047004, + "sell_price": -0.38525, + "is_predicted_price": false, + "pv_a_forecast_w": 5324, + "pv_b_forecast_w": 4528, + "load_baseline_w": 2020, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 15936.435714285713, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 38, + "interval_start": "2026-06-07T07:30:00+00:00", + "buy_price": 0.989196, + "sell_price": -0.43775, + "is_predicted_price": false, + "pv_a_forecast_w": 5891, + "pv_b_forecast_w": 5083, + "load_baseline_w": 2020, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 16177.7, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 39, + "interval_start": "2026-06-07T07:45:00+00:00", + "buy_price": 0.865047, + "sell_price": -0.5505, + "is_predicted_price": false, + "pv_a_forecast_w": 6256, + "pv_b_forecast_w": 5501, + "load_baseline_w": 2020, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 16418.964285714286, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 40, + "interval_start": "2026-06-07T08:00:00+00:00", + "buy_price": 0.367571, + "sell_price": -0.42475, + "is_predicted_price": false, + "pv_a_forecast_w": 6532, + "pv_b_forecast_w": 5793, + "load_baseline_w": 1470, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 16660.22857142857, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 41, + "interval_start": "2026-06-07T08:15:00+00:00", + "buy_price": 0.354633, + "sell_price": -0.4365, + "is_predicted_price": false, + "pv_a_forecast_w": 6754, + "pv_b_forecast_w": 6035, + "load_baseline_w": 1470, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 16901.492857142857, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 42, + "interval_start": "2026-06-07T08:30:00+00:00", + "buy_price": 0.232961, + "sell_price": -0.547, + "is_predicted_price": false, + "pv_a_forecast_w": 6980, + "pv_b_forecast_w": 6274, + "load_baseline_w": 1470, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 17142.757142857143, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 43, + "interval_start": "2026-06-07T08:45:00+00:00", + "buy_price": 0.183687, + "sell_price": -0.59175, + "is_predicted_price": false, + "pv_a_forecast_w": 6516, + "pv_b_forecast_w": 5940, + "load_baseline_w": 1470, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 17384.02142857143, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "cheaper_pv_ahead", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 21375.0, + "charge_layer": "grid_am", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 44, + "interval_start": "2026-06-07T09:00:00+00:00", + "buy_price": 0.150929, + "sell_price": -0.6215, + "is_predicted_price": false, + "pv_a_forecast_w": 6983, + "pv_b_forecast_w": 6324, + "load_baseline_w": 1721, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 17625.285714285714, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "cheaper_pv_ahead", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 17100.0, + "charge_layer": "grid_am", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 45, + "interval_start": "2026-06-07T09:15:00+00:00", + "buy_price": 0.103032, + "sell_price": -0.665, + "is_predicted_price": false, + "pv_a_forecast_w": 7548, + "pv_b_forecast_w": 6774, + "load_baseline_w": 1721, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 17866.55, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 35840.0, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "cheaper_pv_ahead", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 4275.0, + "charge_layer": "grid_am", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 46, + "interval_start": "2026-06-07T09:30:00+00:00", + "buy_price": 0.11129, + "sell_price": -0.6575, + "is_predicted_price": false, + "pv_a_forecast_w": 7745, + "pv_b_forecast_w": 6994, + "load_baseline_w": 1721, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 18107.814285714285, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 34632.0125, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "cheaper_pv_ahead", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 12825.0, + "charge_layer": "grid_am", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 47, + "interval_start": "2026-06-07T09:45:00+00:00", + "buy_price": 0.103857, + "sell_price": -0.66425, + "is_predicted_price": false, + "pv_a_forecast_w": 7928, + "pv_b_forecast_w": 7169, + "load_baseline_w": 1721, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 18349.07857142857, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 31540.2375, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "cheaper_pv_ahead", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 8550.0, + "charge_layer": "grid_am", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 48, + "interval_start": "2026-06-07T10:00:00+00:00", + "buy_price": 0.728235, + "sell_price": -0.67475, + "is_predicted_price": false, + "pv_a_forecast_w": 7423, + "pv_b_forecast_w": 6691, + "load_baseline_w": 5163, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 18590.342857142856, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 28363.4375, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 49, + "interval_start": "2026-06-07T10:15:00+00:00", + "buy_price": 0.61785, + "sell_price": -0.775, + "is_predicted_price": false, + "pv_a_forecast_w": 6477, + "pv_b_forecast_w": 5440, + "load_baseline_w": 5163, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 18831.60714285714, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 26237.575, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 50, + "interval_start": "2026-06-07T10:30:00+00:00", + "buy_price": 0.61785, + "sell_price": -0.775, + "is_predicted_price": false, + "pv_a_forecast_w": 5747, + "pv_b_forecast_w": 5162, + "load_baseline_w": 5163, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 19072.871428571427, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 24633.5, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 51, + "interval_start": "2026-06-07T10:45:00+00:00", + "buy_price": 0.588671, + "sell_price": -0.8015, + "is_predicted_price": false, + "pv_a_forecast_w": 6954, + "pv_b_forecast_w": 6275, + "load_baseline_w": 5163, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 19314.135714285716, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 23268.825, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 52, + "interval_start": "2026-06-07T11:00:00+00:00", + "buy_price": -0.141137, + "sell_price": -0.88675, + "is_predicted_price": false, + "pv_a_forecast_w": 8075, + "pv_b_forecast_w": 7352, + "load_baseline_w": 6618, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 19555.4, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 21353.15, + "neg_buy_wh_ahead": 51300.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "buy_negative", + "charge_slot_reason": "buy_negative" + }, + { + "slot_ord": 53, + "interval_start": "2026-06-07T11:15:00+00:00", + "buy_price": -0.322268, + "sell_price": -1.05125, + "is_predicted_price": false, + "pv_a_forecast_w": 7286, + "pv_b_forecast_w": 6613, + "load_baseline_w": 6618, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 19796.664285714287, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 19261.0125, + "neg_buy_wh_ahead": 47025.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "buy_negative", + "charge_slot_reason": "buy_negative" + }, + { + "slot_ord": 54, + "interval_start": "2026-06-07T11:30:00+00:00", + "buy_price": -0.60883, + "sell_price": -1.3115, + "is_predicted_price": false, + "pv_a_forecast_w": 5486, + "pv_b_forecast_w": 4843, + "load_baseline_w": 6618, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 20037.928571428572, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 17531.775, + "neg_buy_wh_ahead": 42750.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "buy_negative", + "charge_slot_reason": "buy_negative" + }, + { + "slot_ord": 55, + "interval_start": "2026-06-07T11:45:00+00:00", + "buy_price": -0.892363, + "sell_price": -1.569, + "is_predicted_price": false, + "pv_a_forecast_w": 5209, + "pv_b_forecast_w": 4588, + "load_baseline_w": 6618, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 20279.192857142858, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 16650.4125, + "neg_buy_wh_ahead": 38475.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 8550.0, + "charge_layer": "grid_pm", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 56, + "interval_start": "2026-06-07T12:00:00+00:00", + "buy_price": -0.70903, + "sell_price": -1.4025, + "is_predicted_price": false, + "pv_a_forecast_w": 6824, + "pv_b_forecast_w": 6197, + "load_baseline_w": 3733, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 20520.457142857143, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 15895.4, + "neg_buy_wh_ahead": 34200.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "buy_negative", + "charge_slot_reason": "buy_negative" + }, + { + "slot_ord": 57, + "interval_start": "2026-06-07T12:15:00+00:00", + "buy_price": -0.747568, + "sell_price": -1.4375, + "is_predicted_price": false, + "pv_a_forecast_w": 6263, + "pv_b_forecast_w": 5694, + "load_baseline_w": 3733, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 20761.72142857143, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 13689.5, + "neg_buy_wh_ahead": 29925.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 12825.0, + "charge_layer": "grid_pm", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 58, + "interval_start": "2026-06-07T12:30:00+00:00", + "buy_price": -0.721692, + "sell_price": -1.414, + "is_predicted_price": false, + "pv_a_forecast_w": 5612, + "pv_b_forecast_w": 5096, + "load_baseline_w": 3733, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 21002.985714285714, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 11736.3, + "neg_buy_wh_ahead": 25650.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 21375.0, + "charge_layer": "grid_pm", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 59, + "interval_start": "2026-06-07T12:45:00+00:00", + "buy_price": -0.739861, + "sell_price": -1.4305, + "is_predicted_price": false, + "pv_a_forecast_w": 5463, + "pv_b_forecast_w": 4913, + "load_baseline_w": 3733, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 21244.25, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.893464, + "pv_charge_wh_ahead": 10079.7375, + "neg_buy_wh_ahead": 21375.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 17100.0, + "charge_layer": "grid_pm", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 60, + "interval_start": "2026-06-07T13:00:00+00:00", + "buy_price": -0.893464, + "sell_price": -1.57, + "is_predicted_price": false, + "pv_a_forecast_w": 3268, + "pv_b_forecast_w": 2946, + "load_baseline_w": 4189, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 21485.514285714286, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.615987, + "pv_charge_wh_ahead": 8502.025, + "neg_buy_wh_ahead": 17100.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 4275.0, + "charge_layer": "grid_pm", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 61, + "interval_start": "2026-06-07T13:15:00+00:00", + "buy_price": -0.615987, + "sell_price": -1.318, + "is_predicted_price": false, + "pv_a_forecast_w": 4946, + "pv_b_forecast_w": 4367, + "load_baseline_w": 4189, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 21726.77857142857, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.381728, + "pv_charge_wh_ahead": 8021.0875, + "neg_buy_wh_ahead": 12825.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "buy_negative", + "charge_slot_reason": "buy_negative" + }, + { + "slot_ord": 62, + "interval_start": "2026-06-07T13:30:00+00:00", + "buy_price": -0.381728, + "sell_price": -1.10525, + "is_predicted_price": false, + "pv_a_forecast_w": 4109, + "pv_b_forecast_w": 3709, + "load_baseline_w": 4189, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 21968.042857142857, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": -0.160957, + "pv_charge_wh_ahead": 6804.1375, + "neg_buy_wh_ahead": 8550.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "buy_negative", + "charge_slot_reason": "buy_negative" + }, + { + "slot_ord": 63, + "interval_start": "2026-06-07T13:45:00+00:00", + "buy_price": -0.160957, + "sell_price": -0.90475, + "is_predicted_price": false, + "pv_a_forecast_w": 5579, + "pv_b_forecast_w": 5131, + "load_baseline_w": 4189, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 22209.307142857142, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 0.366249, + "pv_charge_wh_ahead": 5942.25, + "neg_buy_wh_ahead": 4275.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "buy_negative", + "charge_slot_reason": "buy_negative" + }, + { + "slot_ord": 64, + "interval_start": "2026-06-07T14:00:00+00:00", + "buy_price": 0.366249, + "sell_price": -1.0035, + "is_predicted_price": false, + "pv_a_forecast_w": 4721, + "pv_b_forecast_w": 4044, + "load_baseline_w": 5465, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 22450.571428571428, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 0.410514, + "pv_charge_wh_ahead": 4393.5125, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 65, + "interval_start": "2026-06-07T14:15:00+00:00", + "buy_price": 0.645102, + "sell_price": -0.75025, + "is_predicted_price": false, + "pv_a_forecast_w": 4657, + "pv_b_forecast_w": 3844, + "load_baseline_w": 5465, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 22691.835714285713, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 0.410514, + "pv_charge_wh_ahead": 3609.7625, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 66, + "interval_start": "2026-06-07T14:30:00+00:00", + "buy_price": 0.787695, + "sell_price": -0.62075, + "is_predicted_price": false, + "pv_a_forecast_w": 4674, + "pv_b_forecast_w": 3928, + "load_baseline_w": 5465, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 22933.1, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 0.410514, + "pv_charge_wh_ahead": 2888.7125, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 67, + "interval_start": "2026-06-07T14:45:00+00:00", + "buy_price": 1.001859, + "sell_price": -0.42625, + "is_predicted_price": false, + "pv_a_forecast_w": 3584, + "pv_b_forecast_w": 2903, + "load_baseline_w": 5465, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 23174.364285714284, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 0.410514, + "pv_charge_wh_ahead": 2143.675, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 68, + "interval_start": "2026-06-07T15:00:00+00:00", + "buy_price": 0.410514, + "sell_price": -0.38575, + "is_predicted_price": false, + "pv_a_forecast_w": 3915, + "pv_b_forecast_w": 3241, + "load_baseline_w": 4187, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 23415.628571428573, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 0.47713, + "pv_charge_wh_ahead": 1900.95, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 69, + "interval_start": "2026-06-07T15:15:00+00:00", + "buy_price": 0.47713, + "sell_price": -0.32525, + "is_predicted_price": false, + "pv_a_forecast_w": 3063, + "pv_b_forecast_w": 2447, + "load_baseline_w": 4187, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 23656.89285714286, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 0.493371, + "pv_charge_wh_ahead": 1195.8125, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 70, + "interval_start": "2026-06-07T15:30:00+00:00", + "buy_price": 0.50163, + "sell_price": -0.303, + "is_predicted_price": false, + "pv_a_forecast_w": 3132, + "pv_b_forecast_w": 2778, + "load_baseline_w": 4187, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 23898.157142857144, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 0.493371, + "pv_charge_wh_ahead": 881.6, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 71, + "interval_start": "2026-06-07T15:45:00+00:00", + "buy_price": 0.493371, + "sell_price": -0.3105, + "is_predicted_price": false, + "pv_a_forecast_w": 2660, + "pv_b_forecast_w": 2406, + "load_baseline_w": 4187, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 24139.42142857143, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 0.493647, + "pv_charge_wh_ahead": 472.3875, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 72, + "interval_start": "2026-06-07T16:00:00+00:00", + "buy_price": 0.493647, + "sell_price": -0.31025, + "is_predicted_price": false, + "pv_a_forecast_w": 1583, + "pv_b_forecast_w": 1091, + "load_baseline_w": 1564, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 24380.685714285715, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.613139, + "pv_charge_wh_ahead": 263.625, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "neg_window_grid_charge", + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 4275.0, + "charge_cum_wh": null, + "charge_layer": "neg_window", + "charge_slot_reason": "neg_window_pv" + }, + { + "slot_ord": 73, + "interval_start": "2026-06-07T16:15:00+00:00", + "buy_price": 1.613139, + "sell_price": 0.54025, + "is_predicted_price": false, + "pv_a_forecast_w": 1384, + "pv_b_forecast_w": 982, + "load_baseline_w": 1564, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 24621.95, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 74, + "interval_start": "2026-06-07T16:30:00+00:00", + "buy_price": 3.859225, + "sell_price": 2.24325, + "is_predicted_price": false, + "pv_a_forecast_w": 1021, + "pv_b_forecast_w": 821, + "load_baseline_w": 1564, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 24863.214285714286, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 75, + "interval_start": "2026-06-07T16:45:00+00:00", + "buy_price": 4.583631, + "sell_price": 2.7925, + "is_predicted_price": false, + "pv_a_forecast_w": 732, + "pv_b_forecast_w": 608, + "load_baseline_w": 1564, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 25104.47857142857, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 76, + "interval_start": "2026-06-07T17:00:00+00:00", + "buy_price": 3.208019, + "sell_price": 1.7495, + "is_predicted_price": false, + "pv_a_forecast_w": 486, + "pv_b_forecast_w": 429, + "load_baseline_w": 1868, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 25345.742857142857, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 77, + "interval_start": "2026-06-07T17:15:00+00:00", + "buy_price": 4.243355, + "sell_price": 2.5345, + "is_predicted_price": false, + "pv_a_forecast_w": 398, + "pv_b_forecast_w": 397, + "load_baseline_w": 1868, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 25587.007142857143, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 78, + "interval_start": "2026-06-07T17:30:00+00:00", + "buy_price": 4.562529, + "sell_price": 2.7765, + "is_predicted_price": false, + "pv_a_forecast_w": 253, + "pv_b_forecast_w": 335, + "load_baseline_w": 1868, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 25828.27142857143, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 79, + "interval_start": "2026-06-07T17:45:00+00:00", + "buy_price": 4.798282, + "sell_price": 2.95525, + "is_predicted_price": false, + "pv_a_forecast_w": 87, + "pv_b_forecast_w": 121, + "load_baseline_w": 1868, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 26069.535714285714, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 80, + "interval_start": "2026-06-07T18:00:00+00:00", + "buy_price": 4.912267, + "sell_price": 2.5595, + "is_predicted_price": false, + "pv_a_forecast_w": 64, + "pv_b_forecast_w": 69, + "load_baseline_w": 1614, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 81, + "interval_start": "2026-06-07T18:15:00+00:00", + "buy_price": 5.082735, + "sell_price": 2.68875, + "is_predicted_price": false, + "pv_a_forecast_w": 37, + "pv_b_forecast_w": 14, + "load_baseline_w": 1614, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 82, + "interval_start": "2026-06-07T18:30:00+00:00", + "buy_price": 5.263424, + "sell_price": 2.82575, + "is_predicted_price": false, + "pv_a_forecast_w": 166, + "pv_b_forecast_w": 185, + "load_baseline_w": 1614, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.476756, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 83, + "interval_start": "2026-06-07T18:45:00+00:00", + "buy_price": 5.476756, + "sell_price": 2.9875, + "is_predicted_price": false, + "pv_a_forecast_w": 56, + "pv_b_forecast_w": 60, + "load_baseline_w": 1614, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 84, + "interval_start": "2026-06-07T19:00:00+00:00", + "buy_price": 4.772234, + "sell_price": 2.9355, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1392, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 85, + "interval_start": "2026-06-07T19:15:00+00:00", + "buy_price": 4.780807, + "sell_price": 2.942, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1392, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 86, + "interval_start": "2026-06-07T19:30:00+00:00", + "buy_price": 4.895551, + "sell_price": 3.029, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1392, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 87, + "interval_start": "2026-06-07T19:45:00+00:00", + "buy_price": 4.893573, + "sell_price": 3.0275, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1392, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 88, + "interval_start": "2026-06-07T20:00:00+00:00", + "buy_price": 5.281989, + "sell_price": 3.322, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1082, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 89, + "interval_start": "2026-06-07T20:15:00+00:00", + "buy_price": 5.030409, + "sell_price": 3.13125, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1082, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 90, + "interval_start": "2026-06-07T20:30:00+00:00", + "buy_price": 5.024144, + "sell_price": 3.1265, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1082, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 91, + "interval_start": "2026-06-07T20:45:00+00:00", + "buy_price": 4.915005, + "sell_price": 3.04375, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1082, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 92, + "interval_start": "2026-06-07T21:00:00+00:00", + "buy_price": 5.294189, + "sell_price": 3.33125, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 699, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 93, + "interval_start": "2026-06-07T21:15:00+00:00", + "buy_price": 4.903465, + "sell_price": 3.035, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 699, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 94, + "interval_start": "2026-06-07T21:30:00+00:00", + "buy_price": 4.879065, + "sell_price": 3.0165, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 699, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 95, + "interval_start": "2026-06-07T21:45:00+00:00", + "buy_price": 4.77652, + "sell_price": 2.93875, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 699, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 96, + "interval_start": "2026-06-07T22:00:00+00:00", + "buy_price": 5.433662, + "sell_price": 3.437, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 548, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 97, + "interval_start": "2026-06-07T22:15:00+00:00", + "buy_price": 5.022166, + "sell_price": 3.125, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 548, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 98, + "interval_start": "2026-06-07T22:30:00+00:00", + "buy_price": 4.927864, + "sell_price": 3.0535, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 548, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 99, + "interval_start": "2026-06-07T22:45:00+00:00", + "buy_price": 4.809493, + "sell_price": 2.96375, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 548, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 100, + "interval_start": "2026-06-07T23:00:00+00:00", + "buy_price": 4.946329, + "sell_price": 3.0675, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 540, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 101, + "interval_start": "2026-06-07T23:15:00+00:00", + "buy_price": 4.860271, + "sell_price": 3.00225, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 540, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 102, + "interval_start": "2026-06-07T23:30:00+00:00", + "buy_price": 4.810482, + "sell_price": 2.9645, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 540, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 103, + "interval_start": "2026-06-07T23:45:00+00:00", + "buy_price": 4.712554, + "sell_price": 2.89025, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 540, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 104, + "interval_start": "2026-06-08T00:00:00+00:00", + "buy_price": 4.68123, + "sell_price": 2.8665, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 732, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 105, + "interval_start": "2026-06-08T00:15:00+00:00", + "buy_price": 4.635068, + "sell_price": 2.8315, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 732, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 106, + "interval_start": "2026-06-08T00:30:00+00:00", + "buy_price": 4.594842, + "sell_price": 2.801, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 732, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 107, + "interval_start": "2026-06-08T00:45:00+00:00", + "buy_price": 4.557583, + "sell_price": 2.77275, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 732, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 108, + "interval_start": "2026-06-08T01:00:00+00:00", + "buy_price": 4.46559, + "sell_price": 2.703, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 792, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 109, + "interval_start": "2026-06-08T01:15:00+00:00", + "buy_price": 4.451412, + "sell_price": 2.69225, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 792, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 110, + "interval_start": "2026-06-08T01:30:00+00:00", + "buy_price": 4.471525, + "sell_price": 2.7075, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 792, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 111, + "interval_start": "2026-06-08T01:45:00+00:00", + "buy_price": 4.498892, + "sell_price": 2.72825, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 792, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 112, + "interval_start": "2026-06-08T02:00:00+00:00", + "buy_price": 4.399974, + "sell_price": 2.65325, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 598, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 113, + "interval_start": "2026-06-08T02:15:00+00:00", + "buy_price": 4.436244, + "sell_price": 2.68075, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 598, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 114, + "interval_start": "2026-06-08T02:30:00+00:00", + "buy_price": 4.446466, + "sell_price": 2.6885, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 598, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 115, + "interval_start": "2026-06-08T02:45:00+00:00", + "buy_price": 4.617593, + "sell_price": 2.81825, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 598, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 116, + "interval_start": "2026-06-08T03:00:00+00:00", + "buy_price": 4.392391, + "sell_price": 2.6475, + "is_predicted_price": false, + "pv_a_forecast_w": 20, + "pv_b_forecast_w": 20, + "load_baseline_w": 562, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 117, + "interval_start": "2026-06-08T03:15:00+00:00", + "buy_price": 4.433606, + "sell_price": 2.67875, + "is_predicted_price": false, + "pv_a_forecast_w": 124, + "pv_b_forecast_w": 134, + "load_baseline_w": 562, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 118, + "interval_start": "2026-06-08T03:30:00+00:00", + "buy_price": 4.526919, + "sell_price": 2.7495, + "is_predicted_price": false, + "pv_a_forecast_w": 352, + "pv_b_forecast_w": 281, + "load_baseline_w": 562, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 119, + "interval_start": "2026-06-08T03:45:00+00:00", + "buy_price": 4.76465, + "sell_price": 2.92975, + "is_predicted_price": false, + "pv_a_forecast_w": 168, + "pv_b_forecast_w": 186, + "load_baseline_w": 562, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 120, + "interval_start": "2026-06-08T04:00:00+00:00", + "buy_price": 5.034365, + "sell_price": 3.13425, + "is_predicted_price": false, + "pv_a_forecast_w": 367, + "pv_b_forecast_w": 298, + "load_baseline_w": 732, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 12800.0, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 121, + "interval_start": "2026-06-08T04:15:00+00:00", + "buy_price": 5.08844, + "sell_price": 3.17525, + "is_predicted_price": false, + "pv_a_forecast_w": 587, + "pv_b_forecast_w": 330, + "load_baseline_w": 732, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 13041.264285714286, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 122, + "interval_start": "2026-06-08T04:30:00+00:00", + "buy_price": 4.889286, + "sell_price": 3.02425, + "is_predicted_price": false, + "pv_a_forecast_w": 906, + "pv_b_forecast_w": 362, + "load_baseline_w": 732, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 13282.528571428571, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 123, + "interval_start": "2026-06-08T04:45:00+00:00", + "buy_price": 4.68156, + "sell_price": 2.86675, + "is_predicted_price": false, + "pv_a_forecast_w": 1275, + "pv_b_forecast_w": 427, + "load_baseline_w": 732, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 13523.792857142857, + "future_avoided_buy_czk_kwh": 5.434651, + "future_sell_opportunity_czk_kwh": 3.43775, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 124, + "interval_start": "2026-06-08T05:00:00+00:00", + "buy_price": 5.434651, + "sell_price": 3.43775, + "is_predicted_price": false, + "pv_a_forecast_w": 1655, + "pv_b_forecast_w": 510, + "load_baseline_w": 482, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 13765.057142857142, + "future_avoided_buy_czk_kwh": 5.080197, + "future_sell_opportunity_czk_kwh": 3.169, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 125, + "interval_start": "2026-06-08T05:15:00+00:00", + "buy_price": 5.022825, + "sell_price": 3.1255, + "is_predicted_price": false, + "pv_a_forecast_w": 2029, + "pv_b_forecast_w": 597, + "load_baseline_w": 482, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 14006.32142857143, + "future_avoided_buy_czk_kwh": 5.080197, + "future_sell_opportunity_czk_kwh": 3.169, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 126, + "interval_start": "2026-06-08T05:30:00+00:00", + "buy_price": 4.797293, + "sell_price": 2.9545, + "is_predicted_price": false, + "pv_a_forecast_w": 2497, + "pv_b_forecast_w": 930, + "load_baseline_w": 482, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 14247.585714285715, + "future_avoided_buy_czk_kwh": 5.080197, + "future_sell_opportunity_czk_kwh": 3.169, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 127, + "interval_start": "2026-06-08T05:45:00+00:00", + "buy_price": 4.418109, + "sell_price": 2.667, + "is_predicted_price": false, + "pv_a_forecast_w": 2983, + "pv_b_forecast_w": 1170, + "load_baseline_w": 482, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 14488.85, + "future_avoided_buy_czk_kwh": 5.080197, + "future_sell_opportunity_czk_kwh": 3.169, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 128, + "interval_start": "2026-06-08T06:00:00+00:00", + "buy_price": 5.080197, + "sell_price": 3.169, + "is_predicted_price": false, + "pv_a_forecast_w": 3458, + "pv_b_forecast_w": 1472, + "load_baseline_w": 422, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 14730.114285714286, + "future_avoided_buy_czk_kwh": 4.772464, + "future_sell_opportunity_czk_kwh": 2.782, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 129, + "interval_start": "2026-06-08T06:15:00+00:00", + "buy_price": 4.569783, + "sell_price": 2.782, + "is_predicted_price": false, + "pv_a_forecast_w": 3966, + "pv_b_forecast_w": 3008, + "load_baseline_w": 422, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 14971.378571428571, + "future_avoided_buy_czk_kwh": 4.772464, + "future_sell_opportunity_czk_kwh": 2.53075, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 130, + "interval_start": "2026-06-08T06:30:00+00:00", + "buy_price": 4.238409, + "sell_price": 2.53075, + "is_predicted_price": false, + "pv_a_forecast_w": 4430, + "pv_b_forecast_w": 3740, + "load_baseline_w": 422, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 15212.642857142857, + "future_avoided_buy_czk_kwh": 4.772464, + "future_sell_opportunity_czk_kwh": 2.4535, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 131, + "interval_start": "2026-06-08T06:45:00+00:00", + "buy_price": 3.729644, + "sell_price": 2.145, + "is_predicted_price": false, + "pv_a_forecast_w": 4868, + "pv_b_forecast_w": 4139, + "load_baseline_w": 422, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 15453.907142857142, + "future_avoided_buy_czk_kwh": 4.772464, + "future_sell_opportunity_czk_kwh": 2.4535, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 132, + "interval_start": "2026-06-08T07:00:00+00:00", + "buy_price": 4.772464, + "sell_price": 2.4535, + "is_predicted_price": false, + "pv_a_forecast_w": 5280, + "pv_b_forecast_w": 4524, + "load_baseline_w": 726, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 15695.171428571428, + "future_avoided_buy_czk_kwh": 4.392291, + "future_sell_opportunity_czk_kwh": 2.16525, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 133, + "interval_start": "2026-06-08T07:15:00+00:00", + "buy_price": 4.392291, + "sell_price": 2.16525, + "is_predicted_price": false, + "pv_a_forecast_w": 5680, + "pv_b_forecast_w": 4887, + "load_baseline_w": 726, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 15936.435714285713, + "future_avoided_buy_czk_kwh": 4.074106, + "future_sell_opportunity_czk_kwh": 1.924, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 134, + "interval_start": "2026-06-08T07:30:00+00:00", + "buy_price": 4.074106, + "sell_price": 1.924, + "is_predicted_price": false, + "pv_a_forecast_w": 6035, + "pv_b_forecast_w": 5228, + "load_baseline_w": 726, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 16177.7, + "future_avoided_buy_czk_kwh": 3.460488, + "future_sell_opportunity_czk_kwh": 1.667, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 135, + "interval_start": "2026-06-08T07:45:00+00:00", + "buy_price": 3.460488, + "sell_price": 1.45875, + "is_predicted_price": false, + "pv_a_forecast_w": 6378, + "pv_b_forecast_w": 5625, + "load_baseline_w": 726, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 16418.964285714286, + "future_avoided_buy_czk_kwh": 3.099209, + "future_sell_opportunity_czk_kwh": 1.667, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 136, + "interval_start": "2026-06-08T08:00:00+00:00", + "buy_price": 3.099209, + "sell_price": 1.667, + "is_predicted_price": false, + "pv_a_forecast_w": 6704, + "pv_b_forecast_w": 5965, + "load_baseline_w": 1671, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 16660.22857142857, + "future_avoided_buy_czk_kwh": 2.998973, + "future_sell_opportunity_czk_kwh": 1.591, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 137, + "interval_start": "2026-06-08T08:15:00+00:00", + "buy_price": 2.998973, + "sell_price": 1.591, + "is_predicted_price": false, + "pv_a_forecast_w": 6964, + "pv_b_forecast_w": 6241, + "load_baseline_w": 1671, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 16901.492857142857, + "future_avoided_buy_czk_kwh": 2.611546, + "future_sell_opportunity_czk_kwh": 1.29725, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 138, + "interval_start": "2026-06-08T08:30:00+00:00", + "buy_price": 2.611546, + "sell_price": 1.29725, + "is_predicted_price": false, + "pv_a_forecast_w": 7178, + "pv_b_forecast_w": 6464, + "load_baseline_w": 1671, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 17142.757142857143, + "future_avoided_buy_czk_kwh": 2.556152, + "future_sell_opportunity_czk_kwh": 1.25525, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 139, + "interval_start": "2026-06-08T08:45:00+00:00", + "buy_price": 2.204006, + "sell_price": 0.98825, + "is_predicted_price": false, + "pv_a_forecast_w": 7310, + "pv_b_forecast_w": 6694, + "load_baseline_w": 1671, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 17384.02142857143, + "future_avoided_buy_czk_kwh": 2.556152, + "future_sell_opportunity_czk_kwh": 1.25525, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 140, + "interval_start": "2026-06-08T09:00:00+00:00", + "buy_price": 2.556152, + "sell_price": 1.25525, + "is_predicted_price": false, + "pv_a_forecast_w": 7577, + "pv_b_forecast_w": 6881, + "load_baseline_w": 2465, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 17625.285714285714, + "future_avoided_buy_czk_kwh": 2.315783, + "future_sell_opportunity_czk_kwh": 1.073, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 141, + "interval_start": "2026-06-08T09:15:00+00:00", + "buy_price": 2.315783, + "sell_price": 1.073, + "is_predicted_price": false, + "pv_a_forecast_w": 7768, + "pv_b_forecast_w": 6981, + "load_baseline_w": 2465, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 17866.55, + "future_avoided_buy_czk_kwh": 1.975836, + "future_sell_opportunity_czk_kwh": 0.81525, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 142, + "interval_start": "2026-06-08T09:30:00+00:00", + "buy_price": 1.975836, + "sell_price": 0.81525, + "is_predicted_price": false, + "pv_a_forecast_w": 7989, + "pv_b_forecast_w": 7223, + "load_baseline_w": 2465, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 18107.814285714285, + "future_avoided_buy_czk_kwh": 1.780309, + "future_sell_opportunity_czk_kwh": 0.667, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.780309, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 143, + "interval_start": "2026-06-08T09:45:00+00:00", + "buy_price": 1.780309, + "sell_price": 0.667, + "is_predicted_price": false, + "pv_a_forecast_w": 8164, + "pv_b_forecast_w": 7393, + "load_baseline_w": 2465, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 11259.0, + "night_baseload_buffer_wh": 2251.8, + "safety_soc_target_wh": 18349.07857142857, + "future_avoided_buy_czk_kwh": 1.780309, + "future_sell_opportunity_czk_kwh": 0.667, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 0.103032, + "charge_acquisition_cutoff_at": "2026-06-07T03:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 35840.0, + "pre_window_wh": 0.0, + "in_window_wh": 64601.9, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + } + ] +} diff --git a/backend/tests/golden/fixtures/home-01_2026-06-09_normal.json b/backend/tests/golden/fixtures/home-01_2026-06-09_normal.json new file mode 100644 index 0000000..039d01b --- /dev/null +++ b/backend/tests/golden/fixtures/home-01_2026-06-09_normal.json @@ -0,0 +1,5673 @@ +{ + "fixture_version": 1, + "meta": { + "site_id": 2, + "site_code": "home-01", + "prague_day": "2026-06-09", + "window_from": "2026-06-09T00:00:00+02:00", + "window_to": "2026-06-10T12:00:00+02:00", + "horizon_hours": 36, + "soc_wh": 17280.0, + "soc_source": "audit_interval", + "tag": "normal", + "extracted_at": "2026-06-11T10:25:04.487652+02:00", + "dsn_host": "10.200.200.1:5432", + "note": "Vstupy plánovače zmrazené k okamžiku extrakce (context = aktuální konfigurace, sloty = fn_load_planning_slots_full nad historickými cenami/forecasty). EV sessions vynulovány, operating_mode=AUTO." + }, + "context_json": { + "grid": { + "max_export_power_w": 13500, + "max_import_power_w": 17000, + "block_export_on_negative_sell": false, + "deye_gen_microinverter_cutoff_enabled": false + }, + "market": { + "sale_pricing_mode": "spot", + "purchase_pricing_mode": "spot" + }, + "soc_wh": 17280.0, + "battery": { + "min_soc_wh": 6400.0, + "soc_max_wh": 64000.0, + "arb_floor_wh": 12800.0, + "reserve_soc_wh": 12800.0, + "charge_efficiency": 0.95, + "charge_slot_buffer": 1.3, + "max_charge_power_w": 18000, + "planner_soc_max_wh": 64000.0, + "usable_capacity_wh": 64000, + "discharge_efficiency": 0.95, + "discharge_slot_buffer": 1.5, + "max_discharge_power_w": 18000, + "degradation_cost_czk_kwh": 0.15, + "planner_discharge_floor_percent": 5.0, + "planner_neg_sell_prep_soc_percent": 80.0, + "planner_terminal_soc_value_factor": 0.9, + "planner_neg_sell_full_soc_tail_slots": 4, + "planner_daytime_charge_price_quantile": 0.7, + "planner_daytime_charge_target_enabled": true, + "planner_extreme_buy_threshold_czk_kwh": -2.0, + "planner_night_baseload_buffer_percent": 20, + "planner_neg_sell_vent_min_sell_czk_kwh": -1.0, + "planner_discharge_relax_prewindow_slots": 8, + "planner_charge_commitment_penalty_czk_kwh": 0.2 + }, + "tuv_temp": 55.0, + "vehicles": [ + { + "max_charge_power_w": 11000, + "battery_capacity_kwh": 75.0, + "default_target_soc_pct": 80.0 + }, + { + "max_charge_power_w": 7400, + "battery_capacity_kwh": 52.0, + "default_target_soc_pct": 90.0 + } + ], + "heat_pump": { + "tuv_min_temp_c": 0, + "tuv_target_temp_c": 55, + "rated_heating_power_w": 0 + }, + "ev_sessions": [], + "operating_mode": "AUTO", + "planning_config": {}, + "tuv_delta_stats": [ + { + "dow": 0, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 0, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 1, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 2, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 3, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 4, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 5, + "hour": 23, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 0, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 1, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 2, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 3, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 4, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 5, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 6, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 7, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 8, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 9, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 10, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 11, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 12, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 13, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 14, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 15, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 16, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 17, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 18, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 19, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 20, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 21, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 22, + "delta": 0.0 + }, + { + "dow": 6, + "hour": 23, + "delta": 0.0 + } + ] + }, + "slot_rows": [ + { + "slot_ord": 0, + "interval_start": "2026-06-08T22:00:00+00:00", + "buy_price": 5.270119, + "sell_price": 3.313, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 511, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 1, + "interval_start": "2026-06-08T22:15:00+00:00", + "buy_price": 4.835541, + "sell_price": 2.9835, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 511, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 2, + "interval_start": "2026-06-08T22:30:00+00:00", + "buy_price": 4.610009, + "sell_price": 2.8125, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 511, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 3, + "interval_start": "2026-06-08T22:45:00+00:00", + "buy_price": 4.574729, + "sell_price": 2.78575, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 511, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 4, + "interval_start": "2026-06-08T23:00:00+00:00", + "buy_price": 4.80092, + "sell_price": 2.95725, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 530, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 5, + "interval_start": "2026-06-08T23:15:00+00:00", + "buy_price": 4.74058, + "sell_price": 2.9115, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 530, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 6, + "interval_start": "2026-06-08T23:30:00+00:00", + "buy_price": 4.650236, + "sell_price": 2.843, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 530, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 7, + "interval_start": "2026-06-08T23:45:00+00:00", + "buy_price": 4.617593, + "sell_price": 2.81825, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 530, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 8, + "interval_start": "2026-06-09T00:00:00+00:00", + "buy_price": 4.474492, + "sell_price": 2.70975, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 541, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 9, + "interval_start": "2026-06-09T00:15:00+00:00", + "buy_price": 4.419098, + "sell_price": 2.66775, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 541, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 10, + "interval_start": "2026-06-09T00:30:00+00:00", + "buy_price": 4.522632, + "sell_price": 2.74625, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 541, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 11, + "interval_start": "2026-06-09T00:45:00+00:00", + "buy_price": 4.351175, + "sell_price": 2.61625, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 541, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 12, + "interval_start": "2026-06-09T01:00:00+00:00", + "buy_price": 4.41778, + "sell_price": 2.66675, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 498, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 13, + "interval_start": "2026-06-09T01:15:00+00:00", + "buy_price": 4.315895, + "sell_price": 2.5895, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 498, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 14, + "interval_start": "2026-06-09T01:30:00+00:00", + "buy_price": 4.284571, + "sell_price": 2.56575, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 498, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 15, + "interval_start": "2026-06-09T01:45:00+00:00", + "buy_price": 4.198183, + "sell_price": 2.50025, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 498, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 16, + "interval_start": "2026-06-09T02:00:00+00:00", + "buy_price": 4.383158, + "sell_price": 2.6405, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 447, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 17, + "interval_start": "2026-06-09T02:15:00+00:00", + "buy_price": 4.252258, + "sell_price": 2.54125, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 447, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 18, + "interval_start": "2026-06-09T02:30:00+00:00", + "buy_price": 4.170156, + "sell_price": 2.479, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 447, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 19, + "interval_start": "2026-06-09T02:45:00+00:00", + "buy_price": 4.190599, + "sell_price": 2.4945, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 447, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 20, + "interval_start": "2026-06-09T03:00:00+00:00", + "buy_price": 4.48966, + "sell_price": 2.72125, + "is_predicted_price": false, + "pv_a_forecast_w": 20, + "pv_b_forecast_w": 20, + "load_baseline_w": 614, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 21, + "interval_start": "2026-06-09T03:15:00+00:00", + "buy_price": 4.510103, + "sell_price": 2.73675, + "is_predicted_price": false, + "pv_a_forecast_w": 116, + "pv_b_forecast_w": 119, + "load_baseline_w": 614, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 22, + "interval_start": "2026-06-09T03:30:00+00:00", + "buy_price": 4.564177, + "sell_price": 2.77775, + "is_predicted_price": false, + "pv_a_forecast_w": 358, + "pv_b_forecast_w": 272, + "load_baseline_w": 614, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 23, + "interval_start": "2026-06-09T03:45:00+00:00", + "buy_price": 4.755418, + "sell_price": 2.92275, + "is_predicted_price": false, + "pv_a_forecast_w": 228, + "pv_b_forecast_w": 189, + "load_baseline_w": 614, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 24, + "interval_start": "2026-06-09T04:00:00+00:00", + "buy_price": 4.819055, + "sell_price": 2.971, + "is_predicted_price": false, + "pv_a_forecast_w": 507, + "pv_b_forecast_w": 314, + "load_baseline_w": 837, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 12800.0, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 25, + "interval_start": "2026-06-09T04:15:00+00:00", + "buy_price": 5.030079, + "sell_price": 3.131, + "is_predicted_price": false, + "pv_a_forecast_w": 705, + "pv_b_forecast_w": 315, + "load_baseline_w": 837, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 13076.9, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 26, + "interval_start": "2026-06-09T04:30:00+00:00", + "buy_price": 5.051511, + "sell_price": 3.14725, + "is_predicted_price": false, + "pv_a_forecast_w": 990, + "pv_b_forecast_w": 277, + "load_baseline_w": 837, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 13353.8, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 27, + "interval_start": "2026-06-09T04:45:00+00:00", + "buy_price": 4.990182, + "sell_price": 3.10075, + "is_predicted_price": false, + "pv_a_forecast_w": 1259, + "pv_b_forecast_w": 218, + "load_baseline_w": 837, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 13630.7, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 28, + "interval_start": "2026-06-09T05:00:00+00:00", + "buy_price": 5.37662, + "sell_price": 3.39375, + "is_predicted_price": false, + "pv_a_forecast_w": 1543, + "pv_b_forecast_w": 265, + "load_baseline_w": 506, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 13907.6, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 29, + "interval_start": "2026-06-09T05:15:00+00:00", + "buy_price": 5.104926, + "sell_price": 3.18775, + "is_predicted_price": false, + "pv_a_forecast_w": 1929, + "pv_b_forecast_w": 431, + "load_baseline_w": 506, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 14184.5, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 30, + "interval_start": "2026-06-09T05:30:00+00:00", + "buy_price": 5.064041, + "sell_price": 3.15675, + "is_predicted_price": false, + "pv_a_forecast_w": 2387, + "pv_b_forecast_w": 783, + "load_baseline_w": 506, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 14461.4, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 31, + "interval_start": "2026-06-09T05:45:00+00:00", + "buy_price": 4.831914, + "sell_price": 2.98075, + "is_predicted_price": false, + "pv_a_forecast_w": 2389, + "pv_b_forecast_w": 449, + "load_baseline_w": 506, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 14738.3, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 32, + "interval_start": "2026-06-09T06:00:00+00:00", + "buy_price": 5.18406, + "sell_price": 3.24775, + "is_predicted_price": false, + "pv_a_forecast_w": 2874, + "pv_b_forecast_w": 795, + "load_baseline_w": 482, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 15015.2, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 33, + "interval_start": "2026-06-09T06:15:00+00:00", + "buy_price": 4.951275, + "sell_price": 3.07125, + "is_predicted_price": false, + "pv_a_forecast_w": 3160, + "pv_b_forecast_w": 2113, + "load_baseline_w": 482, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 15292.1, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 34, + "interval_start": "2026-06-09T06:30:00+00:00", + "buy_price": 4.824001, + "sell_price": 2.97475, + "is_predicted_price": false, + "pv_a_forecast_w": 3298, + "pv_b_forecast_w": 2528, + "load_baseline_w": 482, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 15569.0, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 35, + "interval_start": "2026-06-09T06:45:00+00:00", + "buy_price": 4.158945, + "sell_price": 2.4705, + "is_predicted_price": false, + "pv_a_forecast_w": 4254, + "pv_b_forecast_w": 3499, + "load_baseline_w": 482, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 15845.9, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 36, + "interval_start": "2026-06-09T07:00:00+00:00", + "buy_price": 5.593479, + "sell_price": 3.076, + "is_predicted_price": false, + "pv_a_forecast_w": 4106, + "pv_b_forecast_w": 3323, + "load_baseline_w": 466, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 16122.8, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 37, + "interval_start": "2026-06-09T07:15:00+00:00", + "buy_price": 4.98085, + "sell_price": 2.6115, + "is_predicted_price": false, + "pv_a_forecast_w": 4896, + "pv_b_forecast_w": 4099, + "load_baseline_w": 466, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 16399.7, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 38, + "interval_start": "2026-06-09T07:30:00+00:00", + "buy_price": 4.754988, + "sell_price": 2.44025, + "is_predicted_price": false, + "pv_a_forecast_w": 5119, + "pv_b_forecast_w": 4326, + "load_baseline_w": 466, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 16676.6, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 39, + "interval_start": "2026-06-09T07:45:00+00:00", + "buy_price": 4.266666, + "sell_price": 2.07, + "is_predicted_price": false, + "pv_a_forecast_w": 5548, + "pv_b_forecast_w": 4809, + "load_baseline_w": 466, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 16953.5, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 40, + "interval_start": "2026-06-09T08:00:00+00:00", + "buy_price": 4.055412, + "sell_price": 2.392, + "is_predicted_price": false, + "pv_a_forecast_w": 4056, + "pv_b_forecast_w": 3389, + "load_baseline_w": 875, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 17230.4, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 41, + "interval_start": "2026-06-09T08:15:00+00:00", + "buy_price": 3.561813, + "sell_price": 2.01775, + "is_predicted_price": false, + "pv_a_forecast_w": 3966, + "pv_b_forecast_w": 3358, + "load_baseline_w": 875, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 17507.3, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 42, + "interval_start": "2026-06-09T08:30:00+00:00", + "buy_price": 3.324411, + "sell_price": 1.83775, + "is_predicted_price": false, + "pv_a_forecast_w": 5086, + "pv_b_forecast_w": 4469, + "load_baseline_w": 875, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 17784.2, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 21375.0, + "charge_layer": "grid_am", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 43, + "interval_start": "2026-06-09T08:45:00+00:00", + "buy_price": 2.815646, + "sell_price": 1.452, + "is_predicted_price": false, + "pv_a_forecast_w": 4456, + "pv_b_forecast_w": 3986, + "load_baseline_w": 875, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 18061.1, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 12825.0, + "charge_layer": "grid_am", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 44, + "interval_start": "2026-06-09T09:00:00+00:00", + "buy_price": 3.458939, + "sell_price": 1.93975, + "is_predicted_price": false, + "pv_a_forecast_w": 5199, + "pv_b_forecast_w": 4638, + "load_baseline_w": 1174, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 18338.0, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 25650.0, + "charge_layer": "grid_am", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 45, + "interval_start": "2026-06-09T09:15:00+00:00", + "buy_price": 2.854883, + "sell_price": 1.48175, + "is_predicted_price": false, + "pv_a_forecast_w": 5772, + "pv_b_forecast_w": 5106, + "load_baseline_w": 1174, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 18614.9, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 17100.0, + "charge_layer": "grid_am", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 46, + "interval_start": "2026-06-09T09:30:00+00:00", + "buy_price": 2.512299, + "sell_price": 1.222, + "is_predicted_price": false, + "pv_a_forecast_w": 6825, + "pv_b_forecast_w": 6162, + "load_baseline_w": 1174, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 18891.8, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 8550.0, + "charge_layer": "grid_am", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 47, + "interval_start": "2026-06-09T09:45:00+00:00", + "buy_price": 1.949129, + "sell_price": 0.795, + "is_predicted_price": false, + "pv_a_forecast_w": 6442, + "pv_b_forecast_w": 5816, + "load_baseline_w": 1174, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 19168.7, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 4275.0, + "charge_layer": "grid_am", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 48, + "interval_start": "2026-06-09T10:00:00+00:00", + "buy_price": 2.960295, + "sell_price": 1.0795, + "is_predicted_price": false, + "pv_a_forecast_w": 6399, + "pv_b_forecast_w": 5760, + "load_baseline_w": 2158, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 19445.6, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 49, + "interval_start": "2026-06-09T10:15:00+00:00", + "buy_price": 2.194674, + "sell_price": 0.499, + "is_predicted_price": false, + "pv_a_forecast_w": 5795, + "pv_b_forecast_w": 4837, + "load_baseline_w": 2158, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 19722.5, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 50, + "interval_start": "2026-06-09T10:30:00+00:00", + "buy_price": 2.07927, + "sell_price": 0.4115, + "is_predicted_price": false, + "pv_a_forecast_w": 6659, + "pv_b_forecast_w": 6045, + "load_baseline_w": 2158, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 19999.4, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 21375.0, + "charge_layer": "grid_pm", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 51, + "interval_start": "2026-06-09T10:45:00+00:00", + "buy_price": 2.459773, + "sell_price": 0.7, + "is_predicted_price": false, + "pv_a_forecast_w": 7272, + "pv_b_forecast_w": 6574, + "load_baseline_w": 2158, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 20276.3, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 52, + "interval_start": "2026-06-09T11:00:00+00:00", + "buy_price": 2.153558, + "sell_price": 0.95, + "is_predicted_price": false, + "pv_a_forecast_w": 7619, + "pv_b_forecast_w": 6929, + "load_baseline_w": 3326, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 20553.2, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 25650.0, + "charge_layer": "grid_pm", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 53, + "interval_start": "2026-06-09T11:15:00+00:00", + "buy_price": 2.224779, + "sell_price": 1.004, + "is_predicted_price": false, + "pv_a_forecast_w": 6878, + "pv_b_forecast_w": 6262, + "load_baseline_w": 3326, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 20830.1, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 54, + "interval_start": "2026-06-09T11:30:00+00:00", + "buy_price": 1.70711, + "sell_price": 0.6115, + "is_predicted_price": false, + "pv_a_forecast_w": 3174, + "pv_b_forecast_w": 2657, + "load_baseline_w": 3326, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 21107.0, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 8550.0, + "charge_layer": "grid_pm", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 55, + "interval_start": "2026-06-09T11:45:00+00:00", + "buy_price": 1.988696, + "sell_price": 0.825, + "is_predicted_price": false, + "pv_a_forecast_w": 2377, + "pv_b_forecast_w": 1893, + "load_baseline_w": 3326, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 21383.9, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.170648, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 17100.0, + "charge_layer": "grid_pm", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 56, + "interval_start": "2026-06-09T12:00:00+00:00", + "buy_price": 1.170648, + "sell_price": 0.20475, + "is_predicted_price": false, + "pv_a_forecast_w": 2192, + "pv_b_forecast_w": 1782, + "load_baseline_w": 3269, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 21660.8, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.806358, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 4275.0, + "charge_layer": "grid_pm", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 57, + "interval_start": "2026-06-09T12:15:00+00:00", + "buy_price": 2.34282, + "sell_price": 1.0935, + "is_predicted_price": false, + "pv_a_forecast_w": 2869, + "pv_b_forecast_w": 2460, + "load_baseline_w": 3269, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 21937.7, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.806358, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 58, + "interval_start": "2026-06-09T12:30:00+00:00", + "buy_price": 2.58319, + "sell_price": 1.27575, + "is_predicted_price": false, + "pv_a_forecast_w": 3790, + "pv_b_forecast_w": 3372, + "load_baseline_w": 3269, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 22214.6, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.806358, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 59, + "interval_start": "2026-06-09T12:45:00+00:00", + "buy_price": 2.648146, + "sell_price": 1.325, + "is_predicted_price": false, + "pv_a_forecast_w": 1629, + "pv_b_forecast_w": 1228, + "load_baseline_w": 3269, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 22491.5, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 1.806358, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 60, + "interval_start": "2026-06-09T13:00:00+00:00", + "buy_price": 1.806358, + "sell_price": 0.68675, + "is_predicted_price": false, + "pv_a_forecast_w": 2948, + "pv_b_forecast_w": 2647, + "load_baseline_w": 2810, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 22768.4, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.559679, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 4275.0, + "charge_cum_wh": 12825.0, + "charge_layer": "grid_pm", + "charge_slot_reason": "grid_layer_b" + }, + { + "slot_ord": 61, + "interval_start": "2026-06-09T13:15:00+00:00", + "buy_price": 2.813008, + "sell_price": 1.45, + "is_predicted_price": false, + "pv_a_forecast_w": 2982, + "pv_b_forecast_w": 2497, + "load_baseline_w": 2810, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 23045.3, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.559679, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 62, + "interval_start": "2026-06-09T13:30:00+00:00", + "buy_price": 2.977871, + "sell_price": 1.575, + "is_predicted_price": false, + "pv_a_forecast_w": 1675, + "pv_b_forecast_w": 1357, + "load_baseline_w": 2810, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 23322.2, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.559679, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 63, + "interval_start": "2026-06-09T13:45:00+00:00", + "buy_price": 4.296441, + "sell_price": 2.57475, + "is_predicted_price": false, + "pv_a_forecast_w": 67, + "pv_b_forecast_w": 0, + "load_baseline_w": 2810, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 23599.1, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.559679, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 64, + "interval_start": "2026-06-09T14:00:00+00:00", + "buy_price": 2.559679, + "sell_price": 0.77575, + "is_predicted_price": false, + "pv_a_forecast_w": 1779, + "pv_b_forecast_w": 1175, + "load_baseline_w": 2300, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": true, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 23876.0, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.639573, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": "evening_arbitrage_unlock", + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 65, + "interval_start": "2026-06-09T14:15:00+00:00", + "buy_price": 3.646453, + "sell_price": 1.59975, + "is_predicted_price": false, + "pv_a_forecast_w": 2799, + "pv_b_forecast_w": 2048, + "load_baseline_w": 2300, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 24152.9, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.639573, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 66, + "interval_start": "2026-06-09T14:30:00+00:00", + "buy_price": 4.38174, + "sell_price": 2.15725, + "is_predicted_price": false, + "pv_a_forecast_w": 188, + "pv_b_forecast_w": 0, + "load_baseline_w": 2300, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 24429.8, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.639573, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 67, + "interval_start": "2026-06-09T14:45:00+00:00", + "buy_price": 5.365639, + "sell_price": 2.90325, + "is_predicted_price": false, + "pv_a_forecast_w": 218, + "pv_b_forecast_w": 0, + "load_baseline_w": 2300, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 24706.7, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.639573, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 68, + "interval_start": "2026-06-09T15:00:00+00:00", + "buy_price": 2.639573, + "sell_price": 1.3185, + "is_predicted_price": false, + "pv_a_forecast_w": 1495, + "pv_b_forecast_w": 829, + "load_baseline_w": 1716, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 24983.6, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 69, + "interval_start": "2026-06-09T15:15:00+00:00", + "buy_price": 3.930776, + "sell_price": 2.2975, + "is_predicted_price": false, + "pv_a_forecast_w": 1461, + "pv_b_forecast_w": 825, + "load_baseline_w": 1716, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 25260.5, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 70, + "interval_start": "2026-06-09T15:30:00+00:00", + "buy_price": 4.469876, + "sell_price": 2.70625, + "is_predicted_price": false, + "pv_a_forecast_w": 1304, + "pv_b_forecast_w": 896, + "load_baseline_w": 1716, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 25537.4, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 71, + "interval_start": "2026-06-09T15:45:00+00:00", + "buy_price": 4.455698, + "sell_price": 2.6955, + "is_predicted_price": false, + "pv_a_forecast_w": 1266, + "pv_b_forecast_w": 929, + "load_baseline_w": 1716, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 25814.3, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 72, + "interval_start": "2026-06-09T16:00:00+00:00", + "buy_price": 4.100914, + "sell_price": 2.4265, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1217, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 26091.2, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 73, + "interval_start": "2026-06-09T16:15:00+00:00", + "buy_price": 4.232474, + "sell_price": 2.52625, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1217, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 26368.1, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 74, + "interval_start": "2026-06-09T16:30:00+00:00", + "buy_price": 4.811801, + "sell_price": 2.9655, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1217, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 26645.0, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 75, + "interval_start": "2026-06-09T16:45:00+00:00", + "buy_price": 5.181752, + "sell_price": 3.246, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1217, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 26921.9, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 76, + "interval_start": "2026-06-09T17:00:00+00:00", + "buy_price": 4.650895, + "sell_price": 2.8435, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1403, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 27198.8, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 77, + "interval_start": "2026-06-09T17:15:00+00:00", + "buy_price": 5.123721, + "sell_price": 3.202, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1403, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 27475.7, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 78, + "interval_start": "2026-06-09T17:30:00+00:00", + "buy_price": 5.174498, + "sell_price": 3.2405, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1403, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 27752.6, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 79, + "interval_start": "2026-06-09T17:45:00+00:00", + "buy_price": 5.129656, + "sell_price": 3.2065, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1403, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 28029.5, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 80, + "interval_start": "2026-06-09T18:00:00+00:00", + "buy_price": 6.043224, + "sell_price": 3.417, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1681, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.085099, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 81, + "interval_start": "2026-06-09T18:15:00+00:00", + "buy_price": 6.085099, + "sell_price": 3.44875, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1681, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.044543, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 82, + "interval_start": "2026-06-09T18:30:00+00:00", + "buy_price": 5.971674, + "sell_price": 3.36275, + "is_predicted_price": false, + "pv_a_forecast_w": 28, + "pv_b_forecast_w": 30, + "load_baseline_w": 1681, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 6.044543, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 83, + "interval_start": "2026-06-09T18:45:00+00:00", + "buy_price": 6.044543, + "sell_price": 3.418, + "is_predicted_price": false, + "pv_a_forecast_w": 10, + "pv_b_forecast_w": 9, + "load_baseline_w": 1681, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.58006, + "future_sell_opportunity_czk_kwh": 3.548, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 84, + "interval_start": "2026-06-09T19:00:00+00:00", + "buy_price": 5.58006, + "sell_price": 3.548, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1977, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.535218, + "future_sell_opportunity_czk_kwh": 3.514, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 85, + "interval_start": "2026-06-09T19:15:00+00:00", + "buy_price": 5.535218, + "sell_price": 3.514, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1977, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.485429, + "future_sell_opportunity_czk_kwh": 3.47625, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 86, + "interval_start": "2026-06-09T19:30:00+00:00", + "buy_price": 5.485429, + "sell_price": 3.47625, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1977, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.4515, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 87, + "interval_start": "2026-06-09T19:45:00+00:00", + "buy_price": 5.309686, + "sell_price": 3.343, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1977, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.4515, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 88, + "interval_start": "2026-06-09T20:00:00+00:00", + "buy_price": 5.452786, + "sell_price": 3.4515, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1397, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.33475, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 89, + "interval_start": "2026-06-09T20:15:00+00:00", + "buy_price": 5.298805, + "sell_price": 3.33475, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1397, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 90, + "interval_start": "2026-06-09T20:30:00+00:00", + "buy_price": 5.083824, + "sell_price": 3.17175, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1397, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 91, + "interval_start": "2026-06-09T20:45:00+00:00", + "buy_price": 4.665403, + "sell_price": 2.8545, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 1397, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 92, + "interval_start": "2026-06-09T21:00:00+00:00", + "buy_price": 5.165266, + "sell_price": 3.2335, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 969, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 93, + "interval_start": "2026-06-09T21:15:00+00:00", + "buy_price": 4.82499, + "sell_price": 2.9755, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 969, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 94, + "interval_start": "2026-06-09T21:30:00+00:00", + "buy_price": 4.665073, + "sell_price": 2.85425, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 969, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 95, + "interval_start": "2026-06-09T21:45:00+00:00", + "buy_price": 4.406899, + "sell_price": 2.6585, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 969, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 96, + "interval_start": "2026-06-09T22:00:00+00:00", + "buy_price": 4.915335, + "sell_price": 3.044, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 623, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 97, + "interval_start": "2026-06-09T22:15:00+00:00", + "buy_price": 4.80092, + "sell_price": 2.95725, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 623, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 98, + "interval_start": "2026-06-09T22:30:00+00:00", + "buy_price": 4.727391, + "sell_price": 2.9015, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 623, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 99, + "interval_start": "2026-06-09T22:45:00+00:00", + "buy_price": 4.599128, + "sell_price": 2.80425, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 623, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 100, + "interval_start": "2026-06-09T23:00:00+00:00", + "buy_price": 4.688484, + "sell_price": 2.872, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 601, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 101, + "interval_start": "2026-06-09T23:15:00+00:00", + "buy_price": 4.527578, + "sell_price": 2.75, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 601, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 102, + "interval_start": "2026-06-09T23:30:00+00:00", + "buy_price": 4.418109, + "sell_price": 2.667, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 601, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 103, + "interval_start": "2026-06-09T23:45:00+00:00", + "buy_price": 4.266766, + "sell_price": 2.55225, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 601, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 104, + "interval_start": "2026-06-10T00:00:00+00:00", + "buy_price": 4.399315, + "sell_price": 2.65275, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 639, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 105, + "interval_start": "2026-06-10T00:15:00+00:00", + "buy_price": 4.271052, + "sell_price": 2.5555, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 639, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 106, + "interval_start": "2026-06-10T00:30:00+00:00", + "buy_price": 4.322489, + "sell_price": 2.5945, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 639, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 107, + "interval_start": "2026-06-10T00:45:00+00:00", + "buy_price": 4.288527, + "sell_price": 2.56875, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 639, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 108, + "interval_start": "2026-06-10T01:00:00+00:00", + "buy_price": 4.382499, + "sell_price": 2.64, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 612, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 109, + "interval_start": "2026-06-10T01:15:00+00:00", + "buy_price": 4.373926, + "sell_price": 2.6335, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 612, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 110, + "interval_start": "2026-06-10T01:30:00+00:00", + "buy_price": 4.36931, + "sell_price": 2.63, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 612, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 111, + "interval_start": "2026-06-10T01:45:00+00:00", + "buy_price": 4.415472, + "sell_price": 2.665, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 612, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 112, + "interval_start": "2026-06-10T02:00:00+00:00", + "buy_price": 4.299738, + "sell_price": 2.57725, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 643, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 113, + "interval_start": "2026-06-10T02:15:00+00:00", + "buy_price": 4.387775, + "sell_price": 2.644, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 643, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 114, + "interval_start": "2026-06-10T02:30:00+00:00", + "buy_price": 4.504827, + "sell_price": 2.73275, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 643, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 115, + "interval_start": "2026-06-10T02:45:00+00:00", + "buy_price": 4.641003, + "sell_price": 2.836, + "is_predicted_price": false, + "pv_a_forecast_w": 0, + "pv_b_forecast_w": 0, + "load_baseline_w": 643, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 116, + "interval_start": "2026-06-10T03:00:00+00:00", + "buy_price": 4.424704, + "sell_price": 2.672, + "is_predicted_price": false, + "pv_a_forecast_w": 10, + "pv_b_forecast_w": 9, + "load_baseline_w": 639, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 117, + "interval_start": "2026-06-10T03:15:00+00:00", + "buy_price": 4.528897, + "sell_price": 2.751, + "is_predicted_price": false, + "pv_a_forecast_w": 28, + "pv_b_forecast_w": 30, + "load_baseline_w": 639, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 118, + "interval_start": "2026-06-10T03:30:00+00:00", + "buy_price": 4.576048, + "sell_price": 2.78675, + "is_predicted_price": false, + "pv_a_forecast_w": 158, + "pv_b_forecast_w": 60, + "load_baseline_w": 639, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 119, + "interval_start": "2026-06-10T03:45:00+00:00", + "buy_price": 4.847411, + "sell_price": 2.9925, + "is_predicted_price": false, + "pv_a_forecast_w": 26, + "pv_b_forecast_w": 0, + "load_baseline_w": 639, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": null, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 120, + "interval_start": "2026-06-10T04:00:00+00:00", + "buy_price": 4.895551, + "sell_price": 3.029, + "is_predicted_price": false, + "pv_a_forecast_w": 93, + "pv_b_forecast_w": 0, + "load_baseline_w": 830, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 12800.0, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 121, + "interval_start": "2026-06-10T04:15:00+00:00", + "buy_price": 5.087781, + "sell_price": 3.17475, + "is_predicted_price": false, + "pv_a_forecast_w": 251, + "pv_b_forecast_w": 0, + "load_baseline_w": 830, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 13076.9, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 122, + "interval_start": "2026-06-10T04:30:00+00:00", + "buy_price": 5.071295, + "sell_price": 3.16225, + "is_predicted_price": false, + "pv_a_forecast_w": 378, + "pv_b_forecast_w": 0, + "load_baseline_w": 830, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 13353.8, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 123, + "interval_start": "2026-06-10T04:45:00+00:00", + "buy_price": 4.956221, + "sell_price": 3.075, + "is_predicted_price": false, + "pv_a_forecast_w": 623, + "pv_b_forecast_w": 0, + "load_baseline_w": 830, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 13630.7, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 124, + "interval_start": "2026-06-10T05:00:00+00:00", + "buy_price": 5.271108, + "sell_price": 3.31375, + "is_predicted_price": false, + "pv_a_forecast_w": 507, + "pv_b_forecast_w": 0, + "load_baseline_w": 591, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 13907.6, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 125, + "interval_start": "2026-06-10T05:15:00+00:00", + "buy_price": 5.187028, + "sell_price": 3.25, + "is_predicted_price": false, + "pv_a_forecast_w": 747, + "pv_b_forecast_w": 0, + "load_baseline_w": 591, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 14184.5, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 126, + "interval_start": "2026-06-10T05:30:00+00:00", + "buy_price": 5.085143, + "sell_price": 3.17275, + "is_predicted_price": false, + "pv_a_forecast_w": 721, + "pv_b_forecast_w": 0, + "load_baseline_w": 591, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 14461.4, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 127, + "interval_start": "2026-06-10T05:45:00+00:00", + "buy_price": 5.0525, + "sell_price": 3.148, + "is_predicted_price": false, + "pv_a_forecast_w": 1059, + "pv_b_forecast_w": 0, + "load_baseline_w": 591, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 14738.3, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.3255, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 128, + "interval_start": "2026-06-10T06:00:00+00:00", + "buy_price": 5.286605, + "sell_price": 3.3255, + "is_predicted_price": false, + "pv_a_forecast_w": 1368, + "pv_b_forecast_w": 0, + "load_baseline_w": 536, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": true, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 15015.2, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 3.1415, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 129, + "interval_start": "2026-06-10T06:15:00+00:00", + "buy_price": 5.043927, + "sell_price": 3.1415, + "is_predicted_price": false, + "pv_a_forecast_w": 1118, + "pv_b_forecast_w": 0, + "load_baseline_w": 536, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 15292.1, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 2.99225, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 130, + "interval_start": "2026-06-10T06:30:00+00:00", + "buy_price": 4.847082, + "sell_price": 2.99225, + "is_predicted_price": false, + "pv_a_forecast_w": 1050, + "pv_b_forecast_w": 176, + "load_baseline_w": 536, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 15569.0, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 2.97975, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 131, + "interval_start": "2026-06-10T06:45:00+00:00", + "buy_price": 4.183345, + "sell_price": 2.489, + "is_predicted_price": false, + "pv_a_forecast_w": 1404, + "pv_b_forecast_w": 536, + "load_baseline_w": 536, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 15845.9, + "future_avoided_buy_czk_kwh": 5.466535, + "future_sell_opportunity_czk_kwh": 2.97975, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 132, + "interval_start": "2026-06-10T07:00:00+00:00", + "buy_price": 5.466535, + "sell_price": 2.97975, + "is_predicted_price": false, + "pv_a_forecast_w": 1178, + "pv_b_forecast_w": 316, + "load_baseline_w": 503, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 16122.8, + "future_avoided_buy_czk_kwh": 4.940953, + "future_sell_opportunity_czk_kwh": 2.58125, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 133, + "interval_start": "2026-06-10T07:15:00+00:00", + "buy_price": 4.940953, + "sell_price": 2.58125, + "is_predicted_price": false, + "pv_a_forecast_w": 802, + "pv_b_forecast_w": 0, + "load_baseline_w": 503, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 16399.7, + "future_avoided_buy_czk_kwh": 4.474063, + "future_sell_opportunity_czk_kwh": 2.3435, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 134, + "interval_start": "2026-06-10T07:30:00+00:00", + "buy_price": 4.474063, + "sell_price": 2.22725, + "is_predicted_price": false, + "pv_a_forecast_w": 643, + "pv_b_forecast_w": 0, + "load_baseline_w": 503, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 16676.6, + "future_avoided_buy_czk_kwh": 4.331951, + "future_sell_opportunity_czk_kwh": 2.3435, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 135, + "interval_start": "2026-06-10T07:45:00+00:00", + "buy_price": 4.331951, + "sell_price": 2.1195, + "is_predicted_price": false, + "pv_a_forecast_w": 724, + "pv_b_forecast_w": 5, + "load_baseline_w": 503, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 16953.5, + "future_avoided_buy_czk_kwh": 3.991445, + "future_sell_opportunity_czk_kwh": 2.3435, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 136, + "interval_start": "2026-06-10T08:00:00+00:00", + "buy_price": 3.991445, + "sell_price": 2.3435, + "is_predicted_price": false, + "pv_a_forecast_w": 666, + "pv_b_forecast_w": 7, + "load_baseline_w": 506, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 17230.4, + "future_avoided_buy_czk_kwh": 3.609953, + "future_sell_opportunity_czk_kwh": 2.05425, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 137, + "interval_start": "2026-06-10T08:15:00+00:00", + "buy_price": 3.609953, + "sell_price": 2.05425, + "is_predicted_price": false, + "pv_a_forecast_w": 410, + "pv_b_forecast_w": 0, + "load_baseline_w": 506, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 17507.3, + "future_avoided_buy_czk_kwh": 3.561154, + "future_sell_opportunity_czk_kwh": 2.01725, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 138, + "interval_start": "2026-06-10T08:30:00+00:00", + "buy_price": 3.561154, + "sell_price": 2.01725, + "is_predicted_price": false, + "pv_a_forecast_w": 194, + "pv_b_forecast_w": 0, + "load_baseline_w": 506, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 17784.2, + "future_avoided_buy_czk_kwh": 3.495209, + "future_sell_opportunity_czk_kwh": 1.96725, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 139, + "interval_start": "2026-06-10T08:45:00+00:00", + "buy_price": 3.12262, + "sell_price": 1.68475, + "is_predicted_price": false, + "pv_a_forecast_w": 954, + "pv_b_forecast_w": 510, + "load_baseline_w": 506, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 18061.1, + "future_avoided_buy_czk_kwh": 3.495209, + "future_sell_opportunity_czk_kwh": 1.96725, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 140, + "interval_start": "2026-06-10T09:00:00+00:00", + "buy_price": 3.495209, + "sell_price": 1.96725, + "is_predicted_price": false, + "pv_a_forecast_w": 284, + "pv_b_forecast_w": 0, + "load_baseline_w": 535, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 18338.0, + "future_avoided_buy_czk_kwh": 3.20637, + "future_sell_opportunity_czk_kwh": 1.74825, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 141, + "interval_start": "2026-06-10T09:15:00+00:00", + "buy_price": 3.20637, + "sell_price": 1.74825, + "is_predicted_price": false, + "pv_a_forecast_w": 1308, + "pv_b_forecast_w": 748, + "load_baseline_w": 535, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 18614.9, + "future_avoided_buy_czk_kwh": 2.977871, + "future_sell_opportunity_czk_kwh": 1.575, + "is_daytime_pv_surplus_slot": true, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 142, + "interval_start": "2026-06-10T09:30:00+00:00", + "buy_price": 2.977871, + "sell_price": 1.575, + "is_predicted_price": false, + "pv_a_forecast_w": 324, + "pv_b_forecast_w": 0, + "load_baseline_w": 535, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 18891.8, + "future_avoided_buy_czk_kwh": 2.766847, + "future_sell_opportunity_czk_kwh": 1.415, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": 2.766847, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + }, + { + "slot_ord": 143, + "interval_start": "2026-06-10T09:45:00+00:00", + "buy_price": 2.766847, + "sell_price": 1.415, + "is_predicted_price": false, + "pv_a_forecast_w": 401, + "pv_b_forecast_w": 4, + "load_baseline_w": 535, + "ev1_connected": false, + "ev2_connected": false, + "allow_charge": false, + "allow_discharge_export": false, + "night_baseload_target_wh": 12922.0, + "night_baseload_buffer_wh": 2584.4, + "safety_soc_target_wh": 19168.7, + "future_avoided_buy_czk_kwh": 2.766847, + "future_sell_opportunity_czk_kwh": 1.415, + "is_daytime_pv_surplus_slot": false, + "charge_acquisition_buy_czk_kwh": 1.170648, + "charge_acquisition_cutoff_at": "2026-06-08T22:00:00+00:00", + "min_buy_before_cutoff_czk_kwh": null, + "pv_charge_wh_ahead": 0.0, + "neg_buy_wh_ahead": 0.0, + "grid_charge_suppressed_reason": null, + "charge_target_wh": 46720.0, + "pre_window_wh": 0.0, + "in_window_wh": 0.0, + "charge_slot_wh": 0.0, + "charge_cum_wh": null, + "charge_layer": null, + "charge_slot_reason": null + } + ] +} diff --git a/backend/tests/golden/snapshots/BA81_2026-06-09_normal.json b/backend/tests/golden/snapshots/BA81_2026-06-09_normal.json new file mode 100644 index 0000000..67bdc9b --- /dev/null +++ b/backend/tests/golden/snapshots/BA81_2026-06-09_normal.json @@ -0,0 +1,3181 @@ +{ + "totals": { + "slots": 144, + "expected_cost_czk": -171.479, + "cashflow_czk": -171.479, + "penalty_czk": 20.604, + "grid_import_slots": 0, + "grid_export_slots": 79, + "curtail_slots": 0 + }, + "slots": [ + { + "interval_start": "2026-06-08T22:00:00+00:00", + "battery_setpoint_w": -215, + "battery_soc_target": 24.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T22:15:00+00:00", + "battery_setpoint_w": -215, + "battery_soc_target": 24.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T22:30:00+00:00", + "battery_setpoint_w": -215, + "battery_soc_target": 23.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T22:45:00+00:00", + "battery_setpoint_w": -215, + "battery_soc_target": 23.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T23:00:00+00:00", + "battery_setpoint_w": -140, + "battery_soc_target": 22.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T23:15:00+00:00", + "battery_setpoint_w": -140, + "battery_soc_target": 22.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T23:30:00+00:00", + "battery_setpoint_w": -140, + "battery_soc_target": 22.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T23:45:00+00:00", + "battery_setpoint_w": -140, + "battery_soc_target": 22.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T00:00:00+00:00", + "battery_setpoint_w": -114, + "battery_soc_target": 21.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T00:15:00+00:00", + "battery_setpoint_w": -114, + "battery_soc_target": 21.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T00:30:00+00:00", + "battery_setpoint_w": -114, + "battery_soc_target": 21.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T00:45:00+00:00", + "battery_setpoint_w": -114, + "battery_soc_target": 21.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T01:00:00+00:00", + "battery_setpoint_w": -114, + "battery_soc_target": 20.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T01:15:00+00:00", + "battery_setpoint_w": -114, + "battery_soc_target": 20.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T01:30:00+00:00", + "battery_setpoint_w": -114, + "battery_soc_target": 20.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T01:45:00+00:00", + "battery_setpoint_w": -114, + "battery_soc_target": 20.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T02:00:00+00:00", + "battery_setpoint_w": -113, + "battery_soc_target": 19.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T02:15:00+00:00", + "battery_setpoint_w": -113, + "battery_soc_target": 19.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T02:30:00+00:00", + "battery_setpoint_w": -113, + "battery_soc_target": 19.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T02:45:00+00:00", + "battery_setpoint_w": -113, + "battery_soc_target": 19.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T03:00:00+00:00", + "battery_setpoint_w": 86, + "battery_soc_target": 19.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T03:15:00+00:00", + "battery_setpoint_w": 290, + "battery_soc_target": 19.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T03:30:00+00:00", + "battery_setpoint_w": 354, + "battery_soc_target": 20.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T03:45:00+00:00", + "battery_setpoint_w": 969, + "battery_soc_target": 22.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T04:00:00+00:00", + "battery_setpoint_w": 1726, + "battery_soc_target": 25.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 2.0603, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T04:15:00+00:00", + "battery_setpoint_w": 1982, + "battery_soc_target": 29.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.5038, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T04:30:00+00:00", + "battery_setpoint_w": 811, + "battery_soc_target": 31.0, + "grid_setpoint_w": -1478, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.1628, + "cashflow_czk": -1.1628, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T04:45:00+00:00", + "battery_setpoint_w": 1004, + "battery_soc_target": 32.9, + "grid_setpoint_w": -1664, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.2902, + "cashflow_czk": -1.2902, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T05:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 32.9, + "grid_setpoint_w": -3241, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.7498, + "cashflow_czk": -2.7498, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T05:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 32.9, + "grid_setpoint_w": -4180, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.3312, + "cashflow_czk": -3.3312, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T05:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 32.9, + "grid_setpoint_w": -5101, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -4.0256, + "cashflow_czk": -4.0256, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T05:45:00+00:00", + "battery_setpoint_w": 753, + "battery_soc_target": 34.3, + "grid_setpoint_w": -3407, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.539, + "cashflow_czk": -2.539, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T06:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 34.3, + "grid_setpoint_w": -5113, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -4.1514, + "cashflow_czk": -4.1514, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T06:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 34.3, + "grid_setpoint_w": -6009, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -4.6138, + "cashflow_czk": -4.6138, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T06:30:00+00:00", + "battery_setpoint_w": 251, + "battery_soc_target": 34.8, + "grid_setpoint_w": -5582, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -4.1513, + "cashflow_czk": -4.1513, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T06:45:00+00:00", + "battery_setpoint_w": 753, + "battery_soc_target": 36.2, + "grid_setpoint_w": -7675, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -4.7404, + "cashflow_czk": -4.7404, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T07:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 36.2, + "grid_setpoint_w": -7838, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -6.0274, + "cashflow_czk": -6.0274, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T07:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 36.2, + "grid_setpoint_w": -9480, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -6.1893, + "cashflow_czk": -6.1893, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T07:30:00+00:00", + "battery_setpoint_w": 251, + "battery_soc_target": 36.7, + "grid_setpoint_w": -9028, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -5.5077, + "cashflow_czk": -5.5077, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T07:45:00+00:00", + "battery_setpoint_w": 502, + "battery_soc_target": 37.6, + "grid_setpoint_w": -9535, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -4.9344, + "cashflow_czk": -4.9344, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T08:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 37.6, + "grid_setpoint_w": -6588, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.9396, + "cashflow_czk": -3.9396, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T08:15:00+00:00", + "battery_setpoint_w": 251, + "battery_soc_target": 38.1, + "grid_setpoint_w": -6162, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.1084, + "cashflow_czk": -3.1084, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T08:30:00+00:00", + "battery_setpoint_w": 251, + "battery_soc_target": 38.6, + "grid_setpoint_w": -8175, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.7559, + "cashflow_czk": -3.7559, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T08:45:00+00:00", + "battery_setpoint_w": 753, + "battery_soc_target": 40.0, + "grid_setpoint_w": -6583, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.3897, + "cashflow_czk": -2.3897, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T09:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 40.0, + "grid_setpoint_w": -8157, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.9556, + "cashflow_czk": -3.9556, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T09:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 40.0, + "grid_setpoint_w": -9079, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.3632, + "cashflow_czk": -3.3632, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T09:30:00+00:00", + "battery_setpoint_w": 251, + "battery_soc_target": 40.5, + "grid_setpoint_w": -10398, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.1766, + "cashflow_czk": -3.1766, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T09:45:00+00:00", + "battery_setpoint_w": 502, + "battery_soc_target": 41.4, + "grid_setpoint_w": -9193, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.8271, + "cashflow_czk": -1.8271, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T10:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 41.4, + "grid_setpoint_w": -9682, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.6129, + "cashflow_czk": -2.6129, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T10:15:00+00:00", + "battery_setpoint_w": 6250, + "battery_soc_target": 53.3, + "grid_setpoint_w": -2333, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.291, + "cashflow_czk": -0.291, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T10:30:00+00:00", + "battery_setpoint_w": 6250, + "battery_soc_target": 65.2, + "grid_setpoint_w": -3653, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.3758, + "cashflow_czk": -0.3758, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T10:45:00+00:00", + "battery_setpoint_w": 5352, + "battery_soc_target": 75.4, + "grid_setpoint_w": -5039, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.8818, + "cashflow_czk": -0.8818, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T11:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.4, + "grid_setpoint_w": -10672, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.5346, + "cashflow_czk": -2.5346, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T11:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.4, + "grid_setpoint_w": -9597, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.4088, + "cashflow_czk": -2.4088, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T11:30:00+00:00", + "battery_setpoint_w": 4567, + "battery_soc_target": 84.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T11:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 84.0, + "grid_setpoint_w": -3684, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.7598, + "cashflow_czk": -0.7598, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T12:00:00+00:00", + "battery_setpoint_w": 3631, + "battery_soc_target": 90.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T12:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 90.9, + "grid_setpoint_w": -4479, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.2244, + "cashflow_czk": -1.2244, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T12:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 90.9, + "grid_setpoint_w": -6122, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.9525, + "cashflow_czk": -1.9525, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T12:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 90.9, + "grid_setpoint_w": -2829, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.9371, + "cashflow_czk": -0.9371, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T13:00:00+00:00", + "battery_setpoint_w": 4770, + "battery_soc_target": 100.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T13:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -5154, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.8683, + "cashflow_czk": -1.8683, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T13:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -3921, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.5439, + "cashflow_czk": -1.5439, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T13:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -1869, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.2031, + "cashflow_czk": -1.2031, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T14:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -2741, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.5316, + "cashflow_czk": -0.5316, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T14:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -3469, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.3874, + "cashflow_czk": -1.3874, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T14:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -2087, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.1255, + "cashflow_czk": -1.1255, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T14:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -2307, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.6744, + "cashflow_czk": -1.6744, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T15:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -3004, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.9902, + "cashflow_czk": -0.9902, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T15:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -3336, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.9161, + "cashflow_czk": -1.9161, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T15:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -2824, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.9106, + "cashflow_czk": -1.9106, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T15:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -2773, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.8687, + "cashflow_czk": -1.8687, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T16:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -1132, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.6867, + "cashflow_czk": -0.6867, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T16:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -199, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.1257, + "cashflow_czk": -0.1257, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T16:30:00+00:00", + "battery_setpoint_w": -79, + "battery_soc_target": 99.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T16:45:00+00:00", + "battery_setpoint_w": -131, + "battery_soc_target": 99.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T17:00:00+00:00", + "battery_setpoint_w": -184, + "battery_soc_target": 99.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T17:15:00+00:00", + "battery_setpoint_w": -184, + "battery_soc_target": 98.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T17:30:00+00:00", + "battery_setpoint_w": -184, + "battery_soc_target": 98.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T17:45:00+00:00", + "battery_setpoint_w": -160, + "battery_soc_target": 98.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T18:00:00+00:00", + "battery_setpoint_w": -299, + "battery_soc_target": 97.4, + "grid_setpoint_w": -37, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0316, + "cashflow_czk": -0.0316, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T18:15:00+00:00", + "battery_setpoint_w": -299, + "battery_soc_target": 96.8, + "grid_setpoint_w": -28, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0241, + "cashflow_czk": -0.0241, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T18:30:00+00:00", + "battery_setpoint_w": -250, + "battery_soc_target": 96.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T18:45:00+00:00", + "battery_setpoint_w": -299, + "battery_soc_target": 95.6, + "grid_setpoint_w": -17, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0145, + "cashflow_czk": -0.0145, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T19:00:00+00:00", + "battery_setpoint_w": -5953, + "battery_soc_target": 83.1, + "grid_setpoint_w": -5953, + "export_limit_w": 16000, + "export_mode": "BATTERY_SELL", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -5.051, + "cashflow_czk": -5.051, + "battery_arbitrage_czk": -0.0232, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T19:15:00+00:00", + "battery_setpoint_w": -6250, + "battery_soc_target": 70.0, + "grid_setpoint_w": -5953, + "export_limit_w": 16000, + "export_mode": "BATTERY_SELL", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -5.2297, + "cashflow_czk": -5.2297, + "battery_arbitrage_czk": -0.0738, + "penalty_czk": 5.94, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T19:30:00+00:00", + "battery_setpoint_w": -6250, + "battery_soc_target": 56.8, + "grid_setpoint_w": -5953, + "export_limit_w": 16000, + "export_mode": "BATTERY_SELL", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -5.1735, + "cashflow_czk": -5.1735, + "battery_arbitrage_czk": -0.13, + "penalty_czk": 5.94, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T19:45:00+00:00", + "battery_setpoint_w": -297, + "battery_soc_target": 56.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T20:00:00+00:00", + "battery_setpoint_w": -6250, + "battery_soc_target": 43.0, + "grid_setpoint_w": -5942, + "export_limit_w": 16000, + "export_mode": "BATTERY_SELL", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -5.1272, + "cashflow_czk": -5.1272, + "battery_arbitrage_czk": -0.1665, + "penalty_czk": 6.16, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T20:15:00+00:00", + "battery_setpoint_w": -308, + "battery_soc_target": 42.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T20:30:00+00:00", + "battery_setpoint_w": -308, + "battery_soc_target": 41.7, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T20:45:00+00:00", + "battery_setpoint_w": -308, + "battery_soc_target": 41.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T21:00:00+00:00", + "battery_setpoint_w": -253, + "battery_soc_target": 40.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T21:15:00+00:00", + "battery_setpoint_w": -253, + "battery_soc_target": 40.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T21:30:00+00:00", + "battery_setpoint_w": -253, + "battery_soc_target": 39.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T21:45:00+00:00", + "battery_setpoint_w": -253, + "battery_soc_target": 38.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T22:00:00+00:00", + "battery_setpoint_w": -202, + "battery_soc_target": 38.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T22:15:00+00:00", + "battery_setpoint_w": -202, + "battery_soc_target": 38.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T22:30:00+00:00", + "battery_setpoint_w": -202, + "battery_soc_target": 37.7, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T22:45:00+00:00", + "battery_setpoint_w": -202, + "battery_soc_target": 37.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T23:00:00+00:00", + "battery_setpoint_w": -147, + "battery_soc_target": 36.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T23:15:00+00:00", + "battery_setpoint_w": -147, + "battery_soc_target": 36.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T23:30:00+00:00", + "battery_setpoint_w": -147, + "battery_soc_target": 36.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T23:45:00+00:00", + "battery_setpoint_w": -147, + "battery_soc_target": 36.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T00:00:00+00:00", + "battery_setpoint_w": -118, + "battery_soc_target": 35.7, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T00:15:00+00:00", + "battery_setpoint_w": -118, + "battery_soc_target": 35.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T00:30:00+00:00", + "battery_setpoint_w": -118, + "battery_soc_target": 35.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T00:45:00+00:00", + "battery_setpoint_w": -118, + "battery_soc_target": 35.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T01:00:00+00:00", + "battery_setpoint_w": -101, + "battery_soc_target": 34.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T01:15:00+00:00", + "battery_setpoint_w": -101, + "battery_soc_target": 34.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T01:30:00+00:00", + "battery_setpoint_w": -101, + "battery_soc_target": 34.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T01:45:00+00:00", + "battery_setpoint_w": -101, + "battery_soc_target": 34.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T02:00:00+00:00", + "battery_setpoint_w": -111, + "battery_soc_target": 33.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T02:15:00+00:00", + "battery_setpoint_w": -111, + "battery_soc_target": 33.7, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T02:30:00+00:00", + "battery_setpoint_w": -111, + "battery_soc_target": 33.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T02:45:00+00:00", + "battery_setpoint_w": -111, + "battery_soc_target": 33.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T03:00:00+00:00", + "battery_setpoint_w": 57, + "battery_soc_target": 33.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T03:15:00+00:00", + "battery_setpoint_w": 5, + "battery_soc_target": 33.3, + "grid_setpoint_w": -187, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.1284, + "cashflow_czk": -0.1284, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T03:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 33.3, + "grid_setpoint_w": -137, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0954, + "cashflow_czk": -0.0954, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T03:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 33.3, + "grid_setpoint_w": -545, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.4077, + "cashflow_czk": -0.4077, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T04:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 33.3, + "grid_setpoint_w": -1225, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.9276, + "cashflow_czk": -0.9276, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T04:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 33.3, + "grid_setpoint_w": -1295, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.0278, + "cashflow_czk": -1.0278, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T04:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 33.3, + "grid_setpoint_w": -1612, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.2744, + "cashflow_czk": -1.2744, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T04:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 33.3, + "grid_setpoint_w": -1994, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.5329, + "cashflow_czk": -1.5329, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T05:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 33.3, + "grid_setpoint_w": -1673, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.386, + "cashflow_czk": -1.386, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T05:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 33.3, + "grid_setpoint_w": -1970, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.6006, + "cashflow_czk": -1.6006, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T05:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 33.3, + "grid_setpoint_w": -2001, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.5872, + "cashflow_czk": -1.5872, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T05:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 33.3, + "grid_setpoint_w": -2413, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.899, + "cashflow_czk": -1.899, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T06:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 33.3, + "grid_setpoint_w": -2831, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.3536, + "cashflow_czk": -2.3536, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T06:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 33.3, + "grid_setpoint_w": -2995, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.3522, + "cashflow_czk": -2.3522, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T06:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 33.3, + "grid_setpoint_w": -2926, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.1888, + "cashflow_czk": -2.1888, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T06:45:00+00:00", + "battery_setpoint_w": 1004, + "battery_soc_target": 35.2, + "grid_setpoint_w": -2802, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.7438, + "cashflow_czk": -1.7438, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T07:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 35.2, + "grid_setpoint_w": -4135, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.0803, + "cashflow_czk": -3.0803, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T07:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 35.2, + "grid_setpoint_w": -4048, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.6122, + "cashflow_czk": -2.6122, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T07:30:00+00:00", + "battery_setpoint_w": 753, + "battery_soc_target": 36.7, + "grid_setpoint_w": -2958, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.6472, + "cashflow_czk": -1.6472, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T07:45:00+00:00", + "battery_setpoint_w": 251, + "battery_soc_target": 37.2, + "grid_setpoint_w": -3426, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.8154, + "cashflow_czk": -1.8154, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T08:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 37.2, + "grid_setpoint_w": -3446, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.0189, + "cashflow_czk": -2.0189, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T08:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 37.2, + "grid_setpoint_w": -3076, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.5797, + "cashflow_czk": -1.5797, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T08:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 37.2, + "grid_setpoint_w": -2615, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.3188, + "cashflow_czk": -1.3188, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T08:45:00+00:00", + "battery_setpoint_w": 1004, + "battery_soc_target": 39.1, + "grid_setpoint_w": -2485, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.0468, + "cashflow_czk": -1.0468, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T09:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 39.1, + "grid_setpoint_w": -1990, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.9787, + "cashflow_czk": -0.9787, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T09:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 39.1, + "grid_setpoint_w": -2927, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.2793, + "cashflow_czk": -1.2793, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T09:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 39.1, + "grid_setpoint_w": -1668, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.6568, + "cashflow_czk": -0.6568, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T09:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 39.1, + "grid_setpoint_w": -1544, + "export_limit_w": 16000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": false, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.5462, + "cashflow_czk": -0.5462, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + } + ] +} diff --git a/backend/tests/golden/snapshots/KV1_2026-06-09_fixed_normal.json b/backend/tests/golden/snapshots/KV1_2026-06-09_fixed_normal.json new file mode 100644 index 0000000..f9e3609 --- /dev/null +++ b/backend/tests/golden/snapshots/KV1_2026-06-09_fixed_normal.json @@ -0,0 +1,3181 @@ +{ + "totals": { + "slots": 144, + "expected_cost_czk": -54.893, + "cashflow_czk": -54.893, + "penalty_czk": 0.531, + "grid_import_slots": 2, + "grid_export_slots": 132, + "curtail_slots": 0 + }, + "slots": [ + { + "interval_start": "2026-06-08T22:00:00+00:00", + "battery_setpoint_w": 2548, + "battery_soc_target": 16.8, + "grid_setpoint_w": 2834, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 4.5011, + "cashflow_czk": 4.5011, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T22:15:00+00:00", + "battery_setpoint_w": -124, + "battery_soc_target": 16.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.2575, + "cashflow_czk": 0.2575, + "battery_arbitrage_czk": -0.0008, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T22:30:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4535, + "cashflow_czk": 0.4535, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T22:45:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4535, + "cashflow_czk": 0.4535, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T23:00:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4312, + "cashflow_czk": 0.4312, + "battery_arbitrage_czk": -0.0008, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T23:15:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4312, + "cashflow_czk": 0.4312, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T23:30:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4313, + "cashflow_czk": 0.4313, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T23:45:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4313, + "cashflow_czk": 0.4313, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T00:00:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4424, + "cashflow_czk": 0.4424, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T00:15:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4424, + "cashflow_czk": 0.4424, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T00:30:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4424, + "cashflow_czk": 0.4424, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T00:45:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4424, + "cashflow_czk": 0.4424, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T01:00:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4138, + "cashflow_czk": 0.4138, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T01:15:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4139, + "cashflow_czk": 0.4139, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T01:30:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4139, + "cashflow_czk": 0.4139, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T01:45:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4139, + "cashflow_czk": 0.4139, + "battery_arbitrage_czk": -0.001, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T02:00:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.5, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.3757, + "cashflow_czk": 0.3757, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T02:15:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.5, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.3758, + "cashflow_czk": 0.3758, + "battery_arbitrage_czk": -0.001, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T02:30:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.5, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.3758, + "cashflow_czk": 0.3758, + "battery_arbitrage_czk": -0.001, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T02:45:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.5, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.3758, + "cashflow_czk": 0.3758, + "battery_arbitrage_czk": -0.001, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T03:00:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.5, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.3424, + "cashflow_czk": 0.3424, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T03:15:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.5, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.2264, + "cashflow_czk": 0.2264, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T03:30:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 16.5, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0517, + "cashflow_czk": 0.0517, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T03:45:00+00:00", + "battery_setpoint_w": 389, + "battery_soc_target": 17.3, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T04:00:00+00:00", + "battery_setpoint_w": 6250, + "battery_soc_target": 29.1, + "grid_setpoint_w": 5607, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 8.9046, + "cashflow_czk": 8.9046, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.5315, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T04:15:00+00:00", + "battery_setpoint_w": 846, + "battery_soc_target": 30.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T04:30:00+00:00", + "battery_setpoint_w": 593, + "battery_soc_target": 31.9, + "grid_setpoint_w": -390, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.3067, + "cashflow_czk": -0.3067, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T04:45:00+00:00", + "battery_setpoint_w": 1399, + "battery_soc_target": 34.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T05:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 34.5, + "grid_setpoint_w": -1484, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.2591, + "cashflow_czk": -1.2591, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T05:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 34.5, + "grid_setpoint_w": -1611, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.2839, + "cashflow_czk": -1.2839, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T05:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 34.5, + "grid_setpoint_w": -1788, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.4111, + "cashflow_czk": -1.4111, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T05:45:00+00:00", + "battery_setpoint_w": 1195, + "battery_soc_target": 36.8, + "grid_setpoint_w": -749, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.5579, + "cashflow_czk": -0.5579, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T06:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 36.8, + "grid_setpoint_w": -2171, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.7627, + "cashflow_czk": -1.7627, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T06:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 36.8, + "grid_setpoint_w": -2467, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.8942, + "cashflow_czk": -1.8942, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T06:30:00+00:00", + "battery_setpoint_w": 398, + "battery_soc_target": 37.6, + "grid_setpoint_w": -2131, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.5845, + "cashflow_czk": -1.5845, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T06:45:00+00:00", + "battery_setpoint_w": 1195, + "battery_soc_target": 39.8, + "grid_setpoint_w": -1676, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.0349, + "cashflow_czk": -1.0349, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T07:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 39.8, + "grid_setpoint_w": -3218, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.4746, + "cashflow_czk": -2.4746, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T07:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 39.8, + "grid_setpoint_w": -3627, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.368, + "cashflow_czk": -2.368, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T07:30:00+00:00", + "battery_setpoint_w": 398, + "battery_soc_target": 40.6, + "grid_setpoint_w": -3018, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.8409, + "cashflow_czk": -1.8409, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T07:45:00+00:00", + "battery_setpoint_w": 797, + "battery_soc_target": 42.1, + "grid_setpoint_w": -2361, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.2219, + "cashflow_czk": -1.2219, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T08:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 42.1, + "grid_setpoint_w": -3330, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.9913, + "cashflow_czk": -1.9913, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T08:15:00+00:00", + "battery_setpoint_w": 398, + "battery_soc_target": 42.9, + "grid_setpoint_w": -2747, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.3855, + "cashflow_czk": -1.3855, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T08:30:00+00:00", + "battery_setpoint_w": 398, + "battery_soc_target": 43.6, + "grid_setpoint_w": -2772, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.2734, + "cashflow_czk": -1.2734, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T08:45:00+00:00", + "battery_setpoint_w": 1195, + "battery_soc_target": 45.9, + "grid_setpoint_w": -2586, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.9386, + "cashflow_czk": -0.9386, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T09:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 45.9, + "grid_setpoint_w": -4152, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.0135, + "cashflow_czk": -2.0135, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T09:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 45.9, + "grid_setpoint_w": -4089, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.5147, + "cashflow_czk": -1.5147, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T09:30:00+00:00", + "battery_setpoint_w": 398, + "battery_soc_target": 46.7, + "grid_setpoint_w": -4907, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.499, + "cashflow_czk": -1.499, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T09:45:00+00:00", + "battery_setpoint_w": 5247, + "battery_soc_target": 56.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T10:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 56.6, + "grid_setpoint_w": -4381, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.1823, + "cashflow_czk": -1.1823, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T10:15:00+00:00", + "battery_setpoint_w": 4183, + "battery_soc_target": 64.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T10:30:00+00:00", + "battery_setpoint_w": 4557, + "battery_soc_target": 73.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T10:45:00+00:00", + "battery_setpoint_w": 4316, + "battery_soc_target": 81.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T11:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 81.4, + "grid_setpoint_w": -6329, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.5031, + "cashflow_czk": -1.5031, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T11:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 81.4, + "grid_setpoint_w": -4840, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.2148, + "cashflow_czk": -1.2148, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T11:30:00+00:00", + "battery_setpoint_w": 3934, + "battery_soc_target": 88.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T11:45:00+00:00", + "battery_setpoint_w": 1905, + "battery_soc_target": 92.5, + "grid_setpoint_w": -644, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.1329, + "cashflow_czk": -0.1329, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T12:00:00+00:00", + "battery_setpoint_w": 789, + "battery_soc_target": 94.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T12:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 94.0, + "grid_setpoint_w": -1468, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.4013, + "cashflow_czk": -0.4013, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T12:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 94.0, + "grid_setpoint_w": -3361, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.0719, + "cashflow_czk": -1.0719, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T12:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 94.0, + "grid_setpoint_w": -1444, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.4783, + "cashflow_czk": -0.4783, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T13:00:00+00:00", + "battery_setpoint_w": 687, + "battery_soc_target": 95.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T13:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 95.3, + "grid_setpoint_w": -1321, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.4789, + "cashflow_czk": -0.4789, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T13:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 95.3, + "grid_setpoint_w": -1270, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.5001, + "cashflow_czk": -0.5001, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T13:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 95.3, + "grid_setpoint_w": -625, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.4023, + "cashflow_czk": -0.4023, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T14:00:00+00:00", + "battery_setpoint_w": 2459, + "battery_soc_target": 100.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T14:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -2042, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.8167, + "cashflow_czk": -0.8167, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T14:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -1625, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.8764, + "cashflow_czk": -0.8764, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T14:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -2551, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.8515, + "cashflow_czk": -1.8515, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T15:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -2656, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.8755, + "cashflow_czk": -0.8755, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T15:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -2614, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.5014, + "cashflow_czk": -1.5014, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T15:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -2512, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.6995, + "cashflow_czk": -1.6995, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T15:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -2263, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.525, + "cashflow_czk": -1.525, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T16:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -1833, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.1119, + "cashflow_czk": -1.1119, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T16:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -1435, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.9063, + "cashflow_czk": -0.9063, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T16:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -1096, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.8125, + "cashflow_czk": -0.8125, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T16:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -549, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.4455, + "cashflow_czk": -0.4455, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T17:00:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 100.0, + "grid_setpoint_w": -288, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.2047, + "cashflow_czk": -0.2047, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T17:15:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 100.0, + "grid_setpoint_w": -32, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0256, + "cashflow_czk": -0.0256, + "battery_arbitrage_czk": -0.0008, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T17:30:00+00:00", + "battery_setpoint_w": -172, + "battery_soc_target": 99.6, + "grid_setpoint_w": -89, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0721, + "cashflow_czk": -0.0721, + "battery_arbitrage_czk": -0.0008, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T17:45:00+00:00", + "battery_setpoint_w": -172, + "battery_soc_target": 99.3, + "grid_setpoint_w": -55, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0441, + "cashflow_czk": -0.0441, + "battery_arbitrage_czk": -0.0008, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T18:00:00+00:00", + "battery_setpoint_w": -437, + "battery_soc_target": 98.4, + "grid_setpoint_w": -26, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0222, + "cashflow_czk": -0.0222, + "battery_arbitrage_czk": -0.0007, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T18:15:00+00:00", + "battery_setpoint_w": -437, + "battery_soc_target": 97.4, + "grid_setpoint_w": -46, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0397, + "cashflow_czk": -0.0397, + "battery_arbitrage_czk": -0.0007, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T18:30:00+00:00", + "battery_setpoint_w": -437, + "battery_soc_target": 96.5, + "grid_setpoint_w": -30, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0252, + "cashflow_czk": -0.0252, + "battery_arbitrage_czk": -0.0007, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T18:45:00+00:00", + "battery_setpoint_w": -437, + "battery_soc_target": 95.6, + "grid_setpoint_w": -9, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0077, + "cashflow_czk": -0.0077, + "battery_arbitrage_czk": -0.0007, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T19:00:00+00:00", + "battery_setpoint_w": -363, + "battery_soc_target": 94.8, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0009, + "cashflow_czk": -0.0009, + "battery_arbitrage_czk": -0.0007, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T19:15:00+00:00", + "battery_setpoint_w": -363, + "battery_soc_target": 94.1, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0009, + "cashflow_czk": -0.0009, + "battery_arbitrage_czk": -0.0007, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T19:30:00+00:00", + "battery_setpoint_w": -363, + "battery_soc_target": 93.3, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0009, + "cashflow_czk": -0.0009, + "battery_arbitrage_czk": -0.0007, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T19:45:00+00:00", + "battery_setpoint_w": -363, + "battery_soc_target": 92.5, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0008, + "cashflow_czk": -0.0008, + "battery_arbitrage_czk": -0.0008, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T20:00:00+00:00", + "battery_setpoint_w": -240, + "battery_soc_target": 92.0, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0009, + "cashflow_czk": -0.0009, + "battery_arbitrage_czk": -0.0007, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T20:15:00+00:00", + "battery_setpoint_w": -240, + "battery_soc_target": 91.5, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0008, + "cashflow_czk": -0.0008, + "battery_arbitrage_czk": -0.0008, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T20:30:00+00:00", + "battery_setpoint_w": -240, + "battery_soc_target": 91.0, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0008, + "cashflow_czk": -0.0008, + "battery_arbitrage_czk": -0.0008, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T20:45:00+00:00", + "battery_setpoint_w": -240, + "battery_soc_target": 90.5, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T21:00:00+00:00", + "battery_setpoint_w": -229, + "battery_soc_target": 90.0, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0008, + "cashflow_czk": -0.0008, + "battery_arbitrage_czk": -0.0008, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T21:15:00+00:00", + "battery_setpoint_w": -229, + "battery_soc_target": 89.5, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0008, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T21:30:00+00:00", + "battery_setpoint_w": -229, + "battery_soc_target": 89.1, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T21:45:00+00:00", + "battery_setpoint_w": -229, + "battery_soc_target": 88.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T22:00:00+00:00", + "battery_setpoint_w": -289, + "battery_soc_target": 88.0, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0008, + "cashflow_czk": -0.0008, + "battery_arbitrage_czk": -0.0008, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T22:15:00+00:00", + "battery_setpoint_w": -289, + "battery_soc_target": 87.4, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0008, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T22:30:00+00:00", + "battery_setpoint_w": -289, + "battery_soc_target": 86.8, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T22:45:00+00:00", + "battery_setpoint_w": -289, + "battery_soc_target": 86.2, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T23:00:00+00:00", + "battery_setpoint_w": -275, + "battery_soc_target": 85.6, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T23:15:00+00:00", + "battery_setpoint_w": -275, + "battery_soc_target": 85.0, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T23:30:00+00:00", + "battery_setpoint_w": -275, + "battery_soc_target": 84.4, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T23:45:00+00:00", + "battery_setpoint_w": -275, + "battery_soc_target": 83.8, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0006, + "cashflow_czk": -0.0006, + "battery_arbitrage_czk": -0.001, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T00:00:00+00:00", + "battery_setpoint_w": -272, + "battery_soc_target": 83.3, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T00:15:00+00:00", + "battery_setpoint_w": -272, + "battery_soc_target": 82.7, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0006, + "cashflow_czk": -0.0006, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T00:30:00+00:00", + "battery_setpoint_w": -272, + "battery_soc_target": 82.1, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0006, + "cashflow_czk": -0.0006, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T00:45:00+00:00", + "battery_setpoint_w": -272, + "battery_soc_target": 81.5, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0006, + "cashflow_czk": -0.0006, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T01:00:00+00:00", + "battery_setpoint_w": -264, + "battery_soc_target": 81.0, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T01:15:00+00:00", + "battery_setpoint_w": -264, + "battery_soc_target": 80.4, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T01:30:00+00:00", + "battery_setpoint_w": -264, + "battery_soc_target": 79.9, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T01:45:00+00:00", + "battery_setpoint_w": -264, + "battery_soc_target": 79.3, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T02:00:00+00:00", + "battery_setpoint_w": -240, + "battery_soc_target": 78.8, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0006, + "cashflow_czk": -0.0006, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T02:15:00+00:00", + "battery_setpoint_w": -240, + "battery_soc_target": 78.3, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T02:30:00+00:00", + "battery_setpoint_w": -240, + "battery_soc_target": 77.8, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T02:45:00+00:00", + "battery_setpoint_w": -240, + "battery_soc_target": 77.3, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T03:00:00+00:00", + "battery_setpoint_w": -251, + "battery_soc_target": 76.8, + "grid_setpoint_w": -1, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0007, + "cashflow_czk": -0.0007, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T03:15:00+00:00", + "battery_setpoint_w": -251, + "battery_soc_target": 76.2, + "grid_setpoint_w": -38, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0261, + "cashflow_czk": -0.0261, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T03:30:00+00:00", + "battery_setpoint_w": -251, + "battery_soc_target": 75.7, + "grid_setpoint_w": -67, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0467, + "cashflow_czk": -0.0467, + "battery_arbitrage_czk": -0.0009, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T03:45:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 75.7, + "grid_setpoint_w": -125, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0935, + "cashflow_czk": -0.0935, + "battery_arbitrage_czk": -0.0008, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T04:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -339, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.2567, + "cashflow_czk": -0.2567, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T04:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -448, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.3556, + "cashflow_czk": -0.3556, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T04:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -555, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.4388, + "cashflow_czk": -0.4388, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T04:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -918, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.7057, + "cashflow_czk": -0.7057, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T05:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -1077, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.8922, + "cashflow_czk": -0.8922, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T05:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -1180, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.9587, + "cashflow_czk": -0.9587, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T05:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -1411, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.1192, + "cashflow_czk": -1.1192, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T05:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -1733, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.3639, + "cashflow_czk": -1.3639, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T06:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -2123, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.765, + "cashflow_czk": -1.765, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T06:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -2212, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.7372, + "cashflow_czk": -1.7372, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T06:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -2212, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.6547, + "cashflow_czk": -1.6547, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T06:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -2688, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.6726, + "cashflow_czk": -1.6726, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T07:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -2766, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.0605, + "cashflow_czk": -2.0605, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T07:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -2887, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.863, + "cashflow_czk": -1.863, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T07:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -2706, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.5067, + "cashflow_czk": -1.5067, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T07:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -2365, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.2532, + "cashflow_czk": -1.2532, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T08:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -2097, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.2286, + "cashflow_czk": -1.2286, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T08:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -2287, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.1745, + "cashflow_czk": -1.1745, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T08:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -1659, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.8367, + "cashflow_czk": -0.8367, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T08:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -1812, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.7632, + "cashflow_czk": -0.7632, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T09:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -1766, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.8685, + "cashflow_czk": -0.8685, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T09:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -2044, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.8934, + "cashflow_czk": -0.8934, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T09:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -1995, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.7855, + "cashflow_czk": -0.7855, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T09:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 75.7, + "grid_setpoint_w": -1545, + "export_limit_w": 8000, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.5465, + "cashflow_czk": -0.5465, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + } + ] +} diff --git a/backend/tests/golden/snapshots/home-01_2026-06-07_neg_sell_deep.json b/backend/tests/golden/snapshots/home-01_2026-06-07_neg_sell_deep.json new file mode 100644 index 0000000..be41424 --- /dev/null +++ b/backend/tests/golden/snapshots/home-01_2026-06-07_neg_sell_deep.json @@ -0,0 +1,3181 @@ +{ + "totals": { + "slots": 144, + "expected_cost_czk": -162.739, + "cashflow_czk": -162.739, + "penalty_czk": 2119.006, + "grid_import_slots": 17, + "grid_export_slots": 78, + "curtail_slots": 31 + }, + "slots": [ + { + "interval_start": "2026-06-06T22:00:00+00:00", + "battery_setpoint_w": -13500, + "battery_soc_target": 38.4, + "grid_setpoint_w": -13500, + "export_limit_w": 13500, + "export_mode": "BATTERY_SELL", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -9.3238, + "cashflow_czk": -9.3238, + "battery_arbitrage_czk": 7.8453, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-06T22:15:00+00:00", + "battery_setpoint_w": -13500, + "battery_soc_target": 32.9, + "grid_setpoint_w": -13500, + "export_limit_w": 13500, + "export_mode": "BATTERY_SELL", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -8.329, + "cashflow_czk": -8.329, + "battery_arbitrage_czk": 6.8041, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-06T22:30:00+00:00", + "battery_setpoint_w": -13500, + "battery_soc_target": 27.3, + "grid_setpoint_w": -13500, + "export_limit_w": 13500, + "export_mode": "BATTERY_SELL", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -8.2604, + "cashflow_czk": -8.2604, + "battery_arbitrage_czk": 6.7324, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-06T22:45:00+00:00", + "battery_setpoint_w": -13500, + "battery_soc_target": 21.8, + "grid_setpoint_w": -13500, + "export_limit_w": 13500, + "export_mode": "BATTERY_SELL", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -8.1516, + "cashflow_czk": -8.1516, + "battery_arbitrage_czk": 6.6185, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-06T23:00:00+00:00", + "battery_setpoint_w": -4352, + "battery_soc_target": 20.0, + "grid_setpoint_w": -4352, + "export_limit_w": 13500, + "export_mode": "BATTERY_SELL", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.2789, + "cashflow_czk": -2.2789, + "battery_arbitrage_czk": 2.0912, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-06T23:15:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 20.0, + "grid_setpoint_w": -1, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4554, + "cashflow_czk": 0.4554, + "battery_arbitrage_czk": 0.0005, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-06T23:30:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 20.0, + "grid_setpoint_w": -1, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4357, + "cashflow_czk": 0.4357, + "battery_arbitrage_czk": 0.0004, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-06T23:45:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 20.0, + "grid_setpoint_w": -1, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4132, + "cashflow_czk": 0.4132, + "battery_arbitrage_czk": 0.0004, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T00:00:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 20.0, + "grid_setpoint_w": -1, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4423, + "cashflow_czk": 0.4423, + "battery_arbitrage_czk": 0.0004, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T00:15:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 20.0, + "grid_setpoint_w": -1, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4136, + "cashflow_czk": 0.4136, + "battery_arbitrage_czk": 0.0004, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T00:30:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 20.0, + "grid_setpoint_w": -1, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4093, + "cashflow_czk": 0.4093, + "battery_arbitrage_czk": 0.0004, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T00:45:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 20.0, + "grid_setpoint_w": -1, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.3791, + "cashflow_czk": 0.3791, + "battery_arbitrage_czk": 0.0003, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T01:00:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 20.0, + "grid_setpoint_w": -1, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.4246, + "cashflow_czk": 0.4246, + "battery_arbitrage_czk": 0.0004, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T01:15:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 20.0, + "grid_setpoint_w": -1, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.3927, + "cashflow_czk": 0.3927, + "battery_arbitrage_czk": 0.0003, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T01:30:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 20.0, + "grid_setpoint_w": -1, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.3775, + "cashflow_czk": 0.3775, + "battery_arbitrage_czk": 0.0003, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T01:45:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 20.0, + "grid_setpoint_w": -1, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.3414, + "cashflow_czk": 0.3414, + "battery_arbitrage_czk": 0.0003, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T02:00:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 20.0, + "grid_setpoint_w": -1, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.3652, + "cashflow_czk": 0.3652, + "battery_arbitrage_czk": 0.0003, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T02:15:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 20.0, + "grid_setpoint_w": -1, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.3447, + "cashflow_czk": 0.3447, + "battery_arbitrage_czk": 0.0002, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T02:30:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 20.0, + "grid_setpoint_w": -1, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.3271, + "cashflow_czk": 0.3271, + "battery_arbitrage_czk": 0.0002, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T02:45:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 20.0, + "grid_setpoint_w": -1, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.2981, + "cashflow_czk": 0.2981, + "battery_arbitrage_czk": 0.0002, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T03:00:00+00:00", + "battery_setpoint_w": -1, + "battery_soc_target": 20.0, + "grid_setpoint_w": -1, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.2911, + "cashflow_czk": 0.2911, + "battery_arbitrage_czk": 0.0002, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T03:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 20.0, + "grid_setpoint_w": 358, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.1965, + "cashflow_czk": 0.1965, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T03:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 20.0, + "grid_setpoint_w": 80, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0362, + "cashflow_czk": 0.0362, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T03:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 20.0, + "grid_setpoint_w": 396, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0881, + "cashflow_czk": 0.0881, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T04:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 20.0, + "grid_setpoint_w": 139, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0271, + "cashflow_czk": 0.0271, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T04:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 20.0, + "grid_setpoint_w": 29, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0049, + "cashflow_czk": 0.0049, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T04:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 20.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 55, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 2.4676, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T04:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 20.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 348, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 3.967, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T05:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 20.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 335, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 5.1603, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T05:15:00+00:00", + "battery_setpoint_w": 619, + "battery_soc_target": 20.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 5.2965, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T05:30:00+00:00", + "battery_setpoint_w": 797, + "battery_soc_target": 20.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 5.5564, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T05:45:00+00:00", + "battery_setpoint_w": 2486, + "battery_soc_target": 21.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 3.8106, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T06:00:00+00:00", + "battery_setpoint_w": 3100, + "battery_soc_target": 22.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 1.3357, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T06:15:00+00:00", + "battery_setpoint_w": 2141, + "battery_soc_target": 23.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 1528, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 1.5284, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T06:30:00+00:00", + "battery_setpoint_w": 1016, + "battery_soc_target": 23.8, + "grid_setpoint_w": -961, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 3638, + "expected_cost_czk": 0.0727, + "cashflow_czk": 0.0727, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 3.638, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T06:45:00+00:00", + "battery_setpoint_w": 2032, + "battery_soc_target": 24.5, + "grid_setpoint_w": -641, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 4338, + "expected_cost_czk": 0.0563, + "cashflow_czk": 0.0563, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 4.338, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T07:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 24.5, + "grid_setpoint_w": -1854, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 4646, + "expected_cost_czk": 0.1541, + "cashflow_czk": 0.1541, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 4.646, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T07:15:00+00:00", + "battery_setpoint_w": 1016, + "battery_soc_target": 24.9, + "grid_setpoint_w": -1492, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 5324, + "expected_cost_czk": 0.1437, + "cashflow_czk": 0.1437, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 5.324, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T07:30:00+00:00", + "battery_setpoint_w": 1016, + "battery_soc_target": 25.3, + "grid_setpoint_w": -2047, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 5891, + "expected_cost_czk": 0.224, + "cashflow_czk": 0.224, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 5.891, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T07:45:00+00:00", + "battery_setpoint_w": 1016, + "battery_soc_target": 25.7, + "grid_setpoint_w": -2465, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 6256, + "expected_cost_czk": 0.3393, + "cashflow_czk": 0.3393, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 6.256, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T08:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 25.7, + "grid_setpoint_w": -4323, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 6532, + "expected_cost_czk": 0.459, + "cashflow_czk": 0.459, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 7.7383, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T08:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 25.7, + "grid_setpoint_w": -4565, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 6754, + "expected_cost_czk": 0.4982, + "cashflow_czk": 0.4982, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 9.1666, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T08:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 25.7, + "grid_setpoint_w": -4804, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 6980, + "expected_cost_czk": 0.6569, + "cashflow_czk": 0.6569, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 10.599, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T08:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 25.7, + "grid_setpoint_w": -4470, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 6516, + "expected_cost_czk": 0.6613, + "cashflow_czk": 0.6613, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 11.3413, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T09:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 25.7, + "grid_setpoint_w": -4603, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 6983, + "expected_cost_czk": 0.7152, + "cashflow_czk": 0.7152, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 13.0146, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T09:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 25.7, + "grid_setpoint_w": -5053, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 7548, + "expected_cost_czk": 0.8401, + "cashflow_czk": 0.8401, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 14.7859, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T09:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 25.7, + "grid_setpoint_w": -5273, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 7745, + "expected_cost_czk": 0.8667, + "cashflow_czk": 0.8667, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 16.1892, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T09:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 25.7, + "grid_setpoint_w": -5448, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 7928, + "expected_cost_czk": 0.9047, + "cashflow_czk": 0.9047, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 17.5786, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T10:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 25.7, + "grid_setpoint_w": -1528, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 7423, + "expected_cost_czk": 0.2578, + "cashflow_czk": 0.2578, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 18.2799, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T10:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 25.7, + "grid_setpoint_w": -277, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 6477, + "expected_cost_czk": 0.0537, + "cashflow_czk": 0.0537, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 18.5402, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T10:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 25.7, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 5746, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 19.0155, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T10:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 25.7, + "grid_setpoint_w": -1112, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 6954, + "expected_cost_czk": 0.2228, + "cashflow_czk": 0.2228, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 21.4299, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T11:00:00+00:00", + "battery_setpoint_w": 17000, + "battery_soc_target": 32.0, + "grid_setpoint_w": 17000, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.5998, + "cashflow_czk": -0.5998, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 217.7177, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T11:15:00+00:00", + "battery_setpoint_w": 17000, + "battery_soc_target": 38.3, + "grid_setpoint_w": 17000, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.3696, + "cashflow_czk": -1.3696, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 197.5302, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T11:30:00+00:00", + "battery_setpoint_w": 17000, + "battery_soc_target": 44.6, + "grid_setpoint_w": 17000, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.5875, + "cashflow_czk": -2.5875, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 177.3427, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T11:45:00+00:00", + "battery_setpoint_w": 17000, + "battery_soc_target": 50.9, + "grid_setpoint_w": 17000, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.7925, + "cashflow_czk": -3.7925, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 157.1552, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T12:00:00+00:00", + "battery_setpoint_w": 17000, + "battery_soc_target": 57.2, + "grid_setpoint_w": 17000, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.0134, + "cashflow_czk": -3.0134, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 136.9677, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T12:15:00+00:00", + "battery_setpoint_w": 17000, + "battery_soc_target": 63.5, + "grid_setpoint_w": 17000, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.1772, + "cashflow_czk": -3.1772, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 116.7802, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T12:30:00+00:00", + "battery_setpoint_w": 17000, + "battery_soc_target": 69.8, + "grid_setpoint_w": 17000, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.0672, + "cashflow_czk": -3.0672, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 96.5927, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T12:45:00+00:00", + "battery_setpoint_w": 17000, + "battery_soc_target": 76.1, + "grid_setpoint_w": 17000, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.1444, + "cashflow_czk": -3.1444, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 76.4052, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T13:00:00+00:00", + "battery_setpoint_w": 17000, + "battery_soc_target": 82.4, + "grid_setpoint_w": 17000, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.7972, + "cashflow_czk": -3.7972, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 56.2177, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T13:15:00+00:00", + "battery_setpoint_w": 17000, + "battery_soc_target": 88.7, + "grid_setpoint_w": 17000, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.6179, + "cashflow_czk": -2.6179, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 36.0302, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T13:30:00+00:00", + "battery_setpoint_w": 17000, + "battery_soc_target": 95.0, + "grid_setpoint_w": 17000, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.6223, + "cashflow_czk": -1.6223, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 15.8427, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T13:45:00+00:00", + "battery_setpoint_w": 13341, + "battery_soc_target": 100.0, + "grid_setpoint_w": 13341, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.5368, + "cashflow_czk": -0.5368, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T14:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 3300, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 102.3, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T14:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 3036, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 94.116, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T14:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 3137, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 97.247, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T14:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 1022, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 31.682, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T15:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 2969, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 92.039, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T15:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 1323, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 41.013, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T15:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 1723, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 53.413, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T15:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 879, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 27.249, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T16:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 1110, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 34.41, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T16:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -802, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.1083, + "cashflow_czk": -0.1083, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 24.06, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T16:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 100.0, + "grid_setpoint_w": -278, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.1559, + "cashflow_czk": -0.1559, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T16:45:00+00:00", + "battery_setpoint_w": -1564, + "battery_soc_target": 99.4, + "grid_setpoint_w": -1340, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.9355, + "cashflow_czk": -0.9355, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T17:00:00+00:00", + "battery_setpoint_w": -1868, + "battery_soc_target": 98.6, + "grid_setpoint_w": -915, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.4002, + "cashflow_czk": -0.4002, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T17:15:00+00:00", + "battery_setpoint_w": -1868, + "battery_soc_target": 97.8, + "grid_setpoint_w": -795, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.5037, + "cashflow_czk": -0.5037, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T17:30:00+00:00", + "battery_setpoint_w": -1868, + "battery_soc_target": 97.1, + "grid_setpoint_w": -588, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.4081, + "cashflow_czk": -0.4081, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T17:45:00+00:00", + "battery_setpoint_w": -1868, + "battery_soc_target": 96.3, + "grid_setpoint_w": -208, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.1537, + "cashflow_czk": -0.1537, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T18:00:00+00:00", + "battery_setpoint_w": -1614, + "battery_soc_target": 95.6, + "grid_setpoint_w": -133, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0851, + "cashflow_czk": -0.0851, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T18:15:00+00:00", + "battery_setpoint_w": -1614, + "battery_soc_target": 95.0, + "grid_setpoint_w": -51, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0343, + "cashflow_czk": -0.0343, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T18:30:00+00:00", + "battery_setpoint_w": -1614, + "battery_soc_target": 94.3, + "grid_setpoint_w": -351, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.248, + "cashflow_czk": -0.248, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T18:45:00+00:00", + "battery_setpoint_w": -1614, + "battery_soc_target": 93.6, + "grid_setpoint_w": -116, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0866, + "cashflow_czk": -0.0866, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T19:00:00+00:00", + "battery_setpoint_w": -1392, + "battery_soc_target": 93.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T19:15:00+00:00", + "battery_setpoint_w": -1392, + "battery_soc_target": 92.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T19:30:00+00:00", + "battery_setpoint_w": -1392, + "battery_soc_target": 91.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T19:45:00+00:00", + "battery_setpoint_w": -1392, + "battery_soc_target": 91.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T20:00:00+00:00", + "battery_setpoint_w": -1082, + "battery_soc_target": 90.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T20:15:00+00:00", + "battery_setpoint_w": -1082, + "battery_soc_target": 90.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T20:30:00+00:00", + "battery_setpoint_w": -1082, + "battery_soc_target": 90.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T20:45:00+00:00", + "battery_setpoint_w": -1082, + "battery_soc_target": 89.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T21:00:00+00:00", + "battery_setpoint_w": -14199, + "battery_soc_target": 83.7, + "grid_setpoint_w": -13500, + "export_limit_w": 13500, + "export_mode": "BATTERY_SELL", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -11.243, + "cashflow_czk": -11.243, + "battery_arbitrage_czk": 9.2223, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T21:15:00+00:00", + "battery_setpoint_w": -699, + "battery_soc_target": 83.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T21:30:00+00:00", + "battery_setpoint_w": -699, + "battery_soc_target": 83.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T21:45:00+00:00", + "battery_setpoint_w": -699, + "battery_soc_target": 82.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T22:00:00+00:00", + "battery_setpoint_w": -548, + "battery_soc_target": 82.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T22:15:00+00:00", + "battery_setpoint_w": -548, + "battery_soc_target": 82.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T22:30:00+00:00", + "battery_setpoint_w": -548, + "battery_soc_target": 82.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T22:45:00+00:00", + "battery_setpoint_w": -548, + "battery_soc_target": 82.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T23:00:00+00:00", + "battery_setpoint_w": -540, + "battery_soc_target": 81.7, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T23:15:00+00:00", + "battery_setpoint_w": -540, + "battery_soc_target": 81.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T23:30:00+00:00", + "battery_setpoint_w": -540, + "battery_soc_target": 81.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-07T23:45:00+00:00", + "battery_setpoint_w": -540, + "battery_soc_target": 81.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T00:00:00+00:00", + "battery_setpoint_w": -732, + "battery_soc_target": 80.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T00:15:00+00:00", + "battery_setpoint_w": -732, + "battery_soc_target": 80.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T00:30:00+00:00", + "battery_setpoint_w": -732, + "battery_soc_target": 80.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T00:45:00+00:00", + "battery_setpoint_w": -732, + "battery_soc_target": 79.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T01:00:00+00:00", + "battery_setpoint_w": -792, + "battery_soc_target": 79.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T01:15:00+00:00", + "battery_setpoint_w": -792, + "battery_soc_target": 79.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T01:30:00+00:00", + "battery_setpoint_w": -792, + "battery_soc_target": 78.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T01:45:00+00:00", + "battery_setpoint_w": -792, + "battery_soc_target": 78.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T02:00:00+00:00", + "battery_setpoint_w": -598, + "battery_soc_target": 78.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T02:15:00+00:00", + "battery_setpoint_w": -598, + "battery_soc_target": 78.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T02:30:00+00:00", + "battery_setpoint_w": -598, + "battery_soc_target": 77.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T02:45:00+00:00", + "battery_setpoint_w": -598, + "battery_soc_target": 77.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T03:00:00+00:00", + "battery_setpoint_w": -562, + "battery_soc_target": 77.3, + "grid_setpoint_w": -40, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0265, + "cashflow_czk": -0.0265, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T03:15:00+00:00", + "battery_setpoint_w": -562, + "battery_soc_target": 77.1, + "grid_setpoint_w": -258, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.1728, + "cashflow_czk": -0.1728, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T03:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 77.1, + "grid_setpoint_w": -71, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0488, + "cashflow_czk": -0.0488, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T03:45:00+00:00", + "battery_setpoint_w": -562, + "battery_soc_target": 76.9, + "grid_setpoint_w": -354, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.2593, + "cashflow_czk": -0.2593, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T04:00:00+00:00", + "battery_setpoint_w": -13567, + "battery_soc_target": 71.3, + "grid_setpoint_w": -13500, + "export_limit_w": 13500, + "export_mode": "BATTERY_SELL", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -10.5781, + "cashflow_czk": -10.5781, + "battery_arbitrage_czk": 8.5574, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T04:15:00+00:00", + "battery_setpoint_w": -13315, + "battery_soc_target": 65.8, + "grid_setpoint_w": -13500, + "export_limit_w": 13500, + "export_mode": "BATTERY_SELL", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -10.7165, + "cashflow_czk": -10.7165, + "battery_arbitrage_czk": 8.6958, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T04:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -536, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.4052, + "cashflow_czk": -0.4052, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T04:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -970, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.6952, + "cashflow_czk": -0.6952, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T05:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -1683, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.4464, + "cashflow_czk": -1.4464, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T05:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -2144, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.6753, + "cashflow_czk": -1.6753, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T05:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -2945, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.1753, + "cashflow_czk": -2.1753, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T05:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -3671, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.4476, + "cashflow_czk": -2.4476, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T06:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -4508, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.5715, + "cashflow_czk": -3.5715, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T06:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -6552, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -4.5569, + "cashflow_czk": -4.5569, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T06:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -7748, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -4.9021, + "cashflow_czk": -4.9021, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T06:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -8585, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -4.6037, + "cashflow_czk": -4.6037, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T07:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -9078, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -5.5682, + "cashflow_czk": -5.5682, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T07:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -9841, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -5.3271, + "cashflow_czk": -5.3271, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T07:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -10537, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -5.0683, + "cashflow_czk": -5.0683, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T07:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -11277, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -4.1126, + "cashflow_czk": -4.1126, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T08:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -10998, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -4.5834, + "cashflow_czk": -4.5834, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T08:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -11534, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -4.5876, + "cashflow_czk": -4.5876, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T08:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -11971, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.8823, + "cashflow_czk": -3.8823, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T08:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -12333, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.047, + "cashflow_czk": -3.047, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T09:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -11993, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.7636, + "cashflow_czk": -3.7636, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T09:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -12284, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.2952, + "cashflow_czk": -3.2952, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T09:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -12747, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.598, + "cashflow_czk": -2.598, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T09:45:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 65.8, + "grid_setpoint_w": -13092, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.1831, + "cashflow_czk": -2.1831, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + } + ] +} diff --git a/backend/tests/golden/snapshots/home-01_2026-06-09_normal.json b/backend/tests/golden/snapshots/home-01_2026-06-09_normal.json new file mode 100644 index 0000000..5ce3a00 --- /dev/null +++ b/backend/tests/golden/snapshots/home-01_2026-06-09_normal.json @@ -0,0 +1,3181 @@ +{ + "totals": { + "slots": 144, + "expected_cost_czk": -51.323, + "cashflow_czk": -51.323, + "penalty_czk": 0.0, + "grid_import_slots": 5, + "grid_export_slots": 20, + "curtail_slots": 0 + }, + "slots": [ + { + "interval_start": "2026-06-08T22:00:00+00:00", + "battery_setpoint_w": -511, + "battery_soc_target": 26.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T22:15:00+00:00", + "battery_setpoint_w": -511, + "battery_soc_target": 26.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T22:30:00+00:00", + "battery_setpoint_w": -511, + "battery_soc_target": 26.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T22:45:00+00:00", + "battery_setpoint_w": -511, + "battery_soc_target": 26.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T23:00:00+00:00", + "battery_setpoint_w": -530, + "battery_soc_target": 25.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T23:15:00+00:00", + "battery_setpoint_w": -530, + "battery_soc_target": 25.7, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T23:30:00+00:00", + "battery_setpoint_w": -530, + "battery_soc_target": 25.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-08T23:45:00+00:00", + "battery_setpoint_w": -530, + "battery_soc_target": 25.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T00:00:00+00:00", + "battery_setpoint_w": -541, + "battery_soc_target": 25.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T00:15:00+00:00", + "battery_setpoint_w": -541, + "battery_soc_target": 24.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T00:30:00+00:00", + "battery_setpoint_w": -541, + "battery_soc_target": 24.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T00:45:00+00:00", + "battery_setpoint_w": -541, + "battery_soc_target": 24.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T01:00:00+00:00", + "battery_setpoint_w": -498, + "battery_soc_target": 24.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T01:15:00+00:00", + "battery_setpoint_w": -498, + "battery_soc_target": 24.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T01:30:00+00:00", + "battery_setpoint_w": -498, + "battery_soc_target": 23.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T01:45:00+00:00", + "battery_setpoint_w": -498, + "battery_soc_target": 23.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T02:00:00+00:00", + "battery_setpoint_w": -447, + "battery_soc_target": 23.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T02:15:00+00:00", + "battery_setpoint_w": -447, + "battery_soc_target": 23.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T02:30:00+00:00", + "battery_setpoint_w": -447, + "battery_soc_target": 23.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T02:45:00+00:00", + "battery_setpoint_w": -447, + "battery_soc_target": 22.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T03:00:00+00:00", + "battery_setpoint_w": -574, + "battery_soc_target": 22.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T03:15:00+00:00", + "battery_setpoint_w": -379, + "battery_soc_target": 22.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T03:30:00+00:00", + "battery_setpoint_w": 16, + "battery_soc_target": 22.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T03:45:00+00:00", + "battery_setpoint_w": -197, + "battery_soc_target": 22.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T04:00:00+00:00", + "battery_setpoint_w": -16, + "battery_soc_target": 22.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T04:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 22.4, + "grid_setpoint_w": -183, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.1432, + "cashflow_czk": -0.1432, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T04:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 22.4, + "grid_setpoint_w": -430, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.3383, + "cashflow_czk": -0.3383, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T04:45:00+00:00", + "battery_setpoint_w": 608, + "battery_soc_target": 22.6, + "grid_setpoint_w": -32, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0247, + "cashflow_czk": -0.0247, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T05:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 22.6, + "grid_setpoint_w": -1302, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.1047, + "cashflow_czk": -1.1047, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T05:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 22.6, + "grid_setpoint_w": -1854, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -1.4775, + "cashflow_czk": -1.4775, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T05:30:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 22.6, + "grid_setpoint_w": -2664, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.1024, + "cashflow_czk": -2.1024, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T05:45:00+00:00", + "battery_setpoint_w": 2332, + "battery_soc_target": 23.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T06:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 23.5, + "grid_setpoint_w": -3187, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.5876, + "cashflow_czk": -2.5876, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T06:15:00+00:00", + "battery_setpoint_w": 1166, + "battery_soc_target": 23.9, + "grid_setpoint_w": -3625, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.7836, + "cashflow_czk": -2.7836, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T06:30:00+00:00", + "battery_setpoint_w": 1166, + "battery_soc_target": 24.3, + "grid_setpoint_w": -4178, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.1072, + "cashflow_czk": -3.1072, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T06:45:00+00:00", + "battery_setpoint_w": 3498, + "battery_soc_target": 25.6, + "grid_setpoint_w": -3773, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.3305, + "cashflow_czk": -2.3305, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T07:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 25.6, + "grid_setpoint_w": -6963, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -5.3545, + "cashflow_czk": -5.3545, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T07:15:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 25.6, + "grid_setpoint_w": -8529, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -5.5684, + "cashflow_czk": -5.5684, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T07:30:00+00:00", + "battery_setpoint_w": 1166, + "battery_soc_target": 26.1, + "grid_setpoint_w": -7813, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -4.7665, + "cashflow_czk": -4.7665, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T07:45:00+00:00", + "battery_setpoint_w": 2332, + "battery_soc_target": 26.9, + "grid_setpoint_w": -7559, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.9119, + "cashflow_czk": -3.9119, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T08:00:00+00:00", + "battery_setpoint_w": 0, + "battery_soc_target": 26.9, + "grid_setpoint_w": -6570, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -3.9289, + "cashflow_czk": -3.9289, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T08:15:00+00:00", + "battery_setpoint_w": 1166, + "battery_soc_target": 27.4, + "grid_setpoint_w": -5283, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -2.665, + "cashflow_czk": -2.665, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T08:30:00+00:00", + "battery_setpoint_w": 8680, + "battery_soc_target": 30.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T08:45:00+00:00", + "battery_setpoint_w": 7567, + "battery_soc_target": 33.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T09:00:00+00:00", + "battery_setpoint_w": 8663, + "battery_soc_target": 36.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T09:15:00+00:00", + "battery_setpoint_w": 9704, + "battery_soc_target": 40.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T09:30:00+00:00", + "battery_setpoint_w": 11813, + "battery_soc_target": 44.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T09:45:00+00:00", + "battery_setpoint_w": 18000, + "battery_soc_target": 51.3, + "grid_setpoint_w": 6916, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 3.37, + "cashflow_czk": 3.37, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T10:00:00+00:00", + "battery_setpoint_w": 10001, + "battery_soc_target": 55.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T10:15:00+00:00", + "battery_setpoint_w": 8474, + "battery_soc_target": 58.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T10:30:00+00:00", + "battery_setpoint_w": 10546, + "battery_soc_target": 62.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T10:45:00+00:00", + "battery_setpoint_w": 11688, + "battery_soc_target": 66.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T11:00:00+00:00", + "battery_setpoint_w": 11222, + "battery_soc_target": 70.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T11:15:00+00:00", + "battery_setpoint_w": 9814, + "battery_soc_target": 74.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T11:30:00+00:00", + "battery_setpoint_w": 18000, + "battery_soc_target": 80.9, + "grid_setpoint_w": 15495, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 6.6129, + "cashflow_czk": 6.6129, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T11:45:00+00:00", + "battery_setpoint_w": 7407, + "battery_soc_target": 83.6, + "grid_setpoint_w": 6463, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 3.2131, + "cashflow_czk": 3.2131, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T12:00:00+00:00", + "battery_setpoint_w": 17705, + "battery_soc_target": 90.2, + "grid_setpoint_w": 17000, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 4.9753, + "cashflow_czk": 4.9753, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T12:15:00+00:00", + "battery_setpoint_w": 2060, + "battery_soc_target": 90.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T12:30:00+00:00", + "battery_setpoint_w": 3893, + "battery_soc_target": 92.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T12:45:00+00:00", + "battery_setpoint_w": -412, + "battery_soc_target": 92.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T13:00:00+00:00", + "battery_setpoint_w": 18000, + "battery_soc_target": 98.9, + "grid_setpoint_w": 15215, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "CHARGE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 6.8709, + "cashflow_czk": 6.8709, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T13:15:00+00:00", + "battery_setpoint_w": 2669, + "battery_soc_target": 99.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T13:30:00+00:00", + "battery_setpoint_w": 222, + "battery_soc_target": 100.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T13:45:00+00:00", + "battery_setpoint_w": -2810, + "battery_soc_target": 98.8, + "grid_setpoint_w": -67, + "export_limit_w": 13500, + "export_mode": "PV_SURPLUS", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -0.0431, + "cashflow_czk": -0.0431, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T14:00:00+00:00", + "battery_setpoint_w": 654, + "battery_soc_target": 99.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T14:15:00+00:00", + "battery_setpoint_w": 2547, + "battery_soc_target": 100.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T14:30:00+00:00", + "battery_setpoint_w": -2112, + "battery_soc_target": 99.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T14:45:00+00:00", + "battery_setpoint_w": -2082, + "battery_soc_target": 98.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T15:00:00+00:00", + "battery_setpoint_w": 608, + "battery_soc_target": 98.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T15:15:00+00:00", + "battery_setpoint_w": 570, + "battery_soc_target": 98.7, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T15:30:00+00:00", + "battery_setpoint_w": 484, + "battery_soc_target": 98.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T15:45:00+00:00", + "battery_setpoint_w": 479, + "battery_soc_target": 99.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T16:00:00+00:00", + "battery_setpoint_w": -1217, + "battery_soc_target": 98.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T16:15:00+00:00", + "battery_setpoint_w": -1217, + "battery_soc_target": 98.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T16:30:00+00:00", + "battery_setpoint_w": -1217, + "battery_soc_target": 97.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T16:45:00+00:00", + "battery_setpoint_w": -1217, + "battery_soc_target": 97.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T17:00:00+00:00", + "battery_setpoint_w": -1403, + "battery_soc_target": 96.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T17:15:00+00:00", + "battery_setpoint_w": -1403, + "battery_soc_target": 95.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T17:30:00+00:00", + "battery_setpoint_w": -1403, + "battery_soc_target": 95.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T17:45:00+00:00", + "battery_setpoint_w": -1403, + "battery_soc_target": 94.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T18:00:00+00:00", + "battery_setpoint_w": -1681, + "battery_soc_target": 94.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T18:15:00+00:00", + "battery_setpoint_w": -1681, + "battery_soc_target": 93.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T18:30:00+00:00", + "battery_setpoint_w": -1623, + "battery_soc_target": 92.7, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T18:45:00+00:00", + "battery_setpoint_w": -1662, + "battery_soc_target": 92.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T19:00:00+00:00", + "battery_setpoint_w": -15477, + "battery_soc_target": 85.7, + "grid_setpoint_w": -13500, + "export_limit_w": 13500, + "export_mode": "BATTERY_SELL", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -11.9745, + "cashflow_czk": -11.9745, + "battery_arbitrage_czk": 4.4028, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T19:15:00+00:00", + "battery_setpoint_w": -1977, + "battery_soc_target": 84.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T19:30:00+00:00", + "battery_setpoint_w": -1977, + "battery_soc_target": 84.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T19:45:00+00:00", + "battery_setpoint_w": -1977, + "battery_soc_target": 83.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T20:00:00+00:00", + "battery_setpoint_w": -1397, + "battery_soc_target": 82.7, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T20:15:00+00:00", + "battery_setpoint_w": -1397, + "battery_soc_target": 82.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T20:30:00+00:00", + "battery_setpoint_w": -1397, + "battery_soc_target": 81.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T20:45:00+00:00", + "battery_setpoint_w": -1397, + "battery_soc_target": 80.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T21:00:00+00:00", + "battery_setpoint_w": -969, + "battery_soc_target": 80.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T21:15:00+00:00", + "battery_setpoint_w": -969, + "battery_soc_target": 80.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T21:30:00+00:00", + "battery_setpoint_w": -969, + "battery_soc_target": 79.7, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T21:45:00+00:00", + "battery_setpoint_w": -969, + "battery_soc_target": 79.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T22:00:00+00:00", + "battery_setpoint_w": -623, + "battery_soc_target": 79.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T22:15:00+00:00", + "battery_setpoint_w": -623, + "battery_soc_target": 78.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T22:30:00+00:00", + "battery_setpoint_w": -623, + "battery_soc_target": 78.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T22:45:00+00:00", + "battery_setpoint_w": -623, + "battery_soc_target": 78.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T23:00:00+00:00", + "battery_setpoint_w": -601, + "battery_soc_target": 78.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T23:15:00+00:00", + "battery_setpoint_w": -601, + "battery_soc_target": 77.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T23:30:00+00:00", + "battery_setpoint_w": -601, + "battery_soc_target": 77.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-09T23:45:00+00:00", + "battery_setpoint_w": -601, + "battery_soc_target": 77.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T00:00:00+00:00", + "battery_setpoint_w": -639, + "battery_soc_target": 77.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T00:15:00+00:00", + "battery_setpoint_w": -639, + "battery_soc_target": 76.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T00:30:00+00:00", + "battery_setpoint_w": -639, + "battery_soc_target": 76.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T00:45:00+00:00", + "battery_setpoint_w": -639, + "battery_soc_target": 76.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T01:00:00+00:00", + "battery_setpoint_w": -612, + "battery_soc_target": 76.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T01:15:00+00:00", + "battery_setpoint_w": -612, + "battery_soc_target": 75.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T01:30:00+00:00", + "battery_setpoint_w": -612, + "battery_soc_target": 75.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T01:45:00+00:00", + "battery_setpoint_w": -612, + "battery_soc_target": 75.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T02:00:00+00:00", + "battery_setpoint_w": -643, + "battery_soc_target": 75.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T02:15:00+00:00", + "battery_setpoint_w": -643, + "battery_soc_target": 74.7, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T02:30:00+00:00", + "battery_setpoint_w": -643, + "battery_soc_target": 74.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T02:45:00+00:00", + "battery_setpoint_w": -643, + "battery_soc_target": 74.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T03:00:00+00:00", + "battery_setpoint_w": -620, + "battery_soc_target": 74.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T03:15:00+00:00", + "battery_setpoint_w": -581, + "battery_soc_target": 73.7, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T03:30:00+00:00", + "battery_setpoint_w": -421, + "battery_soc_target": 73.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T03:45:00+00:00", + "battery_setpoint_w": -613, + "battery_soc_target": 73.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T04:00:00+00:00", + "battery_setpoint_w": -737, + "battery_soc_target": 73.0, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T04:15:00+00:00", + "battery_setpoint_w": -579, + "battery_soc_target": 72.7, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T04:30:00+00:00", + "battery_setpoint_w": -452, + "battery_soc_target": 72.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T04:45:00+00:00", + "battery_setpoint_w": -207, + "battery_soc_target": 72.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T05:00:00+00:00", + "battery_setpoint_w": -13584, + "battery_soc_target": 66.9, + "grid_setpoint_w": -13500, + "export_limit_w": 13500, + "export_mode": "BATTERY_SELL", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -11.1839, + "cashflow_czk": -11.1839, + "battery_arbitrage_czk": 3.6122, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T05:15:00+00:00", + "battery_setpoint_w": -13344, + "battery_soc_target": 61.4, + "grid_setpoint_w": -13500, + "export_limit_w": 13500, + "export_mode": "BATTERY_SELL", + "deye_physical_mode": "SELL", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": -10.9688, + "cashflow_czk": -10.9688, + "battery_arbitrage_czk": 3.3971, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T05:30:00+00:00", + "battery_setpoint_w": 130, + "battery_soc_target": 61.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T05:45:00+00:00", + "battery_setpoint_w": 468, + "battery_soc_target": 61.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T06:00:00+00:00", + "battery_setpoint_w": 832, + "battery_soc_target": 61.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T06:15:00+00:00", + "battery_setpoint_w": 582, + "battery_soc_target": 62.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T06:30:00+00:00", + "battery_setpoint_w": 690, + "battery_soc_target": 62.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T06:45:00+00:00", + "battery_setpoint_w": 1404, + "battery_soc_target": 62.9, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T07:00:00+00:00", + "battery_setpoint_w": 991, + "battery_soc_target": 63.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T07:15:00+00:00", + "battery_setpoint_w": 299, + "battery_soc_target": 63.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T07:30:00+00:00", + "battery_setpoint_w": 140, + "battery_soc_target": 63.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T07:45:00+00:00", + "battery_setpoint_w": 226, + "battery_soc_target": 63.5, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T08:00:00+00:00", + "battery_setpoint_w": 167, + "battery_soc_target": 63.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T08:15:00+00:00", + "battery_setpoint_w": -96, + "battery_soc_target": 63.6, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T08:30:00+00:00", + "battery_setpoint_w": -312, + "battery_soc_target": 63.4, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T08:45:00+00:00", + "battery_setpoint_w": 958, + "battery_soc_target": 63.8, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T09:00:00+00:00", + "battery_setpoint_w": -251, + "battery_soc_target": 63.7, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T09:15:00+00:00", + "battery_setpoint_w": 1521, + "battery_soc_target": 64.3, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T09:30:00+00:00", + "battery_setpoint_w": -211, + "battery_soc_target": 64.2, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + }, + { + "interval_start": "2026-06-10T09:45:00+00:00", + "battery_setpoint_w": -130, + "battery_soc_target": 64.1, + "grid_setpoint_w": 0, + "export_limit_w": 0, + "export_mode": "NONE", + "deye_physical_mode": "PASSIVE", + "deye_gen_cutoff_enabled": null, + "ev1_setpoint_w": null, + "ev2_setpoint_w": null, + "ev1_via_bat_w": 0, + "ev2_via_bat_w": 0, + "heat_pump_enabled": false, + "heat_pump_setpoint_w": 0, + "pv_a_curtailed_w": 0, + "expected_cost_czk": 0.0, + "cashflow_czk": 0.0, + "battery_arbitrage_czk": 0.0, + "penalty_czk": 0.0, + "green_bonus_czk": 0.0 + } + ] +} diff --git a/backend/tests/test_golden_replay.py b/backend/tests/test_golden_replay.py new file mode 100644 index 0000000..df8770c --- /dev/null +++ b/backend/tests/test_golden_replay.py @@ -0,0 +1,193 @@ +""" +Fáze 0 – golden replay gate plánovače (bez DB). + +Pro každou fixture v tests/golden/fixtures/ (kompletní vstupy solveru zmrazené +z reálné DB skriptem scripts/harness/extract_fixtures.py) spustí +solve_dispatch_two_pass a porovná normalizovaný výstup s golden snapshotem +v tests/golden/snapshots/. + +Účel: regresní brána pro dekompozici planning_engine.py — identity refactor +musí držet výstupy bit-perfektně (floaty zaokrouhleny na 4 d.m.). + +Regenerace snapshotů (vědomá změna chování): + GOLDEN_UPDATE=1 python3 -m pytest tests/test_golden_replay.py -q + +Replay jde STEJNOU cestou jako produkce: _load_site_context + _load_slots nad +fixture stubem DB → žádná duplikace mapování DB → objekty. +""" + +from __future__ import annotations + +import asyncio +import json +import os +import unittest +from datetime import datetime +from pathlib import Path + +from services import planning_engine as pe + +GOLDEN_DIR = Path(__file__).resolve().parent / "golden" +FIXTURES_DIR = GOLDEN_DIR / "fixtures" +SNAPSHOTS_DIR = GOLDEN_DIR / "snapshots" + +_DT_SLOT_KEYS = ("interval_start", "charge_acquisition_cutoff_at") + + +class _FixtureDB: + """Stub asyncpg connection: vrací zmrazený context a sloty z fixture.""" + + def __init__(self, fixture: dict): + self._fixture = fixture + + async def fetchval(self, query: str, *args): + assert "fn_planning_site_context" in query, f"Nečekaný fetchval: {query!r}" + return json.dumps(self._fixture["context_json"]) + + async def fetch(self, query: str, *args): + assert "fn_load_planning_slots_full" in query, f"Nečekaný fetch: {query!r}" + rows: list[dict] = [] + for raw in self._fixture["slot_rows"]: + d = dict(raw) + for key in _DT_SLOT_KEYS: + if d.get(key): + d[key] = datetime.fromisoformat(d[key]) + rows.append(d) + return rows + + +def _round(val: float, places: int = 4) -> float: + out = round(float(val), places) + return 0.0 if out == 0.0 else out # normalizace -0.0 + + +def _normalize_results(results: list) -> dict: + rows = [] + for r in results: + rows.append( + { + "interval_start": r.interval_start.isoformat(), + "battery_setpoint_w": int(r.battery_setpoint_w), + "battery_soc_target": _round(r.battery_soc_target, 2), + "grid_setpoint_w": int(r.grid_setpoint_w), + "export_limit_w": int(r.export_limit_w), + "export_mode": r.export_mode, + "deye_physical_mode": r.deye_physical_mode, + "deye_gen_cutoff_enabled": r.deye_gen_cutoff_enabled, + "ev1_setpoint_w": r.ev1_setpoint_w, + "ev2_setpoint_w": r.ev2_setpoint_w, + "ev1_via_bat_w": int(r.ev1_via_bat_w), + "ev2_via_bat_w": int(r.ev2_via_bat_w), + "heat_pump_enabled": bool(r.heat_pump_enabled), + "heat_pump_setpoint_w": int(r.heat_pump_setpoint_w), + "pv_a_curtailed_w": int(r.pv_a_curtailed_w), + "expected_cost_czk": _round(r.expected_cost_czk), + "cashflow_czk": _round(r.cashflow_czk), + "battery_arbitrage_czk": _round(r.battery_arbitrage_czk), + "penalty_czk": _round(r.penalty_czk), + "green_bonus_czk": _round(r.green_bonus_czk), + } + ) + totals = { + "slots": len(rows), + "expected_cost_czk": _round(sum(r["expected_cost_czk"] for r in rows), 3), + "cashflow_czk": _round(sum(r["cashflow_czk"] for r in rows), 3), + "penalty_czk": _round(sum(r["penalty_czk"] for r in rows), 3), + "grid_import_slots": sum(1 for r in rows if r["grid_setpoint_w"] > 0), + "grid_export_slots": sum(1 for r in rows if r["grid_setpoint_w"] < 0), + "curtail_slots": sum(1 for r in rows if r["pv_a_curtailed_w"] > 0), + } + return {"totals": totals, "slots": rows} + + +def _replay_fixture(fixture: dict) -> dict: + async def _run() -> dict: + db = _FixtureDB(fixture) + meta = fixture["meta"] + ( + battery, + heat_pump, + grid, + vehicles, + ev_sessions, + soc_wh, + tuv_temp, + operating_mode, + tuv_stats, + ) = await pe._load_site_context(int(meta["site_id"]), db) + slots = await pe._load_slots( + int(meta["site_id"]), + datetime.fromisoformat(meta["window_from"]), + datetime.fromisoformat(meta["window_to"]), + db, + soc_wh=soc_wh, + ) + results, _ms, _snap = pe.solve_dispatch_two_pass( + slots, + battery, + heat_pump, + grid, + ev_sessions, + vehicles, + soc_wh, + tuv_temp, + tuv_delta_stats=tuv_stats, + operating_mode=operating_mode or "AUTO", + planner_version=pe._planner_engine_version(), + ) + return _normalize_results(results) + + return asyncio.run(_run()) + + +def _fixture_paths() -> list[Path]: + return sorted(FIXTURES_DIR.glob("*.json")) + + +class GoldenReplayTests(unittest.TestCase): + maxDiff = None + + def test_fixtures_exist(self) -> None: + self.assertTrue( + _fixture_paths(), + f"Žádné fixtures v {FIXTURES_DIR} – spusť scripts/harness/extract_fixtures.py", + ) + + +def _make_test(path: Path): + def test(self: GoldenReplayTests) -> None: + fixture = json.loads(path.read_text(encoding="utf-8")) + actual = _replay_fixture(fixture) + snap_path = SNAPSHOTS_DIR / path.name + if os.environ.get("GOLDEN_UPDATE") == "1": + SNAPSHOTS_DIR.mkdir(parents=True, exist_ok=True) + snap_path.write_text( + json.dumps(actual, ensure_ascii=False, indent=1) + "\n", encoding="utf-8" + ) + return + self.assertTrue( + snap_path.exists(), + f"Chybí snapshot {snap_path.name} – vygeneruj přes GOLDEN_UPDATE=1", + ) + expected = json.loads(snap_path.read_text(encoding="utf-8")) + self.assertEqual( + expected["totals"], + actual["totals"], + f"{path.name}: změna agregátů plánu (totals)", + ) + self.assertEqual( + expected["slots"], + actual["slots"], + f"{path.name}: změna plánu per slot", + ) + + return test + + +for _path in _fixture_paths(): + _name = "test_golden_" + _path.stem.replace("-", "_").replace(".", "_") + setattr(GoldenReplayTests, _name, _make_test(_path)) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/harness/README.md b/scripts/harness/README.md new file mode 100644 index 0000000..b41322c --- /dev/null +++ b/scripts/harness/README.md @@ -0,0 +1,78 @@ +# Ekonomický regresní harness (Fáze 0 — „Čistý plánovač“) + +Nástroje pro objektivní měření ekonomiky plánovače a regresní bránu pro jeho +dekompozici. Kontext a fáze: viz strategie refaktoru (Fáze 0–4) v paměti +projektu / plánu „Čistý plánovač“. + +## Komponenty + +| Soubor | Účel | +|--------|------| +| `extract_fixtures.py` | Stáhne z EMS DB kompletní vstupy plánovače (context + sloty `fn_load_planning_slots_full`) pro zadanou site a pražský den → JSON fixture do `backend/tests/golden/fixtures/`. | +| `economics_report.py` | Pro rozsah dní spočítá skutečný cashflow (audit_interval) vs. **oracle LP** (perfect hindsight, čistý model bez heuristických penalt) → tabulka GAP per den. | +| `../../backend/tests/test_golden_replay.py` | Pytest gate: replay fixtures přes `solve_dispatch_two_pass`, porovnání s golden snapshoty v `backend/tests/golden/snapshots/`. | + +## Připojení k DB + +Všechny skripty čtou DSN v pořadí `--dsn` > `EMS_DB_DSN` > `DB_HOST`/`DB_PORT`/ +`DB_USER`/`DB_PASSWORD`/`DB_NAME` (default lokální docker `127.0.0.1:5432/ems`). +Čtou pouze (SELECT) — bezpečné proti produkci. + +```bash +export EMS_DB_DSN="postgresql://ems_user:***@10.200.200.1:5432/ems" +``` + +## Golden replay gate (regresní brána dekompozice) + +```bash +cd backend +python3 -m pytest tests/test_golden_replay.py -q # ověření (identity refactor → musí projít) +GOLDEN_UPDATE=1 python3 -m pytest tests/test_golden_replay.py -q # vědomá změna chování → regenerace +``` + +Pravidla: +- **Fáze 1 (dekompozice)**: snapshoty se NIKDY neregenerují — výstup musí být bitově shodný + (floaty zaokrouhleny na 4 d.m.). +- **Fáze 2/3 (změny ekonomiky)**: regenerace snapshotů je povolená pouze s odůvodněním + v commit message a se zlepšeným/nezhoršeným GAPem v `economics_report.py`. +- Fixtures jsou zmrazené vstupy z reálné DB (konfigurace k datu extrakce, EV sessions + vynulovány, `operating_mode=AUTO`) — deterministické, bez DB při běhu testu. + +### Přidání fixture + +```bash +python3 scripts/harness/extract_fixtures.py --site-code home-01 --day 2026-06-07 --tag neg_sell_deep +cd backend && GOLDEN_UPDATE=1 python3 -m pytest tests/test_golden_replay.py -q +``` + +Pokryté scénáře (v4 fixtures): home-01 hluboký neg-sell (sell −1.57, buy −0.89), +home-01 běžný spot den, BA81 běžný den, KV1 fixní nákup. Při změnách heuristik +přidávej scénář, který změnu pokrývá. + +## Ekonomický report (metrika „kolik necháváme na stole“) + +```bash +python3 scripts/harness/economics_report.py --site-code home-01 --from 2026-05-12 --to 2026-06-09 +``` + +- **actual** = skutečný cashflow dne z auditu (import × eff. buy − export × eff. sell), +- **oracle** = dolní mez: čistý MILP se skutečnou PV/spotřebou/cenami (perfect foresight), +- obojí **SoC-adjusted**: koncový SoC oceněn průměrnou denní nákupní cenou, aby den + „nevyhrával“ vybitím baterie, +- **gap = actual − oracle** = chyba forecastu + neefektivita dispatche. Oracle je + nedosažitelná dolní mez; sleduj TREND gapu (před/po změně plánovače), ne absolutní nulu. + +Vyloučeno z obou stran: zelený bonus PV B (nezávislý na dispatch rozhodnutích), +přesouvání EV/TČ zátěže (spotřeba je brána jako fixní). + +## Známý stav k 2026-06-11 (baseline) + +- `tests/test_planning_dispatch_milp.py`: **4 ze 124 testů failují už na main** + (`test_future_neg_buy_evening_export_at_high_soc_relaxed_prep`, + `test_grid_charge_respects_import_and_battery_caps`, + `test_morning_exports_pv_when_cushion_ok`, + `test_evening_reserve_soc_near_reserve_after_discharge`) — všechny z neg-sell/prep + heuristik. Nezakrývat regenerací; vyřešit ve Fázi 1/2. +- Golden snapshot home-01 neg-sell dne: `penalty_czk = 2119 Kč` při cashflow −163 Kč — + heuristické penalty v objective 13× převažují reálné peníze. To je kvantifikace + problému, který Fáze 2/3 odstraňují. diff --git a/scripts/harness/economics_report.py b/scripts/harness/economics_report.py new file mode 100644 index 0000000..1cb896e --- /dev/null +++ b/scripts/harness/economics_report.py @@ -0,0 +1,306 @@ +#!/usr/bin/env python3 +""" +Fáze 0 – ekonomický report: skutečný provoz vs. oracle LP (perfect hindsight). + +Pro každý pražský den v zadaném rozsahu spočítá: + 1. ACTUAL – skutečný cashflow z ems.audit_interval (import × eff. buy − export × eff. sell), + 2. ORACLE – dolní mez nákladů: malý ČISTÝ MILP (jen reálné peníze: nákup − prodej + − degradace, žádné heuristické penalty) nad SKUTEČNOU PV výrobou, + SKUTEČNOU spotřebou a skutečnými cenami dne (perfect foresight), + 3. GAP – actual − oracle, férově očištěno o rozdíl koncového SoC + (koncová energie oceněna průměrnou denní nákupní cenou). + +GAP = forecast error + neefektivita dispatche. Oracle nelze v reálu dosáhnout +(zná budoucnost), ale trend GAPu je objektivní metrika „neekonomického provozu“ +a regresní metr pro Fázi 2/3 (čistý plánovač). Oracle LP je zároveň zárodek +čistého jádra solveru. + +Model oracle (15min sloty, Wh): + pv_a_used + pv_b + gi + bd = load + bc + ge (bilance sběrnice) + pv_a_used ≤ pv_a_actual (curtailment jen pole A) + soc[t] = soc[t-1] + bc·η_c − bd/η_d (SoC dynamika) + min_soc ≤ soc ≤ soc_max; výkonové stropy baterie i sítě + sell < 0 ∧ block_export_on_negative_sell → ge = 0 (hard pravidlo KV1) + binárka: zákaz současného importu a exportu + objective: Σ gi·buy − ge·sell + ½(bc+bd)·degradace − soc[T]·avg_buy + +Zjednodušení (dokumentovaná): spotřeba je fixní (EV/TČ se nepřesouvá), +zelený bonus PV B vyloučen z obou stran, konfigurace baterie = aktuální stav DB. + +Použití: + EMS_DB_DSN=postgresql://ems_user:***@10.200.200.1:5432/ems \ + python3 scripts/harness/economics_report.py --site-code home-01 --from 2026-05-12 --to 2026-06-09 +""" + +from __future__ import annotations + +import argparse +import asyncio +import json +import os +import sys +from dataclasses import dataclass +from datetime import datetime, timedelta +from zoneinfo import ZoneInfo + +import asyncpg +import pulp + +PRAGUE = ZoneInfo("Europe/Prague") +INTERVAL_H = 0.25 +SLOT_WH_TO_W = 4 # Wh za 15 min → W + + +def _build_dsn(args: argparse.Namespace) -> str: + if args.dsn: + return args.dsn + env_dsn = os.environ.get("EMS_DB_DSN") + if env_dsn: + return env_dsn + host = os.environ.get("DB_HOST", "127.0.0.1") + port = os.environ.get("DB_PORT", "5432") + user = os.environ.get("DB_USER", "ems_user") + password = os.environ.get("DB_PASSWORD", "") + name = os.environ.get("DB_NAME", "ems") + return f"postgresql://{user}:{password}@{host}:{port}/{name}" + + +@dataclass +class DaySlot: + interval_start: datetime + buy: float # Kč/kWh efektivní nákup + sell: float # Kč/kWh efektivní prodej + pv_a_wh: float # skutečná výroba pole A (curtailable) + pv_b_wh: float # skutečná výroba pole B (fixní) + load_wh: float # skutečná spotřeba (vč. EV/TČ) + grid_import_wh: float + grid_export_wh: float + soc_pct: float | None + + +@dataclass +class BatteryParams: + usable_wh: float + min_soc_wh: float + soc_max_wh: float + charge_eff: float + discharge_eff: float + max_charge_w: float + max_discharge_w: float + degradation_czk_kwh: float + + +async def _load_battery_and_grid(conn: asyncpg.Connection, site_id: int) -> tuple[BatteryParams, dict]: + raw = await conn.fetchval("select ems.fn_planning_site_context($1::int)", site_id) + ctx = raw if isinstance(raw, dict) else json.loads(raw) + b = ctx["battery"] + bat = BatteryParams( + usable_wh=float(b["usable_capacity_wh"]), + min_soc_wh=float(b["min_soc_wh"]), + soc_max_wh=float(b.get("planner_soc_max_wh", b["soc_max_wh"])), + charge_eff=float(b["charge_efficiency"]), + discharge_eff=float(b["discharge_efficiency"]), + max_charge_w=float(b["max_charge_power_w"]), + max_discharge_w=float(b["max_discharge_power_w"]), + degradation_czk_kwh=float(b["degradation_cost_czk_kwh"]), + ) + g = ctx["grid"] + grid = { + "max_import_w": float(g["max_import_power_w"]), + "max_export_w": float(g["max_export_power_w"]), + "block_export_on_negative_sell": bool(g.get("block_export_on_negative_sell") or False), + } + return bat, grid + + +async def _load_day( + conn: asyncpg.Connection, site_id: int, day_start: datetime +) -> list[DaySlot]: + day_end = day_start + timedelta(days=1) + rows = await conn.fetch( + """ + select a.interval_start, + p.effective_buy_price_czk_kwh as buy, + p.effective_sell_price_czk_kwh as sell, + coalesce(a.actual_pv_production_wh, 0) as pv_wh, + coalesce(a.pv_b_production_wh, 0) as pv_b_wh, + coalesce(a.actual_load_consumption_wh, 0) as load_wh, + coalesce(a.actual_grid_import_wh, 0) as gi_wh, + coalesce(a.actual_grid_export_wh, 0) as ge_wh, + a.actual_battery_soc_pct as soc_pct + from ems.audit_interval a + join ems.vw_site_effective_price p + on p.site_id = a.site_id and p.interval_start = a.interval_start + where a.site_id = $1 + and a.interval_start >= $2 + and a.interval_start < $3 + order by a.interval_start + """, + site_id, + day_start, + day_end, + ) + return [ + DaySlot( + interval_start=r["interval_start"], + buy=float(r["buy"]), + sell=float(r["sell"]), + pv_a_wh=max(0.0, float(r["pv_wh"]) - float(r["pv_b_wh"])), + pv_b_wh=float(r["pv_b_wh"]), + load_wh=float(r["load_wh"]), + grid_import_wh=float(r["gi_wh"]), + grid_export_wh=float(r["ge_wh"]), + soc_pct=float(r["soc_pct"]) if r["soc_pct"] is not None else None, + ) + for r in rows + ] + + +def _actual_cashflow_czk(slots: list[DaySlot]) -> float: + return sum( + s.grid_import_wh / 1000.0 * s.buy - s.grid_export_wh / 1000.0 * s.sell + for s in slots + ) + + +def solve_oracle( + slots: list[DaySlot], + bat: BatteryParams, + grid: dict, + soc_start_wh: float, + terminal_value_czk_kwh: float, +) -> tuple[float, float]: + """Vrátí (cash_czk, soc_end_wh) optimálního dispatche s perfektní znalostí dne.""" + n = len(slots) + prob = pulp.LpProblem("oracle_day", pulp.LpMinimize) + + max_chg_wh = bat.max_charge_w * INTERVAL_H + max_dis_wh = bat.max_discharge_w * INTERVAL_H + max_gi_wh = grid["max_import_w"] * INTERVAL_H + max_ge_wh = grid["max_export_w"] * INTERVAL_H + + gi = [pulp.LpVariable(f"gi_{t}", 0, max_gi_wh) for t in range(n)] + ge = [pulp.LpVariable(f"ge_{t}", 0, max_ge_wh) for t in range(n)] + bc = [pulp.LpVariable(f"bc_{t}", 0, max_chg_wh) for t in range(n)] + bd = [pulp.LpVariable(f"bd_{t}", 0, max_dis_wh) for t in range(n)] + pa = [pulp.LpVariable(f"pa_{t}", 0, slots[t].pv_a_wh) for t in range(n)] + soc = [pulp.LpVariable(f"soc_{t}", bat.min_soc_wh, bat.soc_max_wh) for t in range(n)] + z_imp = [pulp.LpVariable(f"zi_{t}", cat="Binary") for t in range(n)] + + for t in range(n): + s = slots[t] + # bilance sběrnice (Wh ve slotu) + prob += pa[t] + s.pv_b_wh + gi[t] + bd[t] == s.load_wh + bc[t] + ge[t] + # SoC dynamika + prev = soc_start_wh if t == 0 else soc[t - 1] + prob += soc[t] == prev + bc[t] * bat.charge_eff - bd[t] / bat.discharge_eff + # zákaz současného importu a exportu + prob += gi[t] <= max_gi_wh * z_imp[t] + prob += ge[t] <= max_ge_wh * (1 - z_imp[t]) + # tvrdé pravidlo: záporný sell → žádný export (kde konfigurováno) + if s.sell < 0 and grid["block_export_on_negative_sell"]: + prob += ge[t] == 0 + + cash = pulp.lpSum( + gi[t] / 1000.0 * slots[t].buy - ge[t] / 1000.0 * slots[t].sell for t in range(n) + ) + degradation = pulp.lpSum( + 0.5 * (bc[t] + bd[t]) / 1000.0 * bat.degradation_czk_kwh for t in range(n) + ) + terminal = soc[n - 1] / 1000.0 * terminal_value_czk_kwh + prob += cash + degradation - terminal + + solver = pulp.HiGHS_CMD(msg=False) if pulp.HiGHS_CMD().available() else pulp.PULP_CBC_CMD(msg=False) + prob.solve(solver) + if pulp.LpStatus[prob.status] != "Optimal": + raise RuntimeError(f"Oracle LP není Optimal: {pulp.LpStatus[prob.status]}") + + cash_val = sum( + gi[t].value() / 1000.0 * slots[t].buy - ge[t].value() / 1000.0 * slots[t].sell + for t in range(n) + ) + return cash_val, float(soc[n - 1].value()) + + +async def run_report(args: argparse.Namespace) -> None: + dsn = _build_dsn(args) + conn = await asyncpg.connect(dsn) + try: + site_row = await conn.fetchrow("select id from ems.site where code = $1", args.site_code) + if site_row is None: + raise SystemExit(f"Site code '{args.site_code}' nenalezen") + site_id = int(site_row["id"]) + bat, grid = await _load_battery_and_grid(conn, site_id) + + d_from = datetime.strptime(getattr(args, "from"), "%Y-%m-%d").replace(tzinfo=PRAGUE) + d_to = datetime.strptime(args.to, "%Y-%m-%d").replace(tzinfo=PRAGUE) + + print(f"# Ekonomický report — {args.site_code} (site_id={site_id})") + print(f"# Okno: {getattr(args, 'from')} … {args.to} (Prague dny), baterie {bat.usable_wh/1000:.1f} kWh") + print() + header = ( + f"{'den':<11} {'actual':>9} {'oracle':>9} {'gap':>8} {'gap%':>6} " + f"{'soc0%':>5} {'socT_a%':>7} {'socT_o%':>7} {'avg_buy':>7}" + ) + print(header) + print("-" * len(header)) + + tot_actual = tot_oracle = tot_gap = 0.0 + days_ok = 0 + day = d_from + while day <= d_to: + slots = await _load_day(conn, site_id, day) + if len(slots) < 90 or all(s.soc_pct is None for s in slots): + print(f"{day.date()!s:<11} — přeskočeno (slotů: {len(slots)})") + day += timedelta(days=1) + continue + + soc0_pct = next(s.soc_pct for s in slots if s.soc_pct is not None) + socT_pct = next(s.soc_pct for s in reversed(slots) if s.soc_pct is not None) + soc_start_wh = soc0_pct / 100.0 * bat.usable_wh + soc_end_actual_wh = socT_pct / 100.0 * bat.usable_wh + avg_buy = sum(s.buy for s in slots) / len(slots) + + actual_cash = _actual_cashflow_czk(slots) + oracle_cash, soc_end_oracle_wh = solve_oracle(slots, bat, grid, soc_start_wh, avg_buy) + + # férové očištění: koncový SoC obou stran oceněn avg_buy dne + actual_adj = actual_cash - soc_end_actual_wh / 1000.0 * avg_buy + oracle_adj = oracle_cash - soc_end_oracle_wh / 1000.0 * avg_buy + gap = actual_adj - oracle_adj + gap_pct = (gap / abs(oracle_adj) * 100.0) if abs(oracle_adj) > 1e-6 else float("nan") + + print( + f"{day.date()!s:<11} {actual_adj:>9.1f} {oracle_adj:>9.1f} {gap:>8.1f} {gap_pct:>5.0f}% " + f"{soc0_pct:>5.0f} {socT_pct:>7.0f} {soc_end_oracle_wh / bat.usable_wh * 100:>7.0f} {avg_buy:>7.2f}" + ) + tot_actual += actual_adj + tot_oracle += oracle_adj + tot_gap += gap + days_ok += 1 + day += timedelta(days=1) + + print("-" * len(header)) + if days_ok: + print( + f"{'CELKEM':<11} {tot_actual:>9.1f} {tot_oracle:>9.1f} {tot_gap:>8.1f}" + f" ({days_ok} dní; Kč, SoC-adjusted; gap = forecast error + neefektivita dispatche)" + ) + else: + print("Žádný den s kompletním auditem.") + finally: + await conn.close() + + +def main() -> None: + p = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + p.add_argument("--site-code", required=True) + p.add_argument("--from", required=True, help="YYYY-MM-DD (Prague)") + p.add_argument("--to", required=True, help="YYYY-MM-DD (Prague), včetně") + p.add_argument("--dsn", default=None) + args = p.parse_args() + asyncio.run(run_report(args)) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/harness/extract_fixtures.py b/scripts/harness/extract_fixtures.py new file mode 100644 index 0000000..1035309 --- /dev/null +++ b/scripts/harness/extract_fixtures.py @@ -0,0 +1,219 @@ +#!/usr/bin/env python3 +""" +Fáze 0 – ekonomický regresní harness: extrakce golden fixtures z EMS DB. + +Pro zadanou lokalitu a pražský den stáhne KOMPLETNÍ vstupy plánovače: + - ems.fn_planning_site_context(site_id) → context jsonb (battery, grid, TČ, vozidla, TUV stats) + - ems.fn_load_planning_slots_full(...) → všechny sloupce slotů (ceny, forecast, masky, charge budget) + - SoC na začátku okna z ems.audit_interval (actual_battery_soc_pct) + +a uloží je jako JSON fixture do backend/tests/golden/fixtures/. Fixtures jsou +vstupem replay runneru (test_golden_replay.py), který nad nimi spouští +solve_dispatch_two_pass a porovnává výstup s golden snapshotem. + +Čtení z DB je read-only (SELECT). DSN: --dsn > EMS_DB_DSN > DB_HOST/DB_PORT/ +DB_USER/DB_PASSWORD (default 127.0.0.1:5432/ems jako docker-compose). + +Příklady: + python3 scripts/harness/extract_fixtures.py --site-code home-01 --day 2026-06-07 --tag neg_sell_deep + EMS_DB_DSN=postgresql://ems_user:***@10.200.200.1:5432/ems \ + python3 scripts/harness/extract_fixtures.py --site-code KV1 --day 2026-06-09 --tag fixed_normal +""" + +from __future__ import annotations + +import argparse +import asyncio +import json +import os +import sys +from datetime import datetime, timedelta +from pathlib import Path +from zoneinfo import ZoneInfo + +import asyncpg + +PRAGUE = ZoneInfo("Europe/Prague") +REPO_ROOT = Path(__file__).resolve().parents[2] +DEFAULT_OUT_DIR = REPO_ROOT / "backend" / "tests" / "golden" / "fixtures" + +FIXTURE_VERSION = 1 + + +def _build_dsn(args: argparse.Namespace) -> str: + if args.dsn: + return args.dsn + env_dsn = os.environ.get("EMS_DB_DSN") + if env_dsn: + return env_dsn + host = os.environ.get("DB_HOST", "127.0.0.1") + port = os.environ.get("DB_PORT", "5432") + user = os.environ.get("DB_USER", "ems_user") + password = os.environ.get("DB_PASSWORD", "") + name = os.environ.get("DB_NAME", "ems") + return f"postgresql://{user}:{password}@{host}:{port}/{name}" + + +def _json_default(obj: object) -> str: + if isinstance(obj, datetime): + return obj.isoformat() + return str(obj) + + +async def _fetch_site_id(conn: asyncpg.Connection, site_code: str) -> int: + row = await conn.fetchrow("select id from ems.site where code = $1", site_code) + if row is None: + raise SystemExit(f"Site code '{site_code}' nenalezen v ems.site") + return int(row["id"]) + + +async def _fetch_context(conn: asyncpg.Connection, site_id: int) -> dict: + raw = await conn.fetchval("select ems.fn_planning_site_context($1::int)", site_id) + ctx = raw if isinstance(raw, dict) else json.loads(raw) + if ctx.get("error") == "unknown_site": + raise SystemExit(f"fn_planning_site_context: unknown_site pro id={site_id}") + return ctx + + +async def _fetch_soc_at(conn: asyncpg.Connection, site_id: int, at: datetime, usable_wh: float) -> float | None: + """SoC (Wh) na začátku okna z audit_interval; None pokud audit chybí.""" + row = await conn.fetchrow( + """ + select actual_battery_soc_pct + from ems.audit_interval + where site_id = $1 and interval_start = $2 + """, + site_id, + at, + ) + if row is None or row["actual_battery_soc_pct"] is None: + return None + return float(row["actual_battery_soc_pct"]) / 100.0 * usable_wh + + +async def _fetch_slots( + conn: asyncpg.Connection, site_id: int, from_dt: datetime, to_dt: datetime, soc_wh: float +) -> list[dict]: + rows = await conn.fetch( + """ + select slot_ord, interval_start, buy_price, sell_price, is_predicted_price, + pv_a_forecast_w, pv_b_forecast_w, load_baseline_w, + ev1_connected, ev2_connected, allow_charge, allow_discharge_export, + night_baseload_target_wh, night_baseload_buffer_wh, safety_soc_target_wh, + future_avoided_buy_czk_kwh, future_sell_opportunity_czk_kwh, + is_daytime_pv_surplus_slot, + charge_acquisition_buy_czk_kwh, charge_acquisition_cutoff_at, + min_buy_before_cutoff_czk_kwh, pv_charge_wh_ahead, neg_buy_wh_ahead, + grid_charge_suppressed_reason, + charge_target_wh, pre_window_wh, in_window_wh, + charge_slot_wh, charge_cum_wh, charge_layer, charge_slot_reason + from ems.fn_load_planning_slots_full( + $1::int, $2::timestamptz, $3::timestamptz, $4::numeric + ) + """, + site_id, + from_dt, + to_dt, + soc_wh, + ) + out: list[dict] = [] + for r in rows: + d = dict(r) + for key, val in list(d.items()): + if isinstance(val, datetime): + d[key] = val.isoformat() + elif val is not None and type(val).__name__ == "Decimal": + d[key] = float(val) + out.append(d) + return out + + +async def extract(args: argparse.Namespace) -> Path: + dsn = _build_dsn(args) + conn = await asyncpg.connect(dsn) + try: + site_id = await _fetch_site_id(conn, args.site_code) + ctx = await _fetch_context(conn, site_id) + + day = datetime.strptime(args.day, "%Y-%m-%d").replace(tzinfo=PRAGUE) + from_dt = day + to_dt = day + timedelta(hours=args.hours) + + usable_wh = float(ctx["battery"]["usable_capacity_wh"]) + soc_wh = await _fetch_soc_at(conn, site_id, from_dt, usable_wh) + soc_source = "audit_interval" + if soc_wh is None: + soc_wh = 0.5 * usable_wh + soc_source = "fallback_50pct" + + slot_rows = await _fetch_slots(conn, site_id, from_dt, to_dt, soc_wh) + if not slot_rows: + raise SystemExit( + f"fn_load_planning_slots_full nevrátila žádné sloty pro {args.site_code} {args.day}" + ) + + # Determinismus replay: + # - SoC/TUV fixujeme do contextu (přepis aktuálních hodnot historickými / extrakčními), + # - otevřené EV sessions z doby extrakce nepatří k historickému oknu → vynulovat, + # - operating_mode fixně AUTO (plný solver, srovnatelnost napříč fixtures). + ctx["soc_wh"] = soc_wh + ctx["ev_sessions"] = [] + ctx["operating_mode"] = "AUTO" + + fixture = { + "fixture_version": FIXTURE_VERSION, + "meta": { + "site_id": site_id, + "site_code": args.site_code, + "prague_day": args.day, + "window_from": from_dt.isoformat(), + "window_to": to_dt.isoformat(), + "horizon_hours": args.hours, + "soc_wh": round(soc_wh, 1), + "soc_source": soc_source, + "tag": args.tag, + "extracted_at": datetime.now(tz=PRAGUE).isoformat(), + "dsn_host": dsn.split("@")[-1].split("/")[0] if "@" in dsn else "?", + "note": ( + "Vstupy plánovače zmrazené k okamžiku extrakce (context = aktuální konfigurace, " + "sloty = fn_load_planning_slots_full nad historickými cenami/forecasty). " + "EV sessions vynulovány, operating_mode=AUTO." + ), + }, + "context_json": ctx, + "slot_rows": slot_rows, + } + + out_dir = Path(args.out_dir) + out_dir.mkdir(parents=True, exist_ok=True) + name = f"{args.site_code}_{args.day}_{args.tag}.json".replace("/", "-") + out_path = out_dir / name + out_path.write_text( + json.dumps(fixture, ensure_ascii=False, indent=1, default=_json_default) + "\n", + encoding="utf-8", + ) + print( + f"OK {out_path.relative_to(REPO_ROOT)}: {len(slot_rows)} slotů, " + f"soc={soc_wh:.0f} Wh ({soc_source}), " + f"buy {min(s['buy_price'] for s in slot_rows):.2f}..{max(s['buy_price'] for s in slot_rows):.2f}, " + f"sell {min(s['sell_price'] for s in slot_rows):.2f}..{max(s['sell_price'] for s in slot_rows):.2f} Kč/kWh" + ) + return out_path + finally: + await conn.close() + + +def main() -> None: + p = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + p.add_argument("--site-code", required=True, help="ems.site.code (home-01, BA81, KV1, …)") + p.add_argument("--day", required=True, help="Pražský den YYYY-MM-DD (začátek okna 00:00)") + p.add_argument("--hours", type=int, default=36, help="Délka okna v hodinách (default 36)") + p.add_argument("--tag", required=True, help="Krátký popis scénáře (neg_sell_deep, normal, …)") + p.add_argument("--dsn", default=None, help="postgresql:// DSN (jinak EMS_DB_DSN / DB_* env)") + p.add_argument("--out-dir", default=str(DEFAULT_OUT_DIR), help="Cílový adresář fixtures") + args = p.parse_args() + asyncio.run(extract(args)) + + +if __name__ == "__main__": + sys.exit(main())