Optimal Hardware Requirements for openEMS

Hallo OpenEMS-gemeenschap,

Ik hoop dat dit bericht je in goede gezondheid bereikt. Ik ben in de planningsfase van de implementatie van een OpenEMS-project gericht op het beheren en optimaliseren van een residentieel zonne-energiesysteem. De kerndoelstelling van het project is het efficiënt monitoren en controleren van de opbrengst van zonnepanelen, batterijopslag en energieverbruik in huis.

Gezien de cruciale rol van de hardware bij het bereiken van een soepele en betrouwbare werking, overweeg ik OpenEMS op een Raspberry Pi te implementeren. Ik ben echter onzeker over het beste Raspberry Pi-model en de beste configuratie die ik kan gebruiken, waarbij prestaties, energie-efficiëntie en kosteneffectiviteit in evenwicht zijn.

Ik zou uw inzichten over het volgende zeer op prijs stellen:
Raspberry Pi-model
Geheugen en opslag
Overwegingen bij energieverbruik
Ervaringen uit de echte wereld
Besturingssysteem en aanvullende software: Zijn er optimalisaties of specifieke configuraties binnen het Raspberry Pi-besturingssysteem die u aanbeveelt voor het uitvoeren van OpenEMS?

Hartelijk dank voor uw tijd en hulp.

Hartelijke groeten,


could you please do us a favour and translate your Message to German or English? :slight_smile:
Greetings !

Optimal Raspberry Pi Specifications for OpenEMS Implementation

yes of coures,
Hello OpenEMS community,

I hope this message finds you in good health. I am in the planning phase of implementing an OpenEMS project aimed at managing and optimizing a residential solar energy system. The core objective of the project is to efficiently monitor and control the yield from solar panels, battery storage, and home energy consumption.

Given the crucial role of hardware in achieving smooth and reliable operation, I am considering implementing OpenEMS on a Raspberry Pi. However, I am unsure about the best Raspberry Pi model and configuration to use, balancing performance, energy efficiency, and cost-effectiveness.

I would greatly appreciate your insights on the following:

  • Raspberry Pi model
  • Memory and storage
  • Considerations regarding energy consumption
  • Real-world experiences
  • Operating system and additional software: Are there optimizations or specific configurations within the Raspberry Pi operating system that you recommend for running OpenEMS?

Thank you very much for your time and assistance.

Warm regards,

Hello Nada,
I can speak of my experiences with usage of such devices, not necessarily with openEMS. It all depends on scope of project. If you aim single installation for your own purposes (DIY), then Raspberry can be fine. If you attempt to build a project for end customer, you might look for more reliable hardware platform. Several points to remember:

  1. RPi has no built in RS485 port (inverters, meters)
  2. RPi has no CAN interface (found in some storage systems)
  3. Only one storage supported by RPi < 4 is SD card

Adding one of these, or both, increases cost of hardware by half. Other aspect is storage which was quite fragile up to RPi 4 which was exclusively based on SD cards, unless you bought a storage adapter (SATA or nvme). With most recent release there is an option to get nvme drive which will last long, once you have a proper power supply. If you rely on SD card you shall reduce wearing (place longs either on tmpfs or zram).
Last point - RPi 4 and 5 can not work under constant load without cooling. In fact, it starts to throttle quite early, and using a case makes it even worse. This means that you have to use really large heat sink or fan (which will collect dust over time). Fan will often interfere with extension modules. The computing power of more recent pi’s is decent, but it comes with no cooling, hence you have to build it yourself.
Compact industrial computers might come with RS485 port, but they rarely come with onboard CAN interface. Past years (entire 2021 and 2022) were terrible in this regard. The benefit of getting a “box” device is that you can actually get a device which can be cooled in passive fashion.

To my knowledge openEMS is based on java which runtime environment can self-tune to utilize hardware platform capabilities. I’ve been running openHAB, which is in some regards heavier than openEMS on devices with 4 cores and and 2 GB of ram at the clock speeds close to RPi 3. Such hardware base is fine for small installations, if they do not run too many tasks. Given that openEMS has more of controller nature with cyclic execution of controllers you depend much more on availability of CPU cores than memory.

From devices I’ve used for one off installation I can mention Aaeon Boxer 6405m (it had rs232), Jetway IPC (rs232), Cincoze DA-1100 (rs232/485, + extensions). For arm based device I’ve played with Compulab IOT-GATE-iMX8 (hardly available in 2022, but it does supports tiny extension modules), and urve board a18pro (msata, mpcie, rs485 and 2x can), urve board pi (m.2, gpio). All these ARM devices come with emmc, onboard flash which you have to care about, more or less like of SD card. There are more devices which I haven’t played but can be a viable alternative i.e. orange pi, banana pi, pine 64 and so on.

1 Like