Sun-Watch Daten editieren

Wie kann man die vom Sun-Watch aufgezeichneten Daten editieren?

Vor dieser Fragestellung stand ich, als nach einer kurzen Stromunterbrechung am Vortag der Sun-Watch nach dessen Reboot eine falsche Zeiteinstellung hatte und die aufgezeichneten Daten um eine Stunde verschoben waren, siehe Bild 1.


Bild 1: Die Daten vor 09:30 Uhr sind eine Stunde verschoben.

Um 08:30 Uhr hat sich die Zeit über einen Zeitserver im Internet automatisch richtig eingestellt. Verblieben ist eine unschöne Datenlücke.

Achtung: Die Editieraktion frühestens am Folgetag des Fehler durchführen! Am Tag des Fehlers wird der Dateiinhalt im Speicher gehalten und die Datei immer wieder überschrieben.

Der Sun-Watch legt für jeden Tag im Verzeichnis /data/www/data/2011 eine Datei an. Leider ist der Inhalt im Binärformat enthalten. Jetzt hilft nur noch ein Hex-Editor weiter. Ich habe den GHex unter Linux genommen. Wenn man das Fenster so breit zieht, dass die Datensätze schön untereinander stehen, kann man den Aufbau der Datei leicht durchschauen. Die Datenlücke ist schnell entdeckt, siehe Bild 2.


Bild 2: Datenlücke (rot umrandeter Bereich)

Wenn man die defekten Daten per csv-Export z.B. in OpenOffice ansieht, sind sieben Zeilen mit Null-Werten in der Datenlücke zu sehen. Im Hex-Editor entspricht jede Zeile einem 10-Minuten-Intervall. Die Daten im rot umrandeten Bereich sind zu löschen. Da die Zeitumschaltung nicht exakt an einer 10-Minutengrenze stattgefunden hat, existiert eine Zeile mit Daten, die auch gelöscht werden muss.

Jetzt müssen noch sieben Datensätze am Anfang eingefügt werden, siehe Bild 3.


Bild 3: Eingefügte Datensätze (rot umrandeter Bereich)

Zum Schluss ist zu überprüfen, ob die geänderte Datei exakt die gleiche Größe hat wie die originale Datei, siehe Bild 4. Dann kann sie im Datenbereich des Sun-Watch ablegen (Original-Datei sichern!).


Bild 4: Output des Befehls ls -l zum Vergleich der Dateigröße

Wie man sieht, war die Aktion erfolgreich, siehe Bild 5.


Bild 5: Korrigierte Daten


Erweiterte Editiermöglichkeiten

Kürzlich musste der Wechselrichter unserer PV-Anlage ausgetauscht werden (29.06.2012). Die Bluetooth-Verbindung des neuen WR zum Sunwatch hat nicht gleich auf Anhieb geklappt, so dass die Aufzeichnung der Daten für den Nachmittag und Abend ausgesetzt war. Das wollte ich korrigieren.


Bild 6: Die Daten ab 14:25 Uhr waren verloren.

Der Einspeise-Ausfall durch den Tausch dauerte nur etwa eine halbe Stunde. Die Tagesdaten des neuen WR konnte ich über den SMA-SunnyExplorer ermitteln: 10,86 kWh. Ziel war es also, das Tagesdiagramm so zu ergänzen, dass es in etwa der Realität entspicht und dass der Tagesertrag stimmt. Der Hexeditor ghex (siehe oben) eignet sich nicht gut, da das Kopieren und Einfügen ganzer Zeilen oder Abschnitte nicht geht. Ich fand eine Möglichkeit zum Editiern der Binärdaten mit dem vi-Editor:

Zur Erklärung:

In dieser Darstellung sind es 144 Zeilen (mit je einem 10min-Zeitabschnitt) Die ersten beiden Spalten kennzeichnen den Wert E-Total (8 Byte), dabei gilt innerhalb der Zwei-Byte-Gruppen little endian und innerhalb der Vier-Byte-Gruppe und der Acht-Byte-Gruppe big endian.

Beispiel:

Bild 7: Ausschnitt aus Hex-dump im vi-Editor

Zum schnellen Anzeigen des hexadezimalen Inhalts eines solchen Files kann auch der Befehl (od - octal dump) verwendet werden:
od -x -w40 00_20121008.dat
Das geht auch direkt in einer Console des Sunwatch.

Über eine logger-Abfrage können die Klar-Werte von E-Total ermittelt werden:
echo -e "GETDAY;20120629;0;0;E-Total" | netcat sunwatch 22222
bzw. alle Werte untereinander schreiben:
echo -e "GETDAY;20120629;0;0;E-Total" | netcat sunwatch 22222 | tr ";" "\n"
ergibt 144 Zeilen, wovon 113 nicht 0 sind.

Ich entnahm einen Abschnitt aus dem Datenfile vom 18.06.2012, da dieses dem Aussehen der Kurve vom 29.06.2012 recht gut entsprach. Nach dem ersten Versuch musste ich feststellen, dass der Tagesertrag jetzt negativ geworden war. Wie kam es dazu?
In jedem Diagramm wird der Tagesertrag berechnet aus: ( Endwert - Anfangswert ) * Korrekturfaktor
D.h. über den Endwert kann der Tagesertrag korrigiert werden. Das habe ich durch Herantasten gemacht, es hat zum Erfolg geführt.


Bild 8: korrigiertes Bild mit richtigem Tagesertrag





[ Stand: 02.10.2022 | Gregor Krannich | Homepage Gregor & Cornelia Krannich ]