Wie falsche/korrupte Daten korrigieren?

  • Hallo,


    ich habe sporadisch aus diversen Hardware-Gründen den Fall, dass ich SV aus einer Sicherung wiederherstellen muss.


    Dabei zerschießt mir SV@FB/RPi regelmäßig die Daten, und ich möchte nicht jedesmal bis zum Ende des Monats bzw. Jahres warten, bevor ich die falschen Werte korrigieren kann (was händisch auch zu viel Arbeit wäre).


    Daher ganz allgemein die Frage:
    Woher und auf welchem Weg verarbeitet SV die Daten, und folglich an welcher Stelle muss/kann man falsche Werte korrigieren?


    Konkretes Beispiel: das RPi-Dateisystem hatte einen Fehler, daher hab ich ein Backup des gesamten RPi von 11/2014 aufgespielt und den RPi damit gestartet (er lieft also ein paar Minuten mit den alten Daten). Anschließend hab ich SV gestoppt, den gesamten "svrpi"-Ordner von 11/2014 gelöscht, und stattdessen den aktuellen von heute draufgespielt. Man sollte doch meinen, dass damit alle Daten auf dem aktuellen Stand sind, aber SV nimmt für die Tageswerte des Monats sowie für den heutigen Tags (die Zeit vor dem Neustart, siehe Screenshot) Daten aus 11/2014!


    Wie kann ich das korrigieren? Und woher stammen solche falschen Werte überhaupt? Aus dem RAM? Speichert SV noch außerhalb des SV-Ordners was ab?
    (Nachträglich habe ich gesehen, dass auch in /var/tmp was gespeichert wird: Aber zumindest bringt es nichts, das nachträglich zu löschen... hat SV vielleicht beim Start schnell die alten Daten aus /var/tmp genommen, und damit die eigentlich aktuellen Daten in /home/pi/svrpi komprommitiert?)


    Hier ein Beispiel:

  • Hi Weidemann,
    SolarView speichert die Daten alle 5 Minuten in /var/tmp ab. Dieses Verzeichnis liegt normalerweise im RAM und wird bei einem Neustart gelöscht.Von da aus werden die Dateien in die eigentlichen Zielverzeichnisse kopiert, je nach Bedarf. Bei einem Neustart des Rechners kommen die Daten also in der Regel aus dem normalen Verzeichnis von SolarView. Wird nur SolarView neu gestartet, dann aus /var/tmp/...
    Anpassungen an den Werten bitte so durchführen, wie in der Anleitung beschrieben. Wenn Du die js-Daten anpasst, dann kannst Du das nach "Ablauf" der Datei machen:
    Beispiel:
    20160629.js -> Tagesdatei vom 29.06., kann ab dem 30.06. angepasst werden.
    201606.js -> Monatsdatei mit Tageswerten. Kann ab dem 01.07. Angepasst werden.
    2016.js -> Enthält die Monatserträge, kann über die Datei months.dat im Hauptverzeichnis angepasst werden, jederzeit möglich (der aktuelle Monat wird vom Wechselrichter aktualisiert).


    Grüsse,
    Manfred

  • Okay, damit wird vieles klarer... dann hat in meinem Fall SV die alten Daten nach /var/tmp geschrieben, und mit diesen einfach weitergerechnet nachdem ich den /svrpi-Ordner durch aktuelle Daten ersetzt habe.
    Frecherweise hat SV dabei die alten Daten aus /var/tmp irgendwie in den /svrpi-Ordner übernommen (an eine mir unbekannte Stelle), denn ein nachträgliches korrigieren der 201606.js sowohl in /var/tmp als auch in /homepage hat nichts mehr genützt, die wurden beide wieder (aus irgendeiner geheminisvollen Quelle) mit den alten Daten überschrieben.


    Das bedeutet, dass folgendes Vorgehen nötig ist, um Datensalat zu vermeiden wenn man aktuelle Backups von SV auf ein älteres Gesamt-Backup spielen will (bitte schau nochmal, ob das so passt, oder ob weitere Schritte nötig sind):


    1. Aufspielen eines alten RPi-Images
    2. löschen des svrpi-Verzeichnisses
    3. Neustart des PRi: da keine start.sh mehr vorhanden ist, wird SV nicht gestartet. /var/tmp sollte folglich nicht von SV beschrieben werden.
    4. Kontrolle ob das /var/tmp-Verzeichnis leer ist (zumindest frei von SV-Daten). Wenn nicht: löschen und nochmal neu starten.
    5. Rücksichern des aktuellen svrpi-Verzeichnisses, Starten von SV: Da in /var/tmp nichts liegt, sollte SV jetzt "nur" die Daten aus /svrpi sehen, und sich korrekt verhalten. Richtig?

    sonnige Grüße,
    -Weidemann-