Jump to content

WARP3 und Sungrow: Falsche Werte


f-zappa

Recommended Posts

 

Moin,

endlich hängt mein WARP3 an der Wand. Ich besitze eine PV-Anlage mit einem <edit> Sungrow SH10RT </edit> Wechselrichter incl. Akku, den ich als SunSpec-Zähler hinzugefügt habe. Die erste Überraschung war hier allerdings, dass der Sungrow als "Wechselrichter einphasig [101]" erkannt wird, obwohl es sich um ein dreiphasiges Gerät handelt.

Schlimmer ist, dass offenbar die falschen Register ausgelesen werden. Bei "Wirk­leistung (Bezug minus Ein­speisung)" wird nicht dieser Wert, sondern die aktuelle Last angegeben. Jetzt in der Nacht steht hier (als negativer Wert) mein aktueller Verbrauch (der aus dem Akku gespeist wird). Importiert/exportiert wird derzeit nichts, also müsste da eigentlich eine 0 stehen. In meiner Modbuskonfiguration für Homeassistant wäre das Register für "export_power_raw" 13010, aber ausgelesen wird offenbar "load power" (13008).

Nicht so schlimm, aber hilft vielleicht beim Debuggen: bei "Wirk­energie (Ein­speisung)Σ L1, L2, L3; seit Her­stel­lung" steht meine bisher gesamt erzeugte Energiemenge (Register 13003) statt der exportierten Menge (Register 13005).

Ob die falschen Werte in Zusammenhang mit dem falsch erkannten Datenmodell 101 stehen? Wenn ich ein anderes Modell auswähle, kann der WARP aber gar keine Daten auslesen.

Was kann ich noch ausprobieren oder wie kann ich ggf sinnvollen Debugging-Output erzeugen?

Gruß, Uli

 
bearbeitet von f-zappa
Link zu diesem Kommentar
Share on other sites

Am 21.4.2024 um 00:20 schrieb borg:

Kannst du nach der Gerätesuche einmal auf Log klicken und das Log hier hochladen?

Moin, hier ist das Log. Sieht irgendwie schon "fishy" aus. Ach ja - da ist jetzt ein Modbusproxy dazwischen, ohne den gibt es aber die gleichen Werte.

Gruß, Uli

 

sun-spec-scan-log-warp3-2auT-2024-04-21T11-46-33-113.txt

Link zu diesem Kommentar
Share on other sites

Am 21.4.2024 um 12:20 schrieb ses:

Ist es ein AC-gekoppelter Speicher? Den Sungrow SG10RT habe ich auch, der ist ohne Speicheranschluss. Falls es der SH10RT mit DC-Speicher ist: Dessen Modbusregister unterscheiden sich deutlich von denen des SG!

Danke, dass du aufgepasst hast. Ich habe tatsächlich den SH10RT! 

Link zu diesem Kommentar
Share on other sites

Am 21.4.2024 um 12:32 schrieb ses:

Lässt sich der WR auswählen, also sowohl SG als auch SH? Wär für mich auch interessant, weil ich die WARP noch nicht habe.

Ich mach dir mal einen Screenshot. Die Werte "Anzeigename, Geräteadresse, Eindeutige ID" werden vom Scan ausgelesen, aber das scheint mir nur zu Anzeigezwecken zu dienen:

image.thumb.png.6db65a0e16cc8a285cdebfa2fb7fa55f.png

Die Musik spielt wohl bei "Modell", "Geräteadresse" und "Modellinstanz". Da kannst du aber nicht Hersteller/Typ auswählen sondern die nach SunSpec definierten Datenmodelle. Eigentlich ist es ja auch Sinn des Standards, dass er herstellerübergreifend funktioniert, aber irgendwas passt hier noch nicht.

image.png.f494ef014d6287eab0d509e61b74056d.png 

Link zu diesem Kommentar
Share on other sites

