Für Deye Hybridinverter SmartMeter emulieren

Hallo liebe Community,

als newby im Thema openEMS würde ich gerne bei den Profis ein „best parctice“ erfragen.
Leider habe ich wenig Programmiererfahrung, sehe das folgende Vorhaben als Challenge zum Lernen an.

Ich möchte gerne für meinen Deye SUN-15K-SG05LP3-EU-SM2 ein SmartMeter emulieren. Primär hätte ich gerne die Griddaten mal im Deye (visuell), gesteuert werden soll er irgendwann per EMS (rein als AC Batteriespeicher). Sekundär könnte ich damit auch übergangsweise das Deye interne „Zero to Grid“ testen/benutzen.

Ich habe bereits ein Carlo Gavazzi SmartMeter EM24 als Gridmeter im Betrieb, hier sprudeln auch schon Daten Richtung EMS.
Ach ja, das Geräteprofil Carlo Gavazzi EM300 funktioniert auch für den EM24, die Registeradressen und Faktoren sind von mir geprüft die gleichen, evlt. macht es Sinn das Profil auf EM300/EM24 umzubenennen?

Meine Aufgabenstellung wäre nun die EM24 Daten direkt umzumappen und dem Deye als Modbus Slave wieder zu Verfügung zu stellen.
Der Deye nennt als kompatibles Smartmeter das Eastron SDM630_V2 oder das CHNT DTSU666.
Ich werde kommendes WE mal versuchen am Deye zu loggen welche Register dieser Abfragen möchte.

Nun meine Frage gibt es zufällig schon Code auf diesem man Aufbauen könnte?
Ich hatte mal in einem Beitrag gelesen jemand macht dies bereits mit glaube Siemens Geräten? Aber wie das derjenige das gemacht hat?

Ich kenne die „Controller Api Modbus/TCP Read-Only“ jedoch so wie ich es verstanden habe spiegelt diese alle Daten dynamisch je nach Datenpunkt ohne explizit steuerbares Mapping aus? Also für diesen Fall nicht direkt nutzbar?

Grundsätzliche Verständnisfrage:
Wie verhält sich openEMS zeitlich gesehen? Wie ich gelesen habe ist ein Zyklusdurchlauf durch den Scheduler alle Sekunde richtig? Heist ich lese die Daten des EM24 1Sekunde, beim nächsten Zyklus würden dann die Daten für den Deye geschrieben, somit hat der Deye im schlechtesten Falle seine Daten mit 2 Sekunden Delay?
Jetzt wird der Deye auch eine gewisse Zeit brauchen um sich als Batterieinverter einzuregeln, daher hängt dieser dann dem tatsächlichen Bedarf immer etwas hinterher? Ist das gängige Praxis? Regelt da der Deye mit den beiliegenden CT viel schneller oder braucht der auch so seine Zeit? (dies konnte ich noch nicht ausprobieren)
Wie wichtig ist Echtzeit?

Freue mich über jeden Tip!
Danke.

Hallo,
so wie geschrieben habe ich mal geloggt was der Deye für Register haben möchte. Ich habe hier auch schon Daten an den Deye per “Modbus Slave Tool” geschickt, funktioniert schonmal. Leider habe ich zwar noch ein anderes Problem, dieser verliert anscheinend Daten da die Werte im Deye vom Wert her springen 156 bis 200W, es sollten aber konstant 200W an allen Phasen angezeigt werden. Dies soll jetzt aber kein Problem für hier sein…

Geloggt habe ich:
-03 DB 00 00 00 06 01 04 00 0C 00 06
-03 D7 00 00 00 06 01 04 00 48 00 04
in Klartext:
Slave ID 01
ab Register 000C davon 6 Register = im Eastron; Power L1-3 als Float
ab Register 0048 davon 4 Register = im Eastron; Total Import kWh / Total Export kWh als Float

Wie bringe ich das jetzt im openEMS aufs Papier?
Ich denke diese Daten einfach direkt von meinem Gridmeter weiterzuleiten wäre die sinnvollste Lösung?
Eine Starthilfe wäre nett.

Wünsche euch ein schönes WE!