Selsames verhalten beim Steuern über Webseite

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Ich habe mir mit Hilfe Euer und Googls Einträgen eine fast Funktionsfähige Webseite zum Steuern und zur Statusabfrage einer einfachen Anlage erstellt.

    Ich schalte über die Webseite ein Licht ein und aus, im Hintergrund laufen kleine php Skripte die die GPIO´s steuern, mit dem Webskript index.php

    schalte ich php Skripts mit Buttons an und aus. Die Statusabfrage und Anzeige mit einen png Bildchen ist auch in index.php enthalten.

    Nun das seltsame verhalten.

    Nach einem Neustart des Raspberry pi Zero W funktioniert die Steuerung des Lichtes über die Buttons, die Statusabfrage der GPIO´s nicht.

    Wenn ich nun mit der Android APP RaspController den Raspi anwähle, auf GPIO Steuerung gehe "ohne etwas zu drücken" funktioniert die Statusabfrage der Webseite

    solange bis ein Neustart des Raspi´s durgeführt wird.

    Anbei die index.php

    Vielleicht könnt Ihr mir helfen

    Ich danke schon mal im voraus

    Spoiler anzeigen

    [code=php]<?php

    function gpio_wert($GPIO) {

    if (file_exists("/sys/class/gpio/gpio".$GPIO."/value")) {

    $status = file_get_contents("/sys/class/gpio/gpio".$GPIO."/value");

    return $status;

    } else {

    return "GPIO nicht aktiviert.";

    }

    }


    $GPIO = array();

    $GPIO['20'] = gpio_wert(20);

    $GPIO['21'] = gpio_wert(21);

    $GPIO['26'] = gpio_wert(26);

    ?>

    <!Doctype html>

    <html>

    <head>

    <meta charset="utf-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta name="viewport" content="width=1024" />

    <meta http-equiv="refresh" content="5">

    </head>

    <body bgcolor=fafafa>

    <table>

    <tr>

    <br><br>

    <a href="php/not-aus.php"><img src="img/not-aus.png" hspace=270></a>

    <br><br>

    <a href="php/licht-an-aus.php"><img src="img/l-schalter.png" hspace=30></a>

    <a href="php/tuer-auf.php"><img src="img/tuer-auf.png" hspace=30></a>

    <a href="php/tuer-zu.php"><img src="img/tuer-zu.png" hspace=30></a>

    <br><br>

    <?php

    echo('#####'."\n");

    if ($GPIO['21'] == 0) { # Licht

    echo "<img src=\"img\licht-an.png\">";

    }

    if ($GPIO['21'] == 1) { # Licht

    echo "<img src=\"img\licht-aus.png\">";

    }

    echo('####################'."\n");

    if ($GPIO['20'] == 0) { # Tür zu

    echo "<img src=\"img\zu.png\">";

    }

    if ($GPIO['26'] == 0) { # Tür auf

    echo "<img src=\"img\auf.png\">";

    }

    ?>

    </tr>

    </table>

    </body>

    </html>[/php]


  • Dein Code verlässt sich darauf, dass jemand anderes die GPIOs aktiviert. Sonst ergeht er sich in wenig sinnvoller Fehlerbehandung, die du ignorierst.

    Du musst die GPIOs also irgendwo selbst initialisieren.

  • Hallo

    Vielen Dank erstmal für die schnellen Antworten.

    Ich habe jetzte die drei Ausgänge in der config.txt initialisiert "gpio=20,21,26=op,dh", leider ist das ergebnis das selbe.

    Ich kann schalten aber die Statusanzeige reagiert nicht.

    MfG Peter

  • Hallo


    Dies "$GPIO['21'] == 1" ist ja nur eine Statusabfrage, ich weiß das der Zustand konvertiert ist.

    Von Fehlerbehandlung habe leider keine Ahnung, da muss ich mich erst durchs Web ackern.

    Aber hat das mit der fehlenden Reaktion vom Status zu tun?

    Gruß Peter

Jetzt mitmachen!

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