Zählermodelle auszuwählen, die während der Suche nicht gefunden wurden, wird nicht funktionieren. Nach dem Verbindungsaufbau wird nämlich genau dieses Modell gesucht. Wird es nicht gefunden, werden auch keine Daten ausgelesen. Findet die Suche es nicht, findet der Verbindungsaufbau es auch nicht.

Dass der Wechselrichter als einphasig erkannt wird, ist kein Problem. Das einphasige Modell kann exakt die gleichen Daten beinhalten wie das dreiphasige Modell. Der einzige Unterschied ist, dass beim einphasigen Modell nur die Werte für Phase 1 verpflichtend sind, die für Phase 2 und 3 optional. Beim dreiphasigen Modell sind die Werte für alle drei Phasen verpflichtend.

So wie ich das sehe, läufst du aktuell in ein Problem mit Sungrow-Wechselrichtern, das wir vor Kurzen gefunden haben. Das Ende der Modellliste wird anscheinend nicht konform zum SunSpec-Standard gekennzeichnet, wodurch die Suche endlos weiterläuft, bzw. bis sie irgendwann abstürzt. In den nächsten Tagen sollte es eine Test-Firmware geben, die das Problem umgeht und das nicht-standardkonforme Ende der Modellliste erkennt.

Die Hoffnung wäre, dass dein WR auf einer anderen Adresse noch einen weiteren Zähler meldet, der dann die Werte von deinem Hausanschluss hat. Der eine aktuell gefundene Zähler ist ziemlich offensichtlich nur für den WR bzw. Speicher, nicht für den Hausanschluss. Aktuell stirbt die Suche, bevor der möglicherweise vorhandene zweite Zähler abgefragt wird.

Link zu diesem Kommentar
Share on other sites

SunSpec wird leider von verschiedenen Herstellern immer wieder leicht unterscheidlich umgesetzt. Wir arbeiten daran die Kompatibilität zu den Fehlern der Herstellern zu verbessern.

Dein erstes Problem ist, wie Matze schon erwähnt hat, dass Sungrow das Ende der Modelliste falsch meldet und wir darüber stolpern. Das haben wir letzte Woche schon bei einem anderen Kunden gesehen. Teste mal bitte die angehängte Firmware, in der dieser Punkt behoben sein sollte.

Wir erkennen deinen Wechselrichter als "Wechselrichter einphasig", weil Sungrow den in SunSpec so meldet. Das ist nicht unsere Entscheidung. Das ist leider verwirrend, aber erstmal okay, wie Matze erklärt, weil auch das einphasige Modell dreiphasige Werte melden kann. Hier habe ich noch keine gute Idee wie wir das verbessern könnten. Im Sinne von irgendwie zu raten, dass eigentlich das dreiphasige Modell gemeint ist, Sungrow aber das einphasige meldet. Grundsätzlich liegt kein Problem vor, aber es verwirrt den Kunden.

On 4/21/2024 at 12:47 PM, f-zappa said:

Die Musik spielt wohl bei "Modell", "Geräteadresse" und "Modellinstanz". Da kannst du aber nicht Hersteller/Typ auswählen sondern die nach SunSpec definierten Datenmodelle. Eigentlich ist es ja auch Sinn des Standards, dass er herstellerübergreifend funktioniert, aber irgendwas passt hier noch nicht.

Alles außer dem Anzeigenamen unter dem "Suche starten" Knopf ist relevant. Da wird festgelegt von welcher Modbus/TCP Geräteadresse, von welchem SunSpec Untergerät (Hersteller, Modell, Seriennummer), welches SunSpec-Modell und davon welche Modellinstanz gelesen wird. Da kannst du schlussendlich eintragen was du möchtest, und so lange dein Gerät dann diese Daten auch liefern kann wird es auch funktionieren. Wenn die Suche es aber schon nicht findet, dann ist es höchstwarscheinlich auch nicht vorhanden.

