Temperatur und Feuchte auf Browser ausgeben per hyt-read

  • Hallo zusammen,
    danke schon mal vorab für eure Hilfe.
    ich habe einen Temperatur-/Feuchtesensor von Hygrochip an meinen Pi angeschlossen und kann die werte auch über das Programm hyt-read (hygrochip-linux-master) mir über die Konsole ausgeben lassen.
    Nun möchte ich die Werte aber auf einem Browser ausgeben lassen. Das Programm liegt in dem gleichen Verzeichnis wie bereits andere Programme die ich per shell_exec ausführen kann und hyt-read besitze auch die gleichen Recht.
    Wie komme ich jetzt an die Daten.
    Möchte mir nur beim drücken auf einen Button die aktuellen Werte, die normalerweise auf der Konsole per printf ausgegeben werden, im Browser anzeigen lassen.
    Ich verwende einen lighttpd webserver.
    Danke nochmals.
    Vg
    Steffen

  • Temperatur und Feuchte auf Browser ausgeben per hyt-read? Schau mal ob du hier fündig wirst!

  • Entweder Werte in DB schreiben, zB mir crontab oder direktaufruf zB mit PHP oder Python. In eine Seite einbinden kann man alles!

  • Die Ausgabe des Programms weden von shell_exec alle an das php-Script übergeben.
    Versuch mal ein

    PHP
    <?php
    $output = shell_exec('./pfad/zu/deinem/programm');
    echo "<pre>$output</pre>";
    ?>


    Den String kannst Du dann beliebig zerlegen.

    Einmal editiert, zuletzt von orb (23. Mai 2013 um 18:14)

  • Hallo,
    danke für eure schnellen Antworten.
    Hab ich alles schon probiert.
    Kann ich irgendwie überprüfen, ob das Programm überhaupt gestartet wird?
    Bin mir da nicht ganz sicher. Das Programm hat soweit ich das verstanden habe keine direkten Ausgabevariablen sonder macht das nur in einem C-File per printf auf die Konsole.
    Danke
    Gruß
    Steffen

  • Hi,

    probier doch bitte mal Folgendes auf dem Rechner, auf dem Dein Webserver läuft:

    Code
    pi@raspberrypi ~ $ sudo bash
    root@raspberrypi:/home/pi# su www-data
    $ id
    uid=33(www-data) gid=33(www-data) Gruppen=33(www-data),1001(piwww)
    $/pfad/zu/deinem/programm

    und schau mal, ob da nicht irgendwas anderes in die Hose geht.

    Eine entsprechende Fehlermeldung würde dann vermutlich nach stderr und nicht stdout gehen ...

    cu,
    -ds-

  • Hallo,
    ich habe noch was rausgefunden.
    wenn ich das Programm als www-data benutzer starte kommt die Fehlermeldung
    opening /dev/i2c-1: Permission denied
    Vielleicht weiß da jemand was damit anzufangen!?
    Danke nochmals
    Gruß
    Steffen

    Hallo,
    hab die rechte für /dev/i2c-1 geändert und jetzt kann ich die werte in eine txt schreiben :D!
    von dort aus muss ich sie jetzt nur noch auslesen, das sollte aber nicht das problem werden.
    Danke nochmals an alle
    Gruß
    Steffen

    Einmal editiert, zuletzt von Steffen (24. Mai 2013 um 11:07)


  • Na dann hast Du es ja schon ... genau darauf wollte ich ja hinaus.
    Entweder änderst Du jetzt die sudoer oder Du machst Folgendes:

    1. Einloggen auf dem Rechner mit dem Webserver
    2. sudo bash
    3. cd /dahin/wo/Dein/Programm/steht
    4. chown root:root programmname
    5. chmod +s programmname
    6. ls -l programmname (sollte was in der Richtung wie "rws-r-s-r-x root root" anzeigen.
    6. cd
    7. su www-data
    8. /Pfad/wo/Dein/Programm/steht/programmname

    der Fehler sollte weg sein.
    ACHTUNG: Sobald Du Dein Programm änderst oder verschiebst/kopierst werden diese "s" aus Sicherheitsgründen wieder gelöscht und Du musst die Prozedur wiederholen.

    cu,
    -ds-

    Hi,
    das wird Dich auf Dauer, fürchte ich, nicht weiterbringen ...
    Soweit ich es noch im Hinterkopf habe, wird die Node /dev/i2c-1 beim Laden des I2C-Moduls immer wieder neu erzeugt.

    cu,
    -ds-

  • exec liefert nur die letzte Zeile der Programmausgabe zurück, shell_exec alles.
    Das ist hier der interessant Unterschied.

    Da hast Du wahr ;) ...

    Ich dachte nur, dass shell_exec() eine eigene shell startet, in der das Programm ausgeführt wird, exec() jedoch nicht.
    Kann ich jetzt nicht belegen, ist nur so eine Idee.
    Dann wäre es evtl. möglich gewesen, dass irgendwelche Ausgaben des Programms im Nirvana landen.

    Naja, hat sich ja erledigt,

    Schönen Tag noch,
    -ds-

Jetzt mitmachen!

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