Multiplus II mit ESS 3 ohne GX, ohne Venus

@pv123

Wie könnte das Auslesen per IR funktionieren, also in das config.py eingebaut werden?
Ich kann meinen Zähler mit

http://192.168.3.134/cm?cmnd=status+10

auslesen und bekomme folgende Antwort:
{"StatusSNS":{"Time":"2023-01-21T09:39:34","SML ":{"Total_in":27537.1103,"Total_out":41260.9252,"Power_curr":885}}}

Die werte müssten doch reichen, oder?
Gruß Claus

Hallo Claus

wie bekomme ich diese Software auf meinem RPI zum laufen?

vielen dank

Ich verstehe leider die Frage nicht ganz. So wie ich das erkenne wird da ein Script auf einer normalen raspi-Installation

kopiert, gestartet und als Dienst installiert ("enabled").

Ich habe es noch nicht versucht, weil ich nicht weis, wie ich de IR-Leser am Zähler eingebunden bekomme.

Bin mir jetzt nicht allzu sicher, dass dir das weiter hilft

Hallo

wenn ich in putty

sudo cp ess.service /etc/systemd/system
eingebe bekomme ich eine fehlermeldung
canot stat.....
no such file or directory

@claus1968

Die Daten der Zähler werden von der MeterHub Software erfasst und über eine einfache HTTP API bereitgestellt. Dadurch können mehrere Programme auf die Daten zugreifen, was bei USB Interfaces sonst nicht so einfach geht.

Die ESS Software macht einen HTTP Request auf den MeterHub und bekommt dadurch alle notwendigen Informationen. Deinen Zähler kannst Du in den MeterHub oder in die ESS Software integrieren.

Momentan ist die Software noch sehr auf meine Konfiguration zugeschnitten. Eine weitere Modularisierung für eine einfachere Integration anderer BMSe und Zähler ist aber in Arbeit.

@bindpe

Bei identischem Aufbau aus Multiplus2, Pylontech und SDM** (kein Programmänderung) sehe ich kein Problem, aber wenn Du am Code Anpassungen vornehmen willst würde ich mit etwas einfacherem anfangen.

Für den Einstieg in die Raspberry Welt und das Programmieren in Python ist die Software vermutlich nicht sonderlich geeignet.

1 „Gefällt mir“

@pv123:
Ich bin aus OÖ/Österreich und baue das System gerade mit einer US5000 nach. Als Energiezähler möchte ich Link entfernt integrieren (Rest Api oder MQTT).

Wie komme ich an die Portnamen Victron_MK3 und USB/RS485?

Ich erhalte aktuell folgenden Fehler:

pi@ESS:~ $ sudo journalctl -u ess -f
-- Journal begins at Tue 2023-02-21 02:23:32 CET. --
Apr 22 09:04:30 ESS python3[313]:   File " Link entfernt ", line 11, in <module>
Apr 22 09:04:30 ESS python3[313]:     from multiplus2 import MultiPlus2
Apr 22 09:04:30 ESS python3[313]:   File " Link entfernt ", line 4, in <module>
Apr 22 09:04:30 ESS python3[313]:     from vebus import VEBus
Apr 22 09:04:30 ESS python3[313]:   File " Link entfernt ", line 5, in <module>
Apr 22 09:04:30 ESS python3[313]:     import serial
Apr 22 09:04:30 ESS python3[313]: ModuleNotFoundError: No module named 'serial'
Apr 22 09:04:30 ESS systemd[1]: ess.service: Main process exited, code=exited, status=1/FAILURE
Apr 22 09:04:31 ESS systemd[1]: ess.service: Failed with result 'exit-code'.
Apr 22 09:04:31 ESS systemd[1]: ess.service: Consumed 4.711s CPU time.

lg Gerhard

installiere das 'serial' modul für python3: apt install python3-serial

@e-t0m Danke, ich habs auch gerade gefunden und installiert. Dann habe ich noch den Ordner log angelegt.
Jetzt spukt "sudo journalctl -u ess -f" etliches aus. Viele Fehler. Der USB/RS485 Adapter zur Batterie blinkt nun auch schön.
Sollte auf [ip_des_raspi]:8090 nicht eine Webseite sichtbar sein, da erhalte ich leider nichts.-> habs gefunden: im web.py die lokale IP des Raspi statt 0.0.0.0 eingetragen, nun erhalte ich auf Port 8888 eine Website. Der Wert http_port im conifg.py scheint nicht verwendet zu sein.

Die Verbindung zum Multiplus II funktioniert, zum BMS der Pylontech 5000 leider nicht, ich suche weiter....

BMS Kommunikation:
Auf den Befehl TX: b'~20024642E00202FD33\r' antwortet die US5000 mit RX: b'\x00\x00'....

Bei mir läuft die Lösung nun perfekt auf einem Raspi 1B. Ich habe 2 x US5000 im System - also 9kWh.
Das BMS der US5000 liefert 4 Byte mehr als die US3000, die analogen Werte sind um 2 Byte verschoben.
Ich brauchte keinen zusätzlichen Smartmeter, da ich einen Smartmeter Lesekopf per REST eingebunden habe.

Hallo,

genau so würde ich es auch gerne machen, kann man irgendwo ein Script bekommen, dass ich dann nur noch anpassen muss. Die Daten vom IR liegen mir auch vor und der Akku hat ein Seplos BMS.

Der Überschuß soll dann geladen werden und der Bezug vom Akku ausgeglichen werden und das netzparallel.

Für Hinweise oder Weiterentwicklungen wäre ich dankbar, dann würde ich mir einen nackten MP 2 5000 besorgen. Weitere Infos kann ich gerne liefern.

Gruß

Turbo

@turboxxl

Du kannst das auch ohne raspi & phthon & mk3 machen.

Die Sparlösung mit IR Lesekopf und esp32 ist aber extrem langsam und unkomfortabel.

Wenn schon sparen dann eher mit einem flotten Raspi. Und ich würde auch nie auf die Kommunikation zwischen BMS und Multi verzichten.

@stromsparer99

IR kopf kenn ich nicht, ich mach das mit shelly3EM.

Der esp32 braucht keinen stm32 "übersetzer" (MK3 genannt) von USB nach ve.bus wie der raspi das braucht. Für ve.bus direkt wie das der esp32 macht ist der raspi zu lahm.

Mein internes BMS im esp32 drin das die multiplu2 messwerte verrechnet läuft sehr gut parallel zum BMS. Mehr als 1% abweichung ist da nicht. Deshalb finde ich eine verbindung zum BMS unnötig. Falls doch würde ich das ohne hardwareänderung vom esp32 BT zum BMS BT machen, ist aber viel arbeit.

Es geht hier doch nicht um Abweichungen, sondern darum, dass das BMS den WR steuert. Z.B.

Beim vorrauseilen einer Zelle den Strom über den WR runterregelt,

Bei Min Zellspannung die Entladung über den WR stoppt.

Bei zu hoher Zellspannungsdifferenz die Ladung/Entladung über den WR stoppt.

Bei zu hohem Strom den WR runteregelt/stoppt

Usw.

Das sind alles Funktionen die den Betrieb eines Speicher deutlich sicherer machen.

Ein Speichersystem muss auch sicher sein und nicht nur am billigsten.

Woher willst du wissen, dass dein gebastel auch in Ausnahmesituationen sicher läuft und nicht den Supergau auslöst.

@stromsparer99

Bis auf den letzten Abschnitt bin ich deiner Meinung. Die Reaktion des WR auf Anomalien die aus den BMS-Werten detektiert werden, ist ein Must-Feature.

Macht das nicht das BMS selbsständig? Wobei das BMS abschaltet, nicht runterregelt. Was eigentlich richtig ist. Wenn was schief geht soll er nicht einfach weiterwursteln.

Der MP2 begrenzt den strom auf 35A. Der MP2 überwacht max und min batteriespannung. Der im ESP32 berechnete SoC begrenzt ladung auf 90% und entladen auf 20%. Bei über 80% SoC wird PV überschuss bis 600W eingespiesen (dafür gibts geld) darunter alles in akku. Wozu brauch ich da eine BMS kommunikation?

Das lässt sich alles per web einstellen:

Weil du es noch immer nicht verstanden hast.

Dein BMS selbst kann nicht runterregeln, es könnte nur dem WR sagen "regel den Strom runter weil eine Zelle vorraus eilt" Dein BMS kann nur die Ladung über den Mosfet unterbrechen mehr nicht. Versagt dein Mosfet, fakelt dein Speicher ab. Die Kommunikation mit dem WR ist deine erste Sicherheit, Trennen übers BMS die 2. Sicheheit.

Laden auf 90% und entladen auf 20% funktioniert nicht, weil dein ESP32 den Ladezustand nicht kennt, wenn nicht regelmässig auf 100% gesynct wird.

Muss der Ton sein?

Verstanden hat Surolac es bestimmt, er ist ja nicht doof. Nur nach seiner Einschàtzung ist es aureichend wenn der MP2 anhand der eingestellten Spannungsgrenzen und dem gemeldeten SOC reagiert. Und im Notfall, also wenn einzelne Zellen abhauen, das BMS hart abschalten.

Funktional, aber mir zuwenig elegant. Wenn der MP2 anhand der Zellenunterschiede gleitend den Ladestrom runternimmt, bekommt der Balancer auch eine Chance zu balancen.

Auch killt es somanches BMS, wenn es bei Vollstrom den Akku hart abtrennt.

1 „Gefällt mir“

welchen gemeldeten SOC meinst du, der Multi bekommt doch von seinem BMS keine Info, weil keine kommunikation.

Ausserdem wird sich der berechnete SOC bei jedem Zyklus verschlechtern, weil kein BMS der Welt den SOC richtig berechnen kann. Daher kann nur durch eine Vollladung der 100% SOC festgestellt werden. Wenn er immer nur bis 90% lädt wird der Fehler immer größer.

@stromsparer99

  1. Du weisst WIE das BMS den SoC berechnet?

  2. Gibt es messwerte mit denen das BMS den SoC berechnet die dem MP2-esp32 nicht zur verfügung stehen?

Wenn du etwas davon verstehst können wir gerne über strategien der SoC berechnung reden. Das ist ziemlich komplex.