Eigene Schaltflächen im Webfrontend

Moin,

brauche mal hilfe, da ich nicht weiterkomme. (Anfänger)
Möchte gerne meine Rollos mit einmal per Schaltfläche (hoch/runter/verschatten…u.v.m.)
ich habe bisher folgendes:

<?
if($IPS_SENDER == "WebFront")
{
        SetValue($IPS_VARIABLE, $IPS_VALUE);
	IPS_SetVariableProfileAssociation("RS_1", 0, "Alle Rollos auf", "", 0x228b22);
        IPS_SetVariableProfileAssociation("RS_1", 1, "Alle Rollos zu", "", 0x228b22);
        IPS_SetVariableProfileAssociation("RS_1", 2, "Verschattung 80%", "", 0x228b22);
	 switch($IPS_VALUE)
    {
        case 0:
        echo "Script 1";
        break;
        case 1:
        echo "Script 2";
        break;
        case 2:
        echo "Script 3";
        break;
		  }
}
?>

ips-webfront.jpg

Es zeigt immer einen Fehler an, weiß aber nicht warum.
Das richtige Script wird aufgerufen, aber es stört mich das die zuletzt gewählte Schaltfläche (Wert der Variable).
Würde eher nur mal kurz ein aufleuchten beim betätigen. Wie bei einem Taster (wenn das geht).

Gruss Sven

Du machst nen Echo mit Script 2 als Ausgabe.
Das dort Fehler in der Überschrift des Fensters steht ist „Normal“ - ist halt ein Ausgabefenster.

ok da bin ich ja beruhigt, brauchte ich ja nur um zu prüfen ob alles richtig abläuft. (echo kommt dann wieder raus :))

Jetzt fehlt nur noch die Sache, das die zuletzt gedrückte schaltfläche hervorgehoben ist.
Würde eher nur mal kurz ein aufleuchten beim betätigen. Wie bei einem Taster (wenn das geht) ?

Hi du,

Das richtige Script wird aufgerufen, aber es stört mich das die zuletzt gewählte Schaltfläche (Wert der Variable).
Würde eher nur mal kurz ein aufleuchten beim betätigen. Wie bei einem Taster (wenn das geht).

wenn ich das richtig verstanden habe, dann mußt du die Zeile wo die eigene Variable geändert wird weglassen.

//SetValue($IPS_VARIABLE, $IPS_VALUE);

(ggf. noch den jetzigen Wert bei der Variable wieder löschen, dass kein Button leuchtet)

Versuch das mal…

und die drei darauffolgenden Zeilen wo du die Association setzt brauchst auch nicht, höchstens einmal, aber diese Einstellung machst du ggf. bei der Variable selbst, ist ja nur einmalig.

Gruß Helmut

ok jetzt hab ich es.
Für den der es auch mal so machen will. Ich werde die Zeit des aufleuchten der Schaltfläche noch der Aktion (Dauer) anpassen. :slight_smile:

habs nochmal verbessert. Die Zeit darf nicht zu knapp sein sonst gehts nicht. (mit größer 1000)

<?
if($IPS_SENDER == "WebFront")
{
	switch($IPS_VALUE)
    {
        case 0:
        SetValue($IPS_VARIABLE, $IPS_VALUE);
        // hier Befehle oder Script
        IPS_Sleep(1000);
        SetValue($IPS_VARIABLE, -1);
        break;
        case 1:
        SetValue($IPS_VARIABLE, $IPS_VALUE);
        // hier Befehle oder Script
        IPS_Sleep(1000);
        SetValue($IPS_VARIABLE, -1);
        break;
        case 2:
        SetValue($IPS_VARIABLE, $IPS_VALUE);
        // hier Befehle oder Script
        IPS_Sleep(1000);
        SetValue($IPS_VARIABLE, -1);
        break;
		  }
}
?>

hi,

super Idee, das werde ich auch mal im Hinterkopf behalten… Danke

Gruß Helmut

Etwas übesichtlicher wid dein Script, wenn du die Funktionen, die nicht vom „case“ abhängen, aus der „switch“-Anweisung rausziehst:

<?
if($IPS_SENDER == "WebFront") {
    SetValue($IPS_VARIABLE, $IPS_VALUE);
    switch($IPS_VALUE) {
        case 0: // hier Befehle oder Script
                    break;
        case 1: // hier Befehle oder Script
                    break;
        case 2: // hier Befehle oder Script
                    break;
	}
    // Buttonwert zurücksetzen
    IPS_Sleep(1000);
    SetValue($IPS_VARIABLE, -1);
}
?>

super danke !

bin halt nicht der super Programmierer :wink:

gruß Sven