2016-04-18 11 views
0

Ich loggen Temp und Humidity von einem DHT22 Sensor auf einem Raspberry Pi 2 läuft neueste Jessie.Convert CSV-Datei in Round Robin-Datenbank

Ich wusste nicht über die Möglichkeiten von RRDtool beim Starten des Projekts, also habe ich mich entschieden, alles in einer .csv Datei namens DataLogger.csv zu protokollieren. Das Logging-Skript ist eine python 3 geschrieben jede Minute mit cron ausgeführt. Das Format sieht wie folgt aus:

2016-04-02 21:23 16.5 45.9 
2016-04-02 21:24 16.5 45.9 
2016-04-02 21:25 16.5 46.0 

So geht es %Y-%M-%D %H:%M \t Temperature \t Humidity

ich zusätzlich in Round Robin einzuloggen alles denke auch so meine Frage ist:

  1. Kann ich die .csv laden Zeilen in ein RRDtool und
  2. Kann ich update von RRDtool verwenden, um die .csv Datei zu überprüfen Minute und aktualisieren Sie die Datenbank

oder muss ich die Daten direkt in die Datenbank protokollieren?

Antwort

1

RRDtool interagiert nicht mit CSV-Dateien. Sie können jedoch ein kleines Skript schreiben, um Ihre vorhandenen CSV-Dateien zu lesen und sie in RRDtool einzutragen. Beachten Sie, dass ein Aufruf der Funktion update mehrere Datenpunkte im Format timestamp:temp:hum annehmen kann.

Sobald Ihre vorhandenen Daten zur Rrd-Datenbank hinzugefügt wurden, fügen Sie der Funktion update immer einen Aufruf hinzu, wenn Sie in die CSV-Datei schreiben.

1

Wie Tobi sagte, müssen Sie Ihr eigenes Skript schreiben, um CSV-Fehler zu parsen und die Daten in Ihre neue RRD-Datei zu laden, da RRDtool selbst keine Funktion dafür hat.

Sie müssen im Voraus das richtige Design für Ihre RRD erarbeiten; Wenn Sie Ihre Daten anschauen, scheint es jede Sekunde zu sein und Sie werden ein 1sec Intervall brauchen und wahrscheinlich wird Ihre erste RRA eine 1cdp = 1pdp sein.

Sie sollten auch daran denken, dass Daten nur mit zunehmender Zeit hinzugefügt werden können; Daher können Sie niemals einen Datenpunkt für einen Zeitpunkt vor der letzten Aktualisierungszeit hinzufügen. Daher müssten Sie zuerst den CSV-Daten-Alt-Punkt hinzufügen und so weiter.