einzelne Instanz (Keymatic) mit Passwort

Moin moin - iFront nehme ich gerne als „Universalfernbedienung“. Einerseits ist es ja sehr praktisch, dass ich damit auch die Keymatic bedienen kann, aber für diese Instanz (und andere kiritische Instanzen) hätte ich gerne eine Passwort-Absicherung. Lässt sich sowas realisieren?

Moin

Hab zwar kein Ifront aber fürs Webfront gabs mal ein Beispiel dafür.
Hab ich mir für meine Keymatic angepasst und vielleicht hilfts dir ja.
Du musst dafür eine Pinvariable angelegen mit dem Variablen Profil z.B. 0-10 (kann man natürlich auch mit weniger/mehr Zahlen/Buchstaben machen) die 10 hab ich als zurücksetzten/löschen angedacht.

Die Variable mit einem Skript verbinden und dahinein kommt dann das hier:

<?

$code = "0815";  //hier Code einstellen

if ($IPS_SENDER == "WebFront")
	{
   SetValue(32736 /*[EG\WF\KEYMATIC\Pin]*/, $IPS_VALUE);   //Damit man im Webfront sieht was man gedrückt hat
	if($IPS_VALUE==10)         //10 ist im Webfront C
	   {
	   $pin = "";        //pin löschen
       }
	 else             //eingabe 0-9
	   {
		$pin=getvalue(13765 /*[EG\WF\KEYMATIC\Tür öffnen\Pinzusammen]*/); //schon eingegebene Pins auslesen
		$pin.=$IPS_VALUE;    //neue Pinnummer dranhängen
		IPS_SetScriptTimer($IPS_SELF,30);      //TImer auf 30 sek. siehe unten Timerevent
		}
   setvalue(13765 /*[EG\WF\KEYMATIC\Tür öffnen\Pinzusammen]*/,$pin);    //neuen Pin speichern
	}

if (strlen($pin)>3)     //wenn Pin Vollständig
	{
	if ($pin == $code)                    // prüfen, ob Eingabe korrekt ist
		{
		HM_WriteValueBoolean(58485 /*[EG\WF\KEYMATIC]*/, "OPEN" , true);      //Keymatic aufschließen
	   print "Code Richtig";
		}
	else                                          // Eingabe ist falsch
		{
  	 	print "falsches Passwort";
		}
	setvalue(13765 /*[EG\WF\KEYMATIC\Tür öffnen\Pinzusammen]*/,"");      //Pin löschen
   SetValue(32736 /*[EG\WF\KEYMATIC\Pin]*/, 10);     //Variable im Webfront wieder auf "C" setzen
   }
   
   
if ($IPS_SENDER == "TimerEvent")    //Pin nach 30Sec. ohne eingabe zurücksetzen
{
	   setvalue(13765 /*[EG\WF\KEYMATIC\Tür öffnen\Pinzusammen]*/,"");
	   IPS_SetScriptTimer($IPS_SELF,0);    //Timer löschen
	   SetValue(32736 /*[EG\WF\KEYMATIC\Pin]*/, 10);
}
?>

Musst noch einen Varible anlegen wo IPS die bisher eingegebenen Pins ablegt. Bei mir 13765 /[EG\WF\KEYMATIC\Tür öffnen\Pinzusammen]/ und die orginal Variable zum Schalten im Webfront ausblenden lassen.

Gruß Jannis

KeymaticPin.gif

Danke, Jannis. Hab das Skript gerade installiert, läuft noch nicht ganz so, wie es soll, ist aber ein super Ansatz. Werde am WE noch so ein oder zwei Details anpassen, dannn läuft es.
nette Grüße, Sven

tolle idee, hab ich jetzt auch mal so eingebaut.
blos bei den variablen bin ich mir nich sicher ob integer float oder string.
die erste hab ich als integer variable und die zweite wo der code gespeichert
wird ging nur mit string variable. ich hoff des is richtig so, aber bis jetzt läufts :o

gruß basti

Oder das hier.

Ein klein wenig mehr Aufwand, funktioniert aber ganz gut.