Skip to main content

Arbitrage Tracker (gw-pi2, Sezibwa)

Cumulative record of the TOU battery arbitrage on gw-pi2 (Sezibwa). Each night the inverter discharges the battery during a peak-tariff window and recharges it from the grid at the off-peak rate from 00:00. Daily progress goes to the Element business room; this page is the running record. It is rebuilt from the OpenEMS backend by scripts/arbitrage_tracker.py in the nfe-modbus-energy-logger repo.

Settings and why they were chosen: Arbitrage Window and Thresholds (decision record).

Last updated: 2026-10-3031 06:33 EAT.

Totals

Measure Value
Nights armed 3031
Energy shifted to peak 128.7136.5 kWh
Estimated net saving 24,32325,800 UGX
Average per armed night 4.2940 kWh, 811832 UGX
Projected per month at that rate 24,323968 UGX

Night by night

Night Config Window Start SoC start SoC end Shifted (kWh) Peak (kW) Lowest pack (V) Saving (UGX) Recharge 00-06 (kWh) Notes
2026-09-26 v12 22:00-23:59 22:03 78% 48% 3.08 6.1 50.96 582 5.9 first armed night
2026-09-27 v13 off 0 0 4.5 disarmed: SoC 65% after the 27 Sep overload outage
2026-09-28 v14 21:30-23:30 21:33 87% 64% 2.28 4.6 51.45 432 4.1 window moved to 21:30-23:30
2026-09-29 v15 off 0 0 5.5 disarmed: SoC 61% after the 05:15-07:51 grid outage
2026-09-30 v17 21:00-23:00 21:03 87% 60% 2.75 6.3 50.94 519 4.5 window 21:00-23:00, no more manual disarms
2026-10-01 v18 off 0 0 5.7 skipped: two outages left SoC at 51% before the window
2026-10-02 v18 off 0 0 1.7 still disarmed (re-arm missed)
2026-10-03 v19 21:00-23:00 21:03 64% 38% 2.64 4.4 51.10 499 7.0 re-armed with the v17 profile
2026-10-04 v19 21:00-23:00 21:03 84% 63% 2.17 2.2 52.17 410 4.3
2026-10-05 v21 18:00-23:59 19:22 15% 9% 0.08 1.9 49.32 15 10.8 driver rules live: start at 30% or above, floor 15%; 0.9 kWh of the discharge was during an outage (backup, not counted)
2026-10-06 v21 18:00-23:59 18:04 89% 25% 5.04 4.0 51.14 953 8.4 1.5 kWh of the discharge was during an outage (backup, not counted)
2026-10-07 v21 18:00-23:59 18:04 89% 25% 6.56 5.0 51.00 1,239 8.3
2026-10-08 v21 18:00-23:59 18:04 89% 21% 6.88 5.5 50.22 1,300 8.7
2026-10-09 v21 18:00-23:59 18:04 79% 28% 5.18 4.3 50.88 980 8.0
2026-10-10 v21 18:00-23:59 18:04 65% 15% 4.96 4.1 51.10 938 9.4
2026-10-11 v21 18:00-23:59 18:04 54% 15% 3.59 4.3 50.26 679 9.2
2026-10-12 v21 18:00-23:59 18:00 77% 15% 6.12 4.4 50.52 1,157 9.0
2026-10-13 v21 18:00-23:59 18:03 89% 15% 7.51 5.1 50.34 1,419 9.3
2026-10-14 v21 18:00-23:59 18:04 89% 23% 6.76 4.1 50.82 1,277 8.5
2026-10-15 v21 18:00-23:59 18:04 89% 20% 6.97 4.1 50.62 1,317 7.3
2026-10-16 v21 18:00-23:59 18:04 92% 15% 7.97 4.1 50.28 1,507 9.6
2026-10-17 v21 18:00-23:59 18:04 55% 15% 4.16 4.1 50.37 786 9.6
2026-10-18 v21 18:00-23:59 18:04 80% 15% 1.47 5.7 50.54 278 10.7 5.9 kWh of the discharge was during an outage (backup, not counted)
2026-10-19 v21 18:00-23:59 18:04 75% 15% 5.64 4.1 50.27 1,067 10.2 0.2 kWh of the discharge was during an outage (backup, not counted)
2026-10-20 v21 18:00-23:59 18:04 40% 15% 2.50 4.2 50.68 473 9.6
2026-10-21 v21 18:00-23:59 18:05 87% 15% 4.90 4.3 50.26 926 7.9 1.1 kWh of the discharge was during an outage (backup, not counted)
2026-10-22 v21 18:00-23:59 18:04 36% 9% 2.33 3.3 49.43 440 10.3 0.9 kWh of the discharge was during an outage (backup, not counted)
2026-10-23 v21 18:00-23:59 18:10 90% 15% 1.06 4.2 0.00 200 2.6
2026-10-24 v21 18:00-23:59 18:05 40% 15% 0.65 3.7 0.00 123 2.1
2026-10-25 v21 18:00-23:59 18:04 89% 19% 7.12 4.3 50.76 1,346 8.9
2026-10-26 v21 18:00-23:59 18:05 82% 22% 5.87 5.1 50.42 1,109 8.7
2026-10-27 v21 18:00-23:59 18:04 97% 33% 6.51 6.0 50.66 1,231 4.8
2026-10-28 v21 18:00-23:59 18:08 94% 34% 5.84 6.6 50.82 1,103 2.7 0.2 kWh of the discharge was during an outage (backup, not counted)
2026-10-29 v21 18:00-23:59 18:00 18% 5% 0.09 4.4 49.76 17 2.7 1.2 kWh of the discharge was during an outage (backup, not counted)
2026-10-30v2118:00-23:5918:0597%21%7.815.950.451,4775.1

