© Florian Gerlach
CC BY-SA 3.0

The future of energy production lies within the use of renewable energy sources. The storage of such energy can make a big contribution to utilising this renewable energy. The ZeLiM project (Zentralisiertes Lithium-Speicher-Monitoring - Centralised Lithium Storage Monitoring) is aimed at developing a computer supported system for centralised monitoring, configuration and management of decentralised energy storage devices.

Gaining energy from renewable energy sources like solar power or wind succumbs to natural fluctuations in weather conditions. To overcome these irregularities in energy production the spare energy has to be stored so it can be utilised when demand exceeds production. High capacity lithium iron phosphate storage devices can be connected to solar, wind or even block-unit heating power plants to stabilise the power grid.

© Leaflet
CC BY-SA 3.0

To achieve this goal, the Institute for Software Engineering and Programming Languages cooperates with ecc Repenning GmbH, who support the project with energy storage devices for testing and evaluation. The project is financially supported by the Gesellschaft für Energie und Klimaschutz Schleswig-Holstein GmbH (EKSH).


Besides the task of finding and integrating large scaling frameworks for data storage, distributed configuration and data analysis, probably the biggest challenge of the ZeLiM project is dealing with a vast amount of data produced by the energy storage devices. A single device produces about 55 kilobytes of data per second. Scaled up to only a thousand devices this adds up to almost 4.5 terrabytes a day.

This amount of data needs to be transfered over the internet from the energy storage device to a database, where it is stored and can be recalled for long term analysis to improve battery technology. Such data includes voltage, current, temperature, charging cycles and more. The status of an energy storage device can be determined from realtime analysis of the data to identify defects or reduction in capacity.


In a one year case study a group of ten master students with the support of M. Sc. Martin Blankenburg and Prof. Dr. Martin Leucker designed and implemented the backend components of the ZeLiM system along with a basic web client for visualising storage device data.

When data is produced by a battery management system (BMS), it first passes the ZeLiM middleware. The middleware serves as a translator between the BMS and the ZeLiM system. This makes it possible to easily adapt the ZeLiM system to BMSs from different manufacturers. The middleware works in two ways: it translates BMS data to the ZeLiM protocol and configuration and control messages from the ZeLiM protocol back to messages understandable by the BMS.

After leaving the middleware the BMS data runs through a message filter, where redundant and unchanged data is filtered out to limit the data volume that needs to be transfered to a minimum.

The next stage is the runtime verification component (RV). The RV component supervises the state of an energy storage device by comparing the data to predefined threshold values. It can be configured with LUA scripts at runtime to define the steps to be taken if a threshold value is exceeded or underrun.

In such a case the RV component sends an event to the controller component which in turn sends control messages to the middleware. It also generates an entry in the logging database (LogDB) in case of an event.

For storing configuration data of the energy storage devices we developed a configuration database component (ConfigDB). Since this data does barely change, we use a simple SQL database to store this information. Configuration data includes manufacturer information, threshold values for the RV component like voltage, current or temperature, charge cycles and other such data. The ConfigDB component is already fully implemented.

The heart of the ZeLiM backend is its distributed logging database (LogDB). This is where all the energy storage device data is stored for short or long term analysis and data visualisation. In a series of performance tests we found TokuMX as the most powerful NOSQL database in terms of access and storage time at the cost of disk space. Since disk space is cheap and the storing of data is time critical this seemed like a bearable tradeoff. The LogDB component is also fully implemented.

All ZeLiM components communicate through a so called entry point (EP). It can be seen as a proxy server to the ZeLiM network that manages communication and encrypts all data using Transport Layer Security (TLS). Since every ZeLiM component knows only its nearest entry point we achieved a level of abstraction that allows the distribution of ZeLiM components over several machines in a local or wide area network where every machine features its own EP. We use etcd from CoreOS for distributed configuration of the EPs to store which ZeLiM component lies behind a certain EP.

A web client is currently being implemented that features data visualisation, analysis algorithm selection as well as rule creation and management for the RV component. Role and user management ensures that users may only access data they are allowed to see. The web server is implemented in node.js, a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. The web client uses Googles AngularJS, Grunt, Twitters Bower and Bootstrap for a lightweight responsive web application.

Future Work

We have just started our corporation with ecc Repenning GmbH so we will be able to run our first field tests in the next months. System and performance tweaks will follow our field tests to further enhance the ZeLiM system.

To connect energy storage devices to the ZeLiM system we are currently developing a client system based on the Raspberry Pi (RPi) platform. The ZeLiM components needed on the client side like EP, middleware, filter, RV and controller will be integrated on the RPi so we can deliver a single piece of hardware to perform all neccessary tasks. Thanks to the expandability of the RPi, BMSs from different vendors can easily be connected to the RPi via I²C, SPI, CAN or hardwired to GPIOs. We are currently considering to integrate ZeLiM components directly into a BMS so no additional hardware will be needed to connect energy storage devices to the ZeLiM network.

With regard to Smart Grid Applications we have devised a model to combine multiple energy storage devices to virtual power plants. Similar to the Logical Volume Manager (LVM) used for harddrive management, our model suggests building a pool of energy storage devices from which virtual power plants can be created. This makes it possible to deliver excess energy to where it is needed.

To give students a hands on education in research projects, students are involved in the development of the ZeLiM project. For example, in the upcoming summer and winter term the Institute for Software Engineering and Programming Languages will arrange a new case study and practical courses centered around the ZeLiM system.


For further information about the ZeLiM project, please contact M. Sc. Martin Blankenburg