the Feneco - OpenEMS Logo

Open Energy Management System

OpenEMS is a modular platform for energy management applications. It was developed around the requirements of controlling, monitoring and integrating energy storage systems together with renewable energy sources and complementary devices and services.

OpenEMS IoT stack

The OpenEMS 'Internet of Things' stack contains three main components:

  • OpenEMS Edge runs on-site and actually controls the devices

  • OpenEMS UI is the generic user interface

  • OpenEMS Backend runs on a (cloud) server, connects the decentralized Edge systems and provides aggregation, monitoring and control via internet


The OpenEMS software architecture was designed to leverage some features that are required by a modern and flexible Energy Management System:

  • Fast, PLC-like control of battery inverters and other devices

  • Easily extendable due to the use of modern programming languages and modular architecture

  • Wide range of supported devices - (battery) inverters, meters, etc. - and protocols

  • Modern web-based real-time user interface

OpenEMS UI Screenshots

OpenEMS UI Screenshots
OpenEMS UI Screenshots

System architecture

OpenEMS is generally used in combination with external hardware and software components (the exception is a simulated development environment - see Getting Started) As a brief overview, this is how OpenEMS is used in production setups:

OpenEMS system architecture
Figure 1. OpenEMS system architecture

Development guidelines

Development follows the Agile Manifesto and is driven by the Scrum methodology. The source code is available online at and on GitHub . New versions are released after every Scrum Sprint and tagged accordingly. Version numbers are built using the pattern year.number of sprint, e.g. version 2018.4.0 is the result of the fourth sprint in 2018. Git development follows the Gitflow Workflow, so the master branch always holds the stable release, while active development is happening on the develop branch or in separate feature branches.

For Edge and Backend Java development we recommend the Eclipse IDE . For the UI (TypeScript + we recommend Visual Studio Code . The documentation is generated using AsciiDoc . For handling git we recommend Sourctree by Atlassian .

Open Source philosophy

OpenEMS development was started by FENECON GmbH , a German company specialized in manufacturing and project development of energy storage systems. It is the software stack behind FEMS - FENECON Energy Management System and widely used in private, commercial and industrial applications.

In 2019 governance of the OpenEMS project was taken over by the newly founded "OpenEMS Association e.V. (i.Gr.)". We are inviting third parties - like universities, hardware manufacturers, software companies, commercial and private owners,…​ - to use OpenEMS for their own projects and are glad to support them with their first steps. In any case if you are interested in OpenEMS our development team would be glad to hear from you at

OpenEMS is funded by several federal and EU funding projects. If you are a developer and you would like to get hired by one of the partner companies or universities for working on OpenEMS, please send your motivation letter to


  • OpenEMS Edge

  • OpenEMS Backend

Copyright © 2016-2020 FENECON GmbH.

This product includes software developed at FENECON GmbH: you can redistribute it and/or modify it under the terms of the Eclipse Public License version 2.0.

  • OpenEMS UI

Copyright © 2016-2020 FENECON GmbH.

This product includes software developed at FENECON GmbH: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3.