Bezüglich der falschen Werte. Die SunSpec Register fangen bei 40000 an. Wir lesen also nicht im 130XX Bereich den du von Hand ausließt. Teste mal bitte mit der angehängen Firmware, ob die Gerätesuche jetzt besser funktioniert. Sobald wir das Problem gelöst haben, schauen wir uns an was bei den Werten nicht passt. Ob wir das falsch lesen, oder ob Sungrow das falsch meldet.

Edit: Bitte Firmware im nächsten Post ausprobieren.

Link zu diesem Kommentar
Share on other sites

Am 22.4.2024 um 19:49 schrieb MatzeTF:

Wir haben jetzt noch einige Korrekturen für Sungrow-Probleme eingebaut. Bitte teste mal diese Firmware und lade anschließend ein Log der Gerätesuche hier hoch.

warp3_firmware_2_3_0_6626a111_0ca140bbadd4d87_merged.bin 2.55 MB · 0 downloads

Moin, ich habe zwei Logs erzeugt - beim ersten gehe ich direkt an den WR, beim zweiten über einen Modbusproxy. Letzteres sieht im Log ein wenig anders aus und der Scan dauert länger, aber führt letztlich zum gleichen Resultat. Evtl macht der Proxy einfach selbst ein paar zusätzliche Retries.

Wenn die SunSpec-Implementierung von Sungrow Mist ist, würde ja evtl ein Firmwareupdate helfen. Das war auch bislang über die Sungrow-App möglich, wurde vor kurzem aber für Enduser aus der App entfernt 🤬. Das Update soll eine Fachfirma einspielen, aber da das hier zu großen Teilen ein DIY-Haushalt ist, habe ich gar keine. Widerliches Verhalten. Hallo Tinkerforge, bitte baut als nächstes einen Wechselrichter 🙃

sun-spec-scan-log-warp3-2auT-2024-04-23T16-50-54-463.proxy.txt sun-spec-scan-log-warp3-2auT-2024-04-23T16-49-25-592.txt

bearbeitet von f-zappa
Logs angehängt
Link zu diesem Kommentar
Share on other sites

Hängst du die Logs auch hier an? 🙂

Für die meisten Sungrow-Bugs haben wir Workarounds. Was bleibt, sind häufige Lesefehler bei gleichzeitigen Modbus-Zugriffen. Wenn du da noch mit OpenHAB oder einer App draufhängst, wird das irgendwann unbenutzbar.

Wechselrichter würden wir gerne bauen, allerdings ist die Konkurrenz bei Wallboxen schon schwierig. Das wird bei Wechselrichtern noch schlimmer sein.

Link zu diesem Kommentar
Share on other sites

Sorry, jetzt sind die versprochenen Logs auch da :)

Wegen der Lesefehler habe ich vor einigen Tagen den Modbusproxy eingerichtet. Bislang hat nur Home Assistant die Daten abgegriffen, als der WARP und evcc dazu kamen, fingen die Probleme an (obwohl der WR angeblich drei konkurrierende Zugänge können soll, funktioniert aber wohl nicht).

Link zu diesem Kommentar
Share on other sites

Sungrow mag anscheinend nicht so viele Anfragen. Deine Logs bestehen praktisch nur aus Lesefehlern.

Kannst du testweise mal einen SunSpec-Zähler ohne Suche anlegen und von Hand die Geräteadresse 247, Model 701 und Instanz 0 eingeben? Sowohl mit als auch ohne Proxy? Werden da (nach einem Neustart) irgendwann Werte beim Zähler angezeigt?

Link zu diesem Kommentar
Share on other sites

Um zu verhindern, dass wir zu viele Anfragen stellen bei der Gerätesuche, habe ich in dieser Firmware eingebaut, dass der Geräteadressbereich einschränkbar ist. Teste bitte mit dieser Firmware einmal, ob es hilft den Geräteadressbereich von 1-247 auf 247-247 zu stellen und dann die Gerätesuche durchzuführen.

warp3_firmware_2_3_0_6627f196_868b4bd89faf633_merged.bin

