How to configure OpenEMS?

-What is OpenEMS?
-What backend DB does OPenEMS require?
-To do the customization on the OpenEMS, is it to be done on the Edge or in UI?
-What changes can be done on the OpenEMS UI?
-Do we have a web portal to view and monitor the device connected with OpenEMS?
-How to configure and run the OpenEMS platform?
-How to Deploy OpenEMS Edge & UI?
-What type of server is needed to host the OpenEMS platform?
-What kind of technical expertise is needed to develop/customize the platform?

Well, I asked myself exactly these questions or similar at the beginning. The help is not really helpful, which you can also feel in many questions here in the form. But with a little training and a lot of reading you get quite well into the subject.
As a start I would recommend the following link. There you will find the system concept.

The system is modular. You have to install the basic system (edge or backend) and then the UI. I myself have not yet become clear the difference between edge and backend :wink: A tutorial how to compile and install the system can be found here.

So you have the possibility to develop the system yourself. If you like it easier, you can download the compiled files directly. But then you have to take it as it is.

unfortunately there is no installer for the system as known from Windows or other cross-platform automation systems like IPSymcon.

1 Like

Hi Thomas,

Thank you for your valuable inputs and is really helpful for us to understand the basics. We are new to this and our customer wants us to run an instance of OpenEMS initially and then wants us to customize to suit their needs later.

The provided information is good for us to install the basic system. But we are unable to understand from the system architecture diagram, where the cloud part of the OpenEMS is installed or how do we install it or if it is a common cloud accessible to all OpenEMS users?

We would also like to know if the customization happens only in the Edge and UI (requiring Java or Angular/TypeScript developers) or does it require C++ or Octave/Matlab developers to customize the OpenEMS backend/server.

Please see the attached architecture diagram for our clarification.


and thanks for getting in touch.

Maybe its best to understand the structure following a running example setup. Did you check out our Gitpod Demo?

This creates a full demo setup with OpenEMS Backend, Edge and UI. Everything is configured by configuration files that create all the Docker containers (openems/.gitpod.yml at develop · OpenEMS/openems · GitHub and openems/.gitpod.Dockerfile at develop · OpenEMS/openems · GitHub).

For your questions:

  • The left part of the architecture diagram shows a publically reachable cloud server. This is an optional feature of OpenEMS, that can be used to gain remote access to multiple OpenEMS Edge devices via one central OpenEMS UI. See the deployment guide for OpenEMS Backend here: Deploy OpenEMS Backend :: Open Energy Management System
  • As OpenEMS is entirely open source, you can of course customize every part of the system: OpenEMS Edge, OpenEMS Backend and OpenEMS UI. There is no native C++ or Octave/Matlab code.
  • If you do any customizations, please consider contributing back to the OpenEMS project. Any code, documentation or testimonial is highly appreciated.


Thanks for insight Stephan. It is helpful and gave us a better understanding of the architecture. We will get back with other queries when required.


A post was split to a new topic: OpenEMS Backend jar: no main manifest attribute