Skip to content

Glossary

Terms used throughout this documentation, the diagnostics file and the analyzer.

Arbitrage

Buying energy when it is cheap and using it when it is expensive. The battery is the store; the profit is the price spread minus efficiency losses and wear.

Backward induction

The way the DP is solved: start at the end of the horizon, where the value of stored energy is known, and work backwards computing the best action for every state. See the algorithm page.

Commitment filter

A post-processing step that keeps an active charge or discharge locked within the same price period, so the controller does not chatter between actions on small input changes. It is why battery_setpoint can hold steady while optimal_power suggests something else.

Cold-start curve

The built-in consumption pattern used before anything has been learned from your own sensors: ≈3500 kWh/year, ~0.4 kW average, with a morning and evening peak. If your forecast looks suspiciously like a generic household, this is what you are seeing.

DC-coupled / AC-coupled

Whether a PV array feeds the battery inverter's DC bus directly (DC-coupled, ~97 % efficient, MPPT only) or passes through its own inverter first (AC-coupled, ~85 %). The distinction changes the efficiency path in the cost function, so it is not cosmetic.

Degradation cost

The modelled cost of battery wear per full charge+discharge cycle, in EUR. Part of the optimizer's cost function, so a trade must beat wear as well as efficiency losses to be scheduled.

DP (dynamic programming)

The optimization technique used. The planning horizon is discretized into time steps and SoC states, and the best action is computed for every combination — which is what allows the optimizer to reserve capacity now for a better opportunity later.

Feed-in price

The price you receive for exported energy. Never allowed to be missing: when no feed-in sensor is configured, the Fixed feed-in price is used, because falling back to the grid price would make PV arbitrage look unprofitable.

GHI (global horizontal irradiance)

Solar radiation on a horizontal surface, in W/m², fetched from open-meteo.com. Drives the internal PV model and is one of the features of the historical price model.

Historical price model

A self-learning model that estimates prices from recorder history, keyed on hour, weekday, irradiance and wind speed. Used before day-ahead prices publish (~13:00 CET) and to extend the horizon when live prices cover less than 24 hours.

Horizon

The forward window the optimizer plans over — rolling, 24 to 36 hours. Decisions near the end of the horizon lean on the terminal condition rather than on explicit prices.

Idle

A scheduled action, not an absence of one: the DP has decided that neither charging nor discharging beats doing nothing in this step.

Net load

consumption − PV. What the house needs from the grid or the battery. The optimizer computes it itself, which is why the configured consumption sensor must measure gross household load rather than grid import.

Oscillation filter

A post-DP pass that removes charge↔discharge pairs whose price spread is too small to cover twice the degradation cost plus the minimum spread, adjusted for round-trip efficiency. Prevents the plan from trading against itself within a couple of hours.

RTE (round-trip efficiency)

Energy out divided by energy in over a full cycle. Split as √RTE per direction, so charge efficiency × discharge efficiency reproduces the round trip. A 90 % RTE therefore means ≈94.87 % each way.

Rolling horizon

Re-solving the whole horizon from scratch on every run, starting from the current SoC, rather than incrementally updating the previous plan. The reason two runs minutes apart can produce visibly different schedules.

Shadow price (λ)

The marginal value of 1 kWh stored right now, derived from the DP value function (λ = −dV[0]/dSoC). Hybrid mode uses it as a charge/discharge threshold, and it is exposed as the Shadow Price of Storage sensor for use in your own automations.

SoC (state of charge)

How full the battery is, in % or kWh. Discretized to 10 Wh resolution internally.

Terminal condition

The value assigned to stored energy at the end of the horizon, V[T][s] = −(soc_kwh × feed_in_price_T). Without it the optimizer would dump the whole battery in the final step, since energy beyond the horizon would appear worthless.

Zero-grid control

Real-time control (~5 s) that drives grid exchange toward zero by charging or discharging the battery to match the live meter reading. Independent of the DP schedule, and the mechanism behind the zero_grid mode.