Client
Victron Energy

Industry
Energy systems

Company size
100+ employees

Services we provided
• Data Science
• Software development

Technologies
• OR_Tools
• InfluxDB
• Redis
• Celery

Do you want to know more?

Get in touch

Why build a smarter battery?

The client

Victron energy is a dutch company specialised in design and manufacture of electric devices such as inverters, solar chargers and batteries. Users of these devices are able to connect these devices to an online platform called VRM (Victron Remote Management) developed and maintained by us at El Niño.

The platform

Through this platform the users are able to monitor and control the certain aspects of their electrical devices. The platform has more than 100.000 active users with electrical setups varying from boats using solar energy to households with electric vehicle charging stations. One of the more popular and clearly defined markets that Victron devices are present in are ESS’s (Energy Storage Systems).

The market

ESS are simply energy systems with a stable electrical grid connection and a battery solution. Households with a battery system and solar panels are popular examples of ESS present on the VRM platform. While a solution like this comes with its environmental and self-sustainability benefits, many ESS owners also noticed a unique opportunity in minimising their energy costs by cleverly using their battery systems.

The challenge

With the dynamic energy pricing gaining popularity all across Europe, ESS owners with these contracts constantly optimise their energy usage and battery charging cycles to spend the least amount of money. This also aligns with the monetary incentive set by dynamic pricing in order to stabilise the electrical grid. Thus the challenge was clear, users wanted an automated solution which minimises their energy costs of their ESS.

The solution

We created Dynamic ESS - a multi-layered system which incorporates energy and price forecasts together with system parameters to generate an optimal battery charging schedule.

Introducing: Dynamic ESS

Dynamic ESS is an algorithmic solution for the battery charging optimisation problem. By collecting, analysing and inferring from the historical data present on an ESS, it promises to mathematically calculate the most cost-efficient energy schedule.

System inputs

After carefully analysing the behaviour of ESSs and their users’s decision making, we quickly narrowed down the necessary elements to make an optimal battery schedule:

  • Energy Production Forecasts - the estimate of how much energy an ESS can produce using solar panels;

  • Energy Consumption Forecasts - the predictions for the energy usage present in the ESS;

  • Day-ahead Energy Prices - buy and sell prices of energy from the grid;

  • System parameters & User Preferences - energy flow limitations of the system, i.e. battery capacity or maximum grid export power.

With these set of inputs, we aimed to only use user action where necessary and calculate most of the parameters using the data available. While this approach makes the setup simpler, the critical parameters are still obtained from user input to maximise reliability.

Mathematical optimization

Using the parameters we mathematically model ESS. With the forecasts we describe the constraints and the state that the energy system is in and with the prices we define the cost function to incentivise the model to reduce energy costs. We used an Mixed Integer Linear Programming model developed using the Google’s OR-Tools library. Going with a mathematical model like this makes the system understandable, explainable and easily expandable.

Control mechanism

Once the optimal charging cycles of batteries are calculated, these get translated into a set of control mechanisms carefully crafted by Victron’s engineers and El Niño’s Data Scientists. These controls are later sent to the electrical devices via MQTT protocol. Each transmission of controls contains 12 hours of planned schedule. This ensures that the downtime on the software end doesn’t impact the devices for half a day, thus making the product more robust.

Deployment

While all of the above executes for a given user within milliseconds, the real challenge came in when we needed to scale these solutions deliver results to thousands of users every fifteen minutes. For this, we made use of advanced task queueing techniques attached with smart caching backend to ensure a speedy execution. In more detail, we made use of Celery task-runners with each task interfacing with a Redis instance. A deployment like this allowed us to scale the solution while not sacrificing reliability.

Results

Savings per user per year (average in Netherlands)€120,-
Inference time (per user)15ms
System uptime (since release)100%
Smarter homes
Better battery usage
More sustainable
Less dependent on grid
Smarter use of green energy
Smarter homes
Better battery usage
More sustainable
Less dependent on grid
Smarter use of green energy

Connect with the project team

Alex Imbrea

Technical Manager
Portrait of Barbara

Barbara Jansink

Product Owner

Alex Imbrea

Technical Manager
Portrait of Barbara

Barbara Jansink

Product Owner

Have a project in mind?

Let's talk and discover the possibilities through technology together. We'd love to learn more about your business, idea or product.

Get in touch