rrdtool installieren für Wetterstation (für Python3)

  • Hallo,


    lukas12 : nochmal: programmieren ist nicht raten und programmieren ist nicht stumpfes C&P. _Versuchst_ du überhaupt zu verstehen, was du machst? Macht gerade nicht den Eindruck...


    Quote

    Ich glaub jetzt immer mehr dass es aus welchem Grund auch immer an meinem pi4 liegt. der will einfach nichts in die rrd datei schreiben. Kann das überhaupt sein?

    Nein, es liegt an dir bzw. ein deinem Programm. Dein Pi4 versucht nur das Programm abzuarbeiten, dass du ihm vorsetzt. Und wenn das physische Schreiben in die Datei nicht funktionieren würde, dann wäre die Fehlermeldung eine andere.


    Quote

    und wie soll ich es deiner Meinung nach machen?

    Was machen? Also worauf bezieht sich das "es"?


    Gruß, noisefloor

  • Läuft das fehlerfrei?

    Ist das eine Hausaufgabe?

    Glaube ersetzt kein Wissen

  • bombom

    Hausaufgabe Schön wärs dann würde ich den Lehrer um Hilfe fragen

    habe zur Ausbildungszeit etwas Assembler und C gelernt aber nie was mit Datenbanken.

    Das ist jetzt ca 20 Jahre her und ich hab besonderst von Assembler kein plan mehr davon.(Bin ja auch Elektroniker)und mach nur noch SPS und Installationen.


    Nein funktioniert auch nicht

    Code
    pi@raspberrypi:~ $ /home/pi/Desktop/Wetterstation/Neuvorschlag.py
    Traceback (most recent call last):
      File "/home/pi/Desktop/Wetterstation/Neuvorschlag.py", line 10, in <module>
        rrd_Ubergabe = f"{time.time():d} : {temp0}"
    ValueError: Unknown format code 'd' for object of type 'float'


    Mit dem Format muss ich erst googlen


    noisefloor


    Das mit "und wie soll ich es deiner Meinung nach machen?" meine ich wie du das Programiert hättest? vieleicht gar nicht mit rrdtool sondern mit MySQL.

  • Das sollte funktionieren

    Glaube ersetzt kein Wissen

  • bombom

    auch nicht

    Code
    pi@raspberrypi:~ $ /home/pi/Desktop/Wetterstation/Neuvorschlag.py
    The temperature is 21.25 celsius
    Traceback (most recent call last):
      File "/home/pi/Desktop/Wetterstation/Neuvorschlag.py", line 12, in <module>
        rrdtool.update(rrd_Name_01,rrd_Ubergabe)
    rrdtool.OperationalError: /home/pi/Desktop/Wetterstation/temparatur.rrd: error while parsing time in get_time_from_reading - Converted '1572531318 ' to 1572531318.000000, but cannot convert ' '
  • bombom jetzt kommt keine Fehlermeldung aber es scheint trotzdem keine Datei drin zu sein. Wenn ich mit

    Code
    rrdtool graph /home/pi/Desktop/Wetterstation/bild/tempweek.png \
      -s 'now - 1 week' -e 'now' \
      DEF:temp0=/home/pi/Desktop/Wetterstation/temparatur.rrd:temp0:AVERAGE \
      LINE1:temp0#0000FF:Außen \
    "GPRINT:temp0 last:%.1lf °C" \

    eine Grafik erstellen will passiert das

    Code
    pi@raspberrypi:~ $ /home/pi/Desktop/Wetterstation/TemparaturGrafikErstellenweek.sh
    ERROR: undefined vname temp0 last
  • Hallo,


    Quote

    Das mit "und wie soll ich es deiner Meinung nach machen?" meine ich wie du das Programiert hättest?

    Es liegt ja nicht an RRDtool, dass das nicht läuft, sondern lediglich daran wie die Daten, die RRDtool erwartet, nicht richtig übergeben werden. Was sich nicht mit raten aber mit lesen der Doku lösen lassen sollte...


    Schritt 1: Was erwartet RRDtool? So wie es aussieht ein Schlüssel-Werte Paar, getrennt durch einen : . Der Schlüssel ist die Zeit, der Wert ist... halt der Wert. Bei dir die Temperatur. Wenn du `N` beim Schlüssel einsetzt, setzt RRDTool die aktuelle Zeit ein. Macht bei dir auch Sinn, da du die gelesene Temperatur ja direkt in die DB schreiben willst.


    Schritt 2: Was erwartet die Methode `update` des rrdtool Moduls? So wie es die Doku beschreibt werden zwei Argumente erwartet, beide als String. 1. Die Datenbank (ggf. mit Pfad, liegt halt daran, wo die DB relativ zum Python Skript liegt) und 2. das Schlüssel-Werte Paar als String.


    Jetzt bis du dran, das in lauffähigen Code zu gießen.


    Gruß, noisefloor

  • jetzt kommt keine Fehlermeldung aber es scheint trotzdem keine Datei drin zu sein.

    Mach auf der Kommandozeile/Terminal einen Dump der RRD-Datenbank


    Glaube ersetzt kein Wissen

  • bombom meinst du

    Code
    pi@raspberrypi:~ $ rrdtool lastupdate /home/pi/Desktop/Wetterstation/temparatur.rrd
     temp0
    
    1572533295: 21.437

    oder

  • bombom Die grafik bleibt ler

    und beim erstellen kommt die meldung

    Code
    pi@raspberrypi:~ $ /home/pi/Desktop/Wetterstation/TemparaturGrafikErstellenweek.sh
    ERROR: undefined vname temp0 last
  • Code
    rrdtool graph /home/pi/Desktop/Wetterstation/bild/tempweek.png \
      -s 'now - 1 week' -e 'now' \
      DEF:temp0=/home/pi/Desktop/Wetterstation/temparatur.rrd:temp0:AVERAGE \
      LINE1:temp0#0000FF:Außen \
    "GPRINT:temp0 last:%.1lf °C" \
  • Moin, verwende mal für die Line Variable was anderes als temp0.

    zB.

    ...

    DEF:graph=/home/pi/Desktop/Wetterstation/temparatur.rrd:temp0:AVERAGE \

    ...


    Immer wieder gleiche Namen für verschiedene Variablen, das ist nicht übersichtlich und ergibt u.U. Überschneidungen

  • ottosieben

    Hab ich geändert

    hab nochmal nachgesdacht und siehe da es funktioniert

    Code
    rrdtool graph /home/pi/Desktop/Wetterstation/bild/tempweek.png \
      -s 'now - 1 week' -e 'now' \
      DEF:temp1=/home/pi/Desktop/Wetterstation/temparatur.rrd:temp0:AVERAGE \
      LINE1:temp1#0000FF:Außen \

    es Wird nur kein °C angezeigt aber darauf kann ich verzichten

    danke an alle besonderst an bombom. Werde bei Gelegenheit den kompletten cod posten gibt sicher noch andere die sowas machen wollen

    Edited once, last by lukas12 ().

  • es Wird nur kein °C angezeigt aber darauf kann ich verzichten

    danke an alle besonderst an bombom. Werde bei Gelegenheit den kompletten cod posten gibt sicher noch andere die sowas machen wollen

    Wo finde ich den Code? Würde das gerne benutzen. :)


    Mit freundlichen Grüßen

    Frank