Link zu diesem Kommentar
Share on other sites

Am 23.4.2024 um 19:03 schrieb MatzeTF:

Sungrow mag anscheinend nicht so viele Anfragen. Deine Logs bestehen praktisch nur aus Lesefehlern.

Kannst du testweise mal einen SunSpec-Zähler ohne Suche anlegen und von Hand die Geräteadresse 247, Model 701 und Instanz 0 eingeben? Sowohl mit als auch ohne Proxy? Werden da (nach einem Neustart) irgendwann Werte beim Zähler angezeigt?

image.thumb.png.4f0e4c9cf50540474165fec02b39694c.png

So richtig? Gibt keine Werte, auch über den Proxy nicht :(

Link zu diesem Kommentar
Share on other sites

Am 23.4.2024 um 19:40 schrieb photron:

Um zu verhindern, dass wir zu viele Anfragen stellen bei der Gerätesuche, habe ich in dieser Firmware eingebaut, dass der Geräteadressbereich einschränkbar ist. Teste bitte mit dieser Firmware einmal, ob es hilft den Geräteadressbereich von 1-247 auf 247-247 zu stellen und dann die Gerätesuche durchzuführen.

Da wird zwar das Log überschaubarer, aber ansonsten passiert das gleiche:

 

Starting scan
Resolving 10.3.7.3
Connecting to 10.3.7.3:502
Using device address 247
Using base address 40000
Reading SunSpec ID
Reading timed out, retrying
Unknown read error, retrying
Unknown read error, retrying
Unknown read error, retrying
Unknown read error, retrying
Could not read SunSpec ID (error: CONNECTION_LOST [229])
Disconnecting from 10.3.7.3
Could not disconnect from 10.3.7.3
Scan finished


  

Link zu diesem Kommentar
Share on other sites

Ich habe es schon fast befürchtet. Kann man evtl in die Firmware einbauen, dass man das fragliche Modbus-Register von Hand einträgt? Es ist ja da, nur halt nicht via SunSpec. 

Und nur mal für mich zum Verständnis: sowohl der Zähler als auch die Batterie sind in meinem Fall wohl über CAN-Bus an den WR angeschlossen. Wenn das stattdessen über Modbus realisiert wäre, dann könnte ich durch den WR quasi "durchgucken" und auf einer anderen Slave-Adresse direkt die Register der angeschlossenen Geräte sehen? 

Link zu diesem Kommentar
Share on other sites

Wir haben gerade noch einen anderen Kunden auch mit Problemen bei Sungrow. Es scheint mir so, dass man die Modbus/TCP Schnittstelle recht schnell überlasen kann.

Wenn ich die richtig verstehe fagst du die Daten ach noch mit anderen Programmen ab. Könntest du versuchen die anderen Abfragen zu pausieren, so dass am besten nur wir alleine mit Modbus/TCP reden können? Dann den Suchbereich auf 247-247 einschränken. Das funktioniert gerade beim anderen Kunden, wenn auch mit Aussetzern.

Link zu diesem Kommentar
Share on other sites

Am 24.4.2024 um 16:01 schrieb photron:

Wenn ich die richtig verstehe fagst du die Daten ach noch mit anderen Programmen ab. Könntest du versuchen die anderen Abfragen zu pausieren, so dass am besten nur wir alleine mit Modbus/TCP reden können? Dann den Suchbereich auf 247-247 einschränken. Das funktioniert gerade beim anderen Kunden, wenn auch mit Aussetzern.

Nichts leichter als das, dazu muss ich ja nur den modbusproxy-Container kurz stoppen.

Allerdings kommt leider der gleiche Effekt:

Starting scan
Resolving 10.3.7.3
Connecting to 10.3.7.3:502
Using device address 247
Using base address 40000
Reading SunSpec ID
Reading timed out, retrying
Reading timed out, retrying
Reading timed out, retrying
Reading timed out, retrying
Reading timed out, retrying
Could not read SunSpec ID (error: TIMEOUT [228])
Disconnecting from 10.3.7.3
Scan finished

Ich habe das mehrfach probiert, immer die gleiche Ausgabe. Genau so zuverlässig kommt aber auf dem Gerät 1 immer das Modell 101 (was mir ja nix bringt).

Da wird es zwischen meinem Setup und dem des anderen Kunden wohl irgendeinen Unterschied geben - andere HW/FW ist natürlich möglich, aber vielleicht halt auch ein anders angebundenes Smartmeter, so dass der WR wie von mir oben schon spekuliert einfach als Bridge fungiert, was er mit einem anders angebundenen Meter nicht kann?

Link zu diesem Kommentar
Share on other sites

Das Device unter 247 wirst du nur haben wenn du den WiNet-S hast, vermute ich. Wenn du den nicht verbaut hast kommt vermutlich nichts unter 247.

On 4/24/2024 at 4:30 PM, f-zappa said:

Ich habe das mehrfach probiert, immer die gleiche Ausgabe. Genau so zuverlässig kommt aber auf dem Gerät 1 immer das Modell 101 (was mir ja nix bringt).

Darf ich fragen, was du em Ende erreichen möchtest? PV-Überschussladen? Dafür muss die Wallbox wissen wieviel Leistung über ist.

Mal von SunSpec weg. Hier eine Firmware die einen ersten Schuss für eine generelle Modbus/TCP Unterstützung hat mit Sungrow SH... Vorlage. Das Mapping und die Auswahl der Sungrow-Werte auf unsere Zähler-API ist absolute experimentel und muss definitiv überarbeitet werden. Ich habe da mal ein erste Auswahl getroffen. Es werden aber alle gelesenen Werte auch im Ereignis-Log ausgegeben.

Also, anstatt einen SunSpec-Zähler, kannst du einen Modbus/TCP Zähler hinzufügen und als Vorlage Sungrow SH... auswählen. Dann werden die 5000er und 13000er Register von Sungrow gelesen.

 

warp3_firmware_2_3_0_66295a34_883722f39fab0eb_merged.bin

Link zu diesem Kommentar
Share on other sites

Das ist der Auszug der Sungrow Daten der anderen Kundenanlage, heute Nachmittag mit etwas Sonne:

Total Output Energy [0.1 kWh] (5004): 40723 (40723 0)
Inside Temperature [0.1 °C] (5008): 296
Total DC Power [W] (5017): 567 (567 0)
A-B / A-N Voltage [0.1 V] (5019): 2346
B-C / B-N Voltage [0.1 V] (5020): 2323
C-A / C-N Voltage [0.1 V] (5021): 2337
Reactive Power [var] (5033): -4 (65532 65535)
Power Factor [0.001] (5035): 1000
Grid frequency [0.01 Hz] (5036): 4996
Total PV Generation [0.1 kWh] (13003): 38096 (38096 0)
Total PV Energy Export [0.1 kWh] (13006): 24716 (24716 0)
Load Power [W] (13008): -1143 (64393 65535)
Export Power [W] (13010): 1522 (1522 0)
Total PV Energy Battery Charge [0.1 kWh] (13013): 7074 (7074 0)
Total Direct Battery Consumption [0.1 kWh] (13018): 6306 (6306 0)
Battery Voltage [0.1 V] (13020): 4006
Battery Current [0.1 A] (13021): 0
Battery Power [W] (13022): 0
Battery Level [0.1 %] (13023): 1000
Battery SoH [0.1 %] (13024): 1000
Battery Temperature [0.1 °C] (13025): 160
Total Battery Energy Discharge [0.1 kWh] (13027): 10292 (10292 0)
Grid State (13030): 0
Phase A Current [0.1 A] (13031): 6
Phase B Current [0.1 A] (13032): 6
Phase C Current [0.1 A] (13033): 7
Total Active Power [W] (13034): 429 (429 0)
Total Import Energy [0.1 kWh] (13037): 37381 (37381 0)
Battery Capacity [0.1 kWh | Ah] (13039): 1920
Total Charge Energy [0.1 kWh] (13041): 11234 (11234 0)
Total Export Energy [0.1 kWh] (13046): 42965 (42965 0)

Und hier im Dunkeln:

Total Output Energy [0.1 kWh] (5004): 40725 (40725 0)
Inside Temperature [0.1 °C] (5008): 289
Total DC Power [W] (5017): 0 (0 0)
A-B / A-N Voltage [0.1 V] (5019): 2338
B-C / B-N Voltage [0.1 V] (5020): 2328
C-A / C-N Voltage [0.1 V] (5021): 2330
Reactive Power [var] (5033): -5 (65531 65535)
Power Factor [0.001] (5035): 1000
Grid frequency [0.01 Hz] (5036): 4999
Total PV Generation [0.1 kWh] (13003): 38097 (38097 0)
Total PV Energy Export [0.1 kWh] (13006): 24717 (24717 0)
Load Power [W] (13008): 335 (335 0)
Export Power [W] (13010): -16 (65520 65535)
Total PV Energy Battery Charge [0.1 kWh] (13013): 7074 (7074 0)
Total Direct Battery Consumption [0.1 kWh] (13018): 6306 (6306 0)
Battery Voltage [0.1 V] (13020): 3980
Battery Current [0.1 A] (13021): 9
Battery Power [W] (13022): 319
Battery Level [0.1 %] (13023): 978
Battery SoH [0.1 %] (13024): 1000
Battery Temperature [0.1 °C] (13025): 160
Total Battery Energy Discharge [0.1 kWh] (13027): 10293 (10293 0)
Grid State (13030): 0
Phase A Current [0.1 A] (13031): 6
Phase B Current [0.1 A] (13032): 6
Phase C Current [0.1 A] (13033): 6
Total Active Power [W] (13034): 319 (319 0)
Total Import Energy [0.1 kWh] (13037): 37381 (37381 0)
Battery Capacity [0.1 kWh | Ah] (13039): 1920
Total Charge Energy [0.1 kWh] (13041): 11234 (11234 0)
Total Export Energy [0.1 kWh] (13046): 42965 (42965 0)

Sorry für das etwas kryptische Format. Der Wert nach dem Doppelpunkt ist der eigentliche Messwert:

<Name> [<Einheit>] (<Adresse>): <Wert> (<Rohdaten>)

Mir ist noch nicht ganz klar wie Load Power, Export Power, Battery Power und Total Active Power im Zusammenhang stehen.

Der untere Fall scheint mir klarer. PV liefert 0W (Total DC Power). Die Batterie wird mit 319W (Battery Power) entladen. Das Haus hat eine Bedarf von 335W (Load Power). Die Differenz von 16W die die Batterie nicht liefert wird aus dem Netz importiert (negative Export Power). Der Wechselrichter liefert dem Haus insgesamt 319W (Total Active Power).

Der obere Fall ist mir unklarer. PV liefert 567W  (Total DC Power). Die Batterie ist voll und wird nicht entladen (Batterie Level ist 100% und Batterie Power ist 0W). Das Haus hat einen Überschuss (???) von 1143W (negative Load Power, wie kann das sein?). Der Wechselrichter macht aus 567W(DC) dann 429W(AC) (Total Active Power)? Gesammt werden 1522W an das Netz exportiert. Die Summe geht nicht auf, da gehen 50W verloren. Vermutlich liegt dass daran, dass nicht alle Werte zum exakt gleichen Zeitpunkt aufgezeichnet wurden.

Zu klären wäre jetzt wie genau die Sungrow-Werte auf unsere Zähler-API zugeordnet werden müssen, damit am Ende etwas sinvolles bei herum kommt.

Nachtrag:

Die negative Load Power kommt daher, dass dort ncoh weiter Wechselrichter sitzen, die auch einspeisen.

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...