NEWS
Erfahrung: Hoymiles MS-A2 Akku via MQTT iobroker steuern
-
@bertderkleine
Ja, stimmt, ich tast mich mal langsam ran und vielleicht hilft auch der Mittelweg. Erstmal habe ich dein Script heute zum laufen gebracht. Ich habe die Logik zwar noch nicht ganz verstande, aber ich taste mich mal ran.
Folgende Änderungen habe ich mal reingebracht:- Zwei weitere Datenpunkte:
const NetzLaden = '0_userdata.0.Technik.Strom.Speicher.MSA-280024340941.NetzLadung';
const Entladen = '0_userdata.0.Technik.Strom.Speicher.MSA-280024340941.Entladung';
Wenn der erste auf True ist, dann wird zwangsweise vom Netz geladen
Wenn der zweite auf True ist, dann wird der Akku entladen. Mit diesem kann ich in einem ersten Schritt das Entladen am Tage blockieren und die Entladung zu einem späteren Zeitpunkt starten (Wenn der Preis oben ist)In einem anderen Script habe ich nun zB. die Idee, die Tibberpreiskurve auszuwerten und zB. 2h vor dem max Preis && nach 18:00Uhr die Entladung zu starten. In der Regel ist der Akku dann durch den Verbrauch am Abend bis 24:00 Uhr leer.
Den Code habe ich wie folgt angepasst. Wenn du magst, kannst du das natürlich übernehmen oder an eine bessere Stelle überführen.
Zusätzlich habe ich was eingebaut, dass der Ladestrom reduziert wird, wenn die obere Ladegrenze erreicht ist. Ich meine, dies beobachtet zu haben, dass Hoymiles selber reduziert wenn es an die obere Grenze geht.
Ich berichte von meinen weiteren Versuchen
- Zwei weitere Datenpunkte:
-
Hallo,
ich möchte mich hier mal mit einklinken, um meine Erfahrungen von parallel betriebenen Batteriesystemen zu teilen,
da ich selbst zwei MS-A2 (4,48kwh) als STAND ALLONE parallel zur Bestandsanlage E3DC mit 13kwh Batteriespeicher BETREIBEN MÖCHTEGrundidee:
Dem MS-A2 nur erlauben UNTERHALB der maximalen Grundlast in der Nacht zu vordefinierten Zeiten den E3DC Hauptsystemspeicher zu entlasten.
Also nur im General tätig sein, wenn genug PV Energie für alles vorhanden ist jedoch auch am Tag im mqtt mode in die Schranken weisen was er darf und nicht.
Dazu aber weiter unten im Text...Punkt 1: Die deutsche Bürokratie und der NETZBETREIBER
Erstmal... Anfrage beim Netzbetreiber da !Meldepflichtig wegen Anschluss am Niederspannungsnetz!
Hier habe ich aufgrund der nicht wirklichen aufwändigen Installation (Salopp gesagt: Stecker rein...fertig) mal als gewissenhafter Bürger beim Netzbetreiber nach einer vereinfachten Anmeldung via Markstammregister
--- telefonisch, --- per Mail, --- nochmals telefonisch, --- nochmals Mail... mit allen Datenblättern und Fakten 800W Begrenzung und so... angefragt.
Es hieß.... Fachabteilung Einspeisung leitet an Fachabteilung XY weiter... wir melden uns.Nochmals telefonische Nachfrage auf Bearbeitungsstand da keine Antwort nach 4 Wochen...
Antwort: Ich teile der Fachabteilung mit, dass sie nochmals angerufen haben.2 Monate später.... ich warte noch immer.
Hier scheint fachlich keiner in der Lage zu sein eine Aussage machen zu können außer evtl. das was ich aus der Vergangenheit schon kenne:
"Bitte wenden sie sich an einen eingetragenen Elektroinstallateur! Bitte senden sie uns eine E8 Inbetriebnahme Erklärung!"skip this chapter
Punkt 2: Hardware
- 2x MS-A2,
-
- Shelly 3EM Pro an der Hauptleitung
-
- Shelly Plug an einer separaten 16A abgesicherten Schuko Steckdose für die beiden in Reihe geschalteten MS-A2
- ioBroker Skript für mqtt Ansteuerung MS-A2 und Signalaustausch E3DC via Modbus
(*by the way... bin EFK)
Punkt 3: Probleme
Wer den MS-A2 einfach "STAND ALLONE" zu seinem bestehenden PV Systemspeicher parallel betreiben möchte um seinen Batteriespeicher kostengünstig zu erweitern
wird feststellen, dass sich die beiden Systeme im GENERAL MODE nicht vertragen.Was man also in solch einem Vorhaben unbedingt berücksichtigen muss sind Lastwechsel bzw. Zeiten von unzureichender PV Ertrag im General Mode des MS-A2!
Der eine versucht den anderen zu Laden bzw. zu entladen da sie ja nichts voneinander wissen!
Hier muss man schon einiges im Skript einbauen damit das nicht passiert!Lösungsansätze:
- Bei unzureichendem PV Ertrag oder Lastwechsel von General in mqtt Mode wechseln um ein Eingenleben hart zu unterbinden.
- Nur feste Entladezeiten im mqtt Mode in der Nacht über Astro oder Zeit z.B. 22:00 - 05:00 Uhr = 500W (unterhalb der min Grundlast)
- Trotz Shelly 3EM Pro feste Freigaben definieren wann MS-A2 im General Überschuss laden darf. [PV Überschuss ausreichend?; Hauptspeicher geladen?; Brauchwassererwärmung ausreichen?; E-Fahrzeug wird geladen?; usw... ]
- Entladen grundsätzlich am Tag unterbinden! (Energie ist nur für die Nacht!)
Hier wird schnell klar das auch am Tage der General Mode zwischendurch weichen muss!
Ergo: Man könnte sich theoretisch einen Shelly 3EM Pro an der Hauptleitung sparen und alles komplett über den ioBroker realisieren.
-
@assz sagte in Erfahrung: Hoymiles MS-A2 Akku via MQTT iobroker steuern:
Ergo: Man könnte sich theoretisch einen Shelly 3EM Pro an der Hauptleitung sparen und alles komplett über den ioBroker realisieren.
Absolut. Mein Skript oben tut ja im Prinzip genau das per MQTT über iobroker, was die herstellereigene Logik im "general mode" macht.
Ich habe auch gar keinen Shelly 3EM Pro an der Hauptleitung, sondern benutze einen Wattwächter direkt auf dem offiziellen Zähler, der sich über MQTT und die Software Uni-Meter als Shelly 3EM ausgibt.Das Skript oben habe ich dann direkt an den MQTT Datenpunkt des Wattwächters angebunden.
Statt sowas wie Wattwächter kann man natürlich jede iobroker Datenquelle für bezogene oder eingespeiste Leistung benutzen, die man hat (z.B. aus der PV Anlage), daher schreibe ich oben ja einfach von einem Alias.
Du kannst das obige MQTT Skript so erweitern, wie es für Dein Szenario passt. Du brauchst dazu halt zusätzliche Datenpunkte direkt aus Deinem Systemspeicher.
Wie bei @hschief hast Du auch ein ganz spezifisches, anderes Szenario, das eigene Logik benötigt. Wenn Du die Logik für Dich mal klar hast, dürfte das Skripten der einfachere Teil werden.
-
@bertderkleine
Wollte nur andere User mit solch einem Vorhaben über das gegenseitige Speichergeschaukel im Vorfeld informieren.
system runs bug-freeHat denn jemand Info`s bezüglich Markstammregister für n MS-A2 als Stand Allone?
-
@assz sagte in Erfahrung: Hoymiles MS-A2 Akku via MQTT iobroker steuern:
@bertderkleine
Wollte nur andere User mit solch einem Vorhaben über das gegenseitige Speichergeschaukel im Vorfeld informieren.
system runs bug-freeWenn's gut läuft, magst Du das Skript hier als Anregung für andere posten?
-
@bertderkleine
Sorry,
dafür ist es zu speziell,
da ich 4 Skripte parallel laufen habe, die ineinander greifen und Schrittketten sowie Datenpunkte für meine Visualisierung mit eingebaut habe. -
Hi, ich schaue mir das auch an und habe winzige Anpassungen (bzw. Vorschläge, dies in Post 1 in das Script einzubauen)
- alle Datenpunkte als const, also auch den Verbrauchszähler, z.B.
/** Datenpunkt für den aktuell gemessene Akku Ladungzustand in % */ const AKTUELLER_AKKULADEZUSTAND = 'alias.0.MSA-000000000000.q_soc'; // q = aus quick /** Datenpunkt für den aktuell gemessene Verbrauch plus=Überschuss/Einspeisung minus=Verbrauch/Kauf*/ const VERBRAUCHSZAEHLER = '0_userdata.0.Blockly.ShellyEmu.Power-Total-Raw';
- neben "laden" und "entladen" gibt es noch "standby" als Status des Akku, wenn er voll ist. Dies könnte auch bei der Loganzeige verwendet werden, da ein Akku > SOC_Ladeschwelle nicht mehr geladen wird.
const akkuSOC = getState(AKTUELLER_AKKULADEZUSTAND).val; const istAkkuVoll = akkuSOC > SOC_LADESTOPP; // grösser als Ladestopp bedeutet Akku voll
-
die internen Werte könnten auch optional als iobroker-Werte gespeichert werden, dann kann man sie auch in Grafen verwenden, eventuell in einstellbarem Zeitraster, um nicht zuviele Punkte in die DB zu schreiben
-
eine Variable zum einfachen Pausieren der Regelung, etwa um Akkuswapping bei mehreren Akkus zu verhindern
Ansonsten vielen Dank für deine Mühe, läuft schon ganz gut, mal auf Erfahrungen warten
cu
Harvey -
Hallo Bert,
vielen dank für dein Script.
Läuft ganz gut, bekomme aber ein paar Warnungen angezeigt. Da muss ich nochmal nachschauen an was das liegt, bin aber ein absoluter Neuling in JavaAlso die Steuerung über Nacht und die Ladung mit Rest PV-Strom funktioniert prima.
Einzig bei Lastwechsel (E-Herd) ist noch nicht so zufriedenstellend
Irgendwie ist der Speicher zu langsam. Habe überschuss, speicher lädt, Last vom E-Herd geht rein, Speicher speist noch ein, obwohl Fremdbezug ist.Könnte man die Interwalle kürzer setzen oder Zerschießt es dann das Script ?
Oder gibt es eine andere Lösung, für das "kleine" Problem
mfg
-
@isolator sagte in Erfahrung: Hoymiles MS-A2 Akku via MQTT iobroker steuern:
Einzig bei Lastwechsel (E-Herd) ist noch nicht so zufriedenstellend
Irgendwie ist der Speicher zu langsam. Habe überschuss, speicher lädt, Last vom E-Herd geht rein, Speicher speist noch ein, obwohl Fremdbezug ist.Lastwechsel sind so ein Ding, denn die Steuerung soll ja tatsächlich gedämpft reagieren und nicht wild oszillieren.
Da musst Du Dein Optimum durch ausprobieren finden.
Du kannst das Samplingintervall etwas runtersetzen um mehr daten schneller zu bekommen und den Integralfaktor raufsetzen.
Außerdem kannst Du mit der Schrittweite spielen (Zeile 254). Das ist aktuell auf 30% begrenzt.Ich habe hier auch mal die hardware-integrierte Logik über Unimeter-Emulation laufen gelassen und die ist zwar schneller in der Anpassung als das Skript oben mit den vorgeschlagenen Parametern, aber z.B. Wasserkocher sind dem auch eher zu schnell da und wieder weg.
Am Ende bleibt daher nur Ausprobieren für das persönliche Verbrauchsprofil.
Wenn Du bessere Parameter findest, kannst Du sie ja hier teilen.
-
sehr interessanter Beitrag.
Wenn ich Dich recht verstehe, betreibst Du den Speicher „stand alone“, also nur am Netz, ohne angeschlossene PV Anlage als „Powerbank“. Zur Verbrauchsmessung nutzt Du einen IR Sensor (Hichi IR Sensor?) am Zähler.Da kommt mir doch die Idee, meine Balkon PV so zu lassen, wie sie ist (ohne Speicher mit Deye WR direkt ans Netz angeschlossen) und den HM MS-A2 in der Wohnung ebenfalls nur ans Hausnetz anzuschließen.
Dann könnte ich den Verbrauch am Zähler über meinen Hichi erfassen und via iobroker und Java Script die Ladung und Entladung (nur über das Hausnetz) steuern.
Das ließe dann (theoretisch) auch den Betrieb mehrerer Speicher sowie eine Nulleinspeisung zu.
Ist das so grob richtig oder bin ich irgendwo komplett falsch abgebogen?Gruß
-
@opöl sagte in Erfahrung: Hoymiles MS-A2 Akku via MQTT iobroker steuern:
@bertderkleine ,
sehr interessanter Beitrag.
Wenn ich Dich recht verstehe, betreibst Du den Speicher „stand alone“, also nur am Netz, ohne angeschlossene PV Anlage als „Powerbank“.Ohne kleines Balkopanel, ja. Den Strom erzeugen PV-Panels auf dem Dach ohne direkte Verkabelung zum Speicher.
Zur Verbrauchsmessung nutzt Du einen IR Sensor (Hichi IR Sensor?) am Zähler.
Ein Wattwächter, was quasi das gleiche ist, nur out-of-the Box benutzerfreundlich in Betrieb zu nehmen.
Dann könnte ich den Verbrauch am Zähler über meinen Hichi erfassen und via iobroker und Java Script die Ladung und Entladung (nur über das Hausnetz) steuern.
Korrekt.
Wobei ich selbst aktuell in diesem Setup aktuell die aktive Steuerung (eher aus Bequemlichkeit) wieder der eingebauten Logik übertragen habe und MQTT nur zum Daten-Auslesen nutze.
Die Wattwächter-Daten emulieren via Uni-Meter-Emulatorsoftware einen Shelly, den der Speicher dann erkennt und für Steuersignale nutzt.
Für mein Setup reicht das aus.Das ließe dann (theoretisch) auch den Betrieb mehrerer Speicher sowie eine Nulleinspeisung zu.
Ist das so grob richtig oder bin ich irgendwo komplett falsch abgebogen?
Korrekt.Die "Nulleinspeisung" geht auf beide Wege.
Der Betrieb komplexerer Logiken wie disjunkte Speicher oder das, was weiter oben diskutiert wurde hier im Thread, geht natürlich out of the box mit der eingebauten Steuerung nicht. Da spielt dann eine persönlich ausgestaltete Steuerung über iobroker ihre Stärken aus. Dafür ist das hier beschrieben: damit man es nach Gusto so formt, wie man es braucht.
Zwei baugleiche 2kWh Speicher kann man natürlich auch mit der internen Steuerung einfach in Reihe schalten plug-and-play. Erst wenn man noch mehr will oder die unbedingt an unterschiedlichen Orten aufgestellt werden sollen, muss man zwingend selbst eine Steuerung schreiben in iobroker.
-
vielen Dank für Deine Erklärungen. Eine Frage hätte ich noch. Du schriebst:
„Die Wattwächter-Daten emulieren via Uni-Meter-Emulatorsoftware einen Shelly, den der Speicher dann erkennt und für Steuersignale nutzt.“
Wo läuft die Uni-Meter Software und wird ein/mein Hichi WLAN IR Sensor genauso als Shelly erkannt wie Dein Wattwächter, also out of the box ohne zusätzliche HW/SW?
Danke und Gruß
-
@opöl sagte in Erfahrung: Hoymiles MS-A2 Akku via MQTT iobroker steuern:
vielen Dank für Deine Erklärungen. Eine Frage hätte ich noch. Du schriebst:
„Die Wattwächter-Daten emulieren via Uni-Meter-Emulatorsoftware einen Shelly, den der Speicher dann erkennt und für Steuersignale nutzt.“
Wo läuft die Uni-Meter Software und wird ein/mein Hichi WLAN IR Sensor genauso als Shelly erkannt wie Dein Wattwächter, also out of the box ohne zusätzliche HW/SW?
Danke und Gruß
Schau hier: https://github.com/sdeigm/uni-meter
Bei mir läuft das auf demselben Raspi wie iobroker als Java.
Die Portnutzung ist zu beachten und man braucht halt ein passendes Konfigurationsfile.
Das Rumprobieren für genau Dein Setup wird eher unvermeidbar sein. Aber schau Dich im Netz um, da gibt es schon viele ausprobiere Kombis.
-
Nur falls es jemand noch nicht gesehen hat:
Es gibt auch einen dedizierten Adapter für hoymiles-ms-a2:ioBroker.hoymiles-ms
Derzeit (nur) im LATEST Repo verfügbar.
Auslesen aller Werte die der Akku liefert sowie Steuern der Abgabeleistung ist implementiert.
Irgendeine Art von Regelung (z.B. '0-Einspeisung') ist zumindest derzeit nicht im Adapter implementiert.