FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: alpha1974 am 15 Januar 2016, 09:05:36

Titel: [FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: alpha1974 am 15 Januar 2016, 09:05:36
Guten Morgen miteinander,

ich möchte gerne einen Homestatus-Button mit einer PIN-Eingabe "koppeln" und frage mich gerade, ob ich dazu das Rad neu erfinden muss oder ob es im unendlichen FHEM-Universum schon ein paar Code-Schnipsel als Vorlage gibt ;-)

Ziel: Der Homestatus soll im UI nur nach Eingabe eines PIN-Codes geändert werden können.

Simpelste Lösung ist es natürlich, am Endgerät (Tablet) eine PIN-Displaysperre einzurichten.

Eleganter, weil universeller, fände ich es aber, im Tablet-UI eine Art Keypad einzurichten (siehe Screenshot im Anhang). Die einzelnen Ziffern könnten Push- oder Button-Widgets sein, deren Data-Device jeweils ein Ziffern-Dummy-Device ist. FHEM müsste dann den Rest übernehmen, also die gedrückte PIN-Ziffer und alle folgenden PIN-Ziffern "merken" und auswerten und bei einem Match auf den richtigen PIN-Code den zuvor ausgewählten Homestatus aktivieren.

Meine Problem(chen) bisher:
1.
Wie kriege ich ein "Eintipp-Feeling" für jede einzelne Ziffer hin? Die Ziffer müsste kurz die Farbe ändern und dann wieder zurückspringen. Ich könnte dazu unter FHEM den state des Dummy-Devices nach z.B. 1 Sek. wieder zurücksetzen, aber das finde ich irgendwie "oversized". Vielleicht gibt es ja im Tablet-UI auch schon was Passendes?

2.
Wie mache ich die Veränderung des Homestatus von der vorherigen PIN-Eingabe abhängig? Im UI müsste sich beim Antippen auf einen anderen Homestatus das Keypad "aktivieren" oder zumindest ein entsprechender Hinweis erscheinen (ginge wohl über ein weiteres Dummy-Device, wenn FHEM ein Get auf den Homestatus erkennt und dann einen Hinweis-Dummy aktiviert, der im UI eine entsprechende Meldung anzeigt). Wenn dann die richtige PIN eingegeben ist, müsste FHEM den (zunächst nur vorläufigen) Homestatus "scharf" schalten. Also noch mehr Dummy-Devices, um die Zwischenzustände zu speichern?

Nach meinen bisherigen "absolute beginner"-Überlegungen ist das alles sehr FHEM-lastig und erfordert bei jedem Klick eine Menge Interaktion zwischen UI und FHEM. Aber vielleicht hat ja jemand schon etwas Ähnliches erfolgreich umgesetzt  ::)

Davon bin ich leider noch weit entfernt, weil mir jegliche Auswertung/Verknüpfung zwischen Homestatus und PIN fehlt:
<li data-row="1" data-col="4" data-sizex="3" data-sizey="3">
    <header>HOMESTATUS</header>
<div>
<div data-type="homestatus" data-device='homestatus'
data-get-on='["1","2","3","4"]'
       data-alias='["Home","Night","Away","Holiday"]'
       data-icons='["fa-home","fa-bed","fa-car","fa-suitcase"]'>
</div>
<div data-type="label" class="cell">PIN-Code</div>
     <div data-type="push" data-icon="" data-device="keypad1">1</div>
     <div data-type="push" data-icon="" data-device="keypad2">2</div>
     <div data-type="push" data-icon="" data-device="keypad3">3</div>
     <div data-type="push" data-icon="" data-device="keypad4">4</div>
     <div data-type="push" data-icon="" data-device="keypad5">5</div>
