NEWS
Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden
-
Ja, genau die IP mit der 192.168.2.145 hat eine ähnliche MAC Adresse (siehe meinen Beitrag heute morgen, das zweite Bild)
In einem der ersten Beiträge, sieht man ein Bild mit einem markierten Wert.
-
Gestern hat sich auf einmal der Modbus verbunden.
Warum kann ich leider nicht sagen. -
@gombersiob sagte in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Danke für die Tipps.
Dein Register kann ich leider nicht importieren.
Ich erhalte die Meldung:
Im Kopf fehlen also einige Überschriften.
Wenn ich die Überschriften aus den ersten posts einfüge, werden zwar alle Datenpunkte eingetragen, aber nicht mit Daten gefüllt.Gibt es iwo eine Übersicht über ALLE möglichen Variablen?
Die im dritten Post erwähnte Liste vom 15.12.20 von m-fuchs finde ich nicht.
Ich suche eigentlich nur noch Datenpunkte die Wärempumpe und Wallbox betreffen.
Dazu habe ich hier noch gar nichts gelesen. Gibt es das etwa nicht? -
@aleks-83
Ich habe selber die Register nie importiert, sondern sie manuelle Eingabe aufgerufen und dann den Text aus dem File mit Copy&Paste eingefügt. Die Überschrift steht ja bei der manuellen Eingabe schon da. Das habe ich einige Male gemacht, denn ich erzeuge mit die Parameter mit einem Java-Programm. Und jedes Mal wenn ich was prinzipielles geändert habe, das ganze File neu erzeugt. Die letzten beiden, oder drei Felder hatte Atlantis (der Eröffner dieses Threads) nicht drin und ich habe sie auch nicht mitgepflegt. Die wurden automatisch richtig gesetzt.Aber Du hast sicher recht, das File sollte für den „normalen“ Import funktionieren. Ich schau mir das heute abend mal an.
-
@gombersiob
Also grundsätzlich habe ich verstanden wie der ModBusAnalyzer funktioniert.
Ich weiß nur nicht wie man da an die Datenpunkte kommt.
Anhand des Namens "Analyzer" hätte ich erwartet dass er mir alle DPs aufzeigt, die der ModBus Partner verarbeiten kann.Wie man sich die DPs dann als txt exportieren kann, habe ich auch nicht gefunden/verstanden.
Wenn du dir das ansehen könntest wäre das super.
-
@aleks-83 said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Wenn du dir das ansehen könntest wäre das super.
Ich bin gestern nicht dazu gekommen. Und ab jetzt auch für den Rest der Woche weg. Vor nächster Woche wird das nichts mehr.
-
Das hat prima geklappt, ich wundere mich aber über den Wert in
modbus.0.inputRegisters.13011_Daily_battery_charge_energy_from_PV
der zeigt 56 kWh. Realistisch wäre ca. 5,6 kWh (das habe ich gerade überschlagsmäßig geprüft)
Was habe ich falsch gemacht, oder muss ich ändern.
Die Batterie hat eine Kapazität von 9,6kWh, was in Register
modbus.0.inputRegisters.13038_Battery_Capacity
auch korrekt angezeigt wird.
-
Das gibt es öfter, liegt meist an falschen Faktoren.
Du kannst den Faktor von 13011 im Input-Register verändern, also das Komma verrücken, dann verändert sich der ausgegebene Wert.
-
@mraiobroker Danke für den schnellen Support!
-
@seven1969
Bitte auch mal einen Blick auch den Beitrag 408 werfen -
@gombersiob said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Ich bin gestern nicht dazu gekommen. Und ab jetzt auch für den Rest der Woche weg. Vor nächster Woche wird das nichts mehr.
Hier jetzt die Register - mit Überschrift und allen, auch den letzten Spalten, gesetzt:
20230710-Eingangsregister_Stand_V1.1.37.txt -
@aleks-83 Sorry für die Späte Antwort. Das Holding Register beinhaltet die Register. welche man per Modbus beschreiben/ändern kann. Z.B: kann man hier die Min SOC, MAX SOC, Reserve SOC festlegen und auch ein Laden/Entladen der Batterie mit einer einstellbaren Leistung starten.
Die Eingangsregister dagegen beinhalten nur Register, welche man auslesen kann.
-
@carsten-sauermann
Ähm ja, das ist mir bewusst.
Deshalb verwende ich nur die eingangs Register.
Ich möchte erst mal sehen wie die Anlage so läuft. Ob ich überhaupt Register schreiben will weiß ich noch nicht. Vermisse ich bisher nicht.
Oder kann man damit das Laden der Wallbox starten und stoppen? Vielleicht sogar den Lade Modus einstellen? -
@aleks-83 moin. Also das Einzige was ich damit aktuell mache ist das Ich den reserveSOC im Winter automatisch höher stelle und den Akku nachlade falls dieser unter der neu eingestellten Reserve soc ist.
Für Anlagen wo die Erzeugung grösser der Wechselrichterleistung ist kann man hier ein Programm schreiben welches die Batterie dann entsprechend lädt.
Also Beispiel Anlage erzeugt 10000W und WR kann nur 8000W. Dann könnte man ein Programm schreiben welches die Batterie nur mit dem lädt was über 8000w erzeugt wird um den Ertrag zu optimieren.Den Lademodus der Wallbox müsste man dann ja im Modbus der Wallbox einstellen, wenn diese das unterstützt.
-
@carsten-sauermann said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Also Beispiel Anlage erzeugt 10000W und WR kann nur 8000W. Dann könnte man ein Programm schreiben welches die Batterie nur mit dem lädt was über 8000w erzeugt wird um den Ertrag zu optimieren.
Da möchte ich mal nachhaken. Ich verstehe das nicht. Der Wechselrichter steht zwischen PV-Anlage und allem Anderen (Batterie, Zähler, Wallbox und was da noch mehr sein könnte). Die Information über die 10kW Erzeugung erhält man doch vom WR, wie kann ich das anders wissen. Und Strom, der nicht verbraucht wird, geht bei mir in der Regel sowieso in die Batterie - und ansonsten ins Netz. Wie ein Programm den Strom am WR vorbei in die Batterie leiten könnte, leuchtet mir nicht auf Anhieb ein.
Ich habe einen 8kW Wechselrichter. Die größte Erzeugung war am 11 März mit 9,2kW. Die größte Einspeisung ins Netz war am 4. April mit 7,9 kW (mag sein dass sie am 11. März noch größer war, aber da habe ich diese Zahl noch nicht ermittelt). Das lief aber automatisch ab. Und die Batterieladung ist auch automatisch. Was ich da mit ioBroker noch verbessern könnte erkenne ich nicht. -
@gombersiob
Also ich rede von der Momentanerzeugung. Die könnte ja z.B. bei 10kw liegen. Der WR kann aber nur 8kw umwandeln. Die restlichen 2kw können aber am wechselrichter "vorbei" direkt in den Akku geladen werden. Der Strom fließt natürlich durch den WR wird aber nicht umgewandelt sonder wird durchgesetzt zur Batterie. Denn vom Dach kommt Gleichstrom (DC) und die Batterie kann nur Gleichstrom speichern.Ob mehr erzeugt wird als der WR könnte man einfach so ermitteln das man wenn der wr 8kw erzeugt und der Verbrauch kleiner 8kw ist das mann dann anfängt den Akku mit 200w zu laden und das erhöht man so lange bis der WR nur noch 7950watt erzeugt. Man baut sich also ein eigenes batteriemanagementsystem auf.
Evtl. Kann man es auch am MPP erkennen wenn Strom MAL Spannung deutlich grösser also 8kw sind. Das kann ich aber nicht testen da bei ich nur 7.5kw auf dem Dach habe und einen 8kw WR.
Das schwierigste dürfte sein das so zu programmieren das die Batterie auch immer voll wird und nicht bei schlechtem wetter wo die 8kw nicht erreicht werden nicht lädt..
-
Hallo,
ich habe heute erstmalig den Modbus-Adapter installiert und mit Hilfe der Infos hier konfiguriert (für Sungrow SH10RT). Der Modbus-Adapter holt auch die Daten und schreibt sie in den erzeugten Datenpunkte.Was mich wunder ist, dass der Status der Modbus-Instanz ständig zwischen disconnected und connected wechselt (die Teilstati "Verbunden mit Host" und "Lebenszeichen" bleiben durchgängig grün, jedoch "Verbunden mit Gerät oder Dienst" wechselt ständig). Dieses "Hin und Her" ist dann auch im Datenpunkt modbus.0.info.connection
In der Modbus.0 - Konfiguration habe ich diese Werte hinterlegt:
- Datenabfrageintervall: 5000
- Wartezeit bis zum erneuten Verbinden: 2000
- Wartezeit lesend: 5000
- Impulszeit: 1000
- Wartezeit: 50
Leider werde ich aus der Doku nicht so wirklich schlau.
=> Wechselt bei Euch auch der Verbindungsstatus ständig?
=> Wenn nein, was habt ihr für Einstellungen bzw. wie müsste ich meine Einstellungen anpassen?Danke schon mal
Johannes -
@johannesjahn
Als ich den Beitrag gestern las, habe ich bei mir geschaut und fand dasselbe Verhalten. Es war begleitet mit Meldungen2023-08-13 14:30:37.412 - info: modbus.0 (28748) Connected to slave 192.168.111.44 2023-08-13 14:30:42.414 - warn: modbus.0 (28748) Error: undefined 2023-08-13 14:30:42.415 - error: modbus.0 (28748) Request timed out. 2023-08-13 14:30:42.415 - error: modbus.0 (28748) Client in error state. 2023-08-13 14:30:42.416 - warn: modbus.0 (28748) Poll error count: 12 code: {"err":"timeout","timeout":5000} 2023-08-13 14:30:43.416 - info: modbus.0 (28748) Disconnected from slave 192.168.111.44
Diese Meldungen kamen gestern zwischen 11:19 und 15:10
Es wurde immer wieder der Adapter restarted und dann zählte der "Poll error count" wieder von 1 los.Beispiel für den Restart.
2023-08-13 11:41:41.324 - info: modbus.0 (21196) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason 2023-08-13 11:41:41.942 - info: host.raspberrypi instance system.adapter.modbus.0 terminated with code 156 (START_IMMEDIATELY_AFTER_STOP) 2023-08-13 11:41:41.944 - info: host.raspberrypi Restart adapter system.adapter.modbus.0 because enabled 2023-08-13 11:41:43.004 - info: host.raspberrypi instance system.adapter.modbus.0 started with pid 21642 2023-08-13 11:41:45.379 - info: modbus.0 (21642) starting. Version 5.0.11 in /opt/iobroker/node_modules/iobroker.modbus, node: v16.20.2, js-controller: 4.0.24 2023-08-13 11:41:46.639 - info: modbus.0 (21642) Connected to slave 192.168.111.44
Und um 15:10 war dieses Verhalten, dem Log nach, zu Ende. Heute sehe ich keinerlei Probleme.
Einen Grund dafür kann ich aber nicht nennen. Das in der Meldung erwähnte "polling" muss meines Erachten vom (Master/Client) also ioBroker ausgehen. Der Slave/Server kennt ja den Client eigentlich nicht. Auf das Polling scheint dann aber der Adapter am WR aus irgendwelchen Gründen nicht zu reagieren.
Aber tatsächlich weiß ich nicht, ob es irgendwelche KeepAlive-Aktionen tatsächlich gibt. An den Parametern kann es kaum liegen, sonst wäre der Fehler ja dauerhaft da.- Datenabfrageintervall (Data polling interval): 1000
- Wartezeit bis zum erneuten Verbinden(Reconnect delay): 60000
- Wartezeit lesend (Read timeout): 5000
- Impulszeit (Pulse time): 1000
- Wartezeit (Wait time): 100
- Max Leseanforderungslänge (Float): 128
- Max Leseanforderungslänge (Booleans): 128
- Leseintervall: 0
- Schreibintervall: 0
Dabei erkläre ich mir die Parameter wie folgt (eine wirklich Doku habe ich nicht gefunden. Die Erklärung auf GitHUB hilft nicht wirklich weiter:
- Data polling interval: Frequenz der Abfragen
- Reconnect delay: Dauer, bis man den Request, nach Timeout, nochmal versucht.
- Read timeout: Zeit die man maximal auf Antwort wartet, bis man den Request als gescheitert definiert
- Pulse time: Wird bei "Coils" verwendet. Hier nicht von Interesse
- Wait time: Wartezeit zwischen den Abfragen zweier verschiedener DeviceIds. Für mich nicht von Interesse
Ich habe den "Reconnect delay" auf 1 Minute gesetzt. Wenn der WR mal Probleme macht, muss ich mir ja nicht den LOG mit Fehlermeldungen zumüllen - das war meine Überlegung.
-
Danke für Deine Informationen, die mich auf eine Idee gebracht haben: Ich frage nicht nur mit ioBroker per Modbus die Werte ab, sondern auch mit dem Solarmanager. Als ich letzteren abgeschaltet habe, war das Problem weg = dauerhafter Connect zwischen Modbus-Adapter und Wechselrichter.
Da der Solarmanager nur wenige Werte benötigt, die auch der WiNet-S - Dongle liefert, der Dongle auch per LAN ans Netzwerk angeschlossen ist, habe ich im Solarmanager die IP vom WiNet-S hinterlegt. Nun kommen sich die Abfragen von ioBroker und vom Solarmanager nicht mehr in die Quere.
Viele Grüße
Johannes -
@johannesjahn said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
sondern auch mit dem Solarmanager.
Das ist die Software "Solarmanager"?
Ich (und sicher Du auch) habe noch den zweiten Adaper an meinem Wechselrichter. Darüber sammele ich eigene History-Daten (unabhängig von ioBroker). Vielleicht wäre das für Deinen Solarmanager auch interessant.
Gerade eben habe ich unter ioBroker aber wieder das Problem mit den Timeouts. Es kamen 13 Timeouts. Da ich den Retry aber erst nach 1 Minute mache, dauerte das Ganze eben auch 12 Minuten. In der Zeit gab es keine neuen Daten. Dann hat ioBroker den Adapter restarted - danach war alles wieder gut.
Aber gerade habe ich bei mir auch einen Fehler in der Definition entdeckt. Den habe ich jetzt beseitigt, mal sehen ob das dauerhaft hilft.