Frage zum SMA-Net Telegramm

  • Hallo,


    hat es jemand geschafft das "neue" Protokoll zu entschlüsseln?
    Weil ich habe mir auch was selbst gebaut um es bei mir im Hausüberwachungssystem integrieren zu können.


    Das Protokoll (WR suchen, Adresse zuweisen, usw.) stimmt mit der Beschreibung von SMA (von 2003) zusammen, aber ich bekomme viel mehr Daten als im Protokoll sind.
    Ich habe jetzt so ziemlich alles versucht, aber ich kriege einfach nicht die nötigen Daten raus.


    Mit CMD_GET_CINFO hab ich nun die Daten vom Wechselrichter ausgelesen, aber die Channel Info sagt auch nicht viel über die Struktur aus


    Hat es jemand geschafft das Protokoll zu entschlüsseln?


    Grüße
    Michael

  • Hallo,


    hmm. Und ich habe schon geglaubt dass ich der Einzigste bin der zu doof dafür ist :)
    Ich habe die Kommuikation zwischen Solarlog und SMA mitgeloggt und auch einiges rausgefunden aber bei den Nutzdaten passen mir nur die ersten 3-4 Variablen (UPV 1, UPV 2, IAC Actual, IAC Nominal)
    Danach habe ich es nicht geschafft irgendwelche interessante Daten aus den Bytes auszulesen.


    Ich habe es mit UInt16, UInt32, Single, Double usw. versucht, aber da kam nix brauchbares raus


    Grüße
    Michael

  • Hallo,
    das Problem mit der Zuordnung der geloggten Daten hatte ich auch.


    Hilfreich für die Zuordnung war die SUO-Datei welche SDC bei der Anzeige eines einzelnen WR aufzeichnen kann.
    (gleichzeitig loggt man die Serielle Kommunikation mit).
    Diese SUO Daten kann man folgendermaßen in Excel importieren:
    Excel > Daten > Aus Text > und mit „alle Dateiendungen anzeigen“ die SUO-Datei wählen.
    (das Trennzeichen auf Semikolon stellen).


    Jetzt werden die gesendeten Daten nach Kanälen geordnet angezeigt (die Reihenfolge der Kanäle entspricht dabei der Anordnung Datenstring).
    Mit dem Datenkommunikationsprotokoll
    http://www.sma.de/de/service/d…lbeschreibungen/12/1.html -> "Entwicklungsunterlagen"
    kann man auf Seite 50 die Byteanzahl pro Kanal erkennen (Analogdaten sind 2Byte, und Zählerdaten 4Byte lang).


    Probleme kann es noch durch das Escape-Zeichen (also called "byte stuffing") bei SMA-Net Telegramm geben.
    Das wird in o.g. Protokoll auf Seite 16 erklärt.
    Verständlicher war für mich folgendes:
    http://www.rohde-schwarz.com/www/downcent.nsf/file/Anhang_A_RS232_Schnittstelle.pdf/$file/Anhang_A_RS232_Schnittstelle.pdf unter "Binärübertragung mit Byte-Escaping"
    oder:http://www.generalstandards.com/serialio.php unter "Asynchronous framing" )


    Sobald das Escape-Zeichen (7D) zurückgewandelt ist sollten die Kanäle des SUO-File im hexadezimalen Datenstring erkennbar sein.
    (Dabei kann die E-Total in W/min und h-total in Sekunden angegeben sein.)


    Viel Glück
    michl79

  • Habt ihr das Protokoll inzwischen vollständig interpretiert?
    kurze Info zum Byte-(de)stuffing:
    um den Datenstrom wieder in einen interpretierbaren zurückzuwandeln solltest du folgendes (zurück)ersetzen:


    7D 5E ---zu---> 7E (Vor der Übertragung wird durch den Wechselrichter jedes 0x7E durch die Zeichenfolge 0x7D 0x5E ersetzt, damit Start- und Endbyte nur einmalig vorkommen, byte stuffing)


    7D 5D ---zu---> 7D (Damit 7D auch als "nicht-Escape" zeichen im Datenstrom vorkommen kann)


    Korrigiert mich, wenn ich falsch liege.
    Gruß

  • Ich kann das so bestätigen.


    Hinzu kommt noch, dass bei der Zeichenfolge 7E NN das NN mit 20H bitweise exklusiv verodert werden muss.
    7E entfällt in diesem Fall. Dies gilt aber nicht bei den Kombinationen 7E 5E und 7E 5D und auch nicht für 7E am Telegrammanfang und -Ende.


    Ich lese die Kommunikation zwischen meinem Solarlog und den Wechselrichtern seit einigen Wochen mit einem Arduino mit.

    Viele Grüße von
    Strom aus Sonne
    8,40 kWp - 170° bei 35° Dachneigung - 40 x Kyocera KD210GH-2PU - 2 x SMA SB 4000TL-20 - SolarLog500

  • Hallo


    ich weiss das dieser Post schon relativ alt ist, aber kennt jemand das Protokoll vom SMA Sunny sensorbox?


    ich bekomme die Werte von HEX nicht in eine Dezimal Zahl umgewandelt, Yasdi hilft mir nicht weiter.



    Danke

  • Soweit ich mich erinnern kann gab es bei den Telegrammen von den Wechselrichtern erst eine 32 Byte? lange Startsequenz. Darin war u.A. die Uhrzeit als 4 Byte Unix Timestamp enthalten.
    Darauf folgten die einzelnen Messwerte mal als Integer-, mal als Floating Point Variable. Aber immer? mit 4 Byte Länge.
    Am Ende dann eine 2 Byte CRC16 Checksumme.


    Wie es bei der Sunny Sensorbox aussieht weiß ich leider nicht, habe keine Sensorbox.
    Weil die aber auch über RS485 läuft könnte eine Ähnlichkeit mit der Wechselrichterkommunikation bestehen.
    Weist du denn welche Messwerte die Sensorbox liefert und/oder hast du Mitschnitt der Telegramme?
    Vielleicht kann man aus den Telegrammen etwas ableiten wenn man weiß was alles drin steht.

    Viele Grüße von
    Strom aus Sonne
    8,40 kWp - 170° bei 35° Dachneigung - 40 x Kyocera KD210GH-2PU - 2 x SMA SB 4000TL-20 - SolarLog500