</div>
     <div data-type="push" data-icon="" data-device="keypad6">6</div>
     <div data-type="push" data-icon="" data-device="keypad7">7</div>
     <div data-type="push" data-icon="" data-device="keypad8">8</div>
     <div data-type="push" data-icon="" data-device="keypad9">9</div>
     <div data-type="push" data-icon="" data-device="keypad0">0</div>
     <div data-type="push" data-icon="fa-key" data-device="keypadenter"></div>
</li>


Besten Dank für hilfreiche Hinweise,
alpha1974
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: CoolTux am 15 Januar 2016, 09:15:39
Wenn ich Dich richtig verstehe, willst Du nicht das Homewidget zur umstellung verwenden (das soll wahrscheinlich nur den Status anzeigen, also readable) sondern Du willst ein 4-16 Zeichen Code und das pro Homestatus.

Nehmen wir mal den einfachsten Weg. 4 Zeichen. Soll ja sicher sein. das pro Status. Also wenigstens Home und Away. Muss sich also Deine Familie schon mal 2 Zahlenfolgen a 4 Zeichen merken.
Da fragt meine Frau als erstes für was der Quatsch gut sein soll und meine 13 jährige schüttelt verständlicher Weise den Kopf.

Vielleicht magst mal kurz die Hintergründe erklären damit die Lesenden und Helfenden welche sich dann Kopf machen verstehen wieso der Fragesteller, in meinen Augen, solch einen Blödsinn haben will/muss.

Wenn dann würde ich da wirklich über die Tablet Pin-Sperre gehen. Die kann man auch an und aus schalten. Das AMAD Modul unterstützt das z.B. seit kurzem in der Developerversion.



