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
-
Steffen -
23. Mai 2013 um 16:35 -
Erledigt
-
-
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!
-
-
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:
Codepi@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 Dreamshader,
danke für die schnelle antwort.
das funktioniert soweit, noch eine idee?
Gruß
Steffen -
Hi,
ok ... ich hab' jetzt mal nachgeschaut: das hyt-read scheint ein C-Programm zu sein.
da brauchst Du kein shell_exec ... das ist direkt ausführbar.Versuch mal stattdessen
$output = exec("/dein/programm");
ciao,
-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 -
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ß
SteffenNa 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/programmnameder 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-
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ß
SteffenHi,
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- -
Hallo,
hast leider recht
ich versuche jetzt einfach mal die freigabe in das php file mit einzubinden, sollt hoffentlich gehn.
danke nochmals
gruß
Steffen -
Wenn Du mit Freigabe die Änderung der Rechte meinst, dann wird das wohl auch nix werden.
Guck mal in Post #9 von mir ...cu,
-ds- -
Hab den chmod befehl in die rc.local gepackt und jetzt läuft es
Danke nochmal
Bin begeister von diesem Forum
Gruß
Steffen -
.
da brauchst Du kein shell_exec ... das ist direkt ausführbar.Versuch mal stattdessen
$output = exec("/dein/programm");
exec liefert nur die letzte Zeile der Programmausgabe zurück, shell_exec alles.
Das ist hier der interessant Unterschied. -
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!