From 35a0e158658cf82f6b25f396a9e4645bad6c3d31 Mon Sep 17 00:00:00 2001 From: Fredrik Ahlgren Date: Tue, 4 Aug 2026 15:45:06 +0200 Subject: [PATCH 1/3] test(control): record the slew limiter in the golden corpus MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The corpus that landed in #790 runs 391 of its 435 records at SlewRateW 10 kW or 100 kW. At those rates no realistic per-tick move reaches the bound, so the slew limiter was switched off in all but name: only 16 records change at all when it is disabled, and the gate could not see its interactions. Adds slew_limiter, a 155-record family recorded at rates a site runs — 500 W (control.NewState's default), 3000 W (the config default) and the 250-2000 W band in between. It covers anchoring on measured output in both directions, reversals across zero, the charge and discharge blocks with the battery live on the wrong side, fuse relief out-ranking the ramp, the post-slew re-clamp, and the snap-to-zero carve-out where it applies and where it does not. The bug_* records capture a known bug's behaviour as of this commit, not desired behaviour: noSelfCharge pins the fleet total to 0 W and the limiter then walks one step back toward the battery's live charging power, so a passive_arbitrage idle slot with the meter at -2000 W and the battery live at +2000 W commands +1500 W of charging on a tick that forbids charging. The fix will move these records, which is the point of recording them. TestGoldenCorpusCoverage now measures, for every record, how far the targets move when the limiter is opted out, and fails when fewer than 60 records bind by more than 50 W. A re-recording that drifts back to unreachable slew rates fails CI instead of passing quietly. Co-Authored-By: Claude Opus 5 --- go/internal/control/golden_dump_test.go | 536 + go/internal/control/golden_test.go | 187 +- .../control/testdata/golden/slew_limiter.json | 15542 ++++++++++++++++ 3 files changed, 16261 insertions(+), 4 deletions(-) create mode 100644 go/internal/control/testdata/golden/slew_limiter.json diff --git a/go/internal/control/golden_dump_test.go b/go/internal/control/golden_dump_test.go index 73a95980..ec8510a8 100644 --- a/go/internal/control/golden_dump_test.go +++ b/go/internal/control/golden_dump_test.go @@ -826,6 +826,541 @@ func targetedScenarios() []goldenScenario { return out } +// ---- family: slew limiter ------------------------------------------------- +// +// The other six families run at SlewRateW 10 kW or 100 kW, which is another +// way of saying they run with the slew limiter switched off: no realistic +// per-tick move is large enough to reach the bound. This family runs at rates +// a site actually uses — 500 W (control.NewState's default), 3000 W (the +// config default a site inherits when it sets no slew_rate_w), and the +// 250–2000 W band operators pick in between — so the limiter binds and the +// corpus can see it. +// +// It matters because the slew limiter is the last stage that can INVENT +// power. Every other clamp shrinks a target toward zero; slew re-anchors on +// the battery's measured output (SmoothedW) and walks one step from there, so +// a target of 0 W becomes ±SlewRateW whenever the battery is not already +// still. Nothing downstream floors the charge side of that: applyFuseGuard +// only shrinks, floorNegativeTargets is discharge-only, and planSignIntent +// returns 0 for an idle slot. +// +// KNOWN BUG RECORDED HERE, NOT FIXED HERE. The slew/bug_* and +// slew/blocked_sibling_* records capture dispatch commanding charge on a tick +// that forbids charging: +// +// passive_arbitrage idle slot, meter -2000 W, battery live +2000 W, +// SlewRateW 500 -> noSelfCharge pins the fleet total to 0 W, the slew +// limiter re-anchors on +2000 W and commands +1500 W of charging. +// +// The snap-to-zero carve-out in the slew loop covers plannerSelfExportSurplus +// and the zero-power manual hold; it does not cover the stale-plan block or +// the arbitrage-family live-export gate, so those two leak. The corpus records +// behaviour as of this commit, not desired behaviour: when the fix lands, +// these records move, and the diff is the fix stated in watts. That is the +// point of recording them. +func slewScenarios() []goldenScenario { + mk := func(id string, in goldenInputs) goldenScenario { + return goldenScenario{ID: "slew/" + id, Inputs: in} + } + // react builds a reactive-mode state at a realistic slew rate. + react := func(mode Mode, slewW float64) goldenStateInputs { + s := defaultGoldenState(mode) + s.SlewRateW = slewW + return s + } + // plan builds an energy-path planner state at a realistic slew rate. + plan := func(mode Mode, slewW float64) goldenStateInputs { + s := react(mode, slewW) + s.GridToleranceW = 60 + s.UseEnergyDispatch = true + return s + } + // idleSlot is the arbitrage-family idle slot: the DP deliberately chose + // to move no energy, which is what arms the live-export charge gate. + idleSlot := func(strategy string) *goldenSlot { return slotFor(0, strategy) } + // exportSurplusSlot arms plannerSelfExportSurplusGate: no battery energy + // planned and a planned export baseline. + exportSurplusSlot := func() *goldenSlot { + s := slotFor(0, "self_consumption") + s.PlannedGridW = -2000 + s.HasPlannedGridW = true + return s + } + var out []goldenScenario + + // ---- anchoring: measured output far from the commanded target -------- + // + // The whole point of anchoring on SmoothedW rather than the previous + // command. One record per rate per direction, so a change to the bound + // itself shows up as a clean ladder across seven records. + for _, rate := range []float64{250, 500, 1000, 1500, 3000} { + out = append(out, mk(fmt.Sprintf("anchor_charging_wants_discharge_%.0f", rate), goldenInputs{ + FuseMaxW: 11040, GridW: 4000, + Batteries: []goldenBattery{gb("ferroamp", 15200, 3000, 0.65)}, + State: react(ModeSelfConsumption, rate), + })) + out = append(out, mk(fmt.Sprintf("anchor_discharging_wants_charge_%.0f", rate), goldenInputs{ + FuseMaxW: 11040, GridW: -4000, + PV: []goldenPV{{Driver: "pv-0", PowerW: -7000}}, + Batteries: []goldenBattery{gb("ferroamp", 15200, -3000, 0.45)}, + State: react(ModeSelfConsumption, rate), + })) + } + // Same two shapes with the limiter opted out: the control pair that says + // what the anchoring records would have been without smoothing. + offC := react(ModeSelfConsumption, 500) + offC.SlewEnabled = false + out = append(out, mk("anchor_charging_wants_discharge_slew_disabled", goldenInputs{ + FuseMaxW: 11040, GridW: 4000, + Batteries: []goldenBattery{gb("ferroamp", 15200, 3000, 0.65)}, + State: offC, + })) + offD := react(ModeSelfConsumption, 500) + offD.SlewEnabled = false + out = append(out, mk("anchor_discharging_wants_charge_slew_disabled", goldenInputs{ + FuseMaxW: 11040, GridW: -4000, + PV: []goldenPV{{Driver: "pv-0", PowerW: -7000}}, + Batteries: []goldenBattery{gb("ferroamp", 15200, -3000, 0.45)}, + State: offD, + })) + + // ---- direction reversal across zero ---------------------------------- + out = append(out, mk("reversal_charge_to_discharge_crosses_zero", goldenInputs{ + FuseMaxW: 11040, GridW: 3000, + Batteries: []goldenBattery{gb("ferroamp", 15200, 200, 0.70)}, + State: react(ModeSelfConsumption, 500), + })) + out = append(out, mk("reversal_discharge_to_charge_crosses_zero", goldenInputs{ + FuseMaxW: 11040, GridW: -3000, + PV: []goldenPV{{Driver: "pv-0", PowerW: -5000}}, + Batteries: []goldenBattery{gb("ferroamp", 15200, -200, 0.40)}, + State: react(ModeSelfConsumption, 500), + })) + // Negative control: the move is small enough that the limiter never + // binds. If a change makes THIS record move, the bound moved. + out = append(out, mk("reversal_inside_one_step_unbound", goldenInputs{ + FuseMaxW: 11040, GridW: 400, + Batteries: []goldenBattery{gb("ferroamp", 15200, 300, 0.60)}, + State: react(ModeSelfConsumption, 500), + })) + out = append(out, mk("reversal_planner_discharge_slot_from_charging", goldenInputs{ + FuseMaxW: 11040, GridW: 500, + Batteries: []goldenBattery{gb("ferroamp", 15200, 2500, 0.60)}, + State: plan(ModePlannerArbitrage, 500), + Slot: slotFor(-2000, "arbitrage"), + })) + out = append(out, mk("reversal_planner_charge_slot_from_discharging", goldenInputs{ + FuseMaxW: 11040, GridW: 500, + Batteries: []goldenBattery{gb("ferroamp", 15200, -2500, 0.40)}, + State: plan(ModePlannerCheap, 500), + Slot: slotFor(2000, "cheap"), + })) + + // ---- the bug: a closed charge block re-opened by slew ---------------- + // + // noSelfCharge pins the fleet total to 0 W; the limiter then walks + // SlewRateW back toward the battery's live charging power and commands + // charge anyway. Recorded at three rates because the leak is exactly + // min(SlewRateW, live charge) and vanishes once one step covers the + // whole anchor. + for _, rate := range []float64{250, 500, 1500} { + out = append(out, mk(fmt.Sprintf("bug_no_self_charge_idle_slot_leak_%.0f", rate), goldenInputs{ + FuseMaxW: 11040, GridW: -2000, + Batteries: []goldenBattery{gb("ferroamp", 15200, 2000, 0.55)}, + State: plan(ModePlannerPassiveArbitrage, rate), + Slot: idleSlot("passive_arbitrage"), + })) + } + // One step covers the whole anchor: total lands on 0 W and no charge + // leaks. The same gate, the same battery, a different rate. + out = append(out, mk("no_self_charge_idle_slot_slew_3000_reaches_zero", goldenInputs{ + FuseMaxW: 11040, GridW: -2000, + Batteries: []goldenBattery{gb("ferroamp", 15200, 2000, 0.55)}, + State: plan(ModePlannerPassiveArbitrage, 3000), + Slot: idleSlot("passive_arbitrage"), + })) + // Live PV telemetry present: the operator-visible shape of the same + // tick, where the surplus the gate is protecting is on the meter. + out = append(out, mk("bug_no_self_charge_idle_slot_leak_with_pv", goldenInputs{ + FuseMaxW: 11040, GridW: -2500, + PV: []goldenPV{{Driver: "pv-0", PowerW: -5000}}, + Batteries: []goldenBattery{gb("ferroamp", 15200, 2500, 0.60)}, + State: plan(ModePlannerPassiveArbitrage, 500), + Slot: idleSlot("passive_arbitrage"), + })) + // planner_arbitrage idle slot arms the same gate. + out = append(out, mk("bug_no_self_charge_arbitrage_idle_slot_leak", goldenInputs{ + FuseMaxW: 11040, GridW: -2000, + Batteries: []goldenBattery{gb("ferroamp", 15200, 2000, 0.50)}, + State: plan(ModePlannerArbitrage, 500), + Slot: idleSlot("arbitrage"), + })) + // Two live-charging batteries: the leak is per driver, so it scales + // with fleet size rather than being shared out of one budget. + out = append(out, mk("bug_no_self_charge_idle_slot_leak_two_batteries", goldenInputs{ + FuseMaxW: 11040, GridW: -3500, + Batteries: []goldenBattery{ + gb("ferroamp", 15200, 2000, 0.55), + gb("sungrow", 9600, 1500, 0.50), + }, + State: plan(ModePlannerPassiveArbitrage, 500), + Slot: idleSlot("passive_arbitrage"), + })) + // planner_self with no fresh plan: the stale-plan charge block, which + // the snap-to-zero carve-out does not cover either. + out = append(out, mk("bug_no_self_charge_stale_plan_leak", goldenInputs{ + FuseMaxW: 11040, GridW: -1500, + PV: []goldenPV{{Driver: "pv-0", PowerW: -4000}}, + Batteries: []goldenBattery{gb("ferroamp", 15200, 2500, 0.60)}, + State: plan(ModePlannerSelf, 500), + Slot: staleSlot(), + })) + // A discharge-blocked battery is parked at 0 W by the distributor and + // then walked back toward its live discharge by the same mechanism. + blk := gb("ferroamp", 15200, -2000, 0.50) + blk.DischargeBlocked = true + out = append(out, mk("blocked_sibling_slew_reopens_parked_target", goldenInputs{ + FuseMaxW: 11040, GridW: 2500, + Batteries: []goldenBattery{blk, gb("sungrow", 9600, 0, 0.60)}, + State: react(ModeSelfConsumption, 500), + })) + cblk := gb("ferroamp", 15200, 2000, 0.50) + cblk.ChargeBlocked = true + out = append(out, mk("blocked_sibling_slew_reopens_parked_charge", goldenInputs{ + FuseMaxW: 11040, GridW: -2500, + PV: []goldenPV{{Driver: "pv-0", PowerW: -5000}}, + Batteries: []goldenBattery{cblk, gb("sungrow", 9600, 0, 0.40)}, + State: react(ModeSelfConsumption, 500), + })) + + // ---- snap-to-zero carve-out: where it applies ------------------------ + // + // plannerSelfExportSurplusGate is one of the two gates the carve-out + // covers. Same battery, same rate, same pinned total as the bug records + // above — and the target lands on 0 W instead of leaking. + out = append(out, mk("carveout_export_surplus_gate_snaps_to_zero", goldenInputs{ + FuseMaxW: 11040, GridW: -1500, + PV: []goldenPV{{Driver: "pv-0", PowerW: -4000}}, + Batteries: []goldenBattery{gb("ferroamp", 15200, 2500, 0.60)}, + State: plan(ModePlannerSelf, 500), + Slot: exportSurplusSlot(), + })) + // The carve-out is direction-blind: a live discharge is snapped too. + out = append(out, mk("carveout_export_surplus_gate_snaps_discharge", goldenInputs{ + FuseMaxW: 11040, GridW: -4000, + PV: []goldenPV{{Driver: "pv-0", PowerW: -6000}}, + Batteries: []goldenBattery{gb("ferroamp", 15200, -800, 0.70)}, + State: plan(ModePlannerSelf, 500), + Slot: exportSurplusSlot(), + })) + // ...and where it does not: identical tick, stale plan instead of a + // planned export, so the carve-out predicate misses the gate and the + // limiter walks its step away from the 0 W the block asked for. + out = append(out, mk("carveout_absent_stale_plan_walks_a_step", goldenInputs{ + FuseMaxW: 11040, GridW: -4000, + PV: []goldenPV{{Driver: "pv-0", PowerW: -6000}}, + Batteries: []goldenBattery{gb("ferroamp", 15200, -800, 0.70)}, + State: plan(ModePlannerSelf, 500), + Slot: staleSlot(), + })) + + // ---- the other side of the gate: discharge IS floored downstream ----- + // + // floorNegativeTargets runs for noSelfDischarge, so the mirror-image + // leak on the discharge side is caught after the limiter. Recorded next + // to the charge-side records above: the asymmetry is the bug. + out = append(out, mk("no_self_discharge_charge_slot_live_discharging", goldenInputs{ + FuseMaxW: 11040, GridW: 500, + Batteries: []goldenBattery{gb("ferroamp", 15200, -2000, 0.40)}, + State: plan(ModePlannerCheap, 500), + Slot: slotFor(2000, "cheap"), + })) + out = append(out, mk("no_self_discharge_arbitrage_charge_slot_live_discharging", goldenInputs{ + FuseMaxW: 11040, GridW: 500, + Batteries: []goldenBattery{gb("ferroamp", 15200, -2500, 0.35)}, + State: plan(ModePlannerArbitrage, 500), + Slot: slotFor(2500, "arbitrage"), + })) + + // ---- fuse pressure beats smoothing ----------------------------------- + // + // forceFuseDischarge runs after the limiter for exactly this reason: a + // fuse overflow cannot wait for the ramp. These records hold that + // ordering — the commanded discharge is many slew steps deep. + for _, rate := range []float64{250, 500} { + out = append(out, mk(fmt.Sprintf("fuse_relief_beats_smoothing_%.0f", rate), goldenInputs{ + FuseMaxW: 11040, GridW: 15000, + Batteries: []goldenBattery{gb("ferroamp", 15200, 2000, 0.70)}, + State: react(ModeSelfConsumption, rate), + })) + } + out = append(out, mk("fuse_relief_from_charging_anchor_planner", goldenInputs{ + FuseMaxW: 11040, GridW: 15500, + Batteries: []goldenBattery{gb("ferroamp", 15200, 2500, 0.65)}, + State: plan(ModePlannerCheap, 500), + Slot: slotFor(1500, "cheap"), + })) + // Over the fuse only because the battery is charging: the guard shrinks + // the post-slew target back under the ceiling, the forced discharge + // never has to fire, and the limiter is still in play upstream. + out = append(out, mk("fuse_guard_shrink_with_slew", goldenInputs{ + FuseMaxW: 11040, GridW: 13000, + Batteries: []goldenBattery{gb("ferroamp", 15200, 4000, 0.60)}, + State: react(ModeSelfConsumption, 500), + })) + // Export side: there is no forced charge, only the guard shrinking the + // discharge — but it shrinks straight past the slew step, which is the + // same ordering stated in the other direction. + out = append(out, mk("fuse_export_ceiling_beats_smoothing", goldenInputs{ + FuseMaxW: 11040, GridW: -15000, + PV: []goldenPV{{Driver: "pv-0", PowerW: -16000}}, + Batteries: []goldenBattery{gb("ferroamp", 15200, -2000, 0.50)}, + State: react(ModeSelfConsumption, 500), + })) + pp := react(ModeSelfConsumption, 500) + pp.SiteFuseAmps = 16 + pp.SiteFuseVoltage = 230 + pp.SiteFusePhases = 3 + out = append(out, mk("per_phase_overage_with_slew", goldenInputs{ + FuseMaxW: 11040, GridW: 1000, + MeterPhases: &goldenPhases{L1A: 20, L2A: 4, L3A: 5}, + Batteries: []goldenBattery{gb("ferroamp", 15200, 1500, 0.60)}, + State: pp, + })) + ev := react(ModeSelfConsumption, 500) + ev.EVChargingW = 6000 + out = append(out, mk("ev_joint_allocator_with_slew", goldenInputs{ + FuseMaxW: 11040, GridW: 9000, + Batteries: []goldenBattery{gb("ferroamp", 15200, 2000, 0.55)}, + State: ev, + })) + bb := react(ModeSelfConsumption, 500) + bb.BatteryBoostReserveSoC = 0.50 + bb.BatteryBoostEVChargingW = 2000 + out = append(out, mk("boost_reserve_floor_with_slew", goldenInputs{ + FuseMaxW: 11040, GridW: 3000, + Batteries: []goldenBattery{gb("ferroamp", 15200, -1500, 0.45)}, + State: bb, + })) + + // ---- post-slew re-clamp ---------------------------------------------- + // + // The anchor is the battery's measured output, which can sit outside + // what we are allowed to command. The re-clamp after the limiter is + // what stops the slewed target inheriting that overshoot. + rcC := react(ModeSelfConsumption, 500) + rcCB := gb("ferroamp", 15200, 6000, 0.40) + rcCB.MaxChargeW = 3000 + rcCB.MaxDischargeW = 3000 + out = append(out, mk("reclamp_after_slew_driver_limit_charge", goldenInputs{ + FuseMaxW: 11040, GridW: -6000, + PV: []goldenPV{{Driver: "pv-0", PowerW: -12000}}, + Batteries: []goldenBattery{rcCB}, + State: rcC, + })) + rcDB := gb("ferroamp", 15200, -6000, 0.60) + rcDB.MaxChargeW = 2500 + rcDB.MaxDischargeW = 2500 + out = append(out, mk("reclamp_after_slew_driver_limit_discharge", goldenInputs{ + FuseMaxW: 11040, GridW: 6000, + Batteries: []goldenBattery{rcDB}, + State: react(ModeSelfConsumption, 500), + })) + // No DriverLimits: MaxCommandW is the cap the slewed target hits. + out = append(out, mk("reclamp_after_slew_max_command", goldenInputs{ + FuseMaxW: 17250, GridW: -8000, + PV: []goldenPV{{Driver: "pv-0", PowerW: -14000}}, + Batteries: []goldenBattery{gb("ferroamp", 15200, 4900, 0.40)}, + State: react(ModeSelfConsumption, 500), + })) + + // ---- fleets: the limiter is per driver, not per site ----------------- + out = append(out, mk("two_batteries_one_anchored_far", goldenInputs{ + FuseMaxW: 11040, GridW: 4000, + Batteries: []goldenBattery{ + gb("ferroamp", 15200, 3000, 0.60), + gb("sungrow", 9600, 0, 0.60), + }, + State: react(ModeSelfConsumption, 500), + })) + out = append(out, mk("three_batteries_mixed_anchors", goldenInputs{ + FuseMaxW: 11040, GridW: 5000, + Batteries: []goldenBattery{ + gb("ferroamp", 15200, 2500, 0.65), + gb("sungrow", 9600, -1500, 0.55), + gb("pixii", 10000, 0, 0.45), + }, + State: react(ModeSelfConsumption, 500), + })) + offB := gb("sungrow", 9600, -2000, 0.60) + offB.Online = false + out = append(out, mk("offline_sibling_not_slewed", goldenInputs{ + FuseMaxW: 11040, GridW: 3000, + Batteries: []goldenBattery{gb("ferroamp", 15200, 2000, 0.60), offB}, + State: react(ModeSelfConsumption, 500), + })) + pr := react(ModePriority, 500) + pr.PriorityOrder = []string{"sungrow", "ferroamp"} + out = append(out, mk("priority_split_with_slew", goldenInputs{ + FuseMaxW: 11040, GridW: 4000, + Batteries: []goldenBattery{ + gb("ferroamp", 15200, 2000, 0.60), + gb("sungrow", 9600, -1000, 0.60), + }, + State: pr, + })) + wt := react(ModeWeighted, 500) + wt.Weights = map[string]float64{"ferroamp": 2, "sungrow": 1} + out = append(out, mk("weighted_split_with_slew", goldenInputs{ + FuseMaxW: 11040, GridW: 4000, + Batteries: []goldenBattery{ + gb("ferroamp", 15200, 2000, 0.60), + gb("sungrow", 9600, -1000, 0.60), + }, + State: wt, + })) + ps := react(ModePeakShaving, 500) + ps.PeakLimitW = 3000 + out = append(out, mk("peak_shaving_with_slew", goldenInputs{ + FuseMaxW: 11040, GridW: 6000, + Batteries: []goldenBattery{gb("ferroamp", 15200, 1500, 0.60)}, + State: ps, + })) + gt := react(ModeSelfConsumption, 500) + gt.GridTargetW = -500 + out = append(out, mk("grid_target_offset_with_slew", goldenInputs{ + FuseMaxW: 11040, GridW: 2500, + Batteries: []goldenBattery{gb("ferroamp", 15200, 2000, 0.60)}, + State: gt, + })) + + return append(out, slewSeeded()...) +} + +// slewSeeded fills the family out with pseudo-random ticks at realistic slew +// rates: the named records above are the shapes somebody thought of, these are +// the combinations nobody did. Seeds are fixed, so the set is reproducible. +func slewSeeded() []goldenScenario { + rates := []float64{250, 500, 750, 1000, 1500, 2000, 3000} + modes := []Mode{ + ModeSelfConsumption, ModePeakShaving, ModePriority, ModeWeighted, + ModePlannerSelf, ModePlannerCheap, ModePlannerPassiveArbitrage, ModePlannerArbitrage, + } + strategies := map[Mode]string{ + ModePlannerSelf: "self_consumption", + ModePlannerCheap: "cheap", + ModePlannerPassiveArbitrage: "passive_arbitrage", + ModePlannerArbitrage: "arbitrage", + } + out := make([]goldenScenario, 0, 105) + for i := 0; i < 105; i++ { + seed := int64(6000 + i) + rng := rand.New(rand.NewSource(seed)) + mode := modes[i%len(modes)] + n := 1 + rng.Intn(3) + bats := seededBatteries(rng, n, 0.10, 0.90) + // Put at least one battery well away from any plausible target, so + // the anchor and the target disagree by more than one step. + far := roundW(1500 + rng.Float64()*4000) + if rng.Float64() < 0.50 { + far = -far + } + bats[rng.Intn(len(bats))].CurrentW = far + for j := range bats { + if rng.Float64() < 0.25 { + limitVals := []float64{2000, 3000, 5000} + bats[j].MaxChargeW = limitVals[rng.Intn(len(limitVals))] + bats[j].MaxDischargeW = limitVals[rng.Intn(len(limitVals))] + } + } + + st := defaultGoldenState(mode) + st.SlewRateW = rates[rng.Intn(len(rates))] + if rng.Float64() < 0.10 { + st.SlewEnabled = false + } + if rng.Float64() < 0.10 { + st.GridTargetW = roundW(rng.Float64()*1000 - 500) + } + switch mode { + case ModePeakShaving: + st.PeakLimitW = roundW(3000 + rng.Float64()*3000) + case ModePriority: + order := make([]string, len(bats)) + for j, b := range bats { + order[j] = b.Driver + } + rng.Shuffle(len(order), func(a, b int) { order[a], order[b] = order[b], order[a] }) + st.PriorityOrder = order + case ModeWeighted: + w := map[string]float64{} + for _, b := range bats { + w[b.Driver] = round1(0.5 + rng.Float64()*2.5) + } + st.Weights = w + } + + // Fuse pressure on a quarter of the set: relief has to out-rank + // smoothing there, and the two stages only meet under load. + fuseMaxW := 11040.0 + var gridW float64 + switch { + case rng.Float64() < 0.25: + gridW = roundW(fuseMaxW*1.05 + rng.Float64()*fuseMaxW*0.4) + if rng.Float64() < 0.35 { + gridW = -gridW + } + default: + gridW = roundW(rng.Float64()*12000 - 6000) + } + + in := goldenInputs{ + FuseMaxW: fuseMaxW, + GridW: gridW, + Batteries: bats, + State: st, + } + if gridW < 0 || rng.Float64() < 0.40 { + in.PV = []goldenPV{{Driver: "pv-0", PowerW: -roundW(1000 + rng.Float64()*8000)}} + } + if rng.Float64() < 0.15 { + in.State.EVChargingW = roundW(3000 + rng.Float64()*5000) + } + if mode.IsPlannerMode() { + in.State.GridToleranceW = 60 + in.State.UseEnergyDispatch = true + if rng.Float64() < 0.12 { + in.Slot = staleSlot() + } else { + slot := &goldenSlot{ + Present: true, + Strategy: strategies[mode], + ElapsedS: roundW(60 + rng.Float64()*640), + RemainingS: roundW(200 + rng.Float64()*600), + } + switch r := rng.Float64(); { + case r < 0.35: + // Idle slot: the case that arms the charge blocks. + slot.BatteryEnergyWh = roundW(rng.Float64()*60 - 30) + case r < 0.65: + slot.BatteryEnergyWh = roundW(400 + rng.Float64()*2600) + default: + slot.BatteryEnergyWh = -roundW(400 + rng.Float64()*2600) + } + if rng.Float64() < 0.45 { + slot.HasPlannedGridW = true + slot.PlannedGridW = roundW(rng.Float64()*6000 - 3000) + } + in.Slot = slot + } + } + out = append(out, goldenScenario{ + ID: fmt.Sprintf("slew/seeded_%03d_%s", i, mode), Seed: seed, Inputs: in, + }) + } + return out +} + // ---- seeded families ------------------------------------------------------ var goldenNames = []string{"ferroamp", "sungrow", "pixii"} @@ -1283,6 +1818,7 @@ func TestGoldenDump(t *testing.T) { "seeded_fuse": seededFuse, "seeded_siblings": seededSiblings, "seeded_ev_boost": seededEVBoost, + "slew_limiter": slewScenarios, } families := goldenFamilyNames for _, name := range families { diff --git a/go/internal/control/golden_test.go b/go/internal/control/golden_test.go index 34883af5..73efb430 100644 --- a/go/internal/control/golden_test.go +++ b/go/internal/control/golden_test.go @@ -2,10 +2,11 @@ package control // Golden replay of ComputeDispatch. // -// testdata/golden/ holds 435 recorded dispatch ticks: seven families covering +// testdata/golden/ holds 590 recorded dispatch ticks: eight families covering // the reactive modes, all four planner modes, fuse pressure in both -// directions, degraded siblings, EV and battery-boost reserves, and the -// incident scenarios that forecast_scenarios_test.go already names. Each +// directions, degraded siblings, EV and battery-boost reserves, the slew +// limiter at rates a site actually runs, and the incident scenarios that +// forecast_scenarios_test.go already names. Each // record stores the inputs to one ComputeDispatch call — telemetry, State, // slot directive, driver capacities, fuse ceiling — next to the per-driver // targets and clamp attributions that call returned. This test rebuilds each @@ -60,7 +61,28 @@ const ( // goldenExpectedRecords guards against a half-written re-recording // silently shrinking the net. - goldenExpectedRecords = 435 + goldenExpectedRecords = 590 + + // goldenSlewBindingMarginW is how far a record's targets have to move + // when the slew limiter is switched off before that record counts as + // one where the limiter genuinely bound. Small enough to catch a + // tightly-anchored tick, large enough that float noise cannot qualify. + goldenSlewBindingMarginW = 50 + + // goldenMinSlewBindingRecords is the floor on how many such records the + // corpus holds. The corpus that shipped in #790 had 391 of 435 records + // running at SlewRateW 10 kW or 100 kW — the limiter was switched off + // in all but name, and none of its interactions were covered. This + // number is the tripwire for that happening again; it sits well under + // what the slew_limiter family records today, so ordinary drift in + // dispatch does not trip it and a lost family does. + goldenMinSlewBindingRecords = 60 + + // goldenSlewRealisticRateW is the loosest rate that still counts as + // production-realistic: control.NewState defaults to 500 W and + // config.Defaults to 3000 W, so anything at or under 3000 W is a rate + // a site actually runs. + goldenSlewRealisticRateW = 3000 // goldenMaxReported caps how many changed records get a full diff, so a // change that moves everything still produces readable output. @@ -77,6 +99,7 @@ var goldenFamilyNames = []string{ "seeded_fuse", "seeded_siblings", "seeded_ev_boost", + "slew_limiter", } // readGoldenCorpus loads every family from dir and returns the records in @@ -209,6 +232,8 @@ func assertGoldenCoverage(t *testing.T, all []goldenRecord, byID map[string]gold sf.ClampAttributions, sf.PerDriverTargets) } + assertGoldenSlewCoverage(t, all, byID) + // Generic scans across the whole corpus. var nFuseSaturated, nHoldLatched, nPerPhase, nStale, nBlocked, nEmpty int for _, r := range all { @@ -241,6 +266,160 @@ func assertGoldenCoverage(t *testing.T, all []goldenRecord, byID map[string]gold } } +// assertGoldenSlewCoverage holds the corpus to the slew limiter. +// +// The limiter is the last stage in dispatch that can raise a target's +// magnitude: everything after it shrinks toward zero. It also anchors on the +// battery's measured output rather than the previous command, so it is the one +// clamp whose answer depends on what the hardware is doing this second. A +// corpus that runs it at 100 kW is a corpus that never sees it. +// +// The records named here are the shapes that must not quietly leave the +// corpus. Where the assertion states an outcome, that outcome is a safety +// invariant somebody would want back if it broke. Where it only states that +// the shape is present, dispatch's behaviour on that shape is a known bug and +// the record exists to make the fix visible — see the family's doc comment in +// golden_dump_test.go. +func assertGoldenSlewCoverage(t *testing.T, all []goldenRecord, byID map[string]goldenRecord) { + t.Helper() + + // A fuse overflow cannot wait for the ramp: forceFuseDischarge runs + // after the limiter for that reason. Hold the ordering — the commanded + // discharge is several slew steps away from where the battery is. + if fr, ok := byID["slew/fuse_relief_beats_smoothing_500"]; !ok { + t.Error("missing slew/fuse_relief_beats_smoothing_500") + } else { + move := math.Abs(sumGoldenTargets(fr) - goldenLiveBatteryW(fr)) + if sumGoldenTargets(fr) >= 0 || move <= 2*fr.Inputs.State.SlewRateW { + t.Errorf("record no longer shows fuse relief out-ranking the ramp: target sum %.0f W is %.0f W "+ + "from the live %.0f W anchor, which is inside two %.0f W slew steps", + sumGoldenTargets(fr), move, goldenLiveBatteryW(fr), fr.Inputs.State.SlewRateW) + } + } + + // planner_self planned an export this slot. The snap-to-zero carve-out + // in the slew loop is what stops the limiter walking a charging battery + // back into that surplus one step at a time. + if cz, ok := byID["slew/carveout_export_surplus_gate_snaps_to_zero"]; !ok { + t.Error("missing slew/carveout_export_surplus_gate_snaps_to_zero") + } else if math.Abs(sumGoldenTargets(cz)) > 1 { + t.Errorf("snap-to-zero carve-out not exercised: target sum %.0f W from a live %.0f W anchor", + sumGoldenTargets(cz), goldenLiveBatteryW(cz)) + } + + // The discharge side of the same problem IS floored after the limiter, + // by floorNegativeTargets. This record is the reference the charge-side + // records below are compared against. + if nd, ok := byID["slew/no_self_discharge_charge_slot_live_discharging"]; !ok { + t.Error("missing slew/no_self_discharge_charge_slot_live_discharging") + } else if sumGoldenTargets(nd) < -1 { + t.Errorf("noSelfDischarge floor not exercised: target sum %.0f W on a charge slot", + sumGoldenTargets(nd)) + } + + // The charge side is not floored. These records hold the shape — a + // charge block armed, a battery live on the charge side, and a rate at + // which one step does not cover the anchor — without asserting the + // watts, which are today's bug and tomorrow's fix. + for _, id := range []string{ + "slew/bug_no_self_charge_idle_slot_leak_500", + "slew/bug_no_self_charge_stale_plan_leak", + "slew/blocked_sibling_slew_reopens_parked_charge", + } { + r, ok := byID[id] + if !ok { + t.Errorf("missing %s — it is the corpus's record of the slew charge leak", id) + continue + } + live := goldenLiveBatteryW(r) + if live <= r.Inputs.State.SlewRateW { + t.Errorf("%s no longer exercises the leak: live battery %.0f W is within one %.0f W step, so the limiter reaches 0 W anyway", + id, live, r.Inputs.State.SlewRateW) + } + } + + // The corpus as a whole: how many records does the limiter actually + // change the answer on, and does it bind at a rate a site would run. + var binding, bindingAtRealisticRate int + var largest float64 + var largestID string + for _, r := range all { + effect := goldenSlewEffectW(r) + if effect <= goldenSlewBindingMarginW { + continue + } + binding++ + if r.Inputs.State.SlewRateW <= goldenSlewRealisticRateW { + bindingAtRealisticRate++ + } + if effect > largest { + largest, largestID = effect, r.ScenarioID + } + } + t.Logf("slew coverage: %d records bind (>%0.f W), %d of them at a production-realistic rate (<= %.0f W/tick); largest effect %.0f W on %s", + binding, float64(goldenSlewBindingMarginW), bindingAtRealisticRate, + float64(goldenSlewRealisticRateW), largest, largestID) + if binding < goldenMinSlewBindingRecords { + t.Errorf("coverage gap: only %d records where the slew limiter binds by more than %.0f W, want at least %d. "+ + "A corpus recorded at unreachable slew rates cannot see the limiter at all — re-record the slew_limiter family.", + binding, float64(goldenSlewBindingMarginW), goldenMinSlewBindingRecords) + } + if bindingAtRealisticRate < goldenMinSlewBindingRecords { + t.Errorf("coverage gap: only %d binding records run at <= %.0f W/tick; the rest bind only at rates no site configures", + bindingAtRealisticRate, float64(goldenSlewRealisticRateW)) + } +} + +// goldenSlewEffectW replays a record twice — as recorded, and with the slew +// limiter opted out — and returns the largest per-driver difference in watts. +// +// It is measured rather than stored because a record holds only the final +// targets, and by then the limiter's contribution is indistinguishable from +// every other clamp's. SlewEnabled=false skips exactly the ramp clamp and +// nothing else (not the snap-to-zero carve-out above it, not the re-clamp +// below it), so the difference between the two runs is the limiter's effect on +// the answer that reached the hardware. +func goldenSlewEffectW(r goldenRecord) float64 { + if !r.Inputs.State.SlewEnabled { + return 0 + } + on := runGoldenScenario(goldenScenario{ID: r.ScenarioID, Seed: r.Seed, Inputs: r.Inputs}) + off := r.Inputs + off.State.SlewEnabled = false + unslewed := runGoldenScenario(goldenScenario{ID: r.ScenarioID, Seed: r.Seed, Inputs: off}) + + byDriver := map[string]float64{} + for _, tg := range on.PerDriverTargets { + byDriver[tg.Driver] += tg.TargetW + } + for _, tg := range unslewed.PerDriverTargets { + byDriver[tg.Driver] -= tg.TargetW + } + var largest float64 + for _, d := range byDriver { + if math.Abs(d) > largest { + largest = math.Abs(d) + } + } + return largest +} + +// goldenLiveBatteryW sums the measured output of the batteries the record +// dispatched — the anchor the slew limiter ramps from. +func goldenLiveBatteryW(r goldenRecord) float64 { + dispatched := map[string]bool{} + for _, tg := range r.PerDriverTargets { + dispatched[tg.Driver] = true + } + var sum float64 + for _, b := range r.Inputs.Batteries { + if dispatched[b.Driver] { + sum += b.CurrentW + } + } + return sum +} + func sumGoldenTargets(r goldenRecord) float64 { var s float64 for _, tg := range r.PerDriverTargets { diff --git a/go/internal/control/testdata/golden/slew_limiter.json b/go/internal/control/testdata/golden/slew_limiter.json new file mode 100644 index 00000000..16570c2b --- /dev/null +++ b/go/internal/control/testdata/golden/slew_limiter.json @@ -0,0 +1,15542 @@ +{ + "family": "slew_limiter", + "generated_by": "FTW_GOLDEN_DUMP=1 go test ./internal/control/ -run TestGoldenDump", + "ftw_commit": "369d12023c88c6cc66134b0ef48d69ee081347fe", + "record_count": 155, + "records": [ + { + "scenario_id": "slew/anchor_charging_wants_discharge_250", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 3000, + "soc": 0.65, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 250, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2750, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 3000, + "battery_target_sum_w": 2750, + "raw_grid_w": 4000, + "projected_grid_w": 3750 + } + }, + { + "scenario_id": "slew/anchor_discharging_wants_charge_250", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4000, + "pv": [ + { + "driver": "pv-0", + "power_w": -7000 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -3000, + "soc": 0.45, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 250, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -2750, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -3000, + "battery_target_sum_w": -2750, + "raw_grid_w": -4000, + "projected_grid_w": -3750 + } + }, + { + "scenario_id": "slew/anchor_charging_wants_discharge_500", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 3000, + "soc": 0.65, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2500, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 3000, + "battery_target_sum_w": 2500, + "raw_grid_w": 4000, + "projected_grid_w": 3500 + } + }, + { + "scenario_id": "slew/anchor_discharging_wants_charge_500", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4000, + "pv": [ + { + "driver": "pv-0", + "power_w": -7000 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -3000, + "soc": 0.45, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -2500, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -3000, + "battery_target_sum_w": -2500, + "raw_grid_w": -4000, + "projected_grid_w": -3500 + } + }, + { + "scenario_id": "slew/anchor_charging_wants_discharge_1000", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 3000, + "soc": 0.65, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 1000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 3000, + "battery_target_sum_w": 2000, + "raw_grid_w": 4000, + "projected_grid_w": 3000 + } + }, + { + "scenario_id": "slew/anchor_discharging_wants_charge_1000", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4000, + "pv": [ + { + "driver": "pv-0", + "power_w": -7000 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -3000, + "soc": 0.45, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 1000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -2000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -3000, + "battery_target_sum_w": -2000, + "raw_grid_w": -4000, + "projected_grid_w": -3000 + } + }, + { + "scenario_id": "slew/anchor_charging_wants_discharge_1500", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 3000, + "soc": 0.65, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 1500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1500, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 3000, + "battery_target_sum_w": 1500, + "raw_grid_w": 4000, + "projected_grid_w": 2500 + } + }, + { + "scenario_id": "slew/anchor_discharging_wants_charge_1500", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4000, + "pv": [ + { + "driver": "pv-0", + "power_w": -7000 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -3000, + "soc": 0.45, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 1500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1500, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -3000, + "battery_target_sum_w": -1500, + "raw_grid_w": -4000, + "projected_grid_w": -2500 + } + }, + { + "scenario_id": "slew/anchor_charging_wants_discharge_3000", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 3000, + "soc": 0.65, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 600, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 3000, + "battery_target_sum_w": 600, + "raw_grid_w": 4000, + "projected_grid_w": 1600 + } + }, + { + "scenario_id": "slew/anchor_discharging_wants_charge_3000", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4000, + "pv": [ + { + "driver": "pv-0", + "power_w": -7000 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -3000, + "soc": 0.45, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -600, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -3000, + "battery_target_sum_w": -600, + "raw_grid_w": -4000, + "projected_grid_w": -1600 + } + }, + { + "scenario_id": "slew/anchor_charging_wants_discharge_slew_disabled", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 3000, + "soc": 0.65, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": false, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 600, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 3000, + "battery_target_sum_w": 600, + "raw_grid_w": 4000, + "projected_grid_w": 1600 + } + }, + { + "scenario_id": "slew/anchor_discharging_wants_charge_slew_disabled", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4000, + "pv": [ + { + "driver": "pv-0", + "power_w": -7000 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -3000, + "soc": 0.45, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": false, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -600, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -3000, + "battery_target_sum_w": -600, + "raw_grid_w": -4000, + "projected_grid_w": -1600 + } + }, + { + "scenario_id": "slew/reversal_charge_to_discharge_crosses_zero", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 3000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 200, + "soc": 0.7, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -300, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 200, + "battery_target_sum_w": -300, + "raw_grid_w": 3000, + "projected_grid_w": 2500 + } + }, + { + "scenario_id": "slew/reversal_discharge_to_charge_crosses_zero", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -3000, + "pv": [ + { + "driver": "pv-0", + "power_w": -5000 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -200, + "soc": 0.4, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 300, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -200, + "battery_target_sum_w": 300, + "raw_grid_w": -3000, + "projected_grid_w": -2500 + } + }, + { + "scenario_id": "slew/reversal_inside_one_step_unbound", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 400, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 300, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 60, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 300, + "battery_target_sum_w": 60, + "raw_grid_w": 400, + "projected_grid_w": 160 + } + }, + { + "scenario_id": "slew/reversal_planner_discharge_slot_from_charging", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 500, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2500, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -2000, + "strategy": "arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 450, + "remaining_s": 450 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": true, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": true, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2500, + "battery_target_sum_w": 0, + "raw_grid_w": 500, + "projected_grid_w": -2000 + } + }, + { + "scenario_id": "slew/reversal_planner_charge_slot_from_discharging", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 500, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -2500, + "soc": 0.4, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_cheap", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 2000, + "strategy": "cheap", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 450, + "remaining_s": 450 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": true, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": true, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -2500, + "battery_target_sum_w": 0, + "raw_grid_w": 500, + "projected_grid_w": 3000 + } + }, + { + "scenario_id": "slew/bug_no_self_charge_idle_slot_leak_250", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2000, + "soc": 0.55, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 250, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 0, + "strategy": "passive_arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 450, + "remaining_s": 450 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1750, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2000, + "battery_target_sum_w": 1750, + "raw_grid_w": -2000, + "projected_grid_w": -2250 + } + }, + { + "scenario_id": "slew/bug_no_self_charge_idle_slot_leak_500", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2000, + "soc": 0.55, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 0, + "strategy": "passive_arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 450, + "remaining_s": 450 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1500, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2000, + "battery_target_sum_w": 1500, + "raw_grid_w": -2000, + "projected_grid_w": -2500 + } + }, + { + "scenario_id": "slew/bug_no_self_charge_idle_slot_leak_1500", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2000, + "soc": 0.55, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 1500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 0, + "strategy": "passive_arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 450, + "remaining_s": 450 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 500, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2000, + "battery_target_sum_w": 500, + "raw_grid_w": -2000, + "projected_grid_w": -3500 + } + }, + { + "scenario_id": "slew/no_self_charge_idle_slot_slew_3000_reaches_zero", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2000, + "soc": 0.55, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 0, + "strategy": "passive_arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 450, + "remaining_s": 450 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2000, + "battery_target_sum_w": 0, + "raw_grid_w": -2000, + "projected_grid_w": -4000 + } + }, + { + "scenario_id": "slew/bug_no_self_charge_idle_slot_leak_with_pv", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2500, + "pv": [ + { + "driver": "pv-0", + "power_w": -5000 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2500, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 0, + "strategy": "passive_arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 450, + "remaining_s": 450 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2500, + "battery_target_sum_w": 2000, + "raw_grid_w": -2500, + "projected_grid_w": -3000 + } + }, + { + "scenario_id": "slew/bug_no_self_charge_arbitrage_idle_slot_leak", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2000, + "soc": 0.5, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 0, + "strategy": "arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 450, + "remaining_s": 450 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1500, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2000, + "battery_target_sum_w": 1500, + "raw_grid_w": -2000, + "projected_grid_w": -2500 + } + }, + { + "scenario_id": "slew/bug_no_self_charge_idle_slot_leak_two_batteries", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -3500, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2000, + "soc": 0.55, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": 1500, + "soc": 0.5, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 0, + "strategy": "passive_arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 450, + "remaining_s": 450 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1500, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 1000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 3500, + "battery_target_sum_w": 2500, + "raw_grid_w": -3500, + "projected_grid_w": -4500 + } + }, + { + "scenario_id": "slew/bug_no_self_charge_stale_plan_leak", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -1500, + "pv": [ + { + "driver": "pv-0", + "power_w": -4000 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2500, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": false, + "battery_energy_wh": 0, + "strategy": "", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 0, + "remaining_s": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": true, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2500, + "battery_target_sum_w": 2000, + "raw_grid_w": -1500, + "projected_grid_w": -2000 + } + }, + { + "scenario_id": "slew/blocked_sibling_slew_reopens_parked_target", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 2500, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -2000, + "soc": 0.5, + "online": true, + "device_fault": false, + "discharge_blocked": true, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": 0, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1500, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -500, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -2000, + "battery_target_sum_w": -2000, + "raw_grid_w": 2500, + "projected_grid_w": 2500 + } + }, + { + "scenario_id": "slew/blocked_sibling_slew_reopens_parked_charge", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2500, + "pv": [ + { + "driver": "pv-0", + "power_w": -5000 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2000, + "soc": 0.5, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": true, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": 0, + "soc": 0.4, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1500, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 500, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2000, + "battery_target_sum_w": 2000, + "raw_grid_w": -2500, + "projected_grid_w": -2500 + } + }, + { + "scenario_id": "slew/carveout_export_surplus_gate_snaps_to_zero", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -1500, + "pv": [ + { + "driver": "pv-0", + "power_w": -4000 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2500, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 0, + "strategy": "self_consumption", + "planned_grid_w": -2000, + "has_planned_grid_w": true, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 450, + "remaining_s": 450 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2500, + "battery_target_sum_w": 0, + "raw_grid_w": -1500, + "projected_grid_w": -4000 + } + }, + { + "scenario_id": "slew/carveout_export_surplus_gate_snaps_discharge", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4000, + "pv": [ + { + "driver": "pv-0", + "power_w": -6000 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -800, + "soc": 0.7, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 0, + "strategy": "self_consumption", + "planned_grid_w": -2000, + "has_planned_grid_w": true, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 450, + "remaining_s": 450 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -800, + "battery_target_sum_w": 0, + "raw_grid_w": -4000, + "projected_grid_w": -3200 + } + }, + { + "scenario_id": "slew/carveout_absent_stale_plan_walks_a_step", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4000, + "pv": [ + { + "driver": "pv-0", + "power_w": -6000 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -800, + "soc": 0.7, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": false, + "battery_energy_wh": 0, + "strategy": "", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 0, + "remaining_s": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -300, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": true, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -800, + "battery_target_sum_w": -300, + "raw_grid_w": -4000, + "projected_grid_w": -3500 + } + }, + { + "scenario_id": "slew/no_self_discharge_charge_slot_live_discharging", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 500, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -2000, + "soc": 0.4, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_cheap", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 2000, + "strategy": "cheap", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 450, + "remaining_s": 450 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": true, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": true, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -2000, + "battery_target_sum_w": 0, + "raw_grid_w": 500, + "projected_grid_w": 2500 + } + }, + { + "scenario_id": "slew/no_self_discharge_arbitrage_charge_slot_live_discharging", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 500, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -2500, + "soc": 0.35, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 2500, + "strategy": "arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 450, + "remaining_s": 450 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": true, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": true, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -2500, + "battery_target_sum_w": 0, + "raw_grid_w": 500, + "projected_grid_w": 3000 + } + }, + { + "scenario_id": "slew/fuse_relief_beats_smoothing_250", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 15000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2000, + "soc": 0.7, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 250, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1960, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": true, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": true, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2000, + "battery_target_sum_w": -1960, + "raw_grid_w": 15000, + "projected_grid_w": 11040 + } + }, + { + "scenario_id": "slew/fuse_relief_beats_smoothing_500", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 15000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2000, + "soc": 0.7, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1960, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": true, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": true, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2000, + "battery_target_sum_w": -1960, + "raw_grid_w": 15000, + "projected_grid_w": 11040 + } + }, + { + "scenario_id": "slew/fuse_relief_from_charging_anchor_planner", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 15500, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2500, + "soc": 0.65, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_cheap", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 1500, + "strategy": "cheap", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 450, + "remaining_s": 450 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1960, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": true, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": true, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2500, + "battery_target_sum_w": -1960, + "raw_grid_w": 15500, + "projected_grid_w": 11040 + } + }, + { + "scenario_id": "slew/fuse_guard_shrink_with_slew", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 13000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 4000, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2040, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": true, + "fuse_hold_max_charge_w": 2040, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": true, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 4000, + "battery_target_sum_w": 2040, + "raw_grid_w": 13000, + "projected_grid_w": 11040 + } + }, + { + "scenario_id": "slew/fuse_export_ceiling_beats_smoothing", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -15000, + "pv": [ + { + "driver": "pv-0", + "power_w": -16000 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -2000, + "soc": 0.5, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": true, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": true, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -2000, + "battery_target_sum_w": 0, + "raw_grid_w": -15000, + "projected_grid_w": -13000 + } + }, + { + "scenario_id": "slew/per_phase_overage_with_slew", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 1000, + "meter_phase_amps": { + "l1_a": 20, + "l2_a": 4, + "l3_a": 5 + }, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 1500, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 16, + "site_fuse_voltage": 230, + "site_fuse_phases": 3, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -2760, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": true, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 920, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 1500, + "battery_target_sum_w": -2760, + "raw_grid_w": 1000, + "projected_grid_w": -3260 + } + }, + { + "scenario_id": "slew/ev_joint_allocator_with_slew", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 9000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2000, + "soc": 0.55, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 6000, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1500, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2000, + "battery_target_sum_w": 1500, + "raw_grid_w": 9000, + "projected_grid_w": 8500 + } + }, + { + "scenario_id": "slew/boost_reserve_floor_with_slew", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 3000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -1500, + "soc": 0.45, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 2000, + "battery_boost_reserve_soc": 0.5, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": true, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -1500, + "battery_target_sum_w": 0, + "raw_grid_w": 3000, + "projected_grid_w": 4500 + } + }, + { + "scenario_id": "slew/reclamp_after_slew_driver_limit_charge", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -6000, + "pv": [ + { + "driver": "pv-0", + "power_w": -12000 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 6000, + "soc": 0.4, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 3000, + "max_discharge_w": 3000 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 3000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 6000, + "battery_target_sum_w": 3000, + "raw_grid_w": -6000, + "projected_grid_w": -9000 + } + }, + { + "scenario_id": "slew/reclamp_after_slew_driver_limit_discharge", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 6000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -6000, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2500, + "max_discharge_w": 2500 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -2500, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -6000, + "battery_target_sum_w": -2500, + "raw_grid_w": 6000, + "projected_grid_w": 9500 + } + }, + { + "scenario_id": "slew/reclamp_after_slew_max_command", + "seed": 0, + "inputs": { + "fuse_max_w": 17250, + "grid_w": -8000, + "pv": [ + { + "driver": "pv-0", + "power_w": -14000 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 4900, + "soc": 0.4, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 5000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 17250, + "effective_export_ceiling_w": 17250, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 4900, + "battery_target_sum_w": 5000, + "raw_grid_w": -8000, + "projected_grid_w": -7900 + } + }, + { + "scenario_id": "slew/two_batteries_one_anchored_far", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 3000, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": 0, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2500, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 232.25806451612902, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 3000, + "battery_target_sum_w": 2732.258064516129, + "raw_grid_w": 4000, + "projected_grid_w": 3732.258064516129 + } + }, + { + "scenario_id": "slew/three_batteries_mixed_anchors", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 5000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2500, + "soc": 0.65, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": -1500, + "soc": 0.55, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 10000, + "current_w": 0, + "soc": 0.45, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2000, + "clamped": true + }, + { + "driver": "pixii", + "target_w": -500, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -1000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 1000, + "battery_target_sum_w": 500, + "raw_grid_w": 5000, + "projected_grid_w": 4500 + } + }, + { + "scenario_id": "slew/offline_sibling_not_slewed", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 3000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2000, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": -2000, + "soc": 0.6, + "online": false, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1500, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2000, + "battery_target_sum_w": 1500, + "raw_grid_w": 3000, + "projected_grid_w": 2500 + } + }, + { + "scenario_id": "slew/priority_split_with_slew", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2000, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": -1000, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "priority", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "priority_order": [ + "sungrow", + "ferroamp" + ] + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2000, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": -1500, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 1000, + "battery_target_sum_w": 500, + "raw_grid_w": 4000, + "projected_grid_w": 3500 + } + }, + { + "scenario_id": "slew/weighted_split_with_slew", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2000, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": -1000, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "weighted", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "weights": { + "ferroamp": 2, + "sungrow": 1 + } + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1500, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -500, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 1000, + "battery_target_sum_w": 1000, + "raw_grid_w": 4000, + "projected_grid_w": 4000 + } + }, + { + "scenario_id": "slew/peak_shaving_with_slew", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 6000, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 1500, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "peak_shaving", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 3000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 1500, + "battery_target_sum_w": 1000, + "raw_grid_w": 6000, + "projected_grid_w": 5500 + } + }, + { + "scenario_id": "slew/grid_target_offset_with_slew", + "seed": 0, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 2500, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2000, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": -500, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1500, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2000, + "battery_target_sum_w": 1500, + "raw_grid_w": 2500, + "projected_grid_w": 2000 + } + }, + { + "scenario_id": "slew/seeded_000_self_consumption", + "seed": 6000, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 13981, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -3637, + "soc": 0.64, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": 4756, + "soc": 0.24, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 9600, + "current_w": 2336, + "soc": 0.73, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 2000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -2005.528455284553, + "clamped": false + }, + { + "driver": "pixii", + "target_w": 273.7909317514909, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 2245.7375235330624, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": true, + "fuse_hold_max_charge_w": 2519.5284552845533, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": true, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 3455, + "battery_target_sum_w": 514.0000000000002, + "raw_grid_w": 13981, + "projected_grid_w": 11040 + } + }, + { + "scenario_id": "slew/seeded_001_peak_shaving", + "seed": 6001, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -3636, + "pv": [ + { + "driver": "pv-0", + "power_w": -3326 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": -357, + "soc": 0.38, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 3000 + }, + { + "driver": "sungrow", + "capacity_wh": 15200, + "current_w": 5177, + "soc": 0.17, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 5000, + "current_w": -2758, + "soc": 0.61, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "peak_shaving", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 2000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 4520, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 841.984126984127, + "clamped": false + }, + { + "driver": "pixii", + "target_w": -758, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 3177, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2062, + "battery_target_sum_w": 3260.984126984127, + "raw_grid_w": -3636, + "projected_grid_w": -2437.015873015873 + } + }, + { + "scenario_id": "slew/seeded_002_priority", + "seed": 6002, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 310, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 3861, + "soc": 0.1, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 15200, + "current_w": 3512, + "soc": 0.48, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 9600, + "current_w": 2132, + "soc": 0.87, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 3000, + "max_discharge_w": 2000 + } + ], + "state": { + "mode": "priority", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 5380, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "priority_order": [ + "ferroamp", + "pixii", + "sungrow" + ] + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 4611, + "clamped": true + }, + { + "driver": "pixii", + "target_w": 2882, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 4262, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 9505, + "battery_target_sum_w": 11755, + "raw_grid_w": 310, + "projected_grid_w": 2560 + } + }, + { + "scenario_id": "slew/seeded_003_weighted", + "seed": 6003, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -3277, + "pv": [ + { + "driver": "pv-0", + "power_w": -6595 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": 1865, + "soc": 0.24, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": 4283, + "soc": 0.48, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 9600, + "current_w": -970, + "soc": 0.33, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "weighted", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 2000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "weights": { + "ferroamp": 2.9, + "pixii": 1, + "sungrow": 1.2 + } + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 3865, + "clamped": true + }, + { + "driver": "pixii", + "target_w": 1030, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 2283, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 5178, + "battery_target_sum_w": 7178, + "raw_grid_w": -3277, + "projected_grid_w": -1277 + } + }, + { + "scenario_id": "slew/seeded_004_planner_self", + "seed": 6004, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4024, + "pv": [ + { + "driver": "pv-0", + "power_w": -6943 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 1702, + "soc": 0.76, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": -1169, + "soc": 0.61, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 10000, + "current_w": -66, + "soc": 0.5, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 2000, + "slew_enabled": false, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 2552, + "strategy": "self_consumption", + "planned_grid_w": 2300, + "has_planned_grid_w": true, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 312, + "remaining_s": 524 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -778.96, + "clamped": false + }, + { + "driver": "pixii", + "target_w": -778.96, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": -389.48, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 467, + "battery_target_sum_w": -1947.4, + "raw_grid_w": 4024, + "projected_grid_w": 1609.6 + } + }, + { + "scenario_id": "slew/seeded_005_planner_cheap", + "seed": 6005, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 15686, + "pv": [ + { + "driver": "pv-0", + "power_w": -7295 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 9600, + "current_w": 2251, + "soc": 0.51, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 2000 + } + ], + "state": { + "mode": "planner_cheap", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 2000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -1056, + "strategy": "cheap", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 83, + "remaining_s": 724 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -2000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": true, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2251, + "battery_target_sum_w": -2000, + "raw_grid_w": 15686, + "projected_grid_w": 11435 + } + }, + { + "scenario_id": "slew/seeded_006_planner_passive_arbitrage", + "seed": 6006, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -3360, + "pv": [ + { + "driver": "pv-0", + "power_w": -3051 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": -3448, + "soc": 0.61, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": 2821, + "soc": 0.89, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": false, + "battery_energy_wh": 0, + "strategy": "", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 0, + "remaining_s": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -448, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 913.3150684931506, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": true, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -627, + "battery_target_sum_w": 465.31506849315065, + "raw_grid_w": -3360, + "projected_grid_w": -2267.6849315068494 + } + }, + { + "scenario_id": "slew/seeded_007_planner_arbitrage", + "seed": 6007, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4465, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -5159, + "soc": 0.36, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 2309, + "strategy": "arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 249, + "remaining_s": 481 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": true, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": true, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -5159, + "battery_target_sum_w": 0, + "raw_grid_w": 4465, + "projected_grid_w": 9624 + } + }, + { + "scenario_id": "slew/seeded_008_self_consumption", + "seed": 6008, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -1393, + "pv": [ + { + "driver": "pv-0", + "power_w": -8204 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": -1775, + "soc": 0.88, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 1500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -939.2, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -1775, + "battery_target_sum_w": -939.2, + "raw_grid_w": -1393, + "projected_grid_w": -557.2 + } + }, + { + "scenario_id": "slew/seeded_009_peak_shaving", + "seed": 6009, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -5450, + "pv": [ + { + "driver": "pv-0", + "power_w": -8738 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -2564, + "soc": 0.63, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": 2, + "soc": 0.51, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 3000, + "max_discharge_w": 3000 + }, + { + "driver": "pixii", + "capacity_wh": 15200, + "current_w": -1790, + "soc": 0.48, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "peak_shaving", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 1500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 3578, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1064, + "clamped": true + }, + { + "driver": "pixii", + "target_w": -544.5827814569536, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": -179.13907284768214, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -4352, + "battery_target_sum_w": -1787.7218543046358, + "raw_grid_w": -5450, + "projected_grid_w": -2885.7218543046356 + } + }, + { + "scenario_id": "slew/seeded_010_priority", + "seed": 6010, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 328, + "pv": [ + { + "driver": "pv-0", + "power_w": -6887 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 9600, + "current_w": -2520, + "soc": 0.74, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": -3233, + "soc": 0.39, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 5000, + "current_w": 3114, + "soc": 0.74, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "priority", + "grid_target_w": 27, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "priority_order": [ + "ferroamp", + "pixii", + "sungrow" + ] + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -2700.6, + "clamped": false + }, + { + "driver": "pixii", + "target_w": 3114, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": -3233, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -2639, + "battery_target_sum_w": -2819.6, + "raw_grid_w": 328, + "projected_grid_w": 147.4000000000001 + } + }, + { + "scenario_id": "slew/seeded_011_weighted", + "seed": 6011, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4498, + "pv": [ + { + "driver": "pv-0", + "power_w": -5276 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 607, + "soc": 0.49, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": -1993, + "soc": 0.8, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "weighted", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 1500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "weights": { + "ferroamp": 1.3, + "sungrow": 0.8 + } + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -893, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -1556.1142857142856, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -1386, + "battery_target_sum_w": -2449.114285714286, + "raw_grid_w": 4498, + "projected_grid_w": 3434.885714285714 + } + }, + { + "scenario_id": "slew/seeded_012_planner_self", + "seed": 6012, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4381, + "pv": [ + { + "driver": "pv-0", + "power_w": -5172 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -3619, + "soc": 0.25, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 1000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 3322, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -2307, + "strategy": "self_consumption", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 196, + "remaining_s": 641 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -2619, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -3619, + "battery_target_sum_w": -2619, + "raw_grid_w": -4381, + "projected_grid_w": -3381 + } + }, + { + "scenario_id": "slew/seeded_013_planner_cheap", + "seed": 6013, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4910, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 9600, + "current_w": 2903, + "soc": 0.39, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 3000 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": -3526, + "soc": 0.82, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 3000, + "max_discharge_w": 5000 + }, + { + "driver": "pixii", + "capacity_wh": 5000, + "current_w": -192, + "soc": 0.23, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_cheap", + "grid_target_w": -344, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 26, + "strategy": "cheap", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 676, + "remaining_s": 363 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2000, + "clamped": true + }, + { + "driver": "pixii", + "target_w": 53.275049604038465, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": 0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -815, + "battery_target_sum_w": 2053.2750496040385, + "raw_grid_w": 4910, + "projected_grid_w": 7778.275049604039 + } + }, + { + "scenario_id": "slew/seeded_014_planner_passive_arbitrage", + "seed": 6014, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 2857, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 1556, + "soc": 0.13, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 810, + "strategy": "passive_arbitrage", + "planned_grid_w": -950, + "has_planned_grid_w": true, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 287, + "remaining_s": 436 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 806, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 1556, + "battery_target_sum_w": 806, + "raw_grid_w": 2857, + "projected_grid_w": 2107 + } + }, + { + "scenario_id": "slew/seeded_015_planner_arbitrage", + "seed": 6015, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -3573, + "pv": [ + { + "driver": "pv-0", + "power_w": -3164 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 5151, + "soc": 0.65, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 4279, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -1765, + "strategy": "arbitrage", + "planned_grid_w": -1681, + "has_planned_grid_w": true, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 167, + "remaining_s": 395 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": true, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": true, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 5151, + "battery_target_sum_w": 0, + "raw_grid_w": -3573, + "projected_grid_w": -8724 + } + }, + { + "scenario_id": "slew/seeded_016_self_consumption", + "seed": 6016, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -3714, + "pv": [ + { + "driver": "pv-0", + "power_w": -4748 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": 1974, + "soc": 0.4, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": -2790, + "soc": 0.67, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 5000 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 1000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 974, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -1790, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -816, + "battery_target_sum_w": -816, + "raw_grid_w": -3714, + "projected_grid_w": -3714 + } + }, + { + "scenario_id": "slew/seeded_017_peak_shaving", + "seed": 6017, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2954, + "pv": [ + { + "driver": "pv-0", + "power_w": -1006 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 2676, + "soc": 0.52, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 5000 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": -835, + "soc": 0.85, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "peak_shaving", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 750, + "slew_enabled": false, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 3220, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2000, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 1204.4666666666667, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 1841, + "battery_target_sum_w": 3204.4666666666667, + "raw_grid_w": -2954, + "projected_grid_w": -1590.5333333333333 + } + }, + { + "scenario_id": "slew/seeded_018_priority", + "seed": 6018, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -5767, + "pv": [ + { + "driver": "pv-0", + "power_w": -1441 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": 3782, + "soc": 0.26, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "priority", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 250, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "priority_order": [ + "ferroamp" + ] + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 4032, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 3782, + "battery_target_sum_w": 4032, + "raw_grid_w": -5767, + "projected_grid_w": -5517 + } + }, + { + "scenario_id": "slew/seeded_019_weighted", + "seed": 6019, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -1669, + "pv": [ + { + "driver": "pv-0", + "power_w": -4922 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -4080, + "soc": 0.77, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 3000, + "max_discharge_w": 2000 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": 3451, + "soc": 0.28, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 5000, + "max_discharge_w": 3000 + } + ], + "state": { + "mode": "weighted", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "weights": { + "ferroamp": 1.8, + "sungrow": 1.6 + } + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -2000, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 2951, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -629, + "battery_target_sum_w": 951, + "raw_grid_w": -1669, + "projected_grid_w": -89 + } + }, + { + "scenario_id": "slew/seeded_020_planner_self", + "seed": 6020, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 243, + "pv": [ + { + "driver": "pv-0", + "power_w": -7289 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 9600, + "current_w": -5282, + "soc": 0.11, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 5000, + "max_discharge_w": 2000 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": -2656, + "soc": 0.29, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 1915, + "strategy": "self_consumption", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 682, + "remaining_s": 253 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -2000, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -3406, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -7938, + "battery_target_sum_w": -5406, + "raw_grid_w": 243, + "projected_grid_w": 2775 + } + }, + { + "scenario_id": "slew/seeded_021_planner_cheap", + "seed": 6021, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -641, + "pv": [ + { + "driver": "pv-0", + "power_w": -7444 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -3370, + "soc": 0.63, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_cheap", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 1000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": false, + "battery_energy_wh": 0, + "strategy": "", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 0, + "remaining_s": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -2985.4, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": true, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -3370, + "battery_target_sum_w": -2985.4, + "raw_grid_w": -641, + "projected_grid_w": -256.4000000000001 + } + }, + { + "scenario_id": "slew/seeded_022_planner_passive_arbitrage", + "seed": 6022, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 3725, + "pv": [ + { + "driver": "pv-0", + "power_w": -3912 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -1112, + "soc": 0.37, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 15200, + "current_w": 2187, + "soc": 0.74, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": -287, + "grid_tolerance_w": 60, + "slew_rate_w": 1500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 1505, + "strategy": "passive_arbitrage", + "planned_grid_w": 502, + "has_planned_grid_w": true, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 359, + "remaining_s": 201 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": 687, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 1075, + "battery_target_sum_w": 687, + "raw_grid_w": 3725, + "projected_grid_w": 3337 + } + }, + { + "scenario_id": "slew/seeded_023_planner_arbitrage", + "seed": 6023, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 13734, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 9600, + "current_w": 3855, + "soc": 0.89, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 15200, + "current_w": 2497, + "soc": 0.67, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 15200, + "current_w": -3423, + "soc": 0.23, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 1500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 2377, + "strategy": "arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 626, + "remaining_s": 361 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 558.2886517728132, + "clamped": true + }, + { + "driver": "pixii", + "target_w": -641, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 317.7113482271869, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": true, + "fuse_hold_max_charge_w": 2158, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": true, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2929, + "battery_target_sum_w": 235, + "raw_grid_w": 13734, + "projected_grid_w": 11040 + } + }, + { + "scenario_id": "slew/seeded_024_self_consumption", + "seed": 6024, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 2386, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 967, + "soc": 0.24, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 15200, + "current_w": -2925, + "soc": 0.18, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 15200, + "current_w": -4916, + "soc": 0.51, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 1000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -33, + "clamped": true + }, + { + "driver": "pixii", + "target_w": -3916, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -3124.8792079207924, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -6874, + "battery_target_sum_w": -7073.879207920792, + "raw_grid_w": 2386, + "projected_grid_w": 2186.1207920792076 + } + }, + { + "scenario_id": "slew/seeded_025_peak_shaving", + "seed": 6025, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -1028, + "pv": [ + { + "driver": "pv-0", + "power_w": -1192 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -1925, + "soc": 0.74, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 3000, + "max_discharge_w": 5000 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": -3825, + "soc": 0.16, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "peak_shaving", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 3606, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -3422.133333333333, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": -1711.0666666666666, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -5750, + "battery_target_sum_w": -5133.2, + "raw_grid_w": -1028, + "projected_grid_w": -411.1999999999998 + } + }, + { + "scenario_id": "slew/seeded_026_priority", + "seed": 6026, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -13276, + "pv": [ + { + "driver": "pv-0", + "power_w": -3605 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": 3783, + "soc": 0.49, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "priority", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 250, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "priority_order": [ + "ferroamp" + ] + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 4033, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 3783, + "battery_target_sum_w": 4033, + "raw_grid_w": -13276, + "projected_grid_w": -13026 + } + }, + { + "scenario_id": "slew/seeded_027_weighted", + "seed": 6027, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -994, + "pv": [ + { + "driver": "pv-0", + "power_w": -5783 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 5025, + "soc": 0.61, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "weighted", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "weights": { + "ferroamp": 1.1 + } + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 5000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 5025, + "battery_target_sum_w": 5000, + "raw_grid_w": -994, + "projected_grid_w": -1019 + } + }, + { + "scenario_id": "slew/seeded_028_planner_self", + "seed": 6028, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 2285, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": -2436, + "soc": 0.35, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": -3377, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 9600, + "current_w": 3104, + "soc": 0.66, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -446, + "strategy": "self_consumption", + "planned_grid_w": 2356, + "has_planned_grid_w": true, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 550, + "remaining_s": 669 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1936, + "clamped": true + }, + { + "driver": "pixii", + "target_w": 2604, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -2877, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -2709, + "battery_target_sum_w": -2209, + "raw_grid_w": 2285, + "projected_grid_w": 2785 + } + }, + { + "scenario_id": "slew/seeded_029_planner_cheap", + "seed": 6029, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -878, + "pv": [ + { + "driver": "pv-0", + "power_w": -8512 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 540, + "soc": 0.9, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 15200, + "current_w": 3811, + "soc": 0.1, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 3000, + "max_discharge_w": 5000 + }, + { + "driver": "pixii", + "capacity_wh": 9600, + "current_w": -6, + "soc": 0.48, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_cheap", + "grid_target_w": 278, + "grid_tolerance_w": 60, + "slew_rate_w": 750, + "slew_enabled": false, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 3932, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -2, + "strategy": "cheap", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 463, + "remaining_s": 398 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2630.7471264367814, + "clamped": false + }, + { + "driver": "pixii", + "target_w": 2525.5172413793102, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": 3000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 4345, + "battery_target_sum_w": 8156.264367816091, + "raw_grid_w": -878, + "projected_grid_w": 2933.264367816091 + } + }, + { + "scenario_id": "slew/seeded_030_planner_passive_arbitrage", + "seed": 6030, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -15476, + "pv": [ + { + "driver": "pv-0", + "power_w": -7187 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -350, + "soc": 0.62, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": -4174, + "soc": 0.64, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 1500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -855, + "strategy": "passive_arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 463, + "remaining_s": 704 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -35.98585322723254, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -52.01414677276747, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": true, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 88, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": true + }, + "site_totals": { + "battery_current_w": -4524, + "battery_target_sum_w": -88, + "raw_grid_w": -15476, + "projected_grid_w": -11040 + } + }, + { + "scenario_id": "slew/seeded_031_planner_arbitrage", + "seed": 6031, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -5678, + "pv": [ + { + "driver": "pv-0", + "power_w": -7261 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -4381, + "soc": 0.76, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": 2315, + "soc": 0.25, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 3000, + "slew_enabled": false, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -1729, + "strategy": "arbitrage", + "planned_grid_w": 1988, + "has_planned_grid_w": true, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 364, + "remaining_s": 456 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": 0, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -2066, + "battery_target_sum_w": 0, + "raw_grid_w": -5678, + "projected_grid_w": -3612 + } + }, + { + "scenario_id": "slew/seeded_032_self_consumption", + "seed": 6032, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 2415, + "pv": [ + { + "driver": "pv-0", + "power_w": -4451 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 4311, + "soc": 0.47, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 3000, + "max_discharge_w": 2000 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": -3701, + "soc": 0.12, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 2000 + }, + { + "driver": "pixii", + "capacity_wh": 10000, + "current_w": 465, + "soc": 0.38, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 2000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2311, + "clamped": true + }, + { + "driver": "pixii", + "target_w": -123.84105960264901, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": -1701, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 1075, + "battery_target_sum_w": 486.158940397351, + "raw_grid_w": 2415, + "projected_grid_w": 1826.158940397351 + } + }, + { + "scenario_id": "slew/seeded_033_peak_shaving", + "seed": 6033, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 172, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": -1658, + "soc": 0.21, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "peak_shaving", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 250, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5853, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -1658, + "battery_target_sum_w": 0, + "raw_grid_w": 172, + "projected_grid_w": 172 + } + }, + { + "scenario_id": "slew/seeded_034_priority", + "seed": 6034, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -12119, + "pv": [ + { + "driver": "pv-0", + "power_w": -2437 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -2489, + "soc": 0.33, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": -507, + "soc": 0.66, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "priority", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 250, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "priority_order": [ + "ferroamp", + "sungrow" + ] + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1563.0600873998544, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -353.9399126001457, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": true, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 1917, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": true + }, + "site_totals": { + "battery_current_w": -2996, + "battery_target_sum_w": -1917, + "raw_grid_w": -12119, + "projected_grid_w": -11040 + } + }, + { + "scenario_id": "slew/seeded_035_weighted", + "seed": 6035, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -1922, + "pv": [ + { + "driver": "pv-0", + "power_w": -7987 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -313, + "soc": 0.87, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": 1831, + "soc": 0.51, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 3000 + }, + { + "driver": "pixii", + "capacity_wh": 15200, + "current_w": -824, + "soc": 0.67, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "weighted", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 250, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "weights": { + "ferroamp": 2.4, + "pixii": 1.9, + "sungrow": 0.7 + } + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -63, + "clamped": true + }, + { + "driver": "pixii", + "target_w": -574, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 1581, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 694, + "battery_target_sum_w": 944, + "raw_grid_w": -1922, + "projected_grid_w": -1672 + } + }, + { + "scenario_id": "slew/seeded_036_planner_self", + "seed": 6036, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 3692, + "pv": [ + { + "driver": "pv-0", + "power_w": -8664 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -3924, + "soc": 0.59, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 15200, + "current_w": 3548, + "soc": 0.12, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -7, + "strategy": "self_consumption", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 449, + "remaining_s": 262 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1295.6, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": 548, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -376, + "battery_target_sum_w": -747.5999999999999, + "raw_grid_w": 3692, + "projected_grid_w": 3320.4 + } + }, + { + "scenario_id": "slew/seeded_037_planner_cheap", + "seed": 6037, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4253, + "pv": [ + { + "driver": "pv-0", + "power_w": -4084 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -95, + "soc": 0.34, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": -2529, + "soc": 0.85, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 15200, + "current_w": 3686, + "soc": 0.8, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_cheap", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 250, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 7229, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 9, + "strategy": "cheap", + "planned_grid_w": -2437, + "has_planned_grid_w": true, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 335, + "remaining_s": 398 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 30.62838951059093, + "clamped": false + }, + { + "driver": "pixii", + "target_w": 3436, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 1062, + "battery_target_sum_w": 3466.6283895105908, + "raw_grid_w": -4253, + "projected_grid_w": -1848.3716104894092 + } + }, + { + "scenario_id": "slew/seeded_038_planner_passive_arbitrage", + "seed": 6038, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -3374, + "pv": [ + { + "driver": "pv-0", + "power_w": -2962 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 9600, + "current_w": -2861, + "soc": 0.5, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": -604, + "soc": 0.35, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 5000, + "current_w": -2605, + "soc": 0.66, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 2000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 1866, + "strategy": "passive_arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 562, + "remaining_s": 542 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": true + }, + { + "driver": "pixii", + "target_w": 0, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 1396, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -6070, + "battery_target_sum_w": 1396, + "raw_grid_w": -3374, + "projected_grid_w": 4092 + } + }, + { + "scenario_id": "slew/seeded_039_planner_arbitrage", + "seed": 6039, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -12646, + "pv": [ + { + "driver": "pv-0", + "power_w": -1043 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 5377, + "soc": 0.24, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 3000, + "max_discharge_w": 2000 + } + ], + "state": { + "mode": "planner_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -16, + "strategy": "arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 366, + "remaining_s": 498 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 3000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 5377, + "battery_target_sum_w": 3000, + "raw_grid_w": -12646, + "projected_grid_w": -15023 + } + }, + { + "scenario_id": "slew/seeded_040_self_consumption", + "seed": 6040, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -3377, + "pv": [ + { + "driver": "pv-0", + "power_w": -4075 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 5025, + "soc": 0.76, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 5000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 5025, + "battery_target_sum_w": 5000, + "raw_grid_w": -3377, + "projected_grid_w": -3402 + } + }, + { + "scenario_id": "slew/seeded_041_peak_shaving", + "seed": 6041, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 13291, + "pv": [ + { + "driver": "pv-0", + "power_w": -2758 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": -2283, + "soc": 0.11, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "peak_shaving", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 3796, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -4534, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": true, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -2283, + "battery_target_sum_w": -4534, + "raw_grid_w": 13291, + "projected_grid_w": 11040 + } + }, + { + "scenario_id": "slew/seeded_042_priority", + "seed": 6042, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -13135, + "pv": [ + { + "driver": "pv-0", + "power_w": -5601 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -4637, + "soc": 0.62, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": -844, + "soc": 0.79, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "priority", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "priority_order": [ + "ferroamp", + "sungrow" + ] + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -2812.2629993977116, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -573.7370006022887, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": true, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 3386, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": true + }, + "site_totals": { + "battery_current_w": -5481, + "battery_target_sum_w": -3386.0000000000005, + "raw_grid_w": -13135, + "projected_grid_w": -11040 + } + }, + { + "scenario_id": "slew/seeded_043_weighted", + "seed": 6043, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4013, + "pv": [ + { + "driver": "pv-0", + "power_w": -4087 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": 4158, + "soc": 0.37, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "weighted", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "weights": { + "ferroamp": 0.8 + } + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 4908, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 4158, + "battery_target_sum_w": 4908, + "raw_grid_w": -4013, + "projected_grid_w": -3263 + } + }, + { + "scenario_id": "slew/seeded_044_planner_self", + "seed": 6044, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 13684, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 1792, + "soc": 0.1, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 5000, + "max_discharge_w": 3000 + }, + { + "driver": "sungrow", + "capacity_wh": 15200, + "current_w": 2661, + "soc": 0.47, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 9600, + "current_w": 1052, + "soc": 0.51, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 1500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 27, + "strategy": "self_consumption", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 211, + "remaining_s": 624 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 292, + "clamped": true + }, + { + "driver": "pixii", + "target_w": -448, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 1161, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 5505, + "battery_target_sum_w": 1005, + "raw_grid_w": 13684, + "projected_grid_w": 9184 + } + }, + { + "scenario_id": "slew/seeded_045_planner_cheap", + "seed": 6045, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 14221, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -1711, + "soc": 0.22, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 15200, + "current_w": -3616, + "soc": 0.41, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 5000, + "max_discharge_w": 2000 + } + ], + "state": { + "mode": "planner_cheap", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 1000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 7794, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": false, + "battery_energy_wh": 0, + "strategy": "", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 0, + "remaining_s": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -5000, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -2000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": true, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -5327, + "battery_target_sum_w": -7000, + "raw_grid_w": 14221, + "projected_grid_w": 12548 + } + }, + { + "scenario_id": "slew/seeded_046_planner_passive_arbitrage", + "seed": 6046, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -419, + "pv": [ + { + "driver": "pv-0", + "power_w": -2647 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": 2912, + "soc": 0.76, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 2000 + }, + { + "driver": "sungrow", + "capacity_wh": 15200, + "current_w": -2065, + "soc": 0.69, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 1000, + "slew_enabled": false, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 2879, + "strategy": "passive_arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 442, + "remaining_s": 493 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2000, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 5000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 847, + "battery_target_sum_w": 7000, + "raw_grid_w": -419, + "projected_grid_w": 5734 + } + }, + { + "scenario_id": "slew/seeded_047_planner_arbitrage", + "seed": 6047, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 1773, + "pv": [ + { + "driver": "pv-0", + "power_w": -3608 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 3112, + "soc": 0.48, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": -171, + "soc": 0.67, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -1869, + "strategy": "arbitrage", + "planned_grid_w": 1312, + "has_planned_grid_w": true, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 524, + "remaining_s": 558 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": true, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": true, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2941, + "battery_target_sum_w": 0, + "raw_grid_w": 1773, + "projected_grid_w": -1168 + } + }, + { + "scenario_id": "slew/seeded_048_self_consumption", + "seed": 6048, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -5213, + "pv": [ + { + "driver": "pv-0", + "power_w": -8103 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 9600, + "current_w": 3682, + "soc": 0.63, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 1000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 4772, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 4682, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 3682, + "battery_target_sum_w": 4682, + "raw_grid_w": -5213, + "projected_grid_w": -4213 + } + }, + { + "scenario_id": "slew/seeded_049_peak_shaving", + "seed": 6049, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 15964, + "pv": [ + { + "driver": "pv-0", + "power_w": -6774 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 4517, + "soc": 0.35, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 3000, + "max_discharge_w": 2000 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": -3885, + "soc": 0.71, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "peak_shaving", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 3800, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -549.8649227568003, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -3742.1350772432006, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": true, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": true, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 632, + "battery_target_sum_w": -4292.000000000001, + "raw_grid_w": 15964, + "projected_grid_w": 11040 + } + }, + { + "scenario_id": "slew/seeded_050_priority", + "seed": 6050, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -1328, + "pv": [ + { + "driver": "pv-0", + "power_w": -3695 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -1592, + "soc": 0.89, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": 4447, + "soc": 0.29, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 15200, + "current_w": 2469, + "soc": 0.35, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 5000, + "max_discharge_w": 2000 + } + ], + "state": { + "mode": "priority", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "priority_order": [ + "pixii", + "sungrow", + "ferroamp" + ] + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1592, + "clamped": false + }, + { + "driver": "pixii", + "target_w": 2969, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 4447, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "pixii" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 5324, + "battery_target_sum_w": 5824, + "raw_grid_w": -1328, + "projected_grid_w": -828 + } + }, + { + "scenario_id": "slew/seeded_051_weighted", + "seed": 6051, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4704, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": 5365, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 15200, + "current_w": -504, + "soc": 0.58, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 5000, + "current_w": -2624, + "soc": 0.11, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "weighted", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 2000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "weights": { + "ferroamp": 1.3, + "pixii": 0.6, + "sungrow": 2.1 + } + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 3365, + "clamped": true + }, + { + "driver": "pixii", + "target_w": -624, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -307.33500000000004, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2237, + "battery_target_sum_w": 2433.665, + "raw_grid_w": 4704, + "projected_grid_w": 4900.665 + } + }, + { + "scenario_id": "slew/seeded_052_planner_self", + "seed": 6052, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4266, + "pv": [ + { + "driver": "pv-0", + "power_w": -1097 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 4408, + "soc": 0.74, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 1000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 648, + "strategy": "self_consumption", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 334, + "remaining_s": 787 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 5000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 4408, + "battery_target_sum_w": 5000, + "raw_grid_w": -4266, + "projected_grid_w": -3674 + } + }, + { + "scenario_id": "slew/seeded_053_planner_cheap", + "seed": 6053, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -52, + "pv": [ + { + "driver": "pv-0", + "power_w": -4583 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -371, + "soc": 0.46, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": -3862, + "soc": 0.73, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_cheap", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 2000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -2654, + "strategy": "cheap", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 521, + "remaining_s": 615 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -2371, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -3845.447962037491, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -4233, + "battery_target_sum_w": -6216.447962037491, + "raw_grid_w": -52, + "projected_grid_w": -2035.4479620374914 + } + }, + { + "scenario_id": "slew/seeded_054_planner_passive_arbitrage", + "seed": 6054, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 3143, + "pv": [ + { + "driver": "pv-0", + "power_w": -7286 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -1751, + "soc": 0.2, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 6215, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 1802, + "strategy": "passive_arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 297, + "remaining_s": 411 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1249, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": true, + "fuse_ev_max_w": 6215, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -1751, + "battery_target_sum_w": 1249, + "raw_grid_w": 3143, + "projected_grid_w": 6143 + } + }, + { + "scenario_id": "slew/seeded_055_planner_arbitrage", + "seed": 6055, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 5441, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -3827, + "soc": 0.72, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": -196, + "soc": 0.23, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 3000, + "max_discharge_w": 5000 + }, + { + "driver": "pixii", + "capacity_wh": 9600, + "current_w": 739, + "soc": 0.68, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -2537, + "strategy": "arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 112, + "remaining_s": 724 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -4320.17710278759, + "clamped": false + }, + { + "driver": "pixii", + "target_w": -11, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -946, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -3284, + "battery_target_sum_w": -5277.17710278759, + "raw_grid_w": 5441, + "projected_grid_w": 3447.8228972124098 + } + }, + { + "scenario_id": "slew/seeded_056_self_consumption", + "seed": 6056, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 13517, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 4127, + "soc": 0.87, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 3000 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 4086, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1127, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 4127, + "battery_target_sum_w": 1127, + "raw_grid_w": 13517, + "projected_grid_w": 10517 + } + }, + { + "scenario_id": "slew/seeded_057_peak_shaving", + "seed": 6057, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 78, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 5400, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 5000, + "max_discharge_w": 5000 + } + ], + "state": { + "mode": "peak_shaving", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 3375, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 5400, + "battery_target_sum_w": 0, + "raw_grid_w": 78, + "projected_grid_w": 78 + } + }, + { + "scenario_id": "slew/seeded_058_priority", + "seed": 6058, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -1896, + "pv": [ + { + "driver": "pv-0", + "power_w": -1995 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -2034, + "soc": 0.32, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "priority", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 5865, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "priority_order": [ + "ferroamp" + ] + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 966, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -2034, + "battery_target_sum_w": 966, + "raw_grid_w": -1896, + "projected_grid_w": 1104 + } + }, + { + "scenario_id": "slew/seeded_059_weighted", + "seed": 6059, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4109, + "pv": [ + { + "driver": "pv-0", + "power_w": -6101 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -3667, + "soc": 0.46, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 5000 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": -1465, + "soc": 0.58, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "weighted", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 4282, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "weights": { + "ferroamp": 2.7, + "sungrow": 2.5 + } + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -667, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -46.826923076922895, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -5132, + "battery_target_sum_w": -713.8269230769229, + "raw_grid_w": -4109, + "projected_grid_w": 309.17307692307713 + } + }, + { + "scenario_id": "slew/seeded_060_planner_self", + "seed": 6060, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4256, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -640, + "soc": 0.18, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": 2934, + "soc": 0.85, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 10000, + "current_w": 1250, + "soc": 0.75, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 1000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -1432, + "strategy": "self_consumption", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 237, + "remaining_s": 347 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 360, + "clamped": true + }, + { + "driver": "pixii", + "target_w": 396.1600000000001, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": 1934, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 3544, + "battery_target_sum_w": 2690.16, + "raw_grid_w": 4256, + "projected_grid_w": 3402.16 + } + }, + { + "scenario_id": "slew/seeded_061_planner_cheap", + "seed": 6061, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4623, + "pv": [ + { + "driver": "pv-0", + "power_w": -7605 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": -1498, + "soc": 0.73, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 15200, + "current_w": -1568, + "soc": 0.23, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_cheap", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -14, + "strategy": "cheap", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 465, + "remaining_s": 414 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": true, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -3066, + "battery_target_sum_w": 0, + "raw_grid_w": -4623, + "projected_grid_w": -1557 + } + }, + { + "scenario_id": "slew/seeded_062_planner_passive_arbitrage", + "seed": 6062, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 1459, + "pv": [ + { + "driver": "pv-0", + "power_w": -4160 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 1737, + "soc": 0.45, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": -2774, + "soc": 0.15, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -2184, + "strategy": "passive_arbitrage", + "planned_grid_w": 1353, + "has_planned_grid_w": true, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 162, + "remaining_s": 629 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 987, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -2024, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -1037, + "battery_target_sum_w": -1037, + "raw_grid_w": 1459, + "projected_grid_w": 1459 + } + }, + { + "scenario_id": "slew/seeded_063_planner_arbitrage", + "seed": 6063, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2093, + "pv": [ + { + "driver": "pv-0", + "power_w": -3367 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 848, + "soc": 0.59, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": -1579, + "soc": 0.47, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 15200, + "current_w": 3207, + "soc": 0.65, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 3000, + "max_discharge_w": 2000 + } + ], + "state": { + "mode": "planner_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 7911, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -2902, + "strategy": "arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 187, + "remaining_s": 610 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": true + }, + { + "driver": "pixii", + "target_w": 0, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": true, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": true, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2476, + "battery_target_sum_w": 0, + "raw_grid_w": -2093, + "projected_grid_w": -4569 + } + }, + { + "scenario_id": "slew/seeded_064_self_consumption", + "seed": 6064, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -1282, + "pv": [ + { + "driver": "pv-0", + "power_w": -7498 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 3941, + "soc": 0.35, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": 5378, + "soc": 0.48, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 15200, + "current_w": -1136, + "soc": 0.51, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 1000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2941, + "clamped": true + }, + { + "driver": "pixii", + "target_w": -136, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 4378, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 8183, + "battery_target_sum_w": 7183, + "raw_grid_w": -1282, + "projected_grid_w": -2282 + } + }, + { + "scenario_id": "slew/seeded_065_peak_shaving", + "seed": 6065, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2095, + "pv": [ + { + "driver": "pv-0", + "power_w": -4589 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 913, + "soc": 0.89, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": 2305, + "soc": 0.56, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 5000, + "max_discharge_w": 3000 + }, + { + "driver": "pixii", + "capacity_wh": 5000, + "current_w": 1764, + "soc": 0.78, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "peak_shaving", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 4970, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2495.6000000000004, + "clamped": false + }, + { + "driver": "pixii", + "target_w": 1247.8000000000002, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": 2495.6000000000004, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 4982, + "battery_target_sum_w": 6239.000000000001, + "raw_grid_w": -2095, + "projected_grid_w": -837.9999999999991 + } + }, + { + "scenario_id": "slew/seeded_066_priority", + "seed": 6066, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -626, + "pv": [ + { + "driver": "pv-0", + "power_w": -8457 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -1995, + "soc": 0.21, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 15200, + "current_w": -3413, + "soc": 0.16, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 5000, + "current_w": 4747, + "soc": 0.14, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "priority", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "priority_order": [ + "sungrow", + "pixii", + "ferroamp" + ] + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1995, + "clamped": false + }, + { + "driver": "pixii", + "target_w": 4747, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": -3037.4, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -661, + "battery_target_sum_w": -285.4000000000001, + "raw_grid_w": -626, + "projected_grid_w": -250.4000000000001 + } + }, + { + "scenario_id": "slew/seeded_067_weighted", + "seed": 6067, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4836, + "pv": [ + { + "driver": "pv-0", + "power_w": -6795 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 3115, + "soc": 0.76, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": -2168, + "soc": 0.11, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 5000, + "current_w": 3341, + "soc": 0.41, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "weighted", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 1000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "weights": { + "ferroamp": 2.4, + "pixii": 1.3, + "sungrow": 0.6 + } + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 4012.8, + "clamped": false + }, + { + "driver": "pixii", + "target_w": 2341, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -1168, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 4288, + "battery_target_sum_w": 5185.8, + "raw_grid_w": -4836, + "projected_grid_w": -3938.2 + } + }, + { + "scenario_id": "slew/seeded_068_planner_self", + "seed": 6068, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -298, + "pv": [ + { + "driver": "pv-0", + "power_w": -3237 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 4025, + "soc": 0.47, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 1500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 4150, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": false, + "battery_energy_wh": 0, + "strategy": "", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 0, + "remaining_s": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2525, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": true, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 4025, + "battery_target_sum_w": 2525, + "raw_grid_w": -298, + "projected_grid_w": -1798 + } + }, + { + "scenario_id": "slew/seeded_069_planner_cheap", + "seed": 6069, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -13476, + "pv": [ + { + "driver": "pv-0", + "power_w": -4276 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 1658, + "soc": 0.22, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_cheap", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": false, + "battery_energy_wh": 0, + "strategy": "", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 0, + "remaining_s": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2408, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": true, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 1658, + "battery_target_sum_w": 2408, + "raw_grid_w": -13476, + "projected_grid_w": -12726 + } + }, + { + "scenario_id": "slew/seeded_070_planner_passive_arbitrage", + "seed": 6070, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2407, + "pv": [ + { + "driver": "pv-0", + "power_w": -3234 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -2192, + "soc": 0.33, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 5000 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": 3377, + "soc": 0.53, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 3000 + }, + { + "driver": "pixii", + "capacity_wh": 9600, + "current_w": -1967, + "soc": 0.66, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -809, + "strategy": "passive_arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 79, + "remaining_s": 706 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1676.915637299261, + "clamped": false + }, + { + "driver": "pixii", + "target_w": -1609.8390118072907, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": 2000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -782, + "battery_target_sum_w": -1286.7546491065518, + "raw_grid_w": -2407, + "projected_grid_w": -2911.754649106552 + } + }, + { + "scenario_id": "slew/seeded_071_planner_arbitrage", + "seed": 6071, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4180, + "pv": [ + { + "driver": "pv-0", + "power_w": -5230 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": -3627, + "soc": 0.87, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 1000, + "slew_enabled": false, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 2, + "strategy": "arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 258, + "remaining_s": 304 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1119, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -3627, + "battery_target_sum_w": -1119, + "raw_grid_w": -4180, + "projected_grid_w": -1672 + } + }, + { + "scenario_id": "slew/seeded_072_self_consumption", + "seed": 6072, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4870, + "pv": [ + { + "driver": "pv-0", + "power_w": -5581 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 9600, + "current_w": 1792, + "soc": 0.61, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": -118, + "soc": 0.82, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 5000, + "max_discharge_w": 5000 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 1000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 792, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -624, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 1674, + "battery_target_sum_w": 168, + "raw_grid_w": 4870, + "projected_grid_w": 3364 + } + }, + { + "scenario_id": "slew/seeded_073_peak_shaving", + "seed": 6073, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2638, + "pv": [ + { + "driver": "pv-0", + "power_w": -6552 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 3700, + "soc": 0.73, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": 1809, + "soc": 0.29, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 10000, + "current_w": -1242, + "soc": 0.65, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "peak_shaving", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 4911, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2526.05, + "clamped": false + }, + { + "driver": "pixii", + "target_w": 1661.8750000000002, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": 1661.8750000000002, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 4267, + "battery_target_sum_w": 5849.8, + "raw_grid_w": -2638, + "projected_grid_w": -1055.1999999999998 + } + }, + { + "scenario_id": "slew/seeded_074_priority", + "seed": 6074, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 3879, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -2999, + "soc": 0.48, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": 3201, + "soc": 0.83, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "priority", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "priority_order": [ + "ferroamp", + "sungrow" + ] + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -3749, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 2874.6, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 202, + "battery_target_sum_w": -874.4000000000001, + "raw_grid_w": 3879, + "projected_grid_w": 2802.6 + } + }, + { + "scenario_id": "slew/seeded_075_weighted", + "seed": 6075, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4599, + "pv": [ + { + "driver": "pv-0", + "power_w": -1374 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 2097, + "soc": 0.2, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": -2952, + "soc": 0.43, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 5000, + "max_discharge_w": 3000 + }, + { + "driver": "pixii", + "capacity_wh": 10000, + "current_w": 1540, + "soc": 0.69, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "weighted", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 250, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "weights": { + "ferroamp": 2.8, + "pixii": 1.2, + "sungrow": 2.5 + } + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1847, + "clamped": true + }, + { + "driver": "pixii", + "target_w": 1290, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -2702, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 685, + "battery_target_sum_w": 435, + "raw_grid_w": -4599, + "projected_grid_w": -4849 + } + }, + { + "scenario_id": "slew/seeded_076_planner_self", + "seed": 6076, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2127, + "pv": [ + { + "driver": "pv-0", + "power_w": -5256 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -3026, + "soc": 0.73, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 3000, + "slew_enabled": false, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 2349, + "strategy": "self_consumption", + "planned_grid_w": 1723, + "has_planned_grid_w": true, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 111, + "remaining_s": 788 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1749.8, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -3026, + "battery_target_sum_w": -1749.8, + "raw_grid_w": -2127, + "projected_grid_w": -850.8 + } + }, + { + "scenario_id": "slew/seeded_077_planner_cheap", + "seed": 6077, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -3174, + "pv": [ + { + "driver": "pv-0", + "power_w": -3039 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 4338, + "soc": 0.85, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": 618, + "soc": 0.71, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_cheap", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 1500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -1829, + "strategy": "cheap", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 93, + "remaining_s": 551 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": true, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": true, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 4956, + "battery_target_sum_w": 0, + "raw_grid_w": -3174, + "projected_grid_w": -8130 + } + }, + { + "scenario_id": "slew/seeded_078_planner_passive_arbitrage", + "seed": 6078, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -3096, + "pv": [ + { + "driver": "pv-0", + "power_w": -8787 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 1350, + "soc": 0.59, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": 1537, + "soc": 0.85, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 7682, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 28, + "strategy": "passive_arbitrage", + "planned_grid_w": 6, + "has_planned_grid_w": true, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 305, + "remaining_s": 765 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 600, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 787, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2887, + "battery_target_sum_w": 1387, + "raw_grid_w": -3096, + "projected_grid_w": -4596 + } + }, + { + "scenario_id": "slew/seeded_079_planner_arbitrage", + "seed": 6079, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2014, + "pv": [ + { + "driver": "pv-0", + "power_w": -3438 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -1554, + "soc": 0.31, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": 3486, + "soc": 0.75, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 5000, + "current_w": -92, + "soc": 0.84, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 250, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 1535, + "strategy": "arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 268, + "remaining_s": 680 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": true + }, + { + "driver": "pixii", + "target_w": 158, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 3236, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 1840, + "battery_target_sum_w": 3394, + "raw_grid_w": -2014, + "projected_grid_w": -460 + } + }, + { + "scenario_id": "slew/seeded_080_self_consumption", + "seed": 6080, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 1799, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -1869, + "soc": 0.46, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 1000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -2869, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -1869, + "battery_target_sum_w": -2869, + "raw_grid_w": 1799, + "projected_grid_w": 799 + } + }, + { + "scenario_id": "slew/seeded_081_peak_shaving", + "seed": 6081, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -1903, + "pv": [ + { + "driver": "pv-0", + "power_w": -3373 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -3144, + "soc": 0.18, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": 221, + "soc": 0.29, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "peak_shaving", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 5639, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 3983, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -144, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 635.7936507936507, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -2923, + "battery_target_sum_w": 491.7936507936507, + "raw_grid_w": -1903, + "projected_grid_w": 1511.7936507936506 + } + }, + { + "scenario_id": "slew/seeded_082_priority", + "seed": 6082, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -5396, + "pv": [ + { + "driver": "pv-0", + "power_w": -5880 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 9600, + "current_w": 3870, + "soc": 0.72, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 3000 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": 4026, + "soc": 0.38, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 9600, + "current_w": -1369, + "soc": 0.38, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 2000 + } + ], + "state": { + "mode": "priority", + "grid_target_w": -301, + "grid_tolerance_w": 50, + "slew_rate_w": 2000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "priority_order": [ + "ferroamp", + "sungrow", + "pixii" + ] + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2000, + "clamped": true + }, + { + "driver": "pixii", + "target_w": 631, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 5000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 6527, + "battery_target_sum_w": 7631, + "raw_grid_w": -5396, + "projected_grid_w": -4292 + } + }, + { + "scenario_id": "slew/seeded_083_weighted", + "seed": 6083, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 12092, + "pv": [ + { + "driver": "pv-0", + "power_w": -6170 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -1908, + "soc": 0.43, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "weighted", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 2000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "weights": { + "ferroamp": 1.4 + } + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -3908, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -1908, + "battery_target_sum_w": -3908, + "raw_grid_w": 12092, + "projected_grid_w": 10092 + } + }, + { + "scenario_id": "slew/seeded_084_planner_self", + "seed": 6084, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 4353, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -1650, + "soc": 0.57, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 5000 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -5, + "strategy": "self_consumption", + "planned_grid_w": -1276, + "has_planned_grid_w": true, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 628, + "remaining_s": 698 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -4261.8, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -1650, + "battery_target_sum_w": -4261.8, + "raw_grid_w": 4353, + "projected_grid_w": 1741.1999999999998 + } + }, + { + "scenario_id": "slew/seeded_085_planner_cheap", + "seed": 6085, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -3539, + "pv": [ + { + "driver": "pv-0", + "power_w": -6620 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 3059, + "soc": 0.29, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": -1549, + "soc": 0.21, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 5000 + }, + { + "driver": "pixii", + "capacity_wh": 9600, + "current_w": 1340, + "soc": 0.39, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_cheap", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 1500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 14, + "strategy": "cheap", + "planned_grid_w": 110, + "has_planned_grid_w": true, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 338, + "remaining_s": 711 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1559, + "clamped": true + }, + { + "driver": "pixii", + "target_w": 27.662858924889516, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": 0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2850, + "battery_target_sum_w": 1586.6628589248894, + "raw_grid_w": -3539, + "projected_grid_w": -4802.337141075111 + } + }, + { + "scenario_id": "slew/seeded_086_planner_passive_arbitrage", + "seed": 6086, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 3491, + "pv": [ + { + "driver": "pv-0", + "power_w": -5932 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": -2998, + "soc": 0.83, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": 2455, + "soc": 0.18, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 2000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": false, + "battery_energy_wh": 0, + "strategy": "", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 0, + "remaining_s": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1590.9333333333332, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": 455, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": true, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -543, + "battery_target_sum_w": -1135.9333333333332, + "raw_grid_w": 3491, + "projected_grid_w": 2898.0666666666666 + } + }, + { + "scenario_id": "slew/seeded_087_planner_arbitrage", + "seed": 6087, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2051, + "pv": [ + { + "driver": "pv-0", + "power_w": -7388 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -2565, + "soc": 0.18, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": -3383, + "soc": 0.27, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 9600, + "current_w": 1113, + "soc": 0.81, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 5000 + } + ], + "state": { + "mode": "planner_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 17, + "strategy": "arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 475, + "remaining_s": 549 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1815, + "clamped": true + }, + { + "driver": "pixii", + "target_w": 363, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -2633, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -4835, + "battery_target_sum_w": -4085, + "raw_grid_w": -2051, + "projected_grid_w": -1301 + } + }, + { + "scenario_id": "slew/seeded_088_self_consumption", + "seed": 6088, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -1948, + "pv": [ + { + "driver": "pv-0", + "power_w": -5445 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 546, + "soc": 0.7, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 3000, + "max_discharge_w": 5000 + }, + { + "driver": "sungrow", + "capacity_wh": 15200, + "current_w": 3907, + "soc": 0.67, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2810.9, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": 2810.9, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 4453, + "battery_target_sum_w": 5621.8, + "raw_grid_w": -1948, + "projected_grid_w": -779.1999999999998 + } + }, + { + "scenario_id": "slew/seeded_089_peak_shaving", + "seed": 6089, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 5638, + "pv": [ + { + "driver": "pv-0", + "power_w": -2527 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 5104, + "soc": 0.48, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": -615, + "soc": 0.6, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "peak_shaving", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5929, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [], + "clamp_attributions": { + "clamped_drivers": [], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 4489, + "battery_target_sum_w": 0, + "raw_grid_w": 5638, + "projected_grid_w": 5638 + } + }, + { + "scenario_id": "slew/seeded_090_priority", + "seed": 6090, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4533, + "pv": [ + { + "driver": "pv-0", + "power_w": -5088 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 2633, + "soc": 0.2, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": 4906, + "soc": 0.88, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 15200, + "current_w": -163, + "soc": 0.67, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "priority", + "grid_target_w": 305, + "grid_tolerance_w": 50, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "priority_order": [ + "sungrow", + "ferroamp", + "pixii" + ] + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 3383, + "clamped": true + }, + { + "driver": "pixii", + "target_w": 278.7999999999993, + "clamped": false + }, + { + "driver": "sungrow", + "target_w": 5000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 7376, + "battery_target_sum_w": 8661.8, + "raw_grid_w": -4533, + "projected_grid_w": -3247.2000000000007 + } + }, + { + "scenario_id": "slew/seeded_091_weighted", + "seed": 6091, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -5129, + "pv": [ + { + "driver": "pv-0", + "power_w": -2372 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 3526, + "soc": 0.34, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "weighted", + "grid_target_w": 430, + "grid_tolerance_w": 50, + "slew_rate_w": 1500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "weights": { + "ferroamp": 1.9 + } + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 5000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 3526, + "battery_target_sum_w": 5000, + "raw_grid_w": -5129, + "projected_grid_w": -3655 + } + }, + { + "scenario_id": "slew/seeded_092_planner_self", + "seed": 6092, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -14199, + "pv": [ + { + "driver": "pv-0", + "power_w": -5621 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 9600, + "current_w": -3179, + "soc": 0.86, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": 4254, + "soc": 0.23, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 5000, + "current_w": -585, + "soc": 0.39, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 250, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 6, + "strategy": "self_consumption", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 513, + "remaining_s": 548 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -318.56464460784315, + "clamped": true + }, + { + "driver": "pixii", + "target_w": -36.435355392156865, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 4004, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": true, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 355, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": true + }, + "site_totals": { + "battery_current_w": 490, + "battery_target_sum_w": 3649, + "raw_grid_w": -14199, + "projected_grid_w": -11040 + } + }, + { + "scenario_id": "slew/seeded_093_planner_cheap", + "seed": 6093, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 2742, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 1696, + "soc": 0.61, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": -854, + "soc": 0.14, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 15200, + "current_w": -1703, + "soc": 0.26, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_cheap", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -2828, + "strategy": "cheap", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 115, + "remaining_s": 373 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -1304, + "clamped": true + }, + { + "driver": "pixii", + "target_w": -4703, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -3854, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -861, + "battery_target_sum_w": -9861, + "raw_grid_w": 2742, + "projected_grid_w": -6258 + } + }, + { + "scenario_id": "slew/seeded_094_planner_passive_arbitrage", + "seed": 6094, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2193, + "pv": [ + { + "driver": "pv-0", + "power_w": -6376 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 4651, + "soc": 0.73, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 5000 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": 1070, + "soc": 0.53, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 3000, + "max_discharge_w": 5000 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 455, + "strategy": "passive_arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 226, + "remaining_s": 761 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2000, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 833.1991018536629, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 5721, + "battery_target_sum_w": 2833.199101853663, + "raw_grid_w": -2193, + "projected_grid_w": -5080.800898146337 + } + }, + { + "scenario_id": "slew/seeded_095_planner_arbitrage", + "seed": 6095, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 12718, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 3776, + "soc": 0.47, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 3000 + } + ], + "state": { + "mode": "planner_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 4273, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -2102, + "strategy": "arbitrage", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 231, + "remaining_s": 519 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": true, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": true, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 3776, + "battery_target_sum_w": 0, + "raw_grid_w": 12718, + "projected_grid_w": 8942 + } + }, + { + "scenario_id": "slew/seeded_096_self_consumption", + "seed": 6096, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -13678, + "pv": [ + { + "driver": "pv-0", + "power_w": -1055 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": -3502, + "soc": 0.18, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 5000, + "max_discharge_w": 3000 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -502, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -3502, + "battery_target_sum_w": -502, + "raw_grid_w": -13678, + "projected_grid_w": -10678 + } + }, + { + "scenario_id": "slew/seeded_097_peak_shaving", + "seed": 6097, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 12338, + "pv": [ + { + "driver": "pv-0", + "power_w": -6697 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": 3222, + "soc": 0.72, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": -765, + "soc": 0.16, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "peak_shaving", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 250, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5249, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1757.7999999999993, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -598.7999999999998, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": true, + "fuse_hold_max_charge_w": 1757.7999999999993, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": true, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 2457, + "battery_target_sum_w": 1158.9999999999995, + "raw_grid_w": 12338, + "projected_grid_w": 11040 + } + }, + { + "scenario_id": "slew/seeded_098_priority", + "seed": 6098, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -3751, + "pv": [ + { + "driver": "pv-0", + "power_w": -3527 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 1498, + "soc": 0.84, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": 848, + "soc": 0.81, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 2000 + }, + { + "driver": "pixii", + "capacity_wh": 9600, + "current_w": -4311, + "soc": 0.59, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "priority", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 750, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "priority_order": [ + "pixii", + "sungrow", + "ferroamp" + ] + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 1498, + "clamped": false + }, + { + "driver": "pixii", + "target_w": -3561, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 848, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "pixii" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -1965, + "battery_target_sum_w": -1215, + "raw_grid_w": -3751, + "projected_grid_w": -3001 + } + }, + { + "scenario_id": "slew/seeded_099_weighted", + "seed": 6099, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -2245, + "pv": [ + { + "driver": "pv-0", + "power_w": -7679 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 4131, + "soc": 0.59, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 2000 + }, + { + "driver": "sungrow", + "capacity_wh": 9600, + "current_w": 2303, + "soc": 0.42, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "weighted", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 1500, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0, + "weights": { + "ferroamp": 0.8, + "sungrow": 2.3 + } + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2000, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 3803, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 6434, + "battery_target_sum_w": 5803, + "raw_grid_w": -2245, + "projected_grid_w": -2876 + } + }, + { + "scenario_id": "slew/seeded_100_planner_self", + "seed": 6100, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 13007, + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -4329, + "soc": 0.31, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": -3835, + "soc": 0.56, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_self", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": 1626, + "strategy": "self_consumption", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 462, + "remaining_s": 769 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -5000, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -5000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -8164, + "battery_target_sum_w": -10000, + "raw_grid_w": 13007, + "projected_grid_w": 11171 + } + }, + { + "scenario_id": "slew/seeded_101_planner_cheap", + "seed": 6101, + "inputs": { + "fuse_max_w": 11040, + "grid_w": 5194, + "pv": [ + { + "driver": "pv-0", + "power_w": -6599 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 5000, + "current_w": 2921, + "soc": 0.45, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": -1504, + "soc": 0.44, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 3000 + }, + { + "driver": "pixii", + "capacity_wh": 10000, + "current_w": -5072, + "soc": 0.13, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_cheap", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 1000, + "slew_enabled": false, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -2012, + "strategy": "cheap", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 65, + "remaining_s": 565 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -2563.964604038907, + "clamped": false + }, + { + "driver": "pixii", + "target_w": -5000, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": -3000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": -3655, + "battery_target_sum_w": -10563.964604038907, + "raw_grid_w": 5194, + "projected_grid_w": -1714.964604038907 + } + }, + { + "scenario_id": "slew/seeded_102_planner_passive_arbitrage", + "seed": 6102, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -1830, + "pv": [ + { + "driver": "pv-0", + "power_w": -1157 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 9600, + "current_w": 4659, + "soc": 0.18, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 2000, + "max_discharge_w": 2000 + } + ], + "state": { + "mode": "planner_passive_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 500, + "slew_enabled": false, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 0, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": false, + "battery_energy_wh": 0, + "strategy": "", + "planned_grid_w": 0, + "has_planned_grid_w": false, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 0, + "remaining_s": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 2000, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": true, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 4659, + "battery_target_sum_w": 2000, + "raw_grid_w": -1830, + "projected_grid_w": -4489 + } + }, + { + "scenario_id": "slew/seeded_103_planner_arbitrage", + "seed": 6103, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -12863, + "pv": [ + { + "driver": "pv-0", + "power_w": -1441 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 15200, + "current_w": 2547, + "soc": 0.7, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 10000, + "current_w": 2535, + "soc": 0.77, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "pixii", + "capacity_wh": 10000, + "current_w": 3663, + "soc": 0.26, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "planner_arbitrage", + "grid_target_w": 0, + "grid_tolerance_w": 60, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": true, + "ev_charging_w": 4167, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + }, + "slot": { + "present": true, + "battery_energy_wh": -1994, + "strategy": "arbitrage", + "planned_grid_w": -200, + "has_planned_grid_w": true, + "live_pv_surplus_soc_cap_pct": 0, + "elapsed_s": 638, + "remaining_s": 237 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": 0, + "clamped": true + }, + { + "driver": "pixii", + "target_w": 0, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 0, + "clamped": true + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp", + "pixii", + "sungrow" + ], + "all_targets_zero_clamped": true, + "plan_sign_intent": -1, + "plan_sign_floor_zeroed": true, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 8745, + "battery_target_sum_w": 0, + "raw_grid_w": -12863, + "projected_grid_w": -21608 + } + }, + { + "scenario_id": "slew/seeded_104_self_consumption", + "seed": 6104, + "inputs": { + "fuse_max_w": 11040, + "grid_w": -4768, + "pv": [ + { + "driver": "pv-0", + "power_w": -8748 + } + ], + "batteries": [ + { + "driver": "ferroamp", + "capacity_wh": 10000, + "current_w": -3168, + "soc": 0.44, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + }, + { + "driver": "sungrow", + "capacity_wh": 5000, + "current_w": 3927, + "soc": 0.87, + "online": true, + "device_fault": false, + "discharge_blocked": false, + "charge_blocked": false, + "max_charge_w": 0, + "max_discharge_w": 0 + } + ], + "state": { + "mode": "self_consumption", + "grid_target_w": 0, + "grid_tolerance_w": 50, + "slew_rate_w": 3000, + "slew_enabled": true, + "min_dispatch_interval_s": 0, + "holdoff_active": false, + "use_energy_dispatch": false, + "ev_charging_w": 7303, + "battery_covers_ev": false, + "battery_boost_ev_charging_w": 0, + "battery_boost_reserve_soc": 0, + "ev_surplus_only_reserve_w": 0, + "peak_limit_w": 5000, + "peak_import_ceiling_w": 0, + "max_export_w": 0, + "site_fuse_amps": 0, + "site_fuse_voltage": 0, + "site_fuse_phases": 0, + "site_fuse_safety_a": 0, + "pv_surplus_absorb_soc_cap_pct": 0, + "pv_surplus_absorb_threshold_w": 0 + } + }, + "per_driver_targets": [ + { + "driver": "ferroamp", + "target_w": -168, + "clamped": true + }, + { + "driver": "sungrow", + "target_w": 2667.2, + "clamped": false + } + ], + "clamp_attributions": { + "clamped_drivers": [ + "ferroamp" + ], + "all_targets_zero_clamped": false, + "plan_sign_intent": 0, + "plan_sign_floor_zeroed": false, + "plan_stale": false, + "fuse_saturated": false, + "fuse_ev_max_w": 0, + "fuse_hold_latched": false, + "fuse_hold_max_charge_w": 0, + "fuse_hold_max_discharge_w": 0, + "per_phase_overage_w": 0, + "effective_import_ceiling_w": 11040, + "effective_export_ceiling_w": 11040, + "import_ceiling_binding": false, + "export_ceiling_binding": false + }, + "site_totals": { + "battery_current_w": 759, + "battery_target_sum_w": 2499.2, + "raw_grid_w": -4768, + "projected_grid_w": -3027.8 + } + } + ] +} From 9e7f7cd5996cb3e488dca3f83de0b0ef94dd1071 Mon Sep 17 00:00:00 2001 From: Fredrik Ahlgren Date: Tue, 4 Aug 2026 15:48:25 +0200 Subject: [PATCH 2/3] test(control): say precisely which stage enlarges a target forceFuseDischarge also enlarges a target, so "the last stage that can invent power" was wrong about the pipeline. What is true of the slew limiter alone is that it enlarges one without a safety reason to. Co-Authored-By: Claude Opus 5 --- go/internal/control/golden_dump_test.go | 16 +++++++++------- go/internal/control/golden_test.go | 12 +++++++----- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/go/internal/control/golden_dump_test.go b/go/internal/control/golden_dump_test.go index ec8510a8..f9af0dc1 100644 --- a/go/internal/control/golden_dump_test.go +++ b/go/internal/control/golden_dump_test.go @@ -836,13 +836,15 @@ func targetedScenarios() []goldenScenario { // 250–2000 W band operators pick in between — so the limiter binds and the // corpus can see it. // -// It matters because the slew limiter is the last stage that can INVENT -// power. Every other clamp shrinks a target toward zero; slew re-anchors on -// the battery's measured output (SmoothedW) and walks one step from there, so -// a target of 0 W becomes ±SlewRateW whenever the battery is not already -// still. Nothing downstream floors the charge side of that: applyFuseGuard -// only shrinks, floorNegativeTargets is discharge-only, and planSignIntent -// returns 0 for an idle slot. +// It matters because of what the limiter can do to a target. Every other +// stage either shrinks one toward zero or, in forceFuseDischarge's case, +// enlarges it to stop a fuse trip. The slew limiter enlarges one for no reason +// beyond where the battery happens to be: it re-anchors on the measured output +// (SmoothedW) and walks a step from there, so a target of 0 W becomes +// ±SlewRateW whenever the battery is not already still. Nothing downstream +// floors the charge side of that — applyFuseGuard only shrinks, +// floorNegativeTargets is discharge-only, and planSignIntent returns 0 for an +// idle slot. // // KNOWN BUG RECORDED HERE, NOT FIXED HERE. The slew/bug_* and // slew/blocked_sibling_* records capture dispatch commanding charge on a tick diff --git a/go/internal/control/golden_test.go b/go/internal/control/golden_test.go index 73efb430..8ab7c2de 100644 --- a/go/internal/control/golden_test.go +++ b/go/internal/control/golden_test.go @@ -268,11 +268,13 @@ func assertGoldenCoverage(t *testing.T, all []goldenRecord, byID map[string]gold // assertGoldenSlewCoverage holds the corpus to the slew limiter. // -// The limiter is the last stage in dispatch that can raise a target's -// magnitude: everything after it shrinks toward zero. It also anchors on the -// battery's measured output rather than the previous command, so it is the one -// clamp whose answer depends on what the hardware is doing this second. A -// corpus that runs it at 100 kW is a corpus that never sees it. +// The limiter is the one stage in dispatch that raises a target's magnitude +// without a safety reason to: the fuse guard and the boost reserve shrink +// toward zero, forceFuseDischarge enlarges only to stop a trip, and slew +// enlarges because the battery is not where the plan wants it yet. It also +// anchors on the measured output rather than the previous command, so it is +// the one clamp whose answer depends on what the hardware is doing this +// second. A corpus that runs it at 100 kW is a corpus that never sees it. // // The records named here are the shapes that must not quietly leave the // corpus. Where the assertion states an outcome, that outcome is a safety From 6f6bab94a354e8f6f35374a5c7d2fb02a92952fd Mon Sep 17 00:00:00 2001 From: Fredrik Ahlgren Date: Tue, 4 Aug 2026 17:35:09 +0200 Subject: [PATCH 3/3] test(control): re-record the slew family through the golden clock seam MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 155 slew records were recorded before #801 pinned the golden scenario clock, so their energy-path targets still carried the wall-clock jitter that seam removes. Re-recorded against 8fe82e4a, where the slot directive and the dispatch calculation read one instant. Nothing about the family's behaviour moves. Comparing the two recordings record by record: no clamp attribution, flag or driver set differs, and the only numeric changes are 26 values in 9 records, all of them planner modes on the energy path, the largest 4.5e-06 W — three orders of magnitude under the 0.01 W replay tolerance. The bug records the family exists for are unchanged: bug_no_self_charge_idle_slot_leak_500 still commands +1500 W of charging on a tick that forbids it, and carveout_export_surplus_gate_snaps_to_zero still lands at 0 W on the same shape. Run to run, the re-recorded family now varies by at most 6e-14 W, from the order the recorder sums per-driver targets. That residual is the same in the seven older families and is not what the tolerance is for. Also correct the corpus header: it named one ftw_commit for the whole corpus, which stopped being true when a family was recorded later than the rest. Co-Authored-By: Claude Opus 5 --- go/internal/control/golden_test.go | 22 ++++---- .../control/testdata/golden/slew_limiter.json | 54 +++++++++---------- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/go/internal/control/golden_test.go b/go/internal/control/golden_test.go index 8ab7c2de..3ec844b6 100644 --- a/go/internal/control/golden_test.go +++ b/go/internal/control/golden_test.go @@ -6,19 +6,19 @@ package control // the reactive modes, all four planner modes, fuse pressure in both // directions, degraded siblings, EV and battery-boost reserves, the slew // limiter at rates a site actually runs, and the incident scenarios that -// forecast_scenarios_test.go already names. Each -// record stores the inputs to one ComputeDispatch call — telemetry, State, -// slot directive, driver capacities, fuse ceiling — next to the per-driver -// targets and clamp attributions that call returned. This test rebuilds each -// scenario, calls the real ComputeDispatch, and checks the answer still -// matches. +// forecast_scenarios_test.go already names. Each record stores the inputs to +// one ComputeDispatch call — telemetry, State, slot directive, driver +// capacities, fuse ceiling — next to the per-driver targets and clamp +// attributions that call returned. This test rebuilds each scenario, calls +// the real ComputeDispatch, and checks the answer still matches. // // What the corpus is NOT: a statement of what dispatch SHOULD do. It is what -// dispatch DID do at commit c7fe6c98 (recorded in each file's ftw_commit), -// clamps, quirks and all. Nothing here was reviewed as correct. Its value is -// that it makes any change to dispatch visible and specific, which the unit -// tests around it cannot: they pin the cases somebody thought to write down, -// and dispatch is a long function whose paths interact. +// dispatch DID do at the commit each file records in its ftw_commit — a +// family recorded later carries a later one — clamps, quirks and all. Nothing +// here was reviewed as correct. Its value is that it makes any change to +// dispatch visible and specific, which the unit tests around it cannot: they +// pin the cases somebody thought to write down, and dispatch is a long +// function whose paths interact. // // So a diff is a question, not a verdict. When this test fails, it is telling // you which scenarios your change moved and by how many watts. Read them. If diff --git a/go/internal/control/testdata/golden/slew_limiter.json b/go/internal/control/testdata/golden/slew_limiter.json index 16570c2b..819a9f3c 100644 --- a/go/internal/control/testdata/golden/slew_limiter.json +++ b/go/internal/control/testdata/golden/slew_limiter.json @@ -1,7 +1,7 @@ { "family": "slew_limiter", "generated_by": "FTW_GOLDEN_DUMP=1 go test ./internal/control/ -run TestGoldenDump", - "ftw_commit": "369d12023c88c6cc66134b0ef48d69ee081347fe", + "ftw_commit": "8fe82e4a3432956aa82b30534a24cc1d4daf74eb", "record_count": 155, "records": [ { @@ -5813,7 +5813,7 @@ }, { "driver": "pixii", - "target_w": 53.275049604038465, + "target_w": 53.27504951847549, "clamped": false }, { @@ -5844,9 +5844,9 @@ }, "site_totals": { "battery_current_w": -815, - "battery_target_sum_w": 2053.2750496040385, + "battery_target_sum_w": 2053.2750495184755, "raw_grid_w": 4910, - "projected_grid_w": 7778.275049604039 + "projected_grid_w": 7778.2750495184755 } }, { @@ -6861,7 +6861,7 @@ }, "site_totals": { "battery_current_w": 2929, - "battery_target_sum_w": 235, + "battery_target_sum_w": 235.00000000000006, "raw_grid_w": 13734, "projected_grid_w": 11040 } @@ -8344,7 +8344,7 @@ "per_driver_targets": [ { "driver": "ferroamp", - "target_w": 30.62838951059093, + "target_w": 30.628389472113042, "clamped": false }, { @@ -8380,9 +8380,9 @@ }, "site_totals": { "battery_current_w": 1062, - "battery_target_sum_w": 3466.6283895105908, + "battery_target_sum_w": 3466.628389472113, "raw_grid_w": -4253, - "projected_grid_w": -1848.3716104894092 + "projected_grid_w": -1848.3716105278868 } }, { @@ -10026,7 +10026,7 @@ }, { "driver": "sungrow", - "target_w": -3845.447962037491, + "target_w": -3845.447959430089, "clamped": false } ], @@ -10051,9 +10051,9 @@ }, "site_totals": { "battery_current_w": -4233, - "battery_target_sum_w": -6216.447962037491, + "battery_target_sum_w": -6216.447959430089, "raw_grid_w": -52, - "projected_grid_w": -2035.4479620374914 + "projected_grid_w": -2035.4479594300892 } }, { @@ -10232,7 +10232,7 @@ "per_driver_targets": [ { "driver": "ferroamp", - "target_w": -4320.17710278759, + "target_w": -4320.177098312268, "clamped": false }, { @@ -10268,9 +10268,9 @@ }, "site_totals": { "battery_current_w": -3284, - "battery_target_sum_w": -5277.17710278759, + "battery_target_sum_w": -5277.177098312268, "raw_grid_w": 5441, - "projected_grid_w": 3447.8228972124098 + "projected_grid_w": 3447.822901687732 } }, { @@ -11847,12 +11847,12 @@ "per_driver_targets": [ { "driver": "ferroamp", - "target_w": -1676.915637299261, + "target_w": -1676.9156360118843, "clamped": false }, { "driver": "pixii", - "target_w": -1609.8390118072907, + "target_w": -1609.839010571409, "clamped": false }, { @@ -11882,9 +11882,9 @@ }, "site_totals": { "battery_current_w": -782, - "battery_target_sum_w": -1286.7546491065518, + "battery_target_sum_w": -1286.7546465832934, "raw_grid_w": -2407, - "projected_grid_w": -2911.754649106552 + "projected_grid_w": -2911.7546465832934 } }, { @@ -13436,7 +13436,7 @@ }, { "driver": "pixii", - "target_w": 27.662858924889516, + "target_w": 27.662858907070166, "clamped": false }, { @@ -13467,9 +13467,9 @@ }, "site_totals": { "battery_current_w": 2850, - "battery_target_sum_w": 1586.6628589248894, + "battery_target_sum_w": 1586.6628589070701, "raw_grid_w": -3539, - "projected_grid_w": -4802.337141075111 + "projected_grid_w": -4802.33714109293 } }, { @@ -14446,7 +14446,7 @@ }, { "driver": "sungrow", - "target_w": 833.1991018536629, + "target_w": 833.1991013522105, "clamped": false } ], @@ -14471,9 +14471,9 @@ }, "site_totals": { "battery_current_w": 5721, - "battery_target_sum_w": 2833.199101853663, + "battery_target_sum_w": 2833.1991013522106, "raw_grid_w": -2193, - "projected_grid_w": -5080.800898146337 + "projected_grid_w": -5080.800898647789 } }, { @@ -15172,7 +15172,7 @@ "per_driver_targets": [ { "driver": "ferroamp", - "target_w": -2563.964604038907, + "target_w": -2563.964601769912, "clamped": false }, { @@ -15208,9 +15208,9 @@ }, "site_totals": { "battery_current_w": -3655, - "battery_target_sum_w": -10563.964604038907, + "battery_target_sum_w": -10563.964601769912, "raw_grid_w": 5194, - "projected_grid_w": -1714.964604038907 + "projected_grid_w": -1714.9646017699124 } }, {