Outages and reliability

Every grid outage, with how the battery carried it and how much of the reserve that night's arbitrage had already used. This is the record for judging what the deeper discharge costs in backup.

Measure Value
Outages 5255 (83.388.9 h)
Outages where the site went dark 67
Outages that started after an arbitrage night, before the recharge 0
Of those, site went dark 0
ongoing
Date Start End Duration SoC at start Lowest SoC Lowest pack (V) Battery supplied (kWh) Site dark Arbitrage use before (kWh) Notes
2026-10-01 10:45 14:12 3h27 93% 60% 52.16 3.4 no
2026-10-01 20:20 20:42 0h22 56% 52% 51.92 0.5 no
2026-10-03 15:10 16:49 1h39 90% 66% 52.10 2.5 no
2026-10-04 16:35 16:52 0h17 90% 87% 52.60 0.3 no
2026-10-05 06:40 09:27 2h47 96% 68% 52.07 3.0 no
2026-10-05 10:35 13:44 3h09 66% 37% 51.70 2.9 no
2026-10-05 13:50 14:42 0h52 37% 31% 51.91 0.5 no
2026-10-05 15:25 17:17 1h52 30% 15% 50.91 1.6 no
2026-10-05 19:25 20:55 1h30 15% 9% 49.32 1.0 yes, 48 min no data
2026-10-06 19:20 20:06 0h46 81% 64% 52.00 1.7 no
2026-10-09 16:50 17:55 1h05 90% 79% 52.62 1.1 no
2026-10-10 10:45 10:47 0h02 93% 93% 52.92 0.0 no
2026-10-10 12:30 12:54 0h24 92% 89% 52.80 0.3 no
2026-10-10 15:15 17:39 2h24 88% 65% 52.32 2.4 no
2026-10-11 02:15 08:20 6h05 100% 60% 52.28 4.0 no 0.0
2026-10-12 17:20 18:04 0h44 89% 77% 51.99 1.3 no
2026-10-16 03:45 05:03 1h18 98% 89% 52.90 0.9 no
2026-10-17 03:39 03:43 0h04 98% 98% 53.05 0.0 no
2026-10-17 03:50 07:03 3h13 98% 74% 52.80 2.4 no
2026-10-17 13:50 15:15 1h25 70% 57% 52.17 1.3 no
2026-10-18 03:49 03:52 0h03 98% 98% 53.05 0.0 no
2026-10-18 12:35 13:34 0h59 92% 83% 52.53 1.0 no
2026-10-18 19:25 22:38 3h13 67% 15% 50.54 6.0 no
2026-10-19 02:20 03:03 0h43 100% 94% 52.90 0.5 no
2026-10-19 13:50 15:43 1h53 92% 76% 52.49 1.8 no
2026-10-19 19:30 19:40 0h10 60% 58% 52.01 0.2 no
2026-10-20 04:25 05:24 0h59 98% 91% 52.90 0.7 no
2026-10-20 05:50 09:30 3h40 100% 61% 51.92 4.3 no
2026-10-20 09:35 09:36 0h01 61% 52.52 0.0 no
2026-10-20 09:40 11:07 1h27 60% 44% 51.70 1.6 no
2026-10-21 12:50 12:51 0h01 93% 52.95 0.0 no
2026-10-21 12:55 13:10 0h15 92% 90% 52.77 0.2 no
2026-10-21 20:45 22:59 2h14 56% 16% 50.26 2.9 yes, 38 min no data
2026-10-22 03:40 09:37 5h57 97% 41% 52.50 1.7 yes, 234 min no data
2026-10-22 19:33 20:00 0h27 15% 13% 50.16 0.8 no
2026-10-22 20:05 20:12 0h07 13% 12% 50.18 0.0 no
2026-10-22 20:25 20:26 0h01 12% 12% 50.21 0.0 no
2026-10-22 20:30 20:34 0h04 11% 10% 49.43 0.1 yes, 0 min no data
2026-10-24 07:15 11:43 4h28 96% 60% 52.60 0.7 yes, 216 min no data
2026-10-24 12:50 14:29 1h39 59% 43% 51.83 1.7 no
2026-10-26 13:40 14:35 0h55 92% 84% 52.70 0.8 no
2026-10-27 03:45 03:50 0h05 98% 98% 53.06 0.0 no
2026-10-27 13:20 14:35 1h15 96% 89% 52.73 0.7 no
2026-10-28 14:45 15:40 0h55 97% 91% 52.76 0.7 no
2026-10-28 22:55 23:10 0h15 41% 39% 52.10 0.2 no
2026-10-29 03:00 03:01 0h01 57% 52.47 0.0 no
2026-10-29 03:05 03:59 0h54 56% 51% 52.30 0.6 no
2026-10-29 04:50 12:59 8h09 50% 19% 50.84 3.4 no
2026-10-29 14:10 16:51 2h41 52% 26% 51.41 2.8 no
2026-10-29 16:55 18:15 1h20 26% 17% 50.90 1.1 no
2026-10-29 18:50 21:34 2h44 16% 6% 49.76 1.0 yes, 138 min no data
2026-10-30 04:15 09:35 2h185h20 32% 17%10% 51.1049.99 1.2.6yes, 117 min no data
2026-10-3010:0510:060h0124%52.580.0 no still
2026-10-3010:1012:352h2524%24%52.280.1no
2026-10-3017:0517:150h1098%98%53.010.1no

