Jump to content

Zwei Stromzähler möglich


Smoki

Recommended Posts

Ja, die Doku soll noch folgen :-) 

Mich wundert nur warum man mehr als einen Stromzähler konfigurieren kann. Ich habe eine WARP2 und habe (weil ich es jetzt ja kann 😁 ) einen zweiten Stromzähler konfiguriert.

Meinen Hybrid-Wechselrichter von SMA über das SunSpec Protokoll:

 image.thumb.png.214a15cc204212f6f5a4bdfbec2f7bb9.png

 

Er zeigt die Werte negativ an was mich sehr wunder (ich speise zu dem Zeitpunkt keine Energie ein). Aber unabhängig davon ... kann ich mit dem zweiten Zähler irgendwas machen? Habe nichts gefunden ... nur, dass er mir jetzt die Werte anzeigt.

image.png.a84fa9b24f8eeb92635d26518ae6f60e.png

Edited by Smoki
Link to comment
Share on other sites

Wir arbeiten gerade daran, PV-Überschussladen als Feature in die Wallboxen zu integrieren. Um das nutzen zu können, brauchst du einen zweiten Zähler, der den Netzbezug am Hausanschluss misst. Viele Wechselrichter stellen diese Information über SunSpec zur Verfügung, weshalb wir die Wallboxen bereits SunSpec-kompatibel gemacht haben. Wer den Netzbezug auf andere Art misst, kann sich als zweiten Zähler einen API-Zähler einrichten und die Werte über eine eigene Anwendung in die Wallbox schieben.

Die Werte deines Wechselrichters sind negativ, weil es sich dabei um PV-Produktion bzw. Energieabgabe aus dem Speicher handelt. Der Wert ist offensichtlich nicht der Netzbezug bzw. -einspeisung am Hausanschluss. Ich interpretiere die Grafik so, dass du ab 8 Uhr morgens etwas Sonne hattest und bis kurz nach dem Mittag ein paar Mal viel Strom gebraucht hast und sonst der Speicher geladen wurde, der gegen 13 Uhr voll war und den Stromverbrauch deines Hauses bis ca. 23 Uhr gedeckt hat.

Wechselrichter, die den Netzbezug messen können, stellen dafür üblicherweise ein zweites Gerät per SunSpec zur Verfügung. Kannst du die SunSpec-Gerätesuche nochmal laufen lassen und das Log hier posten?

Link to comment
Share on other sites

An sich hast du mit deiner Einschätzung von der Grafik recht.

Sie zeigt allerdings nur Werte die vom Speicher kommen oder von der PV-Anlage produziert wird. Der Netzbezug und die Netzeinspeisung fehlen komplett. Wenn der Speicher leer ist beziehe ich ja aus dem Netz. Und eingespeist hatte ich heute auch.

Folgende Geräte findet er mit der Suche:

image.thumb.png.3ff08a38fc030e44d25c995af91e4399.png

Den oberen (der anscheinend Unterstützt wird) hatte ich ausgewählt.

sun-spec-scan-log-warp2-YCm-2024-01-29T16-18-11-765.txt

Edited by Smoki
Link to comment
Share on other sites

Laut Log bricht die Erkennung wegen einer unerwarteten Antwort vom Wechselrichter ab. Es ist möglich, dass es noch weitere Modelle gibt, die dir den Netzbezug liefern könnten. Kannst du uns eine Portweiterleitung einrichten, damit wir uns die SunSpec-Antwort von deinem Wechselrichter genauer ansehen können? Falls ja, leite einfach irgendeinen TCP-Port über 10000 auf Port 502 deines Wechselrichters weiter. Wenn du DynDNS hast, wäre das super, ansonsten kannst du deine IP des Tages per PM an mich schicken oder ich schaue nach, von welcher IP dein letzter Post gesendet wurde. 😉

Link to comment
Share on other sites

On 1/29/2024 at 5:38 PM, Smoki said:

Aber nochmal zur Anfangsfrage:

Kann man mit einem weiteren Zähler aktuell was machen/optimieren/einstellen? Man sieht nur die Werte halt im Graphen, oder?