Grüße
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: alpha1974 am 15 Januar 2016, 09:54:53
Hintergrund ist, dass ich mich frage, ob man software-mässig über das UI ein Keypad wie dieses (http://www.fhemwiki.de/wiki/Z-Wave-ZIP_WT-RFID_Keypad) nachbilden kann (natürlich ohne RFID). Ausreichend wäre dafür ein gemeinsamer PIN für alle Statusänderungen, also nicht für jeden Status ein eigener PIN. Denkbarer Anwendungsfall wäre z.B. eine pin-gesicherte Scharf(ab)schaltung von Einbruchmeldern über ein im Flur hängendes Tablet.

Abstrahiert liefe es darauf hinaus, dass das Schalten einzelner Devices pin-gesichert ist (im Unterschied zur Tablet-Display-Sperre oder auch zur Authentifizierung über den Web-Server).

"haben will/muss" ist es natürlich nicht, sondern eher "wissen wollen, ob". Für Frau und Kinder sind PIN-Sperren hier auch nicht nötig, aber für andere Personen (angefangen bei der Putzfrau bis hin zum Einbrecher mit technischem Grundverständnis) würde ich nicht nur auf edukative Maßnahmen setzen wollen ;D
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: CoolTux am 15 Januar 2016, 10:06:52
Ah also vorerst ein proof of concept.

Dann würde ich es anders nennen. Hoffe ich habe Dich korrekt verstanden. Vorerst geht es darum eine Nummerfeld ab zu bilden und des sinnvoller Weise in FHEM ein zu binden. Am Ende des ganzen soll dann ein Deaktivieren einer z.B. Alarmanlage stehen. Es geht also nicht darum den Homestatus pro Bewohner zu ändern, sondern etwas/ein einziges auf Basis einer Pineingabe zu schalten.

KORREKT?
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: alpha1974 am 15 Januar 2016, 10:43:54
Korrekt!

Ablauf: Code im Keypad im UI eintippen + bestätigen (oder noch schöner: quick unlock ohne Bestätigen, wenn PIN richtig)-> FHEM macht $irgendwas (z.B. schaltet Alarm scharf/unscharf).

Ausbauvariante: Klick auf Push- oder Button-Widget im UI (z.B. "Alarmanlage ausschalten" oder "AV-Receiver/TV mit Ü18-Programm starten"  ;D)-> Keypad geht auf -> weiter wie oben

Der Homestatus-Button war nur mein Ausgangspunkt, weil er nach meinen Verständnis auch nichts anderes als ein Mehrfach-Schalter ist, der ein Device auf unterschiedliche States setzt (je nach Anwendungsszenario eben auch für jeden Bewohner separat).
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: CoolTux am 15 Januar 2016, 11:55:07
Lösungsansatz FHEM:

4 Dummys. der letzte Dummy wird von einem notify getriggert. Dieses notify holt sich die bereits eingegebenden Zahlen der 3 vorherrigen Dummys plus des vierten Dummys und vergleicht den erhaltenden String mit einem vorhanden. Passt der String wird irgendwas ausgelöst.

Lösungsansatz FTUI: Pro Dummy eine Nummerntastatur (das wird viel).

Das ist jetzt echt nur mal so aus Spaß an der Freude überlegt worden. Das mit den FTUI ist wohl noch mehr wie überdenkenswert     ;D
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: kumue am 15 Januar 2016, 12:02:40
Es gibt sowas für smartvisu.

https://github.com/bgewehr/smartVISU/blob/master/widget_auth_switch.html (https://github.com/bgewehr/smartVISU/blob/master/widget_auth_switch.html)

Vielleicht hilft das weiter...
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: Stril am 15 Januar 2016, 12:06:21
Hallo!

Ich habe mir das auch schon überlegt und wollte es über eine Sequenz lösen:

Die Zahlen als einzelne Buttons definieren, die einen Dummy schalten. Wenn der Dummy dann die Sequenz
1234# erkennt, wird ein Dummy geschaltet, der wiederum per Notify nach 60s zurück gesetzt wird.

Ungetestet!

Gruß
Phil
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: alpha1974 am 15 Januar 2016, 15:34:05
Smartvisu mit auth_switch hatte ich mir auch schon angesehen, aber das übersteigt leider meine Fähigkeiten um ein Vielfaches  :-[

sequence-Device ist ein guter Hinweis. Die Commandref liest sich so, als könnte man das zur PIN-Erkennung zweckentfremden, wobei der richtige PIN (=Abfolge von Zahlen-Dummy-Schaltern) dann wohl hardkodiert in der Sequence definiert werden muss (fände ich aber nicht schlimm). Ich versuche mich mal daran...

Habe übrigens gerade noch einen anderen Thread (http://forum.fhem.de/index.php/topic,28223.15.html) gefunden, in dem nicht nur über die Sinnhaftigkeit eines PIN-Code-Schutzes sinniert wurde, sondern auch über Lösungsansätze, die dann aber nicht über FHEM, sondern von der Client-(Android)-Seite aus über Tasker angegangen wurden. Müsste dann aber auf allen Clients eingerichtet werden.
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: alpha1974 am 16 Januar 2016, 12:07:54
Just for the records: Das Keypad im Tablet-UI nachzubilden, war nicht besonders schwierig. Alle Tasten "schalten" auf dasselbe Dummy und weisen ihm den jeweiligen Zahlen-Wert zu. Ein Notify setzt den Tastendummy nach einem Event wieder auf "NUL" (als Pendant zum Push-Widget, das auch nur einen Tastendruck und kein Gedrückt-Halten suggeriert).

Für die Alarm-Scharfschaltung im UI gibt es ein Switch-Widget, das den Alarm-Status auf scharf schaltet. Da data-set-off leer ist, kann man über das Switch-Widget nur scharf, aber nicht unscharf schalten. Die Unscharf-Schaltung via PIN wird über FHEM geregelt: Ein sequence-Device triggert, wenn der Tastendummy die richtigen Zahlen in der richtigen Reihenfolge liefert (je nach DEF des sequence-Devices entweder mit "Enter"-Bestätigung oder als quick unlock nach der letzten richtigen PIN-Ziffer). Ein weiteres Notify-Device schaltet dann den Alarm-Status unscharf, wenn das sequence-Device triggert. UI- und FHEM-/Code siehe unten....

NOTA BENE: Funktioniert, ist aber vom Sicherheitsaspekt her vermutlich nicht mehr als eine hübsche Verpackung. Zum einen triggert das sequence-Device auch, wenn man zwischen zwei richtigen PIN-Ziffern eine falsche eingibt, solange alle Tasten-Events innerhalb der sequence-Zeitspanne liegen. Das kann man evtl. durch entsprechend kurze Zeitvorgaben etwas abmildern.

Zum anderen ist es eher sportlich, das Switch-Widget zum Scharf-Schalten allein dadurch am Unscharf-Schalten zu hindern, dass data-set-off leer bleibt. Etwas sicherer (aber auch nicht im Sinne von echter Absicherung) dürfte es sein, wenn FHEM den Alarm-Status nur dann auf Unscharf setzt, wenn vorher das sequence-Device getriggert hat. Aber auch das ist natürlich keine echte Hürde. Dazu bräuchte man FHEM-Boardmittel, um ein "set" auf ein beliebiges Device abzusichern. Dazu habe ich aber bislang noch nichts gefunden.

Andererseits reicht mir die bisherige Lösung für das Anwendungsszenario "Tablet im Flur". Der Durchschnittseinbrecher müsste, nachdem er "drin" ist und dabei einen Voralarm ausgelöst hat, innerhalb einer begrenzten Zeitspanne dahinter kommen, wie er das UI hackt und den Alarm-Status mit einem gezielten set auf unscharf setzt. 

Fazit für mich: Sieht hübsch aus und ist besser als nix, aber mehr auch nicht. Die Flexibilität von FHEM ist aber immer wieder faszinierend!

Hier noch der Code (PIN im sequence-Device: 1234 jeweils innerhalb von 5 Sekunden pro Ziffer).

Tablet-UI:
<li data-row="1" data-col="4" data-sizex="2" data-sizey="3">
    <header>ALARM-STATUS</header>

    <div class="cell">Alarm scharf schalten</div>
    <div data-type="switch" data-device="alarm_scharf" data-set-on="on" data-set-off="" data-icon="fa-exclamation-circle fa-lg" data-on-color="red" data-off-color="grey" class="big"></div>

    <div data-type="label" class="cell">Alarm unscharf schalten (PIN-Code)</div>
        <div>
             <div data-type="push" data-icon="" data-device="keypad_key" data-set-on="1">1</div>
             <div data-type="push" data-icon="" data-device="keypad_key" data-set-on="2">2</div>
             <div data-type="push" data-icon="" data-device="keypad_key" data-set-on="3">3</div>
        </div>
        <div>
             <div data-type="push" data-icon="" data-device="keypad_key" data-set-on="4">4</div>
             <div data-type="push" data-icon="" data-device="keypad_key" data-set-on="5">5</div>
             <div data-type="push" data-icon="" data-device="keypad_key" data-set-on="6">6</div>
        </div>
        <div>
             <div data-type="push" data-icon="" data-device="keypad_key" data-set-on="7">7</div>
             <div data-type="push" data-icon="" data-device="keypad_key" data-set-on="8">8</div>
             <div data-type="push" data-icon="" data-device="keypad_key" data-set-on="9">9</div>
        </div>
        <div>
             <div data-type="push" data-icon="" data-device="keypad_key" data-set-on="0">0</div>
             <div data-type="push" data-icon="fa-key" data-device="keypad_key" data-set-on="#"></div>
        </div>
</li>


FHEM:

define alarm_scharf dummy
define keypad_key dummy
define keypad_release notify keypad_key:[0-9|#] sleep 0.5; set keypad_key nul
define alarm_unscharf_pin sequence keypad_key:1 5 keypad_key:2 5 keypad_key:3 5 keypad_key:4
define alarm_unscharf_schalten notify alarm_unscharf_pin:trigger set alarm_scharf off
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: setstate am 16 Januar 2016, 12:21:30
Sehr schön gelöst, danke für dein Post.
Wäre das nicht ein Thema für die Snippet Sammlung im Wiki?

http://www.fhemwiki.de/wiki/Kategorie:Code_Snippets
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: alpha1974 am 16 Januar 2016, 14:49:43
Zitat von: setstate am 16 Januar 2016, 12:21:30
Sehr schön gelöst

Danke, aber keider nicht schön genug :-\ Das Notify-Device, das ich zum Zurücksetzen des "Tastendrucks" nutze (keypad_release), triggerte sich selbst = nach einer PIN-Eingabe setzte es keypad_key auf "nul", was wiederum als notify-Event erkannt wurde und in einer - geradezu verzweifelten - Endlosschleife mündete, wodurch die CPU-Last für perl auf 100 % hochging... Ich habe den Code in meinem letzten Posting jetzt geändert. Jetzt wird nur auf [0-9|#] reagiert.

Zitat
Wäre das nicht ein Thema für die Snippet Sammlung im Wiki?
http://www.fhemwiki.de/wiki/Kategorie:Code_Snippets
Wenn es denn mal richtig läuft...  :o
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: Stril am 17 Januar 2016, 10:02:12
Hallo!

Lasse doch das notify nur das Set ausführen, wenn der Dummy auf einer Ziffer steht [0-9]
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: alpha1974 am 17 Januar 2016, 10:43:11
Genau so habe ich es im Code (und im entsprechenden Posting) auch schon geändert (ergänzt um "#" als Enter-Taste)  ;)
define keypad_release notify keypad_key:[0-9|#] sleep 0.5; set keypad_key nul
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: Stril am 17 Januar 2016, 17:39:43
Eigenartig... Wird das notify laut Log zwei mal angestoßen?
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: alpha1974 am 17 Januar 2016, 18:37:57
Jetzt nicht mehr. Vorher hing es anscheinend in einer Endlosschleife....

So sieht es jetzt aus:
2016-01-17 18:37:08 dummy keypad_key 1
2016-01-17 18:37:09 dummy keypad_key nul
2016-01-17 18:37:10 dummy keypad_key 2
2016-01-17 18:37:10 dummy keypad_key nul
2016-01-17 18:37:11 dummy keypad_key 3
2016-01-17 18:37:12 dummy keypad_key nul
2016-01-17 18:37:13 dummy keypad_key 4
2016-01-17 18:37:13 dummy keypad_key nul
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: davedeluxe am 21 Januar 2016, 09:22:56
Hi,

ich denke das es für deinen Fall nicht in Frage kommt aber ich möchte es einfach mal als Idee hier lassen:

Ich habe nach einer ähnlichen Möglichkeit gesucht mein Tablet zu sperren wenn z.B. die Alarmanlage aktiv ist.
Ich habe das ganze per Tasker gelöst, dieser sperrt das Tablet indem er an oberster Stelle eine PIN-Abfrage stellt. Während diese aktiv ist kann man am Tablet nichts machen.
Ist also ähnlich wie die integrierte Tablet-Sperre, welche aber nicht in Frage kam da ich mein Tablet per Motion wecke und dann nicht immer eine PIN eingeben will.

Tasker lässt sich schön per Push von FHEM steuern.

Grüße
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: CoolTux am 21 Januar 2016, 12:03:47
Auch hier noch mal der Hinweis das das AMAD Modul in der derzeitigen Developerversion die Android Pinsperre aktivieren und deaktivieren kann. Hierbei wird ein vorher als Attribut festgelegter Pin genommen.



Grüße
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: NilsB am 21 Februar 2016, 11:15:39
Zitat von: alpha1974 am 17 Januar 2016, 10:43:11
define keypad_release notify keypad_key:[0-9|#] sleep 0.5; set keypad_key nul

Hallo alpha,

habe den gesamten Aufbau deiner Keypad-Logik jetzt mehrmals im Kopf durchgespielt (mangels eingerichteter Tablet-UI nicht getestet). Mir ist nicht ganz klar, wofür es den o.g. notify überhaupt braucht?
Ich sehe keinen Nachteil darin, wenn der letztgedrückte Key immer in dem Dummy gespeichert bleibt.

Falls es doch einen Grund dafür gab, freue ich mich über Erleuchtung!

Gruß
Nils
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: alpha1974 am 21 Februar 2016, 14:42:31
Zitat von: NilsB am 21 Februar 2016, 11:15:39
Mir ist nicht ganz klar, wofür es den o.g. notify überhaupt braucht?
Ich sehe keinen Nachteil darin, wenn der letztgedrückte Key immer in dem Dummy gespeichert bleibt.
Ich meine mich zu erinnern, dass ich zunächst andere Tablet-UI-Funktionen genutzt hatte, um die Tasten darzustellen. Durch den Release-Notify wird letztlich nur simuliert, dass eine "gedrückte" Taste wieder "zurückspringt".  In der Umsetzung, die ich letztlich gepostet habe, ist das aber nicht nötig, weil data-type push quasi von alleine zurückspringt und daher nicht gedrückt hängen bleiben kann.
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: NilsB am 21 Februar 2016, 14:45:27
Zitat von: alpha1974 am 21 Februar 2016, 14:42:31
(...) In der Umsetzung, die ich letztlich gepostet habe, ist das aber nicht nötig, weil data-type push quasi von alleine zurückspringt und daher nicht gedrückt hängen bleiben kann.

Okay, dann hatte ich ja doch den richtigen Überblick. Also eher ein historisch bedingtes notify ;)
Danke für die Info, dann kann ich das bei mir direkt streichen. Schließlich kosten notifys ja auch Systemrressourcen :D

Grüße
Nils
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: coolice am 16 Februar 2017, 16:06:14
Hallo, mit einem aktuellem Update hat es mir das Eingabefeld zerrissen. Kann mir jemand sagen wie ich das wieder hin bekomme?
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: hoods am 16 Februar 2017, 18:25:21
Hallo coolice,

hatte das gleiche Problem. Welche Ursache es hat konnte ich leider nicht herausfinden aber ich habe mein keypad kurzerhand umgebaut.

Hier der Code:
<li data-row="1" data-col="3" data-sizex="4" data-sizey="5">
<header>ALARMANLAGE</header>

<div class="cell big top-space-2x wider">&nbsp;</div>
<div class="cell big top-space-2x wider">Alarm scharf schalten</div>

<div data-type="switch"
data-device="Enable_alarm"
data-set-on="on"
data-set-off=""
data-get-on="on"
data-get-off="off"
data-states='["on","off"]'
data-icons='["fa-lock","fa-unlock"]'
data-colors='["white", "white"]'
data-background-colors='["red", "blue"]'
class="large wider"></div>

       <div data-type="label" class="cell big top-space-2x wider">Alarm unscharf schalten (PIN-Code)</div>
<div class="inline large top-space">
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="1">1</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="4">4</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="7">7</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="?">?</div>
</div>
<div class="inline large">
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="2">2</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="5">5</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="8">8</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="0">0</div>
</div>
<div class="inline large">
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="3">3</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="6">6</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="9">9</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="#">#</div>
</div>

<div data-type="popup" data-device="Enable_alarm" data-get-on="on" data-height="240px" data-width="240px">
<div class="red bold top-space-2x">Show warnings</div>
<div class="dialog">
<header>WARNUNG</header>
<div data-type="label" data-device="Alarm_warning" data-get="lastWarning" class="top-space-3x red big"></div>
<div data-type="link" class="round top-space-3x left-space-3x"
data-width="150" data-height="50"
data-color="white"
data-background-color="red"
data-icon=""
onclick="$('.dialog-close').trigger('click');">OK</div>
</div>
</div>

</li>


Gruss Sven
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: ChrisW am 19 September 2017, 09:14:11
Zitat von: hoods am 16 Februar 2017, 18:25:21
Hallo coolice,

hatte das gleiche Problem. Welche Ursache es hat konnte ich leider nicht herausfinden aber ich habe mein keypad kurzerhand umgebaut.

Hier der Code:
<li data-row="1" data-col="3" data-sizex="4" data-sizey="5">
<header>ALARMANLAGE</header>

<div class="cell big top-space-2x wider">&nbsp;</div>
<div class="cell big top-space-2x wider">Alarm scharf schalten</div>

<div data-type="switch"
data-device="Enable_alarm"
data-set-on="on"
data-set-off=""
data-get-on="on"
data-get-off="off"
data-states='["on","off"]'
data-icons='["fa-lock","fa-unlock"]'
data-colors='["white", "white"]'
data-background-colors='["red", "blue"]'
class="large wider"></div>

       <div data-type="label" class="cell big top-space-2x wider">Alarm unscharf schalten (PIN-Code)</div>
<div class="inline large top-space">
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="1">1</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="4">4</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="7">7</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="?">?</div>
</div>
<div class="inline large">
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="2">2</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="5">5</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="8">8</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="0">0</div>
</div>
<div class="inline large">
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="3">3</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="6">6</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="9">9</div>
  <div data-type="push" data-icon="" data-device="Keypad_key" data-set-on="#">#</div>
</div>

<div data-type="popup" data-device="Enable_alarm" data-get-on="on" data-height="240px" data-width="240px">
<div class="red bold top-space-2x">Show warnings</div>
<div class="dialog">
<header>WARNUNG</header>
<div data-type="label" data-device="Alarm_warning" data-get="lastWarning" class="top-space-3x red big"></div>
<div data-type="link" class="round top-space-3x left-space-3x"
data-width="150" data-height="50"
data-color="white"
data-background-color="red"
data-icon=""
onclick="$('.dialog-close').trigger('click');">OK</div>
</div>
</div>

</li>


Gruss Sven
Super Danke.
Wie pack ich das Pinpad in ein Popup ?
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: Standarduser am 20 September 2017, 20:11:09
Indem du ein Popup einfügst und das Pinpad da hinein packst?
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: ToM_ToM am 23 September 2017, 17:43:33
Ich hatte es zwar irgendwo schon mal gepostet, aber hier nochmal meine Lösung:

Verwendet wird das Alarm - Modul

FHEM-Config
define AlarmKeypadDummy dummy
attr AlarmKeypadDummy DbLogExclude .*
attr AlarmKeypadDummy alarmDevice Sensor
attr AlarmKeypadDummy alarmSettings alarm0,alarm1,alarm2,alarm3,alarm4,alarm5,alarm6,alarm7,|AlarmKeypadDummy:.unlocked|unlocked|off
attr AlarmKeypadDummy event-on-change-reading state,inputPin
attr AlarmKeypadDummy event-on-update-reading key
attr AlarmKeypadDummy group Alarmanlage
attr AlarmKeypadDummy readingList key,inputPin,fails,unlockPin
attr AlarmKeypadDummy room Allgemein
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 "";; }

define notify_AlarmanalageUnlocked notify AlarmKeypadDummy:unlocked set Alarmanlage disarmed 0
attr notify_AlarmanalageUnlocked DbLogExclude .*
attr notify_AlarmanalageUnlocked group Alarmanlage
attr notify_AlarmanalageUnlocked room Allgemein

define alarm0.off.N notify (AlarmKeypadDummy:.unlocked) {main::Alarm_Exec("Alarmanlage",0,"$NAME","$EVENT","off")}
attr alarm0.off.N DbLogExclude .*
attr alarm0.off.N group alarmNotifier
attr alarm0.off.N room Alarm


Tablet-UI


<!-- Alarmanlage Keypad -->
<div data-type="popup" data-device="AlarmKeypadDummy" data-get-on="locked" data-get-off="unlocked" data-width="400px" data-height="500px" class="interlock">
<div class="red bold top-space-2x"></div>
<div class="dialog">
<header>Alarm deaktivieren</header>
<div data-type="label" class="cell big top-space-2x wider">Alarm unscharf schalten (PIN-Code)</div>
<div class="inline big top-space">
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="1" onclick="playTouchSound();">1</div>
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="4" onclick="playTouchSound();">4</div>
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="7" onclick="playTouchSound();">7</div>
  <div data-type="push" data-icon="fa-long-arrow-left" data-device="AlarmKeypadDummy" data-set="key" data-set-on="<" onclick="playTouchSound();"></div>
</div>
<div class="inline big">
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="2" onclick="playTouchSound();">2</div>
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="5" onclick="playTouchSound();">5</div>
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="8" onclick="playTouchSound();">8</div>
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="0" onclick="playTouchSound();">0</div>
</div>
<div class="inline big">
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="3" onclick="playTouchSound();">3</div>
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="6" onclick="playTouchSound();">6</div>
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="9" onclick="playTouchSound();">9</div>
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="#" onclick="playTouchSound();">#</div>
</div>
<div class="bg-lightgray border-white top-space centered" style="width:280px; height:50px;">
<div data-type="label" data-device="AlarmKeypadDummy" data-get="inputPin" class="tall"></div>
</div>
</div>
</div>


Sobald die Alarmanlage scharf geschalten wurde, geht das Keypad auf dem Tablet auf und man kann nichts anderes in der Tablet-UI schalten, bis der Pin korrekt eingegeben wurde und die Alarmanlage somit abgeschalten. Es können Zahlen eingegeben und auch beim Vertippen gelöscht werden. Das Raute-Zeichen dient als Bestätigung der Eingabe.
Nach Eingabe der korrekten Pin wird der Alarm oder das Alarmsystem deaktiviert und das Keypad-Popup geschlossen.

Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: docb am 24 Dezember 2017, 16:36:20
Hi,
vielen Dank für die geniale Lösung, das ist echt top! Ich habe allerdings ein großes Problem, meine Tablet-UI Oberfläche ist wohl so überladen, dass das Pinpad kaum auf Eingaben reagiert, wenn ich nach Hause komme und das Tablet angeht (das Erneuern der ganzen Werte im Hintergrund legt wohl das Tablet lahm, teilweise wird das Pinpad auch gar nicht mehr korrekt angezeigt, sonder einfach die Zahlen nebeneinander).

Gäbe es eine Möglichkeit, sobald das Popup hochkommt, alle Abfragen im Hintergrund zu unterbinden bis es wieder verschwunden ist (durch Eingabe der korrekten PIN -> device AlarmKeypadDummy unlocked)?
Oder kann ich sobald eigentlich das Popup hochkommt (weil device locked) auf eine andere Seite umleiten, die nur das Pinpad enthält?
Die Lösung über AMAD mit der Systempinsperre von Android funktioniert bei mir leider auch nicht, weil Android 7. 
Ansonsten läuft bei mir FTUI auf Fully (falls das was hilft für die Lösung).

Viele Grüße und frohe Weihnachten ;-)
doc
Titel: Antw:[FHEM-Tablet-UI] Keypad für PIN-Eingabe?
Beitrag von: speridal am 17 März 2019, 09:03:05
Hallo zusammen,

seit dem letzten Update hat das AlarmKeypadDummy keine Tasten mehr angenommen. Bei mir lag es an der Einstellung

attr AlarmKeypadDummy readingList key,inputPin,fails,unlockPin

Dort musste ich die "," entfernen, seitdem geht es wieder. Falls das jemand von euch auch hat.

attr AlarmKeypadDummy readingList key inputPin fails unlockPin

Gruß,
Bernd