Posts by lengi


    Du könntest jeden Button mit einem eigenen OnClick() Ereignishandler versehen.


    So in etwa?


    Edit: @ Tell: magst du dir das auch mal anschauen, hatte diesen Post schon erstellt, bevor ich deinen gesehen habe, aber irgendwas haut hier nicht hin...
    Aber das mit dem übergeben des Namens ist auf jeden Fall ne gute Idee, das werd' ich so übernehmen.



    Kannst du mir sagen, wo ich da einen Fehler gemacht habe? Irgendwie funktioniert das nicht und ich sehe da auf Anhieb eigentlich keinen Fehler




    Edit: Funktioniert jetzt!
    Danke Jungs!!

    Habs hinbekommen, jedoch nur für einen Button.


    Hab mal ein wenig im MDN gestöbert und mir nen paar Sachen zusammen kopiert.


    Dabei ist jetzt folgendes rumgekommen:



    Mein Problem ist jetzt nur noch, dies für mehrere Buttons umzusetzen. Die Beispiele im MDN sind leider immer nur für ein Button, weswegen sich die Beispiele auf mein Problem nicht allgemein anwenden lassen und in Javascript bin ich noch schlechter als in PHP :D


    Meine Buttons sehen ja folgendermaßen aus:


    Code
    <input type="submit" name="btn_play" value="PLAY"></p>


    Wie binde ich den Namen(hier btn_play) in die funktion mit ein, so dass ich zwischen den einzelnen Buttons unterscheiden kann?

    Tag Leute,


    ich stehe noch ganz am Anfang von der Programmierung in PHP.


    Mein Problem ist, dass ich auf meinem Pi einen Webserver laufen habe. Dort habe ich eine Hauptseite und wechsel in einem Content Table verschiedene PHP Dateien durch(per javascript).


    Auf nahezu allen Templates sind Buttons mit Method Get.
    Mein Problem ist, dass ich jedes mal wieder, wenn ich einen Button anklicke, auf die Hauptseite zurück geworfen werde(weil die Seite neu geladen wird), was aber hier nicht sinnvoll ist.


    Die Befehle werden aber ganz normal beim Betätigen des Buttons ausgeführt.


    Code sieht so aus:




    Kann man das irgendwie "abschalten" ?


    Gruß

    Ich glaube es nicht... wie konnte ich das übersehen!


    Nachdem ich schon alle Befehlen von dir eingegeben habe, ist mir bei


    Code
    cat /etc/sudoers


    aufgefallen, dass ich vergessen habe, die Rechte für


    Code
    /home/pi/433Utils/RPi_utils/codesend


    zu vergeben.


    Kurz eingefügt, ausprobiert, funktioniert!


    Tja, so leicht kanns eben auch sein. Du hattest also Recht, die Rechte fehlten!



    Die

    Code
    shell_exec

    hab ich zu

    Code
    exec

    geändert.


    Da das ganze jetzt funktioniert werde ich mich mal an das Sudowebskript von dir setzen, um das ganze auch ne Spur sicherer zu machen.


    Warum dennoch im Browser keine Fehlermeldungen angezeigt werden, ist mir nach wie vor unklar. In der lighttpd Konfig habe ich extra festgelegt, dass diese angezeigt werden sollen...


    Dennoch schon mal vielen Dank!!!
    Jan

    So, jetzt habe ich mal wieder etwas Zeit um mich wieder dem Projekt zu widmen...



    Mache mal etwas bewusst falsch, falsche Parameter oder so. Wenn dann auch keine Fehlermeldung kommt, ist es irgendwo in der globalen Konfig verboten...


    Habe ich probiert, Teile der Seite funktionieren dann nicht mehr, aber eine Fehlermeldung bekomme ich nicht... Muss ich für die Anzeige der Fehlermeldung irgendwelche Rechte vergeben?



    Oder einfach ins Error Logfile gucken: /var/log/apache2/error.log


    Ich nutze lighttpd, falls ich vergessen habe das zu erwähnen.
    In der entsprechenden Log File von lighttpd ist nichts zu finden, was auf ein Problem hinweisen könnte...




    Gruß


    mit

    Code
    error_reporting(E_ALL ^ E_DEPRECATED);
    ini_set('display_errors', true);
    ini_set('memory_limit', '64M'); //Optional, für viele Fehler^^


    Werden Errors dann dort auf der Website angezeigt wo sie auch auftraten


    Zeigt mir ebenfalls nichts an. Hab dafür extra nochmal ne neue Datei angelegt und es wird wieder nichts ausgegeben. Ich kann mir gerade null erklären warum der eine sudo funktioniert und der andere nicht...


    Die Error Log von lighttpd ist übrigens auch leer!

    Seltsam,


    Code
    error_reporting(E_ALL);


    spuckt gar nichts aus, egal wo ich das einbinde.




    Was sagt denn ein "ls -l /home/pi/433Utils/RPi_utils/codesend"? Vllt ist es keine ausführbare Datei?


    Hier kommt folgendes bei rum:


    -rwxr-xr-x pi pi 17475 May 20 19:57 /home/pi/433Utils/RPi_utils/codesend

    jaaaa gut, tut mir leid. Ich dachte das wäre klar, weil ich ja geschrieben hatte, dass ein sudo funktioniert und der andere nicht...:blush:


    Lach mich jetzt bitte nicht aus, aber wo genau finde ich jetzt die Error Log?
    Hab vorhin mal bei google geschaut und habe dann einer Seite entnommen, dass man den Befehl zum Anzeigen der Errors ganz oben am php-Code einfügen muss. Das habe ich getan und wo genau finde ich jetzt die Error Log?

    Ich bin mit Linux leider noch nicht ganz warm, kann aber auch an der Uhrzeit liegen...


    Ich steh gerade irgendwie auf dem Schlauch. Wenn mein Webserver standartmäßig keine sudo's ausführen darf, wieso funktioniert der eine sudo(oben erster Code zum Schalten der Steckdose) und der zweite sudo(codesend) funktioniert nicht?


    Die entsprechenden rechte hatte ich zuvor nämlich schon mal gegeben über:


    Code
    sudo visudo


    und


    Code
    www-data ALL=NOPASSWD: ALL

    Sorry, das mit dem erklären war auf den Post darüber bezogen. Ich hatte deinen Beitrag noch nicht gesehen.


    Wie in meinem Edit geschrieben müsste das dann doch die Lösung geben oder nicht?


    Code
    if(isset($_GET['btnled0'])){
    shell_exec("sudo /home/pi/433Utils/RPi_utils/codesend 20");
    }


    leider habe ich damit immer noch keinen Erfolg :s

    Kannst du mir das mal genauer erklären?


    Der obere code funktioniert ja, also kann ich sudo's ausführen. Nur beim unteren Code weigert er sich...


    edit: okay, das seh ich mir mal genauer an.


    wo wir grad beim Thema wären, gibts eine Möglichkeit an die Fehlermeldungen ranzukommen? Im Terminal bekomme ich ja eine Rückmeldung, was Sache ist. Bei PHP eben nicht.



    edit2: müsste das dann jetzt nicht die lösung bringen?


    Code
    if(isset($_GET['btnled0'])){
    shell_exec("sudo /home/pi/433Utils/RPi_utils/codesend 20");
    }


    leider habe ich damit immer noch keinen Erfolg, ich bin mit Linux leider immer noch nicht so ganz warm. :s

    Tag zusammen,


    ich stehe noch am Anfang was meine PHP Kenntnisse anbelangt und ich bin schon an einem ersten Problem angekommen.


    Ich habe div. Buttons mit denen ich shell_exec Befehle ausführe(Steckdosen schalten).
    Das funktioniert auch soweit. Ich hab If-Abfragen eingebaut, um diese auszuführen.


    Kann mir jemand sagen, warum das hier funktioniert:


    Code
    if(isset($_GET['btnfl1'])){
    shell_exec("sudo /home/pi/rcswitch-pi/send 10111 3 1");
    }


    und das nicht?


    Code
    if(isset($_GET['btnled0'])){
    shell_exec("sudo ./433Utils/RPi_utils/codesend 20");
    }



    btw. im terminal funktionieren beide(die sudo's)!


    Kann man die Basics dazu irgendwo gut verständlich nachlesen?


    Gruß

    Grüßt Euch!


    Ich baue gerade an einem kleinen Homeautomation Projekt. Der Webserver läuft soweit, also das Design ist von der Optik her im finalen Zustand. Jetzt fehlt "nur" noch der gesamte Inhalt der Steuerung.


    Erster Meilenstein soll die Lichtsteuerung sein. Dazu habe ich symbolisch eine LED über einen Button aus meinem Webinterface an und aus gemacht.
    Zunächst hatte ich das ganze mit Flask umgesetzt, was mich auf Dauer aber einfach nur genervt hat, weil ich meine Templates aus Dreamweaver jedes mal Flask-spezifisch umbauen musste.


    Jetzt bin ich auf PHP umgestiegen. Leider sind meine Kenntnisse auf diesem Bereich etwas beschränkt. Deswegen habe ich mit aus unserer Hochschul Bibliothek nen PHP5 Buch besorgt, was ich gerade nach und nach durcharbeite. Kann ja nicht verkehrt sein ;)


    Es hat auch schon funktioniert jene LED mittels PHP an/aus zu machen, was für mich schon ein kleiner Erfolg ist.


    Das ganze habe ich dort folgendermaßen umgesetzt:
    mehr copy+paste, als eigenes Wissen!


    PHP
    <?php
    trim(@shell_exec("/usr/local/bin/gpio -g mode 25 out"));
    if(isset($_GET['btnledon'])){
    trim(@shell_exec("/usr/local/bin/gpio -g write 25 1"));
    }
    else if(isset($_GET['btnledoff'])){
    trim(@shell_exec("/usr/local/bin/gpio -g write 25 0"));
    }
    ?>


    Mein eigentliches Problem ist jetzt jedoch die serielle Kommunikation.
    Ich betreibe an dem RPi ein Arduino Mega und daran über VirtualWire noch einige Nano's.
    Was die Arduinos angeht steht das grobe Gerüst der Programmierung.


    In python konnste ich schon ein wenig mit der seriellen Kommunikation spielen, hat auch alles funktioniert.
    Die serielle Kommunikation soll in beide Richtungen funktionieren!


    Jetzt zu meiner eigentlichen Frage:


    Was würdet ihr empfehlen, wie man diese serielle Kommunikation am besten umsetzt? In PHP? oder mit externen Skripts?
    Ich hab da noch keinen blassen Schimmer. Ich möchte ungern die Arbeit doppelt machen.
    Das ganze ist nicht abhängig von meinen Kompetenzen, ich lese mich in alles neu ein, was auch kein Problem ist, da das ganze sowieso als Langzeitprojekt gedacht ist. Nur muss ich eben wissen, was der sinnvollste Weg dafür ist. Ewig soll es ja auch nicht dauern und neu anzufangen demotiviert mich extrem.



    Gruß
    Jan