Ungültiger Wert für ActivePower

Hallo,

ich sitze seit einigen Wochen an der Implementation unseres Batteriesystems in Kombination mit einem Wechselrichter, der noch nicht serienmäßig in OpenEMS zu finden ist.

Als Grundlage habe ich die BMW Batterie, sowie den Batterie Inverter Sinexcell genommen und die Werte an meine Anforderungen angepasst. Die beiden Automaten wurden ebenfalls leicht abgeändert, allerdings wurden wichtige Funktionen wie etwa applyPower nicht verändert.

In der Apache Felix Weboberfläche ist der Punkt “ESS Generic Managed Symmetric” ausgewählt.

Unter diesen Voraussetzungen bekomme ich leider folgende Fehlermeldung.

2024-05-03T12:10:26,306 [_cycle ] WARN [ms.edge.core.cycle.CycleWorker] [_cycle] Error in Controller [ctrlBalancing0]: Value for Channel [ess0/ActivePower] is invalid.

Der Wert für ActivePower wird mir im DebugLog als UNDEFINED ausgegeben.

Wäre dankbar für einen Denkanstoß.

Hallo,

ich denke ohne Code Einblick über GitHub ist es echt schwer dir zu helfen. (Glaskugel und so :slight_smile: )

Bitte teile doch deinen Code gemäß der Richtlinien für OpenEMS auf GitHub und schon können wir alle miteinander zusammenhelfen ! :slight_smile:

Grüße !

Hallo,

Danke für die schnelle Antwort.

Teilen kann ich leider nichts, da es sich um eine Machbarkeitsstudie handelt samt NDA. Müsste dafür erst bei dem Hersteller des Wechselrichters anfragen, ob ich in diesem frühen Entwicklungsstadium bereits Code teilen darf.

Vielleicht kann ich meine Frage etwas allgemeiner stellen, da es zu diesem Thema auch generell nicht viele Informationen im Netz gibt.

Welche Controller sind grundsätzlich innerhalb der Apache Felix Weboberfläche auszuwählen, damit die Kombination zwischen Batterie und separaten Wechselrichter funktioniert. Ich bin mir sicher, dass hier mein Fehler liegt.

Gruß

Auch hier, keine generelle Antwort möglich, sorry ich bin raus.

Grundsätzlich muss der WR ja mit der Batterie selbst Kommunizieren. Das läuft nicht über OpenEMS.

Zudem wichtig:

  • Wie liesst du den WR aus
  • Woher kommen deine Daten?
  • Wie ist er angeschlossen?
  • Welches Protokoll wird verwendet?
  • etc.

Gibt es eine Anleitung zum Hochladen vom Quellcode?
Werde den Code mal hochladen.

Kommunikation läuft über Modbus TCP. Lese das BMS direkt aus,sowie die Steuerung des WR.

Blockquote
Grundsätzlich muss der WR ja mit der Batterie selbst Kommunizieren. Das läuft nicht über OpenEMS.
Blockquote

Wie genau ist das zu verstehen? Ich betreibe die Battery nicht als ESS, wie z.B. den Fenecon Commercial 40, sondern als zwei separate Instanzen. Dabei übergebe ich dem Nature Kanal “Battery” von OpenEMS alle relevanten Daten, Spannung, Kapazität, usw. direkt aus dem BMS. Gleiches gillt für den “ManagedSymmetricBatteryInverter” Kanal.

Nach meinem Verständniss werden nun alle relevanten Daten aus den Nature Controllen (Battery, WR, Meter, etc.) verwendet, um durch einen Solver die Werte für setActivePower und setReactivePower zu errechnen, die dann in der Methode applyPower an den WR weitergeschickt werden.

OpenEMS forken, Repo bearbeiten :slight_smile:

Grüße

Ich muss mich erstmal in Git einarbeiten. Ich versuche den Quellcode morgen hoch zu laden.

1 Like

Wenn ich dich richtig verstanden habe, so hast du deinen Speicher als Battery und deinen Wechselrichter extra eingebunden. Um diese zu verknüpfen und als Speichersystem zu betreiben wird das ESS Generic Managed Symmetric verwendet. Das bildet dir dann dein ess das du wiederum im Balancing Controller angeben kannst. Soweit ich weiß macht es Fenecon mit dem Home über den selben Weg. Auch dort wird der Speicher mit der BMS Kommunikation als Battery, sowie der Wechselrichter einzeln eingebunden. Diese werden dann entsprechend über das ESS Generic als Speicher verbunden. Dadurch läuft die gesamte Kommunikation zwischen dem BMS und dem WR nur über das EMS.

Danke für die Tipps.

Habe meinen Fehler gefunden. Ich habe vergessen den Kanal “ACTIVE_POWER” mit der aktuellen Leistung des WRs auszulesen. Nun wird mir die gebrauchte Leistung auch in der Methode applyPower für den WR übergeben.

1 Like