Datentransferprobleme python/bash/rrd Datenbank

  • Liebes Forum,

    ich bin gerade dabei einen Datenaufzeichnung und Visualisierung mittels eines DHT11 Temperatur und Feuchtesensor zu realisieren.

    Das Auslesen der Sensordaten habe ich mit einem kurzen Python Skript realisiert:

    Um die Daten wie von mir geplant in einer RRD Datenbank zu speichern- und diese dann als Graphik darstellen zu können speichere ich diese weiters in einer txt Datei und extrahiere die von mir benötigten Daten.
    Folgend sollen die Daten (Temperatur und Feuchte) in die RRD Datenbank geschrieben werden.

    Die Zwischenspeicherung und die Extrahierung der Daten funktioniert gut- jedoch habe ich zwei Probleme die ich bis dato nicht lösen konnte:

    1. das die Datei als crontab root ausgeführt werden sollte und ich dies mit folgendem Eintrag in die crontab nicht geschafft habe es zum Laufen zu bringen:

    Code
    pi@raspberrypi:~ $ sudo crontab -l
    */5 * * * * /home/pi/Documents/myprojects/DHT11/data_to_rrd.sh

    2. Ich eine Fehlermeldung bzgl. der rrd Datenbank bekomme (zum probieren bis dato nur die Temperatur in der rrd Aufzeichnung:

    Code
    pi@raspberrypi:~/Documents/myProjects/DHT11 $ sudo ./data_to_rrd.sh
    RRD  existiert bereits
    ERROR: /home/pi/Documents/myProjects/DHT11/weatherdata.rrd: expected timestamp not found in data source from 24
    24
    35

  • Kurze Frage vorab: Gibt es einen bestimmten Grund, warum Du den umständlichen Weg über die Textdatei wählst und die Daten nicht über das RRD-Python-Binding ("import rrdtool") direkt in die RRD speicherst?

    Jein- ich habe bis dato die rrd files mit bash erzeugt- und wollte weiterhin diesen weg gehen.
    kannst du einen beispielthread empfehlen wo aus python die daten in rrd geschrieben werden?

    weiterer grund warum ich das bis dato nicht gemacht habe ist- dass ich inhalte externer txt files auch gerne verarbeiten möchte...
    Automatisch zusammengefügt:


    checke mal den Inhalt von $Temperatur. Steht da wirklich nur der Wert drin, oder vielleicht noch ein Leerzeichen/Tab/Nullbyte?

    Sehr guter Tipp danke- da hab ich wohl zuviel extrahiert....

    Kannst du mir noch einen Tipp geben wie ich das file als cronjob mit root ausführen kann- wie beschrieben in problem 1 hab ich das bis dato leider noch nicht zusammen gebracht...

    danke.

    Einmal editiert, zuletzt von käptn (29. September 2016 um 17:23)

  • Lege eine Datei, z.B. rrd_update in /etc/cron.d/ an, mit folgendem Inhalt:

    Code
    */5 * * * * root /home/pi/Documents/myprojects/DHT11/data_to_rrd.sh >/dev/null 2>&1

    Wenn du nichts zu sagen hast, sag einfach nichts.

  • OK Danke- ich probier es aus!

    der hinter Teil bedeudet dass der Output zusätzlich in eine andere Datei geschrieben wird? Bei mir ist jedoch nur der ordner /dev vorhanden, nulls sehe ich nicht

    Code
    >/dev/null 2>&1


    [/quote]

  • Das leitet evtl. Ausgaben deines Scripts auf "/dev/null" ( Datensenke, "datennirvana") um, ansonsten bekommst du die jeweils per Mail zugestellt.
    Ich würde Scripte, die in cron-jobs laufen sollen, immer so schreiben, dass sie nur im Fehlerfall Ausgaben erzeugen, dann kann man sich diese Umleitungen schenken. Alternativ kannst du auch MAILTO='' in dem cron-file setzen, das bewirkt ähnliches.

    Wenn du nichts zu sagen hast, sag einfach nichts.

    Einmal editiert, zuletzt von llutz (29. September 2016 um 17:48)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!