OpenEMS auf Raspberry pi 4 installieren

Hallo,

ich finde OpenEMS sehr interessant und würde dies gerne auch bei mir umsetzten, nur bin ich kein ITler. Ich habe zwar schon das ein oder andere Projekt mit meinem Pi4 umgesetzt tue mir aber noch jetzt etwas schwer.

Gibt‘s eine Anleitung auf deutsch dass ich dies auf meinem Pi installiert bekomme?

Danke vorab für eure Mühe
Gruß Michael

Moin,

Schau Dir mal Edge + UI Deployment - ein grober Leitfaden an. Nicht vollständig - aber es sollte Dich weiterbringen.

Gruß,
Klinki

Guten Abend zusammen…

Ich klinki😅 mich hier mal ein, da ich ebenfalls sehr an openEMS interessiert bin.

Zum Hintergrund meines Interesses:
Ich bin “Solateur”/gelernter Automatisierungstechniker (mit eingeschränkten Programmierkenntnissen) und habe mich vor kurzem Selbständig gemacht.
Nun stoße ich immer öfter auf Inkompatibilitäten zwischen Neu- und Altanlagen bzw. bei Erweiterungen. Habe nun auch schon mit einem Raspberry und EVCC ein privates Projekt angegangen.
Gerne würde ich in Zukunft auch an diesem Projekt mitwirken.
Nur würde ich gerne ersteinmal privat ein System zum laufen bringen bevor ich mich bei Kunden verzettele.

Das ganze soll erstmal nur lokal auf nem Raspi 4 laufen.

Mit der Anleitung von dir(klinki) scheitere ich leider schon bei der Bedienung von eclipse bzw. der .jre-Erstellung.
Beim import des git-Klones bricht eclipse ab weil angeblich eine bnd.bnd Datei nicht vorhanden sei😤.
Wie gehe ich hier nun am besten vor.

Wenn ich das ganz ganz vorsichtig sagen darf - bist du dir sicher, dass du das auf lange Frist deinen Kunden dann auch anbieten kannst, wenn es beim Einrichten eibes lokalen Edge Devices bereits hakt?

Dir fehlt dann noch das komplette Backend…

Als Start einfach due fertig kompilierte Version von GitHub nehmen :slight_smile:

https://github.com/OpenEMS/openems/releases/download/2023.7.0/openems-edge.jar

Grüße :slight_smile:

Danke für die schnelle Antwort…

Muss auch ganz vorsichtig zugeben - mit Java und der ide bisher leider keine Erfahrung zu haben. Komme aus der Automatisierung, sprich SPS-Logik und ein wenig Grundkenntnisse in C (Microcontroller Spielereien) sind da. Mit Linux setze ich mich auch erst seit kurzem wieder auseinander.

Also wenn ich das mal so sagen darf: kommt Zeit kommt Rat…

Mir geht es darum ersteinmal zu verstehen und zu testen, ich bin eher der typ “lerning by doing”.
Da wäre eine step-by-step-Anleitung natürlich am besten verständlich für mich.

Bevor ich das System dann Kunden überhaupt anbieten würde muss ich natürlich Sattelfest sein.
Zur kommerziellen Nutzung würde ich dann natürlich auch Fachkompetenz hinzuziehen, hab da auch den ein oder anderen bekannten it’ler…

Eine Step-By-Step Anleitung gibt es im Getting started in Verbindung mit Consollino :slight_smile:

Mit der Anleitung von @klinki ist es möglich - glaub mir…

Eine detailliertere Anleitung als die gibt es fast nicht :smiley:

Hallo,
wenn ich nach der Anleitung vorgehe, startet auf meinem Raspberry Pi 4 (32bit Bullseye) startet OpenEMS sowohl mit einem selbst gebauten jar als auch dem offiziellen Release nicht.
In Eclipse läuft es problemlos.
Das Log sieht so aus:

...
ERROR: Bundle io.openems.edge.application [10] Error starting jar/io.openems.edge.application.jar (org.osgi.framework.BundleException: Unable to resolve io.openems.edge.application [10](R 10.0): missing requirement [io.openems.edge.application [10](R 10.0)] osgi.wiring.package; (&(osgi.wiring.package=io.openems.common.types)(version>=1.0.0)(!(version>=2.0.0))) [caused by: Unable to resolve io.openems.common [9](R 9.0): missing requirement [io.openems.common [9](R 9.0)] osgi.ee; (&(osgi.ee=JavaSE)(version=17))] Unresolved requirements: [[io.openems.edge.application [10](R 10.0)] osgi.wiring.package; (&(osgi.wiring.package=io.openems.common.types)(version>=1.0.0)(!(version>=2.0.0)))])
org.osgi.framework.BundleException: Unable to resolve io.openems.edge.application [10](R 10.0): missing requirement [io.openems.edge.application [10](R 10.0)] osgi.wiring.package; (&(osgi.wiring.package=io.openems.common.types)(version>=1.0.0)(!(version>=2.0.0))) [caused by: Unable to resolve io.openems.common [9](R 9.0): missing requirement [io.openems.common [9](R 9.0)] osgi.ee; (&(osgi.ee=JavaSE)(version=17))] Unresolved requirements: [[io.openems.edge.application [10](R 10.0)] osgi.wiring.package; (&(osgi.wiring.package=io.openems.common.types)(version>=1.0.0)(!(version>=2.0.0)))]
	at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4398)
	at org.apache.felix.framework.Felix.startBundle(Felix.java:2308)
	at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1566)
	at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:297)
	at java.lang.Thread.run(Thread.java:748)

Woran kann das liegen?
Was fehlt?

Ich habe gerade noch einmal die aktuelle OpenEMS Edge Release-Version (https://github.com/OpenEMS/openems/releases/download/2023.8.0/openems-edge.jar) erfolgreich getestet.

Nutzt du (mindestens) Java 17?

Danke, das hatte ich natürlich nicht überprüft. Jetzt startet es.

Nachdem ich einen Scheduler, eine Modbus Bridge und einen Zähler konfiguriert habe, bekomme ich den nächsten Fehler. Der USB-RS485 Adapter läuft an einem anderen Raspberry problemlos, dort mussten auch keine Treiber installiert werden.

Aug 06 23:24:15 raspberrypi java[1433]: 2023-08-06T23:24:15,073 [modbus0 ] INFO  [ker.internal.CycleTasksManager] State: INITIAL_WAIT -> READ_BEFORE_WRITE (onWaitDelayTaskFinished)
Aug 06 23:24:15 raspberrypi java[1433]: 2023-08-06T23:24:15,110 [modbus0 ] ERROR [s.common.worker.AbstractWorker] Worker error. UnsatisfiedLinkError: /tmp/1691357055107-libjSerialComm.so: /tmp/1691357055107-libjSerialComm.so: cannot open shared object file: No such file or directory
Aug 06 23:24:15 raspberrypi java[1433]: java.lang.UnsatisfiedLinkError: /tmp/1691357055107-libjSerialComm.so: /tmp/1691357055107-libjSerialComm.so: cannot open shared object file: No such file or directory