Aktuell kann man mit dem zweiten Zähler noch nichts machen, außer die Werte ansehen, da PV-Überschussladen für die Wallboxen noch nicht fertig ist. Es motiviert aber Nutzer, es auszuprobieren, und wir bekommen Feedback zu SunSpec, was sich bei der vor einiger Zeit veröffentlichten SunSpec Beta Firmware doch sehr in Grenzen hielt.

SunSpec ist eigentlich ein Standard, allerdings hält sich praktisch kein Hersteller komplett an den Standard, sodass wir auf Nutzerfeedback angewiesen sind, um herauszufinden, welcher Hersteller an welcher Stelle eine Extrawurst braucht.

Link to comment
Share on other sites

Zu deinem Wechselrichter: Die Geräteerkennung bricht ab, weil der Wechselrichter an einer Stelle falsche Daten liefert. SunSpec-Daten sind eine Kette von Blöcken und jeden Block gibt an, wie lang er ist. Bei einem Block wird nun eine zu kurze Länge gemeldet, sodass wir den Anfang des nächsten Blockes mitten in den Daten des vorigen Blockes suchen, was natürlich nicht funktioniert. Da es keine Möglichkeit gibt, die tatsächliche Länge des Blockes herauszufinden, ist das an der Stelle auch nicht zu retten.

Für dich macht das allerdings keinen Unterschied, da ich händisch an den Mustern in den Daten erkennen kann, dass nach dem kaputten Block keine weiteren Blöcke mehr kommen. Das bedeutet allerdings auch, dass du den tatsächlichen Netzbezug nicht über SunSpec auslesen kannst. 😒

Gibt es im Webinterface deines Wechselrichters irgendwelche Einstellmöglichkeiten hinsichtlich SunSpec? Falls nicht, kannst du die Portweiterleitung wieder deaktivieren, da wir dann sowieso nichts anderes aus dem Gerät herausbekommen.

Link to comment
Share on other sites

Hallo @MatzeTF 

ich habe die gleichen Wechselrichter von SMA.

Sunspec kann man nur auf ein anderes Profil umstellen

Zitat aus der SMA Doku

Wenn Sie das SunSpec Modbus-Profil verwenden möchten, können Sie zwischen zwei Profilversionen wählen:
- Kompatibilitätsmodus - ist optimiert für die Unterstützung von Bestandsanlagen.
- Standard (empfohlen) - ist optimiert für SunSpec Konformität und wird kontinuierlich verbessert und erweitert.
Weitere Informationen zum SunSpec Modbus-Profil finden Sie in der Technischen Information 'SunSpec Modbus' unter www.SMA-Solar.com.

Link to comment
Share on other sites

Leider liefert der Wechselrichter auch im Kompatibilitätsmodus die gleichen kaputten Daten. Er behauptet, Daten für zwei MPP-Tracker zu haben, liefert dann aber Daten für sechs. Ich vermute mal, dass du nur zwei Strings an deinem WR angeschlossen hast.

Danke, du kannst die Portweiterleitung jetzt wieder deaktivieren.

Link to comment
Share on other sites

Hallo @MatzeTF

ich habe versucht SunSpec Infos von SMA zu finden und bin über https://files.sma.de/downloads/SunSpecModbus-TI-de-11.pdf gestolpert.

Wenn ich das Log richtig lese ist dies die problematisch Stelle

Found Inverter Multiple MPPT Extension Model (model-id: 160, block-length: 48)
Reading Standard Model
Could not read Standard Model header (error: ILLEGAL_ADDRESS [2])

das SMA PDF sagt dazu:

5 Unterstützte Informationsmodelle
Folgende Informationsmodelle werden unterstützt:
• 001 - Common
• 011 - Ethernet Link Layer
• 012 - IP v4
• 101 - single phase AC Monitoring (701 wird empfohlen)
• 102 - split phase AC Monitoring (701 wird empfohlen)
• 103 - three phase AC Monitoring (701 wird empfohlen)
• 120 - Inverter Nameplate ratings (702 wird empfohlen)
• 121 - Inverter Nameplate settings (702 wird empfohlen)
• 122 - Extended Measurement
• 123 - Inverter Immediate Controls (704 wird empfohlen)
• 160 - DC Monitoring (714 wird empfohlen)
In einer zukünftigen Firmwareversion wird das SunSpec Profil 2.0 erweitert, um die Vorgaben der IEEE1547:2018 zu
erfüllen. Dazu ist die sogenannte 700er Serie von SunSpec Informationsmodellen als Ersatz für die 100er Serie
vorgesehen. Die 100er Serie kann weiterhin genutzt werden, allerdings ist sie in der SunSpec als veraltet
gekennzeichnet.

