Man-in-the-Middle-Hack des RS232-Datenstroms

Bitte entschuldigen Sie mein Deutsch, da ich auf Google Translate angewiesen bin. Es ist auch mein erster Beitrag hier, also hoffe ich, dass ich das richtige Unterforum habe … ???

Ich habe ein Projekt, das einen Man-In-The-Middle-Hack eines seriellen RS232-Datenstroms erfordert.

Das Projekt besteht aus einer Fronius Solar Batterie, die ich über die vom Hersteller unterstützte Konfiguration hinaus erweitert habe. Der Fronius unterstützt maximal 8 Batteriemodule hinter dem Battery Management System.

Ich habe das auf eine sekundäre Bank von 8 erweitert. Die zwei Batteriebänke werden abwechselnd geschaltet, wenn sie voll oder leer sind. Dies funktioniert einwandfrei, außer dass der Wechselrichter einen unnötigen Kalibrierungsladezyklus durchführt, wenn er neue Batterieseriennummern sieht.

Ich möchte die Seriennummern im RS232-Strom (mit einem Raspberry Pi) abfangen und die Seriennummern der neu eingefügten Batteriebank maskieren.

Was ich habe, ist der Datenstrom im ASCII-Format (mit einem Programm namens Termite). Ich kann wiederholte Zeichen sehen, die von 8 Modulen erwartet würden, die alle einen sehr ähnlichen Ladungszustand haben. Aber die Daten sind weitgehend unverständlich.

Ich habe auch den JSON-Ausgang vom Wechselrichter, der die eingehenden seriellen Daten widerspiegelt.

Zusammenfassend habe ich die ausgehenden seriellen Daten (in einem unbekannten Protokoll), aber ich habe auch die Werte, die von den seriellen Daten in einem von Menschen lesbaren JSON-Format gesendet werden.

Ich muss in der Lage sein, die Seriennummern in den rohen seriellen Daten zu erkennen, bevor sie den Wechselrichter erreichen.

Hat jemand Erfahrung darin, einen seriellen Datenstrom mit einem unbekannten Protokoll zu verstehen?

Sind die Parameter der RS-232 bekannt und auch korrekt eingestellt?
Ich denke and Handshake, Geschwindigkeit, Parität, Datenbit, Stopbit etc.

Ich hab das früher mit diesem Programm und den passenden Schnittstellenadaptern gemacht.
http://www.serialmon.com/#Features

Wenn man keine Ahnung vom Protokoll hat, dann ist es eine sehr mühsame Aufgabe.
Letztlich muss man die Funktion jedes einzelnen Bytes herausfinden.

Gruß
Dieter

Moin,

also laut dieser Präsentation ist man bei Fronius sehr offen bzgl. der Schnittstellen-Kommunikation, zumindest wird davon gesprochen dass das offene Protokoll eine Anbindung an Fremdsysteme einfach macht.
Hast Du mal beim Hersteller angefragt bzgl. des Protokolls? Musst ihm ja nicht auf die Nase binden was Du genau vorhast. :wink:

wechselrichterseitig ist Fronius extrem vielseitig hinsichtlich offener Schnittstellen (Modbus/JSON/Web…)
Aber bei einem Eingriff in die AKKU LADESTEUERUNG ist wahrscheinlich jeder Hersteller vorsichtig.
Was wenn etwas passiert? Wer ist schuld? Ich kann mir nicht vorstellen, dass man hier jemand ran lässt.

Da hast Du allerdings Recht…

Ich habe viel mit der Fronius Solar API und einem Loxone-System (mit MODBUS und dem JSON-Ausgang) gemacht. Es ist sehr flexibel und leistungsstark.
Dieses Szenario erfordert jedoch einen viel niedrigeren „Hack“ -Prozess an dem RS232-Strom unmittelbar von dem BMS.

Das Protokoll gehört Sony (Fronius hat das Sony Fortelion Energy Storage System neu aufgelegt). Sony hat seitdem die Batteriedivision an Murata verkauft.
Es wird kompliziert das Protokoll zu bekommen …!

Alles was ich weiß ist, dass es 9600 Baud ist.

Schade das Sony das nicht selbst weiter forciert.
Die Qualität der Sony Akkus wenn man die Ladezyklen anschaut, ist extrem gut.
6000 Ladezyklen bei 90% Leistung. Lebensdauer wohl 10.000Zyklen.
Auch die Entladeleistung der Sony Fortelion Serie ist sehr sehr gut.
Sonnen verwendet wohl inzwischen auch Sony Akkus…
Was die Steuerung angeht, ist hier aber immer die Rede von CANBUS.

Wenn man 8x Bänke bestückt hat, dann ist man ja beim eigentlichen SONY System bereits bei 19,2kWh. Fronius hat lt. Datenblatt aber max. nur 9,6kWh. Hier gibt’s aber auch verschiedene…

Was wird den jetzt im Detail eingesetzt?

Wechselrichter / Bezeichnung / Anzahl
Akkutyp / Anzahl / Gesamtkapazität
Ladestrategie
Notstrom ja/nein.
DC Kopplung / AC&DC Kopplung

Es gibt ja auch AC Speicherlösungen die man direkt mit normalen Wechselrichtern betreiben kann… ist das keine Alternative?

Mit zusätzlicher Software ist es einfach, serielle Daten zu lesen und zu erfassen. Beispielsweise:

Serial Port Logger oder Serial Port Analyzer.

Die Programme verfügen über viele Funktionen, einschließlich der Möglichkeit, alle Überwachungsdaten in einem proprietären Format zu speichern: HTML, ASCII-Text, UNICODE-Text, ExSel CSV und automatische Umleitung in Datei