• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Problem mit echo

mario.k

Neues Mitglied
Hallo ich bin neu hier ;)
hab mein Problem schon auf Google gesucht aber nichts gefunden.
ich habe ein raspberry pi 2 mit apache2 und schalte über php meine Relais.
so nun folgendes Problem:
ich habe einen submit botton über den ich den befehl gebe zu schalten und als echo kommt Licht an!
Da es sich um eine Taster Schaltung handelt, wird bei erneuten drücken das licht wieder ausgeschalten, aber als echo bekomme ich logischerweise wieder Licht an!
meine frage ist nun wie bekomme ich zwei echos auf den selben submit botton die immer wechseln ?
hatte schon else probiert hat aber nicht geklappt.
bin totaler Anfänger sry :)
Code:

HTML:
<html>

<body background="hintergrund.jpg">
<head>
<meta name="viewport" content="width=device-width" />
<title> GPIO ueber PHP schalten </title>
</head>
<body>
<center>
<font size="18pt" color="white"> Hausautomation</font>
<br>
<br>
<br>
<font size="6pt" color="white"> Wohnzimmer</font>
<form method="get" action="test.php">
<input type="submit" value="Licht schalten" name="Lichtschalten">

</form>

PHP:
<?php
$modeon17 =trim(@shell_exec("/usr/local/bin/gpio -g mode 4  out"));
if(isset($_GET['Lichtschalten'])){
$val = trim(@shell_exec("/usr/local/bin/gpio -g write 4 0"));
sleep(0.5);
$val = trim(@shell_exec("/usr/local/bin/gpio -g write 4 1"));
echo "<font color='#008000'> Licht An!</font>";

beim erneuten drücken hätte ich gerne das echo: "<font color='#DF0101'> Licht Aus!</font>";
Vielen dank für eure Hilfe und nerven :)
 
Werbung:
daran das das relai geschalten hat und das licht leuchtet.
aber ich fand es eine coole funktion, das man sieht wo es im raum gerade leuchtet und falls ich mal irgendwo drauf komm das ich sehe was ich geschalten habe.
das ganze ist noch im aufbau und git noch einige probleme. ist sowas wie eine alpha phase :)
 
Werbung:
Ich würde sowas in einer Datenbank, zur Not in einer Datei, speichern, dann kannst du jederzeit den aktuellen Stand abfragen und auch ändern.
 
Wenn Du dir das mit PHP und dem Speichern in einer Datei nicht zutraust, könntest Du es mit Javascript machen. So ein Toggle ist eigentlich kein Problem, aber wie willst Du den Grundzustand ermitteln? Wenn die Seite geöffnet wird, weißt Du ja nicht, ob das Licht an oder aus ist und ob Du als erstes "Licht an" oder "Licht aus" anzeigen musst.
 
Werbung:
So weit hab ich noch nicht gedacht, da ich immer am Echo gescheitert bin.
Ich muss mir sich noch überlegen wie ich die analoge Abfrage machen, da man ja auch ganz normal mit einem taster im Raum schalten kann.
 
Ja, vielleicht findest Du ja einen Weg, wie Du die Lage des Relais abfragen kannst. Anders wird es wohl nicht gehen.
 
Ich habe auch schon mal mit dem RPi gespielt, bin mir relativ sicher das eine Möglichkeit existiert den GPIO-Status abzufragen.

Wenn du wirklich was geiles machen willst dann schau die mal node.js an da will ich auch demnächst mal was basteln.
 
Werbung:
http://wiringpi.com/the-gpio-utility/

gpio read <pin> ist wohl das, was du da suchst.
nehmen wir an, du hast den Wert in deinem PHP-Script:
PHP:
    // Staus des Pins auslesen... Annahme 1=An 0=Aus
    $pinstatus = shell_exec("/usr/local/bin/gpio read <PIN>");
   
    if($pinstatus == 1)
    {
        echo "<span style=\"color:#008000;\"> Licht An!</span>";
    }
    else
    {
        echo "<span style=\"color:#DF0101;\"> Licht Aus!</span>";
    }
 
Zurück
Oben