Wie virtuelles Keypad für Codeeingabe nutzen?

Begonnen von DocCyber, 16 April 2016, 00:44:21

Vorheriges Thema - Nächstes Thema

DocCyber

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.
Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-4B mit HM-CFG-LAN und viele weitere HM Komponenten, diverse Shellys, Tuya-Geräte, SMA und Solis Wechselrichter, Elgris EnergyManager, go-e Wallbox

dadoc

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");;\
}
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods