Benachrichtigungen
Alles löschen

BMS Kommunikation Infini-/MPP-Solar MPI / FSP Hybrid 10k und DIY Batterie

72 Beiträge
11 Benutzer
8 Likes
6,375 Ansichten
(@domo1234)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 5
 

Hallo,
hoffe mal das meine Problematik hier reinpasst. Habe den FSP 15KW mit 4x PS5120E Modbus box dran und sdm630
Optisch alles schick, Li-bat etc wird angezeigt, Nullregelung funktioniert, Grid-Tie Backup II PV-Only laden, PV-Battery-Grid
Akkus laden mit 20-30A und werden nicht voll, eingespeist werden aber bis 60KWh - wenn man Allow to feed to Grid abschaltet läd er normal mit bis 200A und die Akkus sind sofort voll.
FW ist 1.01 - wie alt das ist - keine Ahnung.
Ist dies ein Kommunikationsproblem des BMS mit dem WR ?

Grüße Uwe


   
AntwortZitat
riogrande75
(@riogrande75)
Batterielecker
Beigetreten: Vor 2 Jahren
Beiträge: 278
Themenstarter  

@domo1234 Setze wähernd der WR mit zu geringem Strom lädt mal mit dem AccessPort Utility folgende Kommandos über die Serielle Verbindung zum WR ab (jew. mit einem <CR> am Ende):

^P005VFWT
^P004BMS
^P005BATS
^P026EMINFO

Dann das gleiche nochmal, wenn er mit 200A in die Batterie "ballert".

Die Ergebnisse postest du dann hier.

24kWP an 2x FSP 10kW und AxpertMAXII 8000 mit 70kWh LiFePo4
123solar, meterN und EVSE-WiFi
Kein Support per PN


   
AntwortZitat
(@domo1234)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 5
 

War im Urlaub, ab morgen kann ich mich wieder kümmern- danke für die Unterstützung. Kabel habe ich gestern bekommen. Mal schauen ob ich das hinbekomme- bin da eher Laie.
Nullabgleich sieht denke ich normal aus- hatte ich auf allen 3 Phasen probiert. Die DIP Schalter der Box habe ich abfotografiert .

Eine aktuelle Firmware von FSP habe ich bekommen- die spielt mein Installateur ein wegen der Gewährleistung. FSP meint - vielleicht hilfts ...

Grüße Uwe


   
AntwortZitat
(@domo1234)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 5
 

Guten Morgen,
ich habe die Modbus Duo Box am RS232- was mache ich nun?

Brauche ich generell ein Nullmodem Kabel ? Verbindung funktioniert aber keine Rückantwort.

Anbieten könnte ich auf die Schnelle Sensoren über Paeseler SNMP.

Keine Sonne heute


   
AntwortZitat
(@domo1234)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 5
 

Mit dem Access Port Utility bin ich nicht klargekommen - braucht man ein Nullmodemkabel oder ein normales? COM Port öffnen hat funktioniert, Senden weiß ich nicht und empfangen habe ich definiv nichts.
Lasst mich nicht dumm sterben, das muss ich noch hinbekommen.

Habe nun eine Firmware von 04/2022 drauf. Der heutige Tag war vielversprechend- hat gemacht was er sollte ohne dass ich eingreifen musste.


   
AntwortZitat
riogrande75
(@riogrande75)
Batterielecker
Beigetreten: Vor 2 Jahren
Beiträge: 278
Themenstarter  

@domo1234 Das hat eig. alles nichts mit der BMS Kommunikation bzw. dem Protokoll davon zu tun.

Ich schlage vor, du eröffnest einen neuen Thread mit genauer Problembeschreibung, FW-Version, Settings, usw.
Die Bilder von irgendwelchen Tastmotas,etc. helfen nicht wirklich, wenn nicht beschrieben ist, was man darauf im Zusammenhang mit dem Problem sehen kann.

Für AccessPort brauchst du das RS232 Kabel, das mit dem WR daherkommt (glaube es ist ein Nullmodem). Mit SolarPower testen und wenn das funktioniert, dann kommt AccessPort auch klar damit.

24kWP an 2x FSP 10kW und AxpertMAXII 8000 mit 70kWh LiFePo4
123solar, meterN und EVSE-WiFi
Kein Support per PN


   
AntwortZitat
(@domo1234)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 5
 

Guten Morgen,
hier das Ergebnis

