FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: DocCyber am 16 April 2016, 00:44:21

Titel: Wie virtuelles Keypad für Codeeingabe nutzen?
Beitrag von: DocCyber am 16 April 2016, 00:44:21
Hallo Forum,

ich verwende eine virtuelles Keypad im Tablet-UI für die Eingabe eines Zahlencodes.
Dabei werden Push-Widgets benutzt, um Ziffern an al_digit (ein Dummy) zu übergeben.
Mein Problem beginnt, wenn ich die nach und nach eintreffenden Ziffern zu einem Code  zusammensetzen möchte, welcher in al_code abgelegt werden soll.

define al_digit dummy
define al_code dummy
define n_al_code notify al_keypad {my $newDigit = Value("al_digit");; my $oldCode = Value("al_code");; my $newCode = $oldCode.$newCode;; fhem("set al_code $newCode")}


Im Grunde eine sehr einfache Sache nach dem Muster:
code = code + ziffer

Leider bekomme ich das mit FHEM bzw Perl nicht hin.  :-[

In diesem Zusammenhang eine weitere Frage:
Wie kann ich einen Dummy mit einem Leerstring initialisieren?
Alles, was ich mit z.B. set al_code eingebe, wird genau so als Wert (STATE) dargestellt...  :'(

Vielen Dank für eure Hilfe.
Titel: Antw:Wie virtuelles Keypad für Codeeingabe nutzen?
Beitrag von: dadoc am 29 August 2016, 15:12:50
Wahrscheinlich hast Du es schon gelöst, aber da ich selbst an so etwas bastele... Bei mir funktioniert es so:
define code_n notify Sender.*:(1.*|2.*|3.*|4.*|5.*|6.*|7.*|8.*|9.*|0.*)  {\
    my $new_digit = $EVENT;;\
    my $bisherige_digits = ReadingsVal("code_d", "state", "");;\
    my $new_code = $bisherige_digits.$new_digit;;\
    fhem("set code_d $new_code");;\
}