Market-smart PV automation: inverters, export & batteries

author

Partner: Light Soft Bulgaria Ltd.

image

VoltPilot is an intelligent platform for automated control of photovoltaic (PV) power plants. It manages inverter operation using electricity market prices, reading price signals and automatically adjusting production to improve revenue — ramping up, limiting, or switching off export when the market makes sense. The result is better profitability and less exposure to weak or negative price periods.

What it helps you do

• Trade with the market, not against it: Use IBEX (Bulgarian Independent Energy Exchange) price data in 15-minute intervals (other integrations are also possible).

• Profile the plant for profit: Define behavior rules across time, price levels, battery state, and power limits — VoltPilot applies them automatically.

• Use batteries with the inverter: Coordinate charging/discharging with generation and prices for smarter use of stored energy.

Dynamic production profiling

• Flexible rules based on:

- Time (hour, day, season)

- Minimum acceptable price thresholds

- Battery state

- Power caps / limits

• Automatic execution: Control logic executes the rules and adapts output to current market conditions.

• Outcome:

- Operate only when it’s economically favorable

- Avoid very low or negative price periods

- Use stored energy when it pays off

Precise output and storage control

• Dynamic production changes: Raise or lower production as conditions change.

• Intelligent battery operation: Charge/discharge according to strategy and prices.

• Peak-price reaction: Prioritize export during strong price intervals.

• Balanced strategy: In strong markets you sell strategically; in poor ones you store or curtail — keeping production, storage, and market signals aligned.

Why it matters (illustrative figures — Bulgaria, 2025)

• Cost & market context: Energy transmission cost ~15.85 €/MWh; ~820 hours/year with unprofitable selling conditions; average net price during those hours ~−12.48 €/MWh.

• Example modeled plant (Plovdiv region, 30 kW): ~41.7 MWh/year; ~20% of energy falls into unprofitable price windows.

• Illustrative avoided loss (better export limiting + improved sales timing):

- 30 kW: ~102 €/year

- 50 kW: ~170 €/year

- 100 kW: ~341 €/year

- 1 MW: ~3 426 €/year

- 5 MW: ~16 873 €/year

- 30 MW: ~102 258 €/year

Market volatility becomes a lever, not a surprise: you plan around prices instead of only reacting to them.

Technology stack

Backend

• Language & build: Java 21, Maven (multi-module)

• Framework: Spring Boot

• API & HTTP: Spring Web (REST), Spring WebFlux

• Integration: Spring Integration WebFlux

• Security: Spring Security, JWT (JJWT)

• Data: Spring Data JPA, Hibernate, Hibernate JPA Metamodel Generator

• Databases: PostgreSQL (runtime), H2 (runtime)

• Server-side UI: Thymeleaf

• Email: Spring Boot Mail

• Automation / testing tooling: Selenium, WebDriverManager

• Developer productivity: Lombok

Frontend (Web)

• Core: TypeScript, React 18, Vite 5

• Build & tooling: SWC + React

• UI: Material UI (MUI) 6, Emotion

• Routing: React Router

• i18n: i18next, react-i18next

• Networking & data: Axios

• Styling pipeline: Sass/SCSS, Stylelint, PostCSS SCSS

• Quality: ESLint 8 (Airbnb, Standard, TypeScript ESLint)