Es scheint als sollten model-id 100-160 nicht mehr verwendet werden.

Gruß

Jörg

Link to comment
Share on other sites

Wir können nur das nutzen, was das SunSpec-Gerät anbietet. Aktuell bietet der Wechselrichter nur die 100er-Modelle und keine 700er-Modelle an. Dementsprechend haben wir da gar keine Wahl.

Das Model 160 kann mehrere Module enthalten und enthält dafür auch eine Angabe, wie viele Module es enthält. Das Problem ist nun, dass die Angabe für die Module auf 2 steht, anschließend aber die Daten für 6 Module folgen. Die Blocklänge von 48 passt auch zu zwei Modulen. 8 für den Header plus 2 x 20 für die Module. Korrekt wäre jedoch eine Blocklänge von 128. Alternativ sollte halt nach den zwei Modulen Schluss sein und nicht noch Daten für vier weitere Module folgen. Das ist aktuell einfach kaputt.

Link to comment
Share on other sites

Hallo Matze, danke für die Rückmeldung.

Wie können wir als SMA Kunden das am besten mit dem SMA Support kommunizieren?

Ich bin sein einiger Zeit als Linux Sysadmin unterwegs, und bin auch bereit einen Report bei SMA zu öffnen. Sewhe mich aber noch nicht in der Lage das so zu formulieren das es da auch über den First Level Support drüber geht und wirklich bei den Entwicklern landet.

Lässt sich da ein Python Script als POC umsetzen um das Problem zu beschreiben?

 

Gruß Jörg

Link to comment
Share on other sites

Aktuell lässt sich die SunSpec Block-Chain einfach nicht bis zum End Model parsen, da man vor erreichen des Endes einen „Illegal Address“ Fehler bekommt. Praktisch jeder SunSpec-Parser sollte darüber stolpern. Das ist ein so grundlegender Fehler, dass da bei den SMA-Entwicklern jemand gepennt haben muss.

Wie man das am besten am First Level Support vorbei bekommt, kann ich dir leider nicht sagen. Ich hatte schon überlegt, ob du einfach darauf verweist, dass die Information aus der Entwicklungsabteilung deines Wallboxherstellers stammt und die Aussage ist, dass das nur von dem SMA-Entwicklern repariert werden kann. Es kann dann natürlich auch sein, dass sie dir nicht mehr helfen wollen, weil du eine Wallbox benutzt, die nicht von SMA ist. 😉

Link to comment
Share on other sites

Am 30.1.2024 um 18:57 schrieb MatzeTF:

Wir können nur das nutzen, was das SunSpec-Gerät anbietet. Aktuell bietet der Wechselrichter nur die 100er-Modelle und keine 700er-Modelle an. Dementsprechend haben wir da gar keine Wahl.

Das Model 160 kann mehrere Module enthalten und enthält dafür auch eine Angabe, wie viele Module es enthält. Das Problem ist nun, dass die Angabe für die Module auf 2 steht, anschließend aber die Daten für 6 Module folgen. Die Blocklänge von 48 passt auch zu zwei Modulen. 8 für den Header plus 2 x 20 für die Module. Korrekt wäre jedoch eine Blocklänge von 128. Alternativ sollte halt nach den zwei Modulen Schluss sein und nicht noch Daten für vier weitere Module folgen. Das ist aktuell einfach kaputt.

In dem verlinkten PDF steht:

Innerhalb eines Informationsmodells werden Blöcke verwendet, die sich wiederholen, um Datenbereiche mit unterschiedlichen Längen aufzunehmen (z. B. für eine unterschiedliche Anzahl von DC-Eingängen).

Meinen die da das gleiche was du mit "Das Problem ist nun, dass die Angabe für die Module auf 2 steht, anschließend aber die Daten für 6 Module folgen." gemeint hast? Oder ist das was anderens?

