Projects / AeroGrid replay
AeroGrid replay
AeroGrid is a research demo of a home energy planner. It decides when to charge the EV, run the hot-water heater, start the dishwasher and use a home battery, based on German wholesale electricity prices.
This page replays four days from one run of its simulator. Each day is shown three ways: with no optimiser, with the optimiser, and with the optimiser plus a home battery. The results were recorded offline, so nothing runs live and the settings cannot be changed. You can only watch.
Replay
A typical weekday
Thursday 16 April 2026. Prices stay positive, lowest in the early afternoon (34 €/MWh) and highest in the evening (206 €/MWh).
Arrow keys move 15 minutes, Page Up and Page Down move an hour, Space plays or pauses.
Day result
What happened
A start that is not running yet can be moved again when the optimiser replans, so the table below shows when each device actually ran.
When each device ran
| Device | No optimiser | Optimiser | Optimiser + home battery |
|---|
All scenarios
Electricity cost for each 24-hour window, from 09:00 to 09:00 the next morning German time. That window holds one full EV charge and both daily hot-water deadlines. Savings are against no optimiser; a percentage is left out when the no-optimiser day costs almost nothing. A negative cost means the household was paid for the electricity it used.
| Scenario | Price range, €/MWh | No optimiser | Optimiser | Optimiser + home battery |
|---|---|---|---|---|
| A typical weekday2026-04-16 | 34 to 206 | €7.59 | €6.79saves €0.81 (10.6 %) | €5.52saves €2.08 (27.4 %) |
| Negative prices2026-04-05 | -115 to 36 | €0.01 | -€0.72saves €0.72 (–) | -€2.28saves €2.28 (–) |
| Evening price spike2026-04-10 | 24 to 315 | €8.04 | €6.68saves €1.36 (16.9 %) | €6.01saves €2.03 (25.2 %) |
| Wide price swing2026-04-06 | -147 to 210 | €4.07 | €3.76saves €0.31 (7.6 %) | €1.29saves €2.78 (68.3 %) |
How this was made
The run
- One run of AeroGrid's 1 Hz digital twin (
uv run python -m aerogrid.sim.digital_twin) over its built-in window, 3 to 18 April 2026, at commitad6a6c5. The four days above are cut from that one run. - Prices are real SMARD day-ahead prices for the Germany–Luxembourg zone at 15-minute resolution. Cost is energy times the wholesale price, with no grid fees, taxes or retail margin.
- The optimiser does not see the day's prices in advance. It plans with a naive forecast built from earlier days and replans as real prices arrive.
- The approval step was answered by AeroGrid's simulated user (its default auto-confirm mode): proposals to delay the dishwasher are accepted, the washing machine always runs at once, and proposals that save less than €0.10 are not asked.
- Costs and energy follow AeroGrid's slot log. It records each device's power at the start of every 15-minute slot and bills that power for the whole slot, so changes the optimiser makes in the middle of a slot are missed and a device's daily energy can be off its target by up to about half a kWh. On negative-price days the optimiser also runs the hot-water heater beyond its target, because using power then earns money. The day result lists each device's energy.
- The home battery (13.5 kWh) carries its charge from one day into the next. The day result shows its charge at the start and end of the window; stored energy left at the end is not counted in the cost.
Known gaps
From the AeroGrid README:
- Appliance cycles are rectangular: the dishwasher always draws 2.5 kW for 2 hours.
- Appliance starts come from a fixed list in the configuration, not from detection.
- The EV needs a fixed 24 kWh every day, plugged in from 22:00 and needed by 09:00 German time. There is no EV battery model.
- No solar panels and no export to the grid. The battery only offsets the household's own load.
- The price forecast has no predictive power beyond earlier days' profile and no uncertainty model.
- The README's 8 kW power-cap scenario is an optimiser notebook example, not part of the digital twin, so it is not replayed here. The twin uses a 10 kW house cap.