TastenWert AnzahlVersuche tempCode maxVersuche timeout timeout4 maxCodeLaenge CodeAnwesend CodeAbwesend timeout2 timeout3 https://forum.iobroker.net/topic/4461/vorlage-flexible-pin-eingabe-mit-blockly/62 Einmalige Initialisierung bei Programmstart Hier beginnt das Triggern Beliebig erweiterbar ne javascript.0.Alarmsystem.PIN.Nummer_1 javascript.0.Alarmsystem.PIN.Nummer_2 javascript.0.Alarmsystem.PIN.Nummer_3 javascript.0.Alarmsystem.PIN.Nummer_4 javascript.0.Alarmsystem.PIN.Nummer_5 javascript.0.Alarmsystem.PIN.Nummer_6 javascript.0.Alarmsystem.PIN.Nummer_7 javascript.0.Alarmsystem.PIN.Nummer_8 javascript.0.Alarmsystem.PIN.Nummer_9 javascript.0.Alarmsystem.PIN.Nummer_0 javascript.0.Alarmsystem.PIN.Nummer_Raute javascript.0.Alarmsystem.PIN.Nummer_Stern Timer für zu lange Eingabepause stoppen timeout Nur ausführen wenn Eingabe nicht geblockt NEQ AnzahlVersuche maxVersuche EQ val javascript.0.Alarmsystem.PIN.Nummer_1 TRUE Die Eingabe an Funktion übergeben 1 javascript.0.Alarmsystem.PIN.Nummer_1 TRUE 250 ms FALSE FALSE EQ val javascript.0.Alarmsystem.PIN.Nummer_2 TRUE 2 javascript.0.Alarmsystem.PIN.Nummer_2 TRUE 250 ms FALSE FALSE EQ val javascript.0.Alarmsystem.PIN.Nummer_3 TRUE 3 javascript.0.Alarmsystem.PIN.Nummer_3 TRUE 250 ms FALSE FALSE EQ val javascript.0.Alarmsystem.PIN.Nummer_4 TRUE 4 javascript.0.Alarmsystem.PIN.Nummer_4 TRUE 250 ms FALSE FALSE EQ val javascript.0.Alarmsystem.PIN.Nummer_5 TRUE 5 javascript.0.Alarmsystem.PIN.Nummer_5 TRUE 250 ms FALSE FALSE EQ val javascript.0.Alarmsystem.PIN.Nummer_6 TRUE 6 javascript.0.Alarmsystem.PIN.Nummer_6 TRUE 250 ms FALSE FALSE EQ val javascript.0.Alarmsystem.PIN.Nummer_7 TRUE 7 javascript.0.Alarmsystem.PIN.Nummer_7 TRUE 250 ms FALSE FALSE EQ val javascript.0.Alarmsystem.PIN.Nummer_8 TRUE 8 javascript.0.Alarmsystem.PIN.Nummer_8 TRUE 250 ms FALSE FALSE EQ val javascript.0.Alarmsystem.PIN.Nummer_9 TRUE 9 javascript.0.Alarmsystem.PIN.Nummer_9 TRUE 250 ms FALSE FALSE EQ val javascript.0.Alarmsystem.PIN.Nummer_0 TRUE 0 javascript.0.Alarmsystem.PIN.Nummer_0 TRUE 250 ms FALSE FALSE EQ val javascript.0.Alarmsystem.PIN.Nummer_Raute TRUE # javascript.0.Alarmsystem.PIN.Nummer_Raute TRUE 250 ms FALSE FALSE EQ val javascript.0.Alarmsystem.PIN.Nummer_Stern TRUE * javascript.0.Alarmsystem.PIN.Nummer_Stern TRUE 250 ms FALSE FALSE javascript.0.Alarmsystem.PIN.Temp_Code TRUE 275 ms FALSE tempCode Initialisierung Bei Programmstart Werte vorgeben. AnzahlVersuche 0 tempCode Maximale Fehlversuche festlegen maxVersuche 3 Länge der Codes festlegen maxCodeLaenge 4 Liste der Codes Beliebig erweiterbar. Auf Länge achten! CodeAnwesend 4321 CodeAbwesend 1234 getCode Code pruefen tempCode TastenWert log *****Eingabe -> tempCode GT abc tempCode maxCodeLaenge Zuviele Eingaben Eingabe löschen und Versuche hochzählen log *****Zuviele Zeichen***** tempCode EQ tempCode CodeAnwesend Eingabe anwesend javascript.0.Alarmsystem.PIN.Display FALSE FALSE javascript.0.Alarmsystem.Alarm.Zielstatus FALSE 0 javascript.0.Alarmsystem.Alarm.Warnung FALSE 0 javascript.0.Alarmsystem.Alarm.schalten FALSE FALSE log Alarmanlage ausgeschalten AnzahlVersuche 0 tempCode PIN richtig javascript.0.Alarmsystem.PIN.Hinweisfeld FALSE tempCode timeout2 3 sec tempCode javascript.0.Alarmsystem.PIN.Hinweisfeld FALSE tempCode EQ tempCode CodeAbwesend Eingabe abwesend javascript.0.Alarmsystem.PIN.Display FALSE TRUE javascript.0.Alarmsystem.Alarm.Zielstatus FALSE 1 javascript.0.Alarmsystem.Alarm.Warnung FALSE 0 javascript.0.Alarmsystem.Alarm.schalten FALSE TRUE log Alarmanlage eingeschalten AnzahlVersuche 0 tempCode PIN richtig javascript.0.Alarmsystem.PIN.Hinweisfeld FALSE tempCode timeout3 3 sec tempCode javascript.0.Alarmsystem.PIN.Hinweisfeld FALSE tempCode timeout 6000 ms Wenn in 5 Sek. keine weitere Eingabe erfolgt dann Eingabe löschen und Versuche hochzählen tempCode javascript.0.Alarmsystem.PIN.Hinweisfeld FALSE tempCode chkVersuche Fehlerhafte Eingaben zählen und Eingabe sperren wenn maxVersuche erreicht. AnzahlVersuche 1 EQ AnzahlVersuche maxVersuche log *****Eingabe gesperrt***** timeout4 5 sec Nach 10 Sek. wieder frei AnzahlVersuche 0 log *****Eingabe entsperrt*****