Fehler Usage: /usr/bin/gpio mode pin mode bei starten eines Pythonscriptes über PHP

Ein neuer Artikel wurde veröffentlicht
  • Hallo,


    ich weiß PHP und Python scheinen wohl nicht so gut zu harmonieren, und es gibt hier schon etliche Themen aber ich finde wie bis jetzt jeder meiner Vorredner nicht mein Problem.:wallbash:^^

    Erstmal warum PHP und Python:

    Ich absolviere ein Praxissemester und im Rahmen dessen soll ich einen Fernlichtassistenten entwickeln und ihn in ein bestehendes Programm implementieren.

    Für meinen Fernlichtassistent habe ich Python verwendet und das bestehende Programm ist leider in PHP, da der Modelltruck für den der Assistent ist von jeden bedienbar sein soll. Die PHP-Seite ist aber nicht über das Internet erreichbar sondern nur über einen eigenes Netzwerk welches der Pi 2B erzeugt. Damit verbindet man sich über W-Lan. Sicherheit ist daher nicht die wichtigste Priorität.


    Was habe ich bisher gemacht?

    Ich habe dem User www-data die Berechtigung mit sudo adduser www-data gpio erteilt auf die GPIO´s zuzugreifen. Der Befehl Groups www-data ergibt auch www-data : www-data gpio

    Dann habe ich mein Pythonscript mit chmod -a+x fernassv3.py für alle User ausführbar gemacht. Der Befehl ls -l ergibt -rwxrwxr-x

    Dann habe ich mein Pythonscript mit #!/usr/bin/python ohne den Befehl python ausführbar gemacht. Ob das nötig war weiß ich ehrlich gesagt nicht.


    Wenn ich nun versuche das Pythonscript über PHP zu starten, finde ich folgende Meldung unter sudo tail /var/log/apache2/error.log:

    Usage: /usr/bin/gpio mode pin mode Damit kann ich leider überhaupt nichts anfangen. Wenn ich mir usage übersetze scheint das Problem wohl nicht zu wissen wie er die Befehle verwenden soll?:conf:


    Ich hoffe, dass ihr mir helfen könnt und ich nicht das Forum um einen Sinnloses Thread erweitert habe weil ich nicht richtig suchen kann oder nicht genug verstanden hab, um mein Fehler in den anderen Threads wieder zu erkennen ^^ Falls es so ist bitte verweist darauf.:danke_ATDE:


    PHP-Code:

    Code
    1. else if ($Switch[0] == 17 && $Switch[1] == 1) {            //Fernlichtassistent
    2.          $val = trim(@Shell_exec("/home/pi/fernlichtassistent/fernassv3.py ".$pins[$Switch[0]]["Ausgang"]." 3"));
    3. }

    Wenn der ganze Code benötigt wird kann ich ihn gerne Nachreichen aber das schaffe ich erst heute Abend.

    Erklären kann ich leider auch nicht viel, da ich mich nur für die Aufgabe in PHP eingelesen habe. Leider war mein Vorgänger mit den Kommentaren auch sehr geizig :angel:

    Auf diese 2 Zeilen kam ich in dem ich den Code des Vorgängers, in dem er auf das Terminal kopiert habe und für meine Zwecke hoffentlich richtig umgeändert habe.

    So konnte ich schon erfolgreich in dem gleichen Programm andere Funktion einbinden. Es waren aber alles Scripte mit der Endung .sh.

    Also leider eher die Methode try and error.


    Python-Code:

  • Soo mal die Lösung :D

    Also eigentlich wurde das tatsächlich schon gesagt. Aber um die Kamera über PHP benutzen zu können. Muss man dem Benutzer www-data die Berechtigung für Video gegeben. Einfach mit dem Befehl sudo adduser www-data videound dann mit sudo systemctl restart apache2 Apache neu starten.


    Beste Grüße

    nico31