433 MHZ Sender über Webserver ansteuern

  • Hallo,

    ich möchte einen 433 MHZ Sender über eine Webseite ansteuern (Die webseite ist auf dem Webserver(Apache2) vom PI).
    Aber mein Skript funktioniert nicht. Diese tools Benutze ich zum ansteuern des Senders https://github.com/ninjablocks/433Utils.git

    Hier mein Fehlerhaftes Skript ich hoffe jemand findet denn fehler wäre sehr dankbar :)

  • Darf denn dein apache user, also der unter dem der apache läuft, auf das home von user pi zugreifen und noch dazu ein sudo command ausführen?

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

  • Hallo,


    ich habe eben erst mit der Raspi Programmierung begonnen. Dank der Anleitung auf
    https://itler.net/raspberry-pi-r…en-ausschalten/

    kann ich jetzt eine LED am Raspi über ein WEB-Formular schalten.
    Jetzt will ich anstelle der LED ein 433 MHz Signal senden.

    Ich habe dazu die Anleitung von hier benutzt
    https://tutorials-raspberrypi.de/raspberry-pis-…izieren-lassen/


    wenn ich ins Verzeichnis /home/pi/433Utils/RPi_utils gehe und dann sudo ./codesend 1234 eingebe, klappt es tadellos.
    Nur die Einbindung ins PHP Script will nicht funktionieren

    Hat jemand einen Tip, wie ich durch Schalten eines Web-Buttons einen Code senden kann ?

    Sonnige Grüße!
    Marcus

    • Offizieller Beitrag

    Hallo marcus1971,

    willkommen im Forum!

    Lunepi hat vor einem Jahr die Antwort schon gegeben. ;) Der User www-data darf weder sudo benutzen, noch im Verzeichnis des Users pi (einfach so) Befehle ausführen. Aber eine Lösung gibt's trotzdem => sieh Dir das sudowebscript von meigrafd mal an.

  • Das scheint bei mir nicht das Problem zu sein. Ich habe die RPi_utils nach /var/www/html kopiert und kann sie dort über Shell auch ohne sudo aufrufen. Nun schaltet ./codesend 1234 auch ohne sudo. Den gleichen Befehl ins PHP script eingebunden und es passiert nichts :(

    Das ist mein bisheriger Code

    <html>
    <head>
    <meta name="viewport" content="width=device-width" />
    <title>Schalter</title>
    </head>
    switch-remote
    <form method="get" action="index.php">


    <input type="submit" value="switch-on" name="switch-on">


    </form>
    <?php

    if(isset($_GET["switch-on"])){
    $val = trim(@shell_exec("cd /var/www/html && ./codesend 13184644"));
    }


    ?>
    </body>
    </html>

    Einmal editiert, zuletzt von marcus1971 (3. September 2017 um 20:50)

    • Offizieller Beitrag
    Zitat von &quot;marcus1971&quot; pid='298294' dateline='1504464558'


    ... und kann sie dort über Shell auch ohne sudo aufrufen.

    Hast Du den Befehl in der Shell als User pi oder als User www-data ausgeführt?

    • Offizieller Beitrag

    OK, oder auch nicht... Du könntest versuchen ob es was bringt, wenn Du www-data zum Eigentümer von codesend machst:

    Code
    sudo chown -cv www-data:www-data /var/www/html/codesend

    (Die Ausgabe bitte hier zeigen.)

    Danach nochmals:

    Code
    ls -l /var/www/html/codesend

    Falls Du dann auch noch nicht senden kannst, fällt mir nur noch eine mangelde Gruppenzugehörigkeit von www-data ein. Dazu müsste ich mich auch erstmal belesen, wie da von codesend die Abhängigkeiten sind. :s

    Evtl. gibts einen Foristen, der codesend über einen "konventionellen" Webserver laufen hat?

  • Hallo,
    ich habe jetzt das Problem so gelöst: der Button ruft ein bash skript auf. Im Script steht dann nichts weiter als der ./codesend 1234 Befehl. So gehts problemlos.
    Vielen Dank für all die Hinweise aus dem Forum!

Jetzt mitmachen!

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