mit Einspeisung - Anzeige Inverter auf 50A Ladestrom
^P005BATS
^D0763000,0560,0560,0000,060,0530,0464,0530,0440,0560,0,,,1,0560,000,0600,0400¯[
^P004BMS
^D0520540,090,0,0471,00,0,0560,0560,3200,0,0,0464,0400

Einspeisung verboten - Anzeige auf 120A
^P005BATS
^D0763000,0560,0560,0000,060,0530,0464,0530,0440,0560,0,,,1,0560,000,0600,0400¯[
^P004BMS
^D0520540,090,0,0471,00,0,0560,0560,3200,0,0,0464,0400


   
AntwortZitat
lichtimc
(@lichtimc)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 74
 

Hi Rio,

dein Script infinipoll10k_bms.php läuft bei mir bereits und liest ab morgen sobald die Sonne scheint die Daten meines Easun ein, damit 123solar (auf das ich auch erst durch dich gekommen bin) die Daten aufschnupfen kann.
Danke dafür!

Nur eine Sache verstehe ich nicht, und zwar wie der Wechselrichter nun zu den JK-BMS-Daten kommt.
Ich hab noch nie mit shared memory gearbeitet, aber ich nehme an, irgendein anderes Script schreibt die Daten des vom ESP32 ausgelesenen BMS in irgendeiner Form in dieses Shared Memory, wo PHP dann darauf zugreifen kann?

Ich hab am ESP32 die Version von mascheihei (bzw. sein neuestes Update) installiert.
Diese Version gibt zusätzlich zum MQTT einfach via HTTP JSON aus mit den Werten des BMS. (Außerdem sind anscheinend ein paar Bugs behoben und die Alarme eingebaut.)

Wäre es nicht einfacher, diese im Script infinipoll10k_bms.php fürs Senden an den Wechselrichter zu verwenden?

Danke und lg
LichtiMC


   
AntwortZitat
riogrande75
(@riogrande75)
Batterielecker
Beigetreten: Vor 2 Jahren
Beiträge: 278
Themenstarter  

Moin!
Infinipoll10k_bms checkt beim Start das vorhandensein von Shared Memory Object 0x4801 und aktiviert/deaktiviert die BMS Funktion im Script damit.
Die Daten vom BMS kommen via ESP32bei mir am Mosquitto an und werden dort von readmqttbms abgefragt und in eben jenes ShaMemObj geschrieben. Das Script muss also logischerweise vor infinipoll gestartet werden.

Ich weiß, ist nicht schön und ich werde das irgendwann auch in Infinipoll10k einbauen - aber erst, wenn alles fertig erforscht ist und ich Zeit dafür hab.
Hab die neueste Doku des Protokolles von Pylontech erst kürzlich erhalten und daher die Alarm-Codes usw. noch nicht in die Scripts mit eingebaut.

24kWP an 2x FSP 10kW und AxpertMAXII 8000 mit 70kWh LiFePo4
123solar, meterN und EVSE-WiFi
Kein Support per PN


   
AntwortZitat
(@ngt4u)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 25
 

Ich möchte über meine vorhandene RS485 Kommunikation auch das Batterieentlade/-ladeverhalten beeinflussen.

Mein JKMBS kommuniziert bereits mit Node Red auf meinem Raspi. Das BMS wird per ESP32 ausgelesen und stellt die Infos per MQTT bereit.

Weiter habe ich eine bestehende RS485 Verbindung zwischen meinem WR und dem SDM630. Diese sind jeweils angebunden mit...
1x RS485/IP Gateway am WR (MPI 10K)
1x RS485/IP Gateway am SDM630

Beide kommunizieren auch bereits mit Node Red auf meinem Raspi.

Dh. ich habe bereits eine Verbindung (über den RS485/IP Converter) mit dem WR und möchte dies nun nutzen, um den WR die entsprechenden Infos zu geben.

Da ich die Modebus Nodes unter Node Red nicht zum fliegen bekomme, habe ich entsprechende UDP-Nodes verwendet.
Das Problem ist dabei nur, dass ich nun nicht direkt die Befehle absetzen kann und diese daher vorher konvertieren muss.
Grundsätzlich verstehe ich das Protokoll. Wie ich den Buffer erstelle, um mit dem SDM630 zu kommunizieren habe ich bereits hinbekommen. Die Register sind mir bekannt.

Nur wie konvertiere ich denn nun z.B. den Befehl für die Beinflussung des Lade/Entladeverhaltens des WRs (^D054BMS) in Dezimal oder Hex?
Die Register für den MPI 10K sind mir nicht bekannt. Nur die Befehlssätze.

Bin für jede Unterstützung dankbar.


   
AntwortZitat
riogrande75
(@riogrande75)
Batterielecker
Beigetreten: Vor 2 Jahren
Beiträge: 278
Themenstarter  

Wenn ich dich richtig verstehe, möchtest du andere Befehle für den WR (wie z.b. ^D054BMS..) auch über die Verbindung zur Modbus-Karte absetzten? Das wird nicht funktionieren.
Du brauchst auch eine Verbindung zu einem der Seriellen/USB Ports um mit dem WR "kommandos" austauschen zu können.

Da auch die Modbus-Karte beim Infini nichts anderes als ein Modbus-zu-RS232 Converter ist, könntest du die Karte ganz außen vor lassen und deinen TCP-Serial Wandler an den RS232 anstecken.
Die paar EMINFO Kommandos die die Modbus-Karte aus den Modbus-Meldungen erstellt hast du wohl auch ratzfatz nachprogrammiert. Dann kannst du nebenbei alle anderen Abfragen (Leistungs-/Ertragsdaten, Konfiguration, etc.) auch gleich über die eine Verbindung schicken.

Einziger (kleiner) Haken an der Sache: Die RS232 fährt mit 2400 Baud!

24kWP an 2x FSP 10kW und AxpertMAXII 8000 mit 70kWh LiFePo4
123solar, meterN und EVSE-WiFi
Kein Support per PN


   
AntwortZitat
(@al_ro)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 5
 

Hallo Rio,

danke für dein Engagement!

Ich habe eine Frage bezüglich dem Aufbau des D054BMS-Kommandos: In deinem angehängten Bild

wird für den Warningcode eine Stelle ",0" reserviert.
In deinem Sourcecode des "readmqttbms.php" dagegen sind zwei Stellen vorgesehen:

//BMS warning code, tbd
shmop_write($sh_bms1, ",00", 23); // static

Welche Variante ist korrekt?

Grüße Alex

 


   
AntwortZitat
riogrande75
(@riogrande75)
Batterielecker
Beigetreten: Vor 2 Jahren
Beiträge: 278
Themenstarter  

Gut erkannt. 🤗 
Das "einstellige" hatte ich mal von der BMS-Box mitgeloggt. Ich denke aber, die Stellenanzahl ist relativ egal, solange dort der Wert in Dezimal zwischen den beiden Kommas steht (bisweilen immer "0" bzw. "00").

Um den BMS-Fehlercode Richtung WR sauber reverse-engineeren zu können, müsste die BMS-Box/Card lt. Pylontech Protkollbeschreibung (siehe Anhang) CID2 0x62 abfragen. Tut sie aber nicht und daher kann ich ihr auch keine "simulierten" Fehler vorgaukeln um zu sehen, was dann für eine Wert dort zum Infini geschickt wird.
Somit scheint mir der Parameter ungenutzt, zumindest mit der Voltronic eigenen BMS-Box.

 

24kWP an 2x FSP 10kW und AxpertMAXII 8000 mit 70kWh LiFePo4
123solar, meterN und EVSE-WiFi
Kein Support per PN


   
AntwortZitat
(@al_ro)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 5
 

Ahh, ok.
Mir war nur aufgefallen, dass damit auch die Länge des Strings für die WR-Kommunikation beeinflusst wird. Vermutlich geht es dem WR um die Gesamtlänge des gesendeten Strings, denn in "deinem" String wird der MaxDischargeCurrent nur mit 3 Stellen übertragen. In den anderen WR-Strings (z.B. ^P004BMS) sind es immer 4 - wie beim MaxChargeCurrent. Ich habe dann die Kommunikation auf 4 Stellen erweitert und der WR hat den String abgelehnt. Der Versuch mit nur einer Fehlerstelle und 4 MCC Stellen war dann erfolgreich.
Da ich ebenso DIY-Akkus habe, versuche ich mich an einer (für mich) komfortableren Konfigurationsmöglichkeit, ohne SolarPower 😉 .

Grüße Alex


   
AntwortZitat
(@ngt4u)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 25
 

Veröffentlicht von: @riogrande75

Wenn ich dich richtig verstehe, möchtest du andere Befehle für den WR (wie z.b. ^D054BMS..) auch über die Verbindung zur Modbus-Karte absetzten? Das wird nicht funktionieren.
Du brauchst auch eine Verbindung zu einem der Seriellen/USB Ports um mit dem WR "kommandos" austauschen zu können.

Da auch die Modbus-Karte beim Infini nichts anderes als ein Modbus-zu-RS232 Converter ist, könntest du die Karte ganz außen vor lassen und deinen TCP-Serial Wandler an den RS232 anstecken.
Die paar EMINFO Kommandos die die Modbus-Karte aus den Modbus-Meldungen erstellt hast du wohl auch ratzfatz nachprogrammiert. Dann kannst du nebenbei alle anderen Abfragen (Leistungs-/Ertragsdaten, Konfiguration, etc.) auch gleich über die eine Verbindung schicken.

Einziger (kleiner) Haken an der Sache: Die RS232 fährt mit 2400 Baud!

@riogrande75

Ich versuche verzweifelt Befehle über den RS232/TCP Konverter an den WR zu senden. Er möchte einfach nicht antworten.

Kannst du mir bitte erklären, warum ich denn nicht alle Steuerbefehle über die Modbus Karte senden kann, wenn doch im WR so oder so alles an der RS232 Schnittstelle zusammenläuft?

 


   
AntwortZitat
Seite 2 / 5
Teilen: