RRDtool und Python: Error

  • Hallo zusammen,
    ich habe ein Gewächshaus gebaut und wollte dieses nun mit dem RasPi automatisieren.
    Doch als ich das Python-Skript für die Lüftersteuerung(sie sollte alle 10 min via Cron aufgerufen werden) testen wollte, kam "SyntaxError: invalid syntax" und es markierte mir "Temperatur".
    Hier ist das Programm:

    Ich hoffe ihr könnt mir helfen, wollte nämlich eigentlich heute den 1. Testlauf machen,
    Gruß, vilu

  • Du versuchst offensichtlich Python mit Shell-Kommandos zu mischen. So geht das nicht.

    Zum aufrufen von anderen Kommandos gibt es in Python das subprocess-Modul. Das musst du benutzen.

    Ausserdem vermute ich wirst du in Pfad-Probleme laufen, spaetestens wenn das ganze automatisch gestartet werden soll. Du solltest also alle Pfade pruefen, ob sie nicht absolut angegeben werden muessen.

    Da ich RDD nicht kenne/benutze, kann ich jetzt nur raten, aber so in etwa koennte es klappen:

    Code
    import subprocess
    ...
    cmd = ["rrdtool.update", "/full/path/to/Temperatur.rrd", "-t",  "/full/path/to/temp", "--N:{}".format(temperature)]
    subprocess.call(cmd)
  • Moin, vilu;

    Also rrd-tool ist von der Syntax schon etwas speziell, kann aber mit import des Moduls rrdtool auch direkt von python gefüttert werden.
    Die von dir benutzte Befehlsfolge habe Ich so aber noch nicht gesehen. Hier ein Beispiel von mir, das problemlos funktioniert:

    rasray

  • Die Syntax mit "-t" funktioniert durchaus. Der korrekte Aufruf in python sollte ungefähr so aussehen:

    Code
    rrdtool.update("Temperatur.rrd","-t","temp","N:"+str(temperature))

    Für humidity natürlich entsprechend. Dem Rat, komplette Pfade anzugeben, schliesse ich mich an.

  • :danke_ATDE: erstmal!
    Bevor ich die Antworten gelesen habe bin ich aber auf das hier gestoßen: https://www.forum-raspberrypi.de/Thread-python-…=rrdtool+update
    Natürlich sofort mal ausprobiert und...

    1. I/O Error [Errno 13] Permission denied: '/home/pi/Luefter.py'

    2. SyntaxError invalid syntax und diesmal auch wieder "Temperatur" markiert nur ohne das r (also "Temperatu")

    Was hat das zu bedeuten?

    vilu

    PS: Manul grade ausprobiert 1. ist gleich und der Syntax Error markiert mir jetzt den / im Pfad

    Einmal editiert, zuletzt von vilu (15. Mai 2016 um 11:32)

  • Findest du das wirklich hilfreich, eine Thread zu posten, und dann ist es unsere Aufgabe uns dort rauszuklauben, was du an Code dort rausgezogen hast?

    Bitte poste den Code den *du* ausgefuehrt hast, hier. Denn das Wort "Temperatu" kommt in dem ganzen Thread auch nicht vor. Zumindest laust Browser-Suche, und mehr Arbeit sollte man sich damit nicht machen muessen....

  • Ok
    vom Code her habe ich eigentlich nur die zwei Zeilen geändert um die es hier eigentlich geht: die mit rrdtool.update
    Und die habe ich genau so wie du sie mir geschickt hast übernommen.
    Ich wüsste außerdem nicht wie ich die Fehlermeldungen in einem Code-Tag posten soll da es ein Dialogfeld ist.
    Mit "Temperatu" meinte ich, dass alles rot markiert wurde außer "r.rrd" von Temperatur.rrd

  • "Eigentlich" gibt es nicht. Bitte den Code posten, den du verwendest. Du glaubst du hast nur dies oder jenes gemacht, aber wirklich beurteilen kann man das nur, wenn man den echten Code sieht.

    Und um eine postbare Fehlermeldung zu bekommen, fuehr dein Skript im Terminal aus. Da sollte dann schoen viel Text zum kopieren erscheinen.

  • Hallo zurück!

    Sorry dass ich mich erst jetzt wieder melde, bin in den Ferien dann im Urlaub gewesen und Schule war in den letzten Wochen ziemlich stressig.
    Also ich habe jetzt das Skript im Terminal ausgeführt und diese Fehlermeldung bekommen:

    Code
    File "Luefter.py", line 15
          rrdtool.update /home/pi/Temperatur.rrd -t temp --N:temperature
                                           ^
    SyntaxError: invalid syntax

    Gruß,
    vilu

  • Ich sehe immer noch keinen Code. Insofern ist das alles nur geraten, aber sieht so aus als ob du einfach ein Shell-Kommando mitten in Python ausfuehren willst.

Jetzt mitmachen!

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