Hallo,
ich habe etwas hin und her probiert und habe tatsächlich eine Lösung gefunden. Vielleicht kann der eine oder andere etwas davon gebrauchen.
Nötig ist das alles, weil mein Wechselrichter "Alpha Ess Hi10" nach meiner Meinung absoluter Schrott ist. (Hinterher ist man immer klüger)
Der WR hat eine ModBus-TCP und eine ModBus-RTU Schnittstelle. Ein Betrieb über ModBus-TCP läuft fast gut, aber der telefoniert ständig nach Hause und außerdem fummeln die Alpha Ess des häufigeren im WR rum, einmal musste ich einen Neustart durchführen, weil nichts mehr ging.
Ein Sperren des Internetzugriffes des WR in der FritzBox führt zu ganz seltsamen Reaktionen im Netzwerk (habe ich schon ausführlich beschrieben). Also habe ich einen TCP-RTU Wandler dazwischen geschaltet.
Da die RTU-Schnittstelle nur mit 9600 Baud 8n1 läuft, kann man nicht alle Register mehr im Sekundentakt abfragen.
Es ist tatsächlich möglich, 3 ModBus Adapter zu installieren und die gleichen Schnittstellendefinitionen einzustellen, aber verschiedene Holding-Register.
ModBus.0 frage ich z.B. alle 1,5 Sek ab (Datenabfrageintervall=1500) für aktuelle PV-Leistung usw.
ModBus.1 frage ich z.B. alle 5 Min ab (Datenabfrageintervall=300000) für Tages-PV-Leistung, Batterie SOC, usw.
ModBus.2 schalte ich kurz vor Mitternacht für 2 Minuten auf aktiv und frage Batterie-StateofHealth, Versionsnummern usw. ab um diverse Tageswerte zu berechnen.
Dabei ist mir etwas aufgefallen. Der Datenpunkt "modbus.x.info.connection" liefert den Wert 'true', wenn der Adapter läuft und ' ' (nichts) wenn der Adapter NICHT läuft. Dabei bekam ich auch noch folgende Fehlermeldung:
State value to set for "modbus.x.info.connection" has to be type "boolean" but received type "string"
Dann noch eine Besonderheit des Alpha Ess WR. Dieser Wechselrichter hat Probleme, mehrere Register hintereinander zu lesen, in meinem Beispiel das Register 33 (signed 32 Bit Big Endian) sowie die Register 1086 bis 1088. (Register 33 mit 32 Bit bedeutet Register 33 mit 16 Bit und Register 34 mit 16 Bit)
Register 33 ist bei mir die Netzleistung in Watt (Die Leistung die ins Haus oder aus dem Haus fließt)
signed 32 Bit bedeutet +/-2.147.483.647 Watt. Recht unwahrscheinlich dass ich diese Werte erreichen werde.
Ich lese jetzt nur noch Register 34 mit 16 Bit, das entspricht einer max Leistung von +/-32KW (werde ich wohl nie erreichen) und schon habe ich viele Lesefehler weniger.
Vielleicht gibt es noch andere, die mit meinen Erfahrungen etwas anfangen können.
(Schade dass man solche Work-arounds machen muss, um die Fehler eines Wechselrichters zu umgehen)