Ich habe eine PV with SMA Tripower SE (Smart Energy) Hybridwechselrichter, SunnyHomeManager 2.0 und BYD HVS.
Die Kommunikation via modbus funktioniert (in OpenEMS und anderen ModBus clients), aber die Werte die OpenEMS anzeigt sind nicht korrekt.
Ich habe eingerichtet:
Bridge.Modbus.Serial (modbus1, IP des Tripower SE)
SunnyTripower pvinverter0 (NICHT SE, den gibt es nicht, modbus1, DevID 126)
SunnyHomeManager meter0 (modbus1, DevID3)
ESS SMA SunnyIsland ess1 (modbus1, DevID3)
Der ess1 zeigt den korrekten Speicherstand, aber die Werte für Ladung/Beladung passen nicht
Der meter0 zeigt Phasenströme und Leistungen an.
Der pvinverter0 zeigt die AC Leistung an, die auch der WR direkt ausgibt:
Problem:
Die Verrechnung der Werte stimmt nicht, da
Der WR AC-output ja PV Leistung minus/plus Speicher Be-/Entladung (DC gekoppelt!) ist, dieser Wert aber als PV-Produktion verwertet wird.
Der ess1 für OpenEMS natürlich als AC gekoppelt definiert ist und zB beim Entspeichern das sowohl beim AC-putput des WR als auch des Speichers, also doppelt gezählt wird.
Ich habe die Threads
und
gelesen.
Ich vermute, dass die von mir verwendeten Komponenten schlicht die falschen ModBus Profile verwenden bzw deren Rückgaben fehlinterpretieren.
Mit anderer Software bekomme ich aus dem WR mit Profil 3 (Nicht SunSpec 126) die korrekten Werte.
FRAGE:
Kann ich mein System mit anderen Komponenten korrekt einbinden oder müsste erst eine Komponente Tripower SE programmiert werden?
Wir haben den Wechselrichter schonmal eingebunden und dazu auch einen Pull Request gestellt:
Die Implementierung ist nicht schön und hat aktuell auch einen Merge-Konflikt, da die SMA-Komponenten in ein Bundle gepackt wurden, aber sie funktioniert auf ein paar Systemen bei uns.
ich benutze schon seit Jahren die Sunny Tri-Power-Komponente von openems und hatte noch nie so ein Problem. Aber meine Anlage ist auch ziemlich einfach: Die PV-Module sind mit dem Wechselrichter verbunden und der Wechselrichter mit dem Netz. Bei mir sind keine Speichersysteme direkt an den Wechselrichter angeschlossen.
Mit anderer Software bekomme ich aus dem WR mit Profil 3 (Nicht SunSpec 126) die korrekten Werte.
Da du auch sagst, dass die Werte korrekt sind, wenn du sie mit einer anderen Software (und einer anderen Modbus-Tabelle?) ausliest, würde ich vorschlagen, die Werte zu überprüfen, die du erhältst, wenn du sie mit einer anderen Software unter Verwendung der Sunspec-Tabelle ausliest. Der Grund dafür ist, dass die Implementierung in OpenEMS nur gemäß Sunspec eingerichtet ist, denke ich. Wenn du falsche Werte bekommst, wenn du die Sunspec-Tabelle mit einer anderen Software liest, dann liegt das Problem in der Modbus-Konfiguration selbst. Hier musst du vielleicht die Modbus-Konfiguration (im OpesEMS controller) entsprechend deiner Einrichtung anpassen.
Kann ich mein System mit anderen Komponenten korrekt einbinden oder müsste erst eine Komponente Tripower SE programmiert werden?
Ich denke, mein oben genannter Debugging-Vorschlag würde schon klar machen, wie du vorgehen musst.
Kann ich mein System mit anderen Komponenten korrekt einbinden oder müsste erst eine Komponente Tripower SE programmiert werden?
Richtig. Die bestehenden Komponenten passen nicht zu deinem Hybrid-Wechselrichter. Softwaretechnisch müsste deshalb jemand eine HybridEss-Komponente für OpenEMS entwickeln. @tsicking hat das gemacht, allerdings hat es der Code leider bisher nicht nativ in OpenEMS geschafft.
Toll wäre natürlich, wenn ihr gemeinsam die Implementierung fertigstellen könntet.
Vielen Dank das hat mich schon ein gutes Stück weiter gebracht!
Ich hab den PR lokal in OpenEMS/openems gemerged.
Ich kann jetzt die neuen Komponenten konfigurieren und sehe jetzt auch in der Übersicht die Werte für die Erzeugung der beiden Strings sehen, die Spannungen passen, der Strom steht immer auf 1,0A (im WR sind es 1,2 und 0,9) aber die Gesamtleistung passt wieder.
Leider sehe ich den Speicher nicht …
Hätte ich den opernikus-common/openems fork zum mergen nehmen sollen?
>> Wenn du falsche Werte bekommst, wenn du die Sunspec-Tabelle mit einer anderen Software liest, dann liegt das Problem in der Modbus-Konfiguration selbst.
Das glaube ich nicht.
Jeder einzelne Wert für sich genommen ist ja korrekt, die Interpretation bzw Verarbeitung ist das Problem.
Beispiel:
Bei Deinem Tripower (und meinem ohne Speicher) ist die AC-Leistung (fast) gleich mit der DC-Leistung (bis auf ein paar % Verluste). Daher stimmt es bei Dir mit der Sunny Tri-Power-Komponente, hat bei mir auch gestimmt bis der Speicher kam.
Aber mit Speicher ist die AC-Leistung = DC-Leistung - Speicherbeladung, OpenEMS nimmt die AC-Leistung aber weiterhin als die totale PV-Produktion = DC-Leistung.
>> Toll wäre natürlich, wenn ihr gemeinsam die Implementierung fertigstellen könntet.
Ich lass da besser die Finger von, ich hab in meinem Leben noch keine Zeile Java Code geschrieben …
Mit Hilfe von Leuten aus meinem Verein (Energiewende Erlangen eV energiewende-erlangen punkt de [darf hier keinen link einfügen …]) hab ich es schnell geschafft die Implementation von Thomas @tsicking auszuprobieren, aber ich muss glaube ich OpenEMS erst ein wenig besser verstehen lernen.
Kaum antwortet man freundlich auf alle 3 Antworten, schon wird der Ursprungspost als Spam geblockt (“Your post was flagged as spam: the community feels it is an advertisement, something that is overly promotional in nature instead of being useful or relevant to the topic as expected.”)
Du musst keinen Fork vom opernikus-common machen, das sollte auch mit dem OpenEMS-Repo gehen. Vielleicht hast du vergessen, die Batterie und den Wechselrichter zu ener “Generic ESS” zu verknüpfen? Die Konfiguration sieht dann so aus: