NEWS
Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden
-
@dertom said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Hallo und guten Morgen,
wie habt Ihr es in der VIS gelöst oder ausgewertet, in welche Richtung zum Beispiel die Ladeleistung des Akkus geht? Gibt es dafür einen Datenpunkt oder muss man das berechnen über die Gesamtlasten?
LG DerTomDa schon mehrere danach gefragt hatten.
Ob der Speicher geladen oder entladen wird sieht man nicht direkt.
Dafür muss das RunningState Register #13000 (bereits 1 abgezogen) ausgwertet werden.

Die Zahl dann in 8 Bits als 0 oder 1 umrechnen

Wer nicht selbst rechnen oder JS programmieren möchte kann mein Script verwenden welches ich mit Hilfe von @paul53 vor ca einem Jahr erstellt hatte. Die Datenpunkte müssen im Script noch individuell angepasst werden, je nach Euren Modbuseinstellungen.
// ioBrokerForum https://forum.iobroker.net/topic/38441/sungrow-wr-sgh10rt-erfolgreich-mit-modbus-eingebunden/205 // Erstellt von ostseeskipper mit Hilfe von @paul53 const idVar = 'modbus.0.inputRegisters.1.13000_Running_State'; // Runningstate Datenpunkt-ID Modbus Input var bez = 'Modbus0.SH10_'; //Legt 8 Datenpunkte im Javascript-Objektordner an var register = ['PV power','Batterie laden', 'Batterie entladen', 'Positive load Power','Feed-in Power','Import vom Netz','Reserved','Negative load Power']; var bits = [false,false,false,false,false,false,false,false]; for(var i = 0; i < 8; i++) { createState(bez + register[i], false, {type: 'boolean'}); } function dec2bool(dp) { // function = js befehl / dec2bool = frei vergebener Name für die Funktion / dp = temporäre Variable für die funktion for(var i = 0; i < 8; i++) { var b = !!(dp >> i & 1); if(b != bits[i]) { setState(bez + register[i], b, true); bits[i] = b; } } } on(idVar, function(dp) { // Triggern bei Wertänderung in idVar dec2bool(dp.state.val); })Danach sollte es so im Objektbaum aussehen

Im Vis dann mit Bedingungen arbeiten.
Bei mir siehts im VIS so aus.

Grafik und Elemente sind mit vis-materialdesign von @Scrounger erstellt.@ostseeskipper Danke für die Anleitung zur Auswertung des Running State, hab sie genau befolgt, aber bei mir bleiben leider alle Werte false.
Hat jemand eine Idee, woran es scheitern könnte? -
@ostseeskipper Danke für die Anleitung zur Auswertung des Running State, hab sie genau befolgt, aber bei mir bleiben leider alle Werte false.
Hat jemand eine Idee, woran es scheitern könnte?@jh410 said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
@ostseeskipper Danke für die Anleitung zur Auswertung des Running State, hab sie genau befolgt, aber bei mir bleiben leider alle Werte false.
Hat jemand eine Idee, woran es scheitern könnte?Das JS Script hast du aber am laufen? oder gibts da Fehler?
EDIT: Eventuell musst du die rote 1 in
const idVar = 'modbus.0.inputRegisters. 1. 13000_Running_State'
raus nehmen wenn du nicht wie ich mehrer Geräte ID in der Modbusinstanz verwendest. -
@ostseeskipper Danke für die Anleitung zur Auswertung des Running State, hab sie genau befolgt, aber bei mir bleiben leider alle Werte false.
Hat jemand eine Idee, woran es scheitern könnte? -
Bei mir bleiben auch alle JS Datenpunkte 'false'
Im Script wird ja auf Wertänderung des RunningState Datenpunktes geschaut - da ändert sich bei mir nie etwas. Ist immer 0@davipet
Wenn sich running state nie ändert ist das das problem.
Dann forsche mal nach warum da 0 ist. Andere Werte über Modbus bekommst du? -
@davipet
Wenn sich running state nie ändert ist das das problem.
Dann forsche mal nach warum da 0 ist. Andere Werte über Modbus bekommst du?@ostseeskipper
Ja, sonst kommt über Modbus alles was ich so brauche.
Ich habe noch einen SG6.0RT - an dem ist der working state auch immer 0So sieht mein Eintrag aus:
13000 1 Running State Betriebsstatus uint16be 1 1 0 value false falseHabe auch schon anderer Datentypen versucht. Kein Status :(
Kann sich da was mit einer Firmware geändert haben? Ich habe bei Sungrow selber bisher leider keine detaillierte Beschreibung der Modbus-Schnittstelle gefunden.
Hier mal meine Firmwarestände:

Gruß
David
-
@jh410 said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
@ostseeskipper Danke für die Anleitung zur Auswertung des Running State, hab sie genau befolgt, aber bei mir bleiben leider alle Werte false.
Hat jemand eine Idee, woran es scheitern könnte?Das JS Script hast du aber am laufen? oder gibts da Fehler?
EDIT: Eventuell musst du die rote 1 in
const idVar = 'modbus.0.inputRegisters. 1. 13000_Running_State'
raus nehmen wenn du nicht wie ich mehrer Geräte ID in der Modbusinstanz verwendest.@ostseeskipper Danke noch für die Antwort, das Problem hatte sich schon gelöst, die Ursache war ein Fehler im Modbusregister (Wert war auch dauerhaft 0). Da war ich selbst schuld, wenn ich das Protokoll nicht richtig lese.. Und tatsächlich musste ich auch die 1 raus nehmen, hab bisher nur die eine Instanz drin.
Ich habe mir dann noch ein kleines Blockly fertig gemacht, was mir die Objekte Batterieladung, -entladung, Einspeisung und Netzbezug schreibt, sodass ich das ganze schön in Grafana darstellen kann. VIS hab ich mir bisher noch nicht genauer angeschaut, aber das sollte dann so ja auch ohne Bedingungen gehen.@Davipet Starte mal deine Modbus-Instanz neu und schau, was das Protokoll bei dir sagt. Ggf. auch einfach mal das Running State Input Register neu anlegen. Deine anderen Werte werden ja vermutlich korrekt ausgelesen?
Die Informationen hier sind auch detaillierter als die von Sungrow selbst.Noch haben wir hinter dem neuen Zählerschrank den alten Zähler im alten Zählerschrank, durch die dann der selbst erzeugte Strom geht, sodass wir aktuell für unseren selbst erzeugten Storm zahlen :man-tipping-hand: Der SH10RT läuft nur schon mal, damit ich mir die ganze Modbus Geschichte schon mal einrichten kann. Die Tage kommt dann hoffentlich der neue Zähler in den neuen Zählerschrank, der alte Zähler wird überbrückt und dann wird auch der SG20RT in Betrieb genommen.
Dann muss ich mal schauen, wie ich die Modbus-Verbindung zum SG20RT über das WiNet-S-Modul kriege und wie ich das (zumindest im Sommer) so hinkriege, dass der Speicher nur DC-seitig mit dem SH10RT geladen wird.
Das dürfte mit dem entsprechenden Auswerten der Modbus-Werte und einer Beschränkung der Ladeleistung gehen, oder? -
@ostseeskipper Danke noch für die Antwort, das Problem hatte sich schon gelöst, die Ursache war ein Fehler im Modbusregister (Wert war auch dauerhaft 0). Da war ich selbst schuld, wenn ich das Protokoll nicht richtig lese.. Und tatsächlich musste ich auch die 1 raus nehmen, hab bisher nur die eine Instanz drin.
Ich habe mir dann noch ein kleines Blockly fertig gemacht, was mir die Objekte Batterieladung, -entladung, Einspeisung und Netzbezug schreibt, sodass ich das ganze schön in Grafana darstellen kann. VIS hab ich mir bisher noch nicht genauer angeschaut, aber das sollte dann so ja auch ohne Bedingungen gehen.@Davipet Starte mal deine Modbus-Instanz neu und schau, was das Protokoll bei dir sagt. Ggf. auch einfach mal das Running State Input Register neu anlegen. Deine anderen Werte werden ja vermutlich korrekt ausgelesen?
Die Informationen hier sind auch detaillierter als die von Sungrow selbst.Noch haben wir hinter dem neuen Zählerschrank den alten Zähler im alten Zählerschrank, durch die dann der selbst erzeugte Strom geht, sodass wir aktuell für unseren selbst erzeugten Storm zahlen :man-tipping-hand: Der SH10RT läuft nur schon mal, damit ich mir die ganze Modbus Geschichte schon mal einrichten kann. Die Tage kommt dann hoffentlich der neue Zähler in den neuen Zählerschrank, der alte Zähler wird überbrückt und dann wird auch der SG20RT in Betrieb genommen.
Dann muss ich mal schauen, wie ich die Modbus-Verbindung zum SG20RT über das WiNet-S-Modul kriege und wie ich das (zumindest im Sommer) so hinkriege, dass der Speicher nur DC-seitig mit dem SH10RT geladen wird.
Das dürfte mit dem entsprechenden Auswerten der Modbus-Werte und einer Beschränkung der Ladeleistung gehen, oder? -
@jh410
Ich glaube inzwischen, dass ohne Speicher der Status einfach 0 bleibt. Kann das sein?
Die Liefersituation für Batteriespeicher ist ja leider ziemlich mies :(Gruß
David
@davipet
Das kann eventuell möglich sein, wirst ja sehen wenn du deinen Speicher bekommst. -
@ostseeskipper Danke noch für die Antwort, das Problem hatte sich schon gelöst, die Ursache war ein Fehler im Modbusregister (Wert war auch dauerhaft 0). Da war ich selbst schuld, wenn ich das Protokoll nicht richtig lese.. Und tatsächlich musste ich auch die 1 raus nehmen, hab bisher nur die eine Instanz drin.
Ich habe mir dann noch ein kleines Blockly fertig gemacht, was mir die Objekte Batterieladung, -entladung, Einspeisung und Netzbezug schreibt, sodass ich das ganze schön in Grafana darstellen kann. VIS hab ich mir bisher noch nicht genauer angeschaut, aber das sollte dann so ja auch ohne Bedingungen gehen.@Davipet Starte mal deine Modbus-Instanz neu und schau, was das Protokoll bei dir sagt. Ggf. auch einfach mal das Running State Input Register neu anlegen. Deine anderen Werte werden ja vermutlich korrekt ausgelesen?
Die Informationen hier sind auch detaillierter als die von Sungrow selbst.Noch haben wir hinter dem neuen Zählerschrank den alten Zähler im alten Zählerschrank, durch die dann der selbst erzeugte Strom geht, sodass wir aktuell für unseren selbst erzeugten Storm zahlen :man-tipping-hand: Der SH10RT läuft nur schon mal, damit ich mir die ganze Modbus Geschichte schon mal einrichten kann. Die Tage kommt dann hoffentlich der neue Zähler in den neuen Zählerschrank, der alte Zähler wird überbrückt und dann wird auch der SG20RT in Betrieb genommen.
Dann muss ich mal schauen, wie ich die Modbus-Verbindung zum SG20RT über das WiNet-S-Modul kriege und wie ich das (zumindest im Sommer) so hinkriege, dass der Speicher nur DC-seitig mit dem SH10RT geladen wird.
Das dürfte mit dem entsprechenden Auswerten der Modbus-Werte und einer Beschränkung der Ladeleistung gehen, oder?@jh410
Ja man kann die Ladeleistung beschränken. Habe aktuell wenn genug Sonne kommt 1KW eingestellt und wenn die Prognosen nicht so gut sind auch mal 5KW oder der Piratenmodus für den Winter 10 KW:grinning: -
Ich habe auch das Problem, dass ich mit dem WiNet-S Module keine Verbindung hin bekomme. Gibt es eine Tendenz, wann das funktionieren kann/soll? Gibt es einen Workaround?
@ljsven
mit der neusten Firmwareversion(Ende April) auf dem WiNet-S kann man jetzt auch per Modbus die Daten ziehen. -
Hallo zusammen, ich habe ebenso eine Sungrow SGH10RT. Dieser läuft auch erfolgreich mit Modbus.
Mein Problem ist nur das täglich zw. 19:39 und 19:45 alle Daily Werte genullt werden. Aber ich weiß absolut nicht warum oder woran das liegen könnte. Jemand eine Idee von Euch? Viele Grüße -
Hallo zusammen, ich habe ebenso eine Sungrow SGH10RT. Dieser läuft auch erfolgreich mit Modbus.
Mein Problem ist nur das täglich zw. 19:39 und 19:45 alle Daily Werte genullt werden. Aber ich weiß absolut nicht warum oder woran das liegen könnte. Jemand eine Idee von Euch? Viele Grüße@reddd said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Hallo zusammen, ich habe ebenso eine Sungrow SGH10RT. Dieser läuft auch erfolgreich mit Modbus.
Mein Problem ist nur das täglich zw. 19:39 und 19:45 alle Daily Werte genullt werden. Aber ich weiß absolut nicht warum oder woran das liegen könnte. Jemand eine Idee von Euch? Viele Grüßeschau mal was für eine Uhrzeit eingestellt ist in Modbus
Holdingregister 5002 zeigt die Stunde an,
vermutlich stimmt die Stunden nicht und der WR denkt das es 23-0 Uhr ist und Nullt die Werte -
@reddd said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Hallo zusammen, ich habe ebenso eine Sungrow SGH10RT. Dieser läuft auch erfolgreich mit Modbus.
Mein Problem ist nur das täglich zw. 19:39 und 19:45 alle Daily Werte genullt werden. Aber ich weiß absolut nicht warum oder woran das liegen könnte. Jemand eine Idee von Euch? Viele Grüßeschau mal was für eine Uhrzeit eingestellt ist in Modbus
Holdingregister 5002 zeigt die Stunde an,
vermutlich stimmt die Stunden nicht und der WR denkt das es 23-0 Uhr ist und Nullt die Werte -
@reddd said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Hallo zusammen, ich habe ebenso eine Sungrow SGH10RT. Dieser läuft auch erfolgreich mit Modbus.
Mein Problem ist nur das täglich zw. 19:39 und 19:45 alle Daily Werte genullt werden. Aber ich weiß absolut nicht warum oder woran das liegen könnte. Jemand eine Idee von Euch? Viele Grüßeschau mal was für eine Uhrzeit eingestellt ist in Modbus
Holdingregister 5002 zeigt die Stunde an,
vermutlich stimmt die Stunden nicht und der WR denkt das es 23-0 Uhr ist und Nullt die Werte -
@burberry
Meinst du die Daten im WR oder ioBroker die genullt werden?
Bei der Installation einen falschen Ort oder andere Zeitzone angegeben? -
@burberry
Meinst du die Daten im WR oder ioBroker die genullt werden?
Bei der Installation einen falschen Ort oder andere Zeitzone angegeben?@ostseeskipper vom wechselrichter vermute ich, da es die daily werte vom WR sind welche genullt werden, und das macht er ja nur zum tageswechsel.
-
@burberry
Meinst du die Daten im WR oder ioBroker die genullt werden?
Bei der Installation einen falschen Ort oder andere Zeitzone angegeben?@ostseeskipper die Daten werden im iobroker gelöscht. immer um 19:33:21 werden alle Daily Daten auf 0 gesetzt.
selbst die falsche Region oder falsche Zeitzone ergibt keinen Sinn. Grüße -
@ostseeskipper die Daten werden im iobroker gelöscht. immer um 19:33:21 werden alle Daily Daten auf 0 gesetzt.
selbst die falsche Region oder falsche Zeitzone ergibt keinen Sinn. GrüßeServus
Ich hab 2 SH8.0RT im Master-Slave-Betrieb.
Der Akku ist leider noch nicht geliefert worden.beide WR hängen je an beiden RJ45 buchsen. Jeder WR hat somit 2 IP Adressen.
Um beide abzufragen hab ich 2 ModBus Adapter erstellt.Komischweise klappt die Abfrage aber nur beim Master.
Alle einstellungen sind identisch.
Ich hab auch versucht bei beiden WR´s unterschiedliche ID´s zu verwenden.Beim Slave bekomme ich immer folgende LOG Meldungen:

Am ModBus Adapter liegt es nicht, das ich einfach mal die IP´s getauscht habe. Dann geht plötzlich der andere Adapter.
Firmware-Update hab ich bei beiden WR´s durchgeführt.
Hat denn einer 2 gleiche WR mit einem DTU666 am laufen?
Könnte es sein, das bei deiser Verschaltung der Slave nicht einzelen auszulesen ist?
Oder woran könnte es noch liegen?
Gruß C1500

