DHT11 - Werte in Datei speichern

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    folgendes Problem liegt bei mir an:

    Wenn ich über die Konsole

    Code
    sudo ./Adafruit_DHT 11 4 > data.txt

    ausführe, dann wird auch alles brav in die data.txt geschrieben.

    Und jetzt zu meinem Problem:

    Über einen Java-Thread soll eigentlich der Wert über einen (PHP-) Webservice in eine MySQL-Datenbank geschrieben werden.
    Zunächst möchte ich aber, dass der Thread den Wert in die Datei schreibt.

    Mit

    Code
    Runtime.getRuntime().exec("sudo /home/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver/Adafruit_DHT 11 4 > /home/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver/data.txt");

    passiert leider nichts. Auch wird keine Exception geworfen. Log-Ausgaben vor und nach dem exec() werden korrekt durchgeführt.

    Die Rechte des Java-Programms und der data.txt habe ich testhalber auf 777 gesetzt, um darin liegende Gründe auszuschließen.

    Hat von euch jemand ne Idee, woran es liegen könnte?

    Thx

    • Offizieller Beitrag

    Hi jjb,

    hab den Thread völlig überlesen und hoffe das ich dir doch noch helfen kann :)

    Der Anfang mit dem Runtime.exec ist schon mal ganz gut! Ich würde es dann ein wenig anders machen:

    Durch exec erhälst du ein Process Objekt. Dieses Objekt hat einen Input und einen Output Stream - wir brauchen den Inputstream. Mit Java 6 oder 7 gibt es die Möglichkeit einen Inputstream direkt in eine Datei abzulegen via der File Klasse. Ich denke damit sollte es auf jedenfall klappen ;)


    Wenn da auch noch Probleme sind, dann würde ich nochmal schauen ob es nicht an den Leerzeichen im exec liegt ...


    Gruß
    Turael

    Ich bin ein gefallener Engel namens Turael.

    Einst vor langer Zeit rebelierte ich im Himmel bis Gott mich auf die Erde verbannte.

    Doch meine taten werden kein ende finden....


  • Durch exec erhälst du ein Process Objekt. Dieses Objekt hat einen Input und einen Output Stream - wir brauchen den Inputstream. Mit Java 6 oder 7 gibt es die Möglichkeit einen Inputstream direkt in eine Datei abzulegen via der File Klasse. Ich denke damit sollte es auf jedenfall klappen ;)

    Danke für deine Rückmeldung...
    Hatte es mittlerweile so gelöst, dass ich die Daten aus dem InputStream direkt über einen WebService in eine MySQL-DB persistiere.

    Das mit der File-Klasse war mir bekannt (bin Softwareentwickler ;)).
    Hatte aber bisher kaum mit Linux zu tun und frage mich daher, warum der execute() nicht läuft. Habs auch mit nem String-Array als Argument versucht, aber leider kein Erfolg :(

    Obwohl das Schreiben in eine Datei und anschließendes Auswerten in meinem Fall Quatsch wäre und auch wenn es mit File.write() klappt, würde mich doch interessieren, wie das mit execute() hinhaut.

    • Offizieller Beitrag

    Wenn du des gelöst hast lass es uns / mich wissen ;)

    Ich persönlich hab noch nicht wirklich viel mit der Runtime Klasse zu tun gehabt, daher ist es schön wenn man mal von einen sinnvollen Einsatz hört :)

    Ich bin ein gefallener Engel namens Turael.

    Einst vor langer Zeit rebelierte ich im Himmel bis Gott mich auf die Erde verbannte.

    Doch meine taten werden kein ende finden....

Jetzt mitmachen!

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