Where to tweak

  • Unused battery headroom: the battery ends the window with an average 0.4 kWh above its floor (45% before the driver rules, 15% from v21) (8485 UGX a night if shifted too).
  • Peak energy still bought from the grid: 1.0 kWh a night between 18:00 and midnight falls outside the window. That is the ceiling for more shifting, limited by battery size and the backup reserve.
  • Voltage margin: the lowest pack voltage so far is 49.32 V against the 50.4 V disarm trigger and 48.8 V inverter cut-off.
  • Spread: each shifted kWh earns about 189 UGX net (666.5 peak minus 429.7 off-peak at 90% round trip). A new quarterly tariff changes this directly.

Method

  • Shifted energy: battery discharge (ess0/DcDischargePower > 0) integrated over the configured window, with 10 minutes added at the end for the inverter clock lag. Only minutes with the grid present count; discharge during an outage is backup, not arbitrage, and is shown in the notes.
  • Saving: shifted kWh at the peak rate, minus the off-peak cost of putting that energy back at 90% round-trip efficiency. It is energy only (no service charge, VAT or battery wear).
  • Recharge: battery charging between 00:00 and 06:00. It includes refilling any evening outage use, so it can exceed the shifted energy.
  • Config history: ADR-016 in the microgrid-gateway repo (v12 22:00-23:59, v13 off, v14 21:30-23:30 from 28 Sep, v17 21:00-23:00 from 30 Sep, v18 off 1-2 Oct, v19 re-armed from 3 Oct, v21 from 5 Oct: 18:00-23:59 with the driver's 30% start and 15% floor).
  • Outage: a minute counts as an outage when any phase of the inverter's grid-side meter (meter0) reads under 150 V or the inverter reports machine state 3 (off grid). Minutes with no data during an outage mean the edge lost power, which means the site went dark; an outage counts as dark at 5 such minutes or when SoC fell to 10% (the inverter's cut-off point seen on 24 Sep).
  • Arbitrage use before an outage: the energy that night's window took from the battery (grid present), for outages that start after the window and before 06:00. It is the backup the site did not have because of arbitrage. An outage that starts inside the window is marked, because from then on the discharge is backup.