Link to comment
Share on other sites

Am 29.1.2024 um 18:34 schrieb MatzeTF:

Zu deinem Wechselrichter: Die Geräteerkennung bricht ab, weil der Wechselrichter an einer Stelle falsche Daten liefert. SunSpec-Daten sind eine Kette von Blöcken und jeden Block gibt an, wie lang er ist. Bei einem Block wird nun eine zu kurze Länge gemeldet, sodass wir den Anfang des nächsten Blockes mitten in den Daten des vorigen Blockes suchen, was natürlich nicht funktioniert. Da es keine Möglichkeit gibt, die tatsächliche Länge des Blockes herauszufinden, ist das an der Stelle auch nicht zu retten.

Für dich macht das allerdings keinen Unterschied, da ich händisch an den Mustern in den Daten erkennen kann, dass nach dem kaputten Block keine weiteren Blöcke mehr kommen. Das bedeutet allerdings auch, dass du den tatsächlichen Netzbezug nicht über SunSpec auslesen kannst. 😒

Gibt es im Webinterface deines Wechselrichters irgendwelche Einstellmöglichkeiten hinsichtlich SunSpec? Falls nicht, kannst du die Portweiterleitung wieder deaktivieren, da wir dann sowieso nichts anderes aus dem Gerät herausbekommen.

Ich habe mir das gestern auch mal genauer angeschaut. Vielleicht kannst du mir was erklären da ich was nicht verstehen:

Auf dem Screenshot von mir sieht man

image.thumb.png.3ff08a38fc030e44d25c995af91e4399.png

model-id: 103 => scheint ok zu sein (so auch in dem Log welches ich angehängt habe:

Reading Standard Model
Found Inverter Three Phase Integer Model (model-id: 103, block-length: 50)

model-id: 122 => nicht unterstützt, kommt hier der Fehler mit den kauputten Blöcken? (im Log kommt hier nämlich kein Fehler) Oder woran erkennt man, dass dieses Modell nicht unterstützt wird?

Reading Standard Model
Found Inverter Measurements And Status Model (model-id: 122, block-length: 44)

kurz darauf wird die model-id: 64870 abgefragt, deren Blocklänge mit 250 angegeben wird. Die Nummer gibt es in SunSpec nicht, oder?

Reading Standard Model
Found Unknown Model (model-id: 64870, block-length: 250)

 

Link to comment
Share on other sites

@Smoki Kurze Einführung in SunSpec.

Die Daten werden als eine Kette von Blöcken dargestellt. Die Kette beginnt mit zwei Registern die die 32bit SunSpec ID 0x53756E53 enthalten. Daran erkennen wir, dass SunSpec unterstüzt wird. Wir laufen alle Modbus-Geräteadressen (1 - 247) durch und versuchen die SunSpec ID zu finden. Wenn die ID vorhanden ist, dann lesen wird die Kette der Blöck aus. Jeder Block beginnt mit der Model ID (ein Register) und der Blocklänge (ein Register). Dadurch können wir uns an der Kette der Blöcke dranlang hangeln ohne alle Blöck verstehen zu müssen. Sondern wir können die Model ID und die Blocklänge lesen, sehen ob das ein Model ist das uns interesiert und dann um die Blocklänge weitergehen, um dann das nächste Model zu lesen. Die Kette der Blöcke endet mit einem Model mit ID 0 und Blocklänge 0.

Unser Scan geht alle Blöcke durch und zeigt dir dann die an die zählerartige Daten beinhalten. In deinem Fall Model 103 und 122. Dabei lesen wir die Daten des 122 Models gerade noch nicht aus, dass ist das was das "Nicht unterstützt" besagt.

Das Problem in das du jetzt läufst betrifft Model ID 160. Das ist ein Model, das wiederholte Unterblöcke beinhaltent. Dessen Blocklänge hängt also von der Konfiguration deines Wechselrichters ab. Wir lesen jetzt hier im Scanvorgang 160 als Model ID und 48 als Blocklänge aus, was 8+2x20 entspricht, wie MatzeTF das oben erläutert. Danach überspringen wir dann die 48 Register, um die nächste Model ID zu lesen und bekommen einen ILLEGAL_ADDRESS Modbusfehler von deinem Wechselrichter. MatzeTF hatte sich das bei dir genauer angesehen und festgestellt, dass wir da wegen der falschen Blocklänge mitten in den Block des 160er Models lesen, was nicht erlaubt ist. Von den Daten her sieht es so aus, als wenn dein Wechelrichter 6 Module angeschlossen hat und daher einen 160er Block mit 6 wiederholten Unterblöcken melden sollte. Er liefert auch 6 wiederholte Unterblöcke, aber die Blocklänge passt nicht dazu. Gemeldet wird eine Blocklänge von 48 (8+2x20), richtig wäre aber wohl eine Blocklänge von 128 (8+6*20). Wenn MatzeTF händsich das 160er Model mit einer Blocklänge von 128 ausliest, dann funktioniert es und nach dem 160er Model folgt das 0er End Model in der Blockkette.

Sprich dein Wechselrichter meldet nach unserem Verständnis nach das 160er Model mit falscher Blocklänge. Im 160er Model steht unter dem N Wert die Anzahl der wiederholten Unterblöcke. Aber auch hier steht in deinem Fall 2, was zur Blocklänge 48 passt, aber nicht zu den wiederholten Unterblöcken die dann wirklich vorhanden sind. Die Daten des 160er Models sind hier inkonsistent in einer Weise, die wir nicht retten können. Das sieht für uns nach einem Fehler im Wechslrichter aus denn nur SMA selbst beheben kann.

Das 64870er Model ist ein Vender Specific Model von SMA. Wir melden dann verwirrenderweise "Unknown" für. Ich ändere das auf "Vender Specific" für die nächste Version.

  • Like 1
Link to comment
Share on other sites

photron hat schon ausführlich geantwortet, aber da ich auch schon angefangen hatte, etwas zu schreiben, hier noch ein paar direkte Antworten auf deine Fragen.

On 1/31/2024 at 9:01 AM, Smoki said:

In dem verlinkten PDF steht:

Innerhalb eines Informationsmodells werden Blöcke verwendet, die sich wiederholen, um Datenbereiche mit unterschiedlichen Längen aufzunehmen (z. B. für eine unterschiedliche Anzahl von DC-Eingängen).

Meinen die da das gleiche was du mit "Das Problem ist nun, dass die Angabe für die Module auf 2 steht, anschließend aber die Daten für 6 Module folgen." gemeint hast? Oder ist das was anderens?

Ich glaube, das ist das Gleiche. Die englischen SunSpec-Dokumente nennen die Blöcke in den Modellen „Module“. Ich vermute, dass dein Wechselrichter zwei DC-Eingänge hat und deswegen zwei Module dafür vorgesehen sind. Die anderen vier sollten dann nicht da sein, sind es aber trotzdem.

On 1/31/2024 at 10:00 AM, Smoki said:

model-id: 122 => nicht unterstützt, kommt hier der Fehler mit den kauputten Blöcken? (im Log kommt hier nämlich kein Fehler) Oder woran erkennt man, dass dieses Modell nicht unterstützt wird?

Nein, Model 122 ist nicht das Problem. Das wird korrekt erkannt, enthält aber keine Informationen, die wir aktuell auswerten. Deswegen wird das als nicht unterstützt angezeigt.

On 1/31/2024 at 10:00 AM, Smoki said:

kurz darauf wird die model-id: 64870 abgefragt, deren Blocklänge mit 250 angegeben wird. Die Nummer gibt es in SunSpec nicht, oder?

Über 64000 liegen herstellerspezifische Modelle. 64870-64879 ist für SMA reserviert. Das ist okay und wird auch korrekt erkannt und übersprungen, weil wir nichts damit anfangen können.

  • Like 1
Link to comment
Share on other sites

Am 29.1.2024 um 17:59 schrieb MatzeTF:

SunSpec ist eigentlich ein Standard, allerdings hält sich praktisch kein Hersteller komplett an den Standard, sodass wir auf Nutzerfeedback angewiesen sind, um herauszufinden, welcher Hersteller an welcher Stelle eine Extrawurst braucht.

Gibt es ein empfehlenswertes SmartMeter zum nachrüsten das SunSpec brauchbar unterstützt?

Link to comment
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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...