Alarm und FTUI: Unterschied zwischen den Versionen
Zeile 17: | Zeile 17: | ||
attr AlarmKeypadDummy setList unlockPin | attr AlarmKeypadDummy setList unlockPin | ||
attr AlarmKeypadDummy userReadings inputPin:key:.[0-9] { return ReadingsVal($NAME, "inputPin", "*") . ReadingsVal($NAME, "key", "0");; }, fails:key:.# { if (ReadingsVal($NAME, "inputPin", "0") ne ReadingsVal($NAME, "unlockPin", "0")) { return ReadingsVal($NAME, "fails", 0)+1;; } else { return 0;; } }, state:key:.# { if (ReadingsVal($NAME, "inputPin", "0") ne ReadingsVal($NAME, "unlockPin", "0")) { return "locked";; } else { return "unlocked";; } }, inputPin:key:.[\<] { my $inputVal = ReadingsVal($NAME, "inputPin", "0");; chop($inputVal);; return $inputVal;; }, inputPin:key:.# { return "";; } | attr AlarmKeypadDummy userReadings inputPin:key:.[0-9] { return ReadingsVal($NAME, "inputPin", "*") . ReadingsVal($NAME, "key", "0");; }, fails:key:.# { if (ReadingsVal($NAME, "inputPin", "0") ne ReadingsVal($NAME, "unlockPin", "0")) { return ReadingsVal($NAME, "fails", 0)+1;; } else { return 0;; } }, state:key:.# { if (ReadingsVal($NAME, "inputPin", "0") ne ReadingsVal($NAME, "unlockPin", "0")) { return "locked";; } else { return "unlocked";; } }, inputPin:key:.[\<] { my $inputVal = ReadingsVal($NAME, "inputPin", "0");; chop($inputVal);; return $inputVal;; }, inputPin:key:.# { return "";; } | ||
In diesem Device kann über den Befehl | |||
set unlockPin <Wert> | set unlockPin <Wert> | ||
der gültige Pincode gesetzt werden | der gültige Pincode gesetzt werden |
Version vom 26. Februar 2018, 14:13 Uhr
Ziel und Voraussetzungen
Auf dieser Seite wird erläutert, wie man das Modul Alarm mit Hilfe eines Keypads aus dem FTUI heraus steuert.
Ziel ist, das TabletUI mit einem Keypad zu schützen während der Alarm aktiv ist und darüber hinaus über Eingabe des korrekten Pins die Alarmanlage zu entschärfen.
- Das Modul Alarm muss installiert sein, das Alarmdevice wird im Folgenden AAA genannt (ansonsten muss der entsprechende Name in den nachfolgenden Beispielen geändert werden)
- Es muss eine laufende TabletUI-Instanz vorhanden sein
1.Schritt: Anlegen eines Dummy
defmod AlarmKeypadDummy dummy attr AlarmKeypadDummy alarmDevice Sensor attr AlarmKeypadDummy alarmSettings alarm0,|AlarmKeypadDummy:.unlocked|unlocked|off # wird durch das Modul Alarm angelegt attr AlarmKeypadDummy event-on-change-reading state,inputPin attr AlarmKeypadDummy event-on-update-reading key attr AlarmKeypadDummy readingList key,inputPin,fails,unlockPin attr AlarmKeypadDummy room Alarm attr AlarmKeypadDummy setList unlockPin attr AlarmKeypadDummy userReadings inputPin:key:.[0-9] { return ReadingsVal($NAME, "inputPin", "*") . ReadingsVal($NAME, "key", "0");; }, fails:key:.# { if (ReadingsVal($NAME, "inputPin", "0") ne ReadingsVal($NAME, "unlockPin", "0")) { return ReadingsVal($NAME, "fails", 0)+1;; } else { return 0;; } }, state:key:.# { if (ReadingsVal($NAME, "inputPin", "0") ne ReadingsVal($NAME, "unlockPin", "0")) { return "locked";; } else { return "unlocked";; } }, inputPin:key:.[\<] { my $inputVal = ReadingsVal($NAME, "inputPin", "0");; chop($inputVal);; return $inputVal;; }, inputPin:key:.# { return "";; }
In diesem Device kann über den Befehl
set unlockPin <Wert>
der gültige Pincode gesetzt werden
Die Userreadings füllen (je nach Änderung des Readings key) die folgenden Readings:
- fails (Anzahl ungültiger Versuche)
- inputPin (Eingabe Pin aufsummiert aus den einzelnen Keys)
- state (locked/unlocked)