Simples Keypad zum Ausführen Code geschützter Aktionen

Ich habe eine kleines Script gebastelt welches eine eingestellte Aktion ausführt sobald eine vorher definierte Ziffernabfolge eingegeben wurde. Ansätze finden sich im Forum ja bereits viele jedoch habe ich keine Lösung gefunden die für meine Bedürfnisse gepasst hat.

Das Skript ist wirklich nichts besonderes im vergleich zu den Werken die hier sonst teilweise zu finden sind. Aber vielleicht kann doch der ein odere andere damit etwas anfangen oder sich die arbeit eventuell etwas vereinfachen.

Zur Funktion des Skriptes:
Das Passwort besteht aus vier Ziffern. Wird eine falsche abfolge eingegeben, wird die Eingabe gelöscht. Bei der Richtigen Folge wird eine Aktion ausgeführt und ebenfalls danach die Eingabe wieder überschrieben.

Zur Funktion benötigt man lediglich vier String Variablen für die einzelnen Ziffern.

Edit: Ich habe gerade gesehen, dass hier das „ALT+255“ Zeichen als Stern umgesetzt wird. Das Sternschen sollte also in den Zeilen 42, 82, 90 und 99 dadurch ersetzt werden. (Kein Zeichen oder ein normales Leerzeichen sorgt dafür, dass sich die Höhe des Feldes leicht ändert.)

<?
// Variablenprofil fuer Integer Variable:
// 1-9 Ziffern, 10 wird als Wert 0 interpretiert. Alternativ kann auch die "0" als 0 verwendet werden. (-> Reihenfolge).
// 11 löscht die Eingabe.


// Sting Variablen der einzelnen Ziffern
$V1= 54417 ;
$V2= 38866 ;
$V3= 56038 ;
$V4= 20325 ;

//String Variable fuer Sternenfeld
$Stern = 36055; 

//Passwort (1234)
$PW1=1;
$PW2=2;
$PW3=3;
$PW4=4;

//------------------------------------------------------------------------

$Z1 = GetValueString ($V1);
$Z2 = GetValueString ($V2);
$Z3 = GetValueString ($V3);
$Z4 = GetValueString ($V4);

$wert = "$IPS_VALUE";

if ($IPS_VALUE == 10)
	{
	   $wert = "0";
	}

if ($IPS_VALUE == 11)
	{
		SetValueString ($V1, "f");
		SetValueString ($V2, "f");
		SetValueString ($V3, "f");
		SetValueString ($V4, "f");
		SetValueString ($Stern, "*");
	}
	
	elseif ($Z1 == "f")
	{
		SetValueString ($V1, $wert);
		SetValueString ($Stern, "*");
	}
	elseif ($Z2 == "f")
	{
		SetValueString ($V2, $wert);
		SetValueString ($Stern, "**");
	}
	elseif ($Z3 == "f")
	{
		SetValueString ($V3, $wert);
		SetValueString ($Stern, "***");
	}
	elseif ($Z4 == "f")
	{
		SetValueString ($V4, $wert);
		SetValueString ($Stern, "****");

      $Z1 = GetValueString ($V1);
		$Z2 = GetValueString ($V2);
		$Z3 = GetValueString ($V3);
		$Z4 = GetValueString ($V4);

			if ($Z1==$PW1 && $Z2==$PW2 && $Z3==$PW3 && $Z4==$PW4)
			{
			
			//Aktion bei richtigem Code....
			WFC_SendNotification(55146 /*[Haupt]*/, 'Hinweis...', 'Code akzeptiert.', '', 0);



			SetValueString ($V1, "f");
			SetValueString ($V2, "f");
			SetValueString ($V3, "f");
			SetValueString ($V4, "f");
			SetValueString ($Stern, "*");
			}
			else
			{
				SetValueString ($V1, "f");
				SetValueString ($V2, "f");
				SetValueString ($V3, "f");
				SetValueString ($V4, "f");
				SetValueString ($Stern, "*");
			}
	}
	else
	{
	SetValueString ($V1, "f");
	SetValueString ($V2, "f");
	SetValueString ($V3, "f");
	SetValueString ($V4, "f");
	SetValueString ($Stern, "*");
	
	SetValueString ($V1, $wert);
	}
	
	
	
?>

Hallo und danke fürs reinstellen

auf deinem bild sieht das genauso aus wie ich das haben will, leider krieg ich´s einfach nicht hin.
hab 4 string variablen angelegt (muß ich da noch was machen?)
hab sogar 1 variable für * angelegt.

es kommt immer

Undefined variable: IPS_VALUE in C:\IP-Symcon\scripts\53561.ips.php on line 29
line 31 und 36

bitte eine kleine hilfe für absoluten anfänger

Andi

Du darfst das Skript nicht Ausführen. Macht dir noch eine IntegerVariable
Assoziationen 0-9 und als Eigene Aktion das Skript einfügen. Nicht vergessen in Zeile 74 die ID von deinem WebfrontConfigurator einzutragen.

Danke hab´s hingekriegt :), allerdings nur in einer Zeile.
Wie bekommt man es auf 5 Zeilen wie auf deinem Bild?
Du weißt schon 1. zeile ***,2. 1-3,3. 4-6,usw.

ist aber noch nicht so wichtig

Danke nochmal

Andi

Nochmals 4 Integer-Variablen anlegen und mit dem entsprechenden Associationen bestücken und als Actionsskript wieder dieses nehmen.

Zeile 1 => 1 2 3
Zeile 2 => 4 5 6
Zeile 3 => 7 8 9
Zeile 4 => 0 C X

Als Beispiel der Screenshot der Zeile 4