Seeking Guidance for Implementing a Battery Device in OpenEMS

Hello OpenEMS community,

As a beginner in OpenEMS, I’ve been exploring the tutorials, specifically the one on implementing an electric meter simulator. However, I’m eager to extend my knowledge and skills by incorporating a battery device into my project.

I would greatly appreciate your guidance on the essential information I should be aware of when implementing a battery in OpenEMS. Any tips, best practices, or resources you can share would be incredibly valuable to ensure a correct and efficient implementation.

Hi ChahtourAla & welcome to the community,

Implementing a storage system can be difficult indeed. Do you have a special product in mind? It may be helpful to take a look at the fenecon home battery system. The code is pretty well documented.
What´s your plan to connect the battery? Modbus?

regards,
klinki

1 Like

Hello Klinki, and thank you for your attention.

I am currently working on a project where the battery will be connected via Modbus. Therefore, my initial step is to implement a Modbus device. Following this, I plan to integrate the battery API along with other APIs.

My primary query is regarding the specific information I need to gather about the battery to ensure its correct implementation in OpenEMS. Additionally, if there is any comprehensive documentation or resources available that could assist in the integration of a battery into OpenEMS, I would greatly appreciate it if you could share them with me.

Thank you in advance for your support and guidance.

Unfortunately there is no step-by-step guide how to implement a new battery device. As I implemented an ESS/inverter/grid-meter device for my SolarEdge home system by myself and as I am not a good java programmer I did it this way:

  • Implement a device like described in the getting started guide
  • Look at the code how the others did it. Sounds trivial. In fact the main thing is to get the battery´s data via modbus. This mainly depends on the device’s documentation.
    So, often it is necessary to add own device specific channels in the interface file.

The first milestone is to be able to read the device´s data, e.g. SoC, ActivePower, Charge/Discharge-Power.
The next step would be controlling the battery. Therefore you have to implement the applyPower-Method that tells the battery what to do. Stefan described it in this thread

Hi @ChahtourAla,

as Klinki suggested, you should have a look at the implementation of the FENECON Home battery. It should be a very good example for your project:

  • communication based on Modbus
  • implementation uses a proper State-Machine, with start/stop capabilities
  • there is a Battery-Protection activated, that makes sure the cell voltages stay in proper ranges
  • etc.

More background information can be found in theses threads:

Regards,
Stefan