Neues FTUI Widget PinPad für Alarmanlagen

Begonnen von Syrex-o, 09 November 2017, 20:47:13

Vorheriges Thema - Nächstes Thema

TWART016

Die Zahlen sind nur zentral im Kreis, back und der Schlüssel noch nicht.

Mit dem back button wird nur virtuell die Zahl entfernt, sichbar ist sie immer noch.

Macht ein Button Sinn, mit dem man show-pin beinflussen kann?

Macht es Sinn mit beim Sperren ein Reading zu setzen? Dann könnte ein Admin jederzeit das Gerät entsperren und muss nicht warten.
Wird die Seite im Sperrmodus neu geladen, ist der Timer weg. ggf. muss das auch über ein Reading gelöst werden.

Kann man bei show-pin die Zahlen weiter voneinander entfernt anzeigen lassen, ähnlich wie ohne show-pin?

Gunther

#31
Danke für Deine Arbeit!
Leider schließt es bei mir jetzt auch wenn ich symbol einsetze.

Mein Code:
<header>Alarmanlage</header>
<!-- ============= Alarmanlage================== -->
<div data-type="popup"
data-draggable="false"
data-device="Alarm"
data-get-on="on"
data-get-on="off"
data-height="510px"
data-width="340px"
class="interlock">
<!-- ============= Widgetinhalt Start  ================== -->
<div data-type="symbol"
data-device="Alarm"
      data-states='["on","off"]' 
      data-icons='["mi mi-lock_open","mi mi-lock_outline"]'
      data-colors='["#ad3333","#6699FF"]'
      data-background-icon=""
      class="big">
</div>
<div  data-type="label" data-device="Alarm" data-get="state" class="darker small"/>
<!-- ============= Widgetinhalt Ende  ================== -->
<!-- ============= Popupinhalt Start  ================== -->
<div class="dialog">
        <header>Pin Alarmanlage</header>
            <div data-type="pinpad"
            data-device="Alarm"
            data-get="STATE"
            data-get-pin="pin"
            data-text-locked="aktiviert"
        data-text-unlocked="deaktiviert"
data-locked-time="10"
        data-tries="3">
      </div>
    </div>
<!-- ============= Popupinhalt Ende ================== -->
</div>
<!-- ============= Alarmanlage Ende ================== -->



auch wenn ich
data-get-on="on"
data-get-on="off"

weglasse.
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Gunther

FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Gunther

#33
trotz
data-locked-time="10"
        data-tries="3"

ist nach einer Fehleingabe keine wirkliche Eingabe mehr möglich

Edit1:
Seite aktualisiert. Nun schließt sich das Ding wieder von alleine

Edit2:
Der richtige Pin entsperrt nicht.

Verbesserungsvorschlag: für "locked for 9,8..." customizebar machen in z. B. "gesperrt für..."
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Syrex-o

ZitatDie Zahlen sind nur zentral im Kreis, back und der Schlüssel noch nicht.
Gefixt: Andere Größen als default sind noch nicht verprobt.

ZitatMit dem back button wird nur virtuell die Zahl entfernt, sichbar ist sie immer noch.
Gefixt.

ZitatMacht es Sinn mit beim Sperren ein Reading zu setzen? Dann könnte ein Admin jederzeit das Gerät entsperren und muss nicht warten.
Wird die Seite im Sperrmodus neu geladen, ist der Timer weg. ggf. muss das auch über ein Reading gelöst werden.
Verstehe ich das richtig? Du möchtest bei Fehlversuchen ein Reading setzen und von da soll der Countdown kommen?
Aktueller Stand: Wenn Seite neu geladen wird, dann umgeht man das warten und auch die Fehlversuche.

ZitatMacht ein Button Sinn, mit dem man show-pin beinflussen kann?
Ich finde nicht, da du dich ja entweder dafür entscheiden kannst den Pin anzuzeigen oder eben auch nicht.

ZitatKann man bei show-pin die Zahlen weiter voneinander entfernt anzeigen lassen, ähnlich wie ohne show-pin?
Eingebaut: data-spacing (default: 20px)

ZitatLeider schließt es bei mir jetzt auch wenn ich symbol einsetze.
Hab mal rumprobiert. Aktuell ist es nur möglich das Pinpad auf einer Seite zu verwenden.
Muss ich mich noch mit beschäftigen.
Also deine Fehler können an folgendem liegen:

  • Pinpad in mehreren HTML Datein
  • Falsche Syntax

Habe hier mal ein Muster für dich, welches bei mir funktioniert:
<section>
           <div data-type="popup"
             data-height="500"
             data-width="400"
             data-draggable="false">
            <div data-type="symbol"
                 data-device="Alarm"
                 data-states='["on","off"]' 
                 data-icons='["mi mi-lock_open","mi mi-lock_outline"]'
                 data-colors='["#ad3333","#6699FF"]'
                 data-background-icon=""
                 class="big">
            </div>
            <div  data-type="label" data-device="Alarm" data-get="state" class="darker small"/>
            <div class="dialog">
                <header>Alarmanlage</header>
                <div data-type="pinpad"
                     data-device="Alarm"
                     data-get="STATE"
                     data-get-pin="pin"
                     class="center">
                </div>
            </div>
        </div>
       </section>


Syrex-o

Update
Manche Fixes

Neue Funktionen:
- data-spacing: Abstand zwischen Zahlen, wenn class="show-pin" (default: 10px)
- data-text-blocked: Text der angezeigt wird, wenn Fehlversuche überschritten sind (default: Locked for:)

davedeluxe

Vielen Dank für das tolle Widget!
Das hätte ich mal vor 2-3 Jahren gebraucht, das hätte mir vieles erleichtert...

Wäre es möglich das Schlüsselsymbol umzufunktionieren?
Würde damit z.B. gerne das Popup schließen da ich für den Schlüssel keine verwendung habe.

Grüße Dave

Syrex-o

ZitatVielen Dank für das tolle Widget!
Das hätte ich mal vor 2-3 Jahren gebraucht, das hätte mir vieles erleichtert...

Wäre es möglich das Schlüsselsymbol umzufunktionieren?
Würde damit z.B. gerne das Popup schließen da ich für den Schlüssel keine verwendung habe.
Für was würdest du Ihn denn gerne benutzen, dann kann ich mir besser vorstellen wie das implementiert werden soll.

Grüße

TWART016

Zitat von: Syrex-o am 21 November 2017, 12:39:57
Gefixt: Andere Größen als default sind noch nicht verprobt.
Die beiden Icons sind immer noch leicht versetzt.

Zitat von: Syrex-o am 21 November 2017, 12:39:57
Verstehe ich das richtig? Du möchtest bei Fehlversuchen ein Reading setzen und von da soll der Countdown kommen?
Aktueller Stand: Wenn Seite neu geladen wird, dann umgeht man das warten und auch die Fehlversuche.
z.B. ja oder wie das auch immer gelöst werden kann.
Sonst könnte ein User den Schutz ziemlich einfach umgehen.

Zitat von: Syrex-o am 21 November 2017, 12:39:57
Eingebaut: data-spacing (default: 20px)
Die Zahl sind dann noch nicht ganz zentral.

Gunther

#39
Zitat von: Syrex-o am 21 November 2017, 12:39:57
Habe hier mal ein Muster für dich, welches bei mir funktioniert:

Danke Dir.
Genrell läuft das.

Erst, wenn ich
data-get-on="on"
data-get-on="off"

nutze und der Alarm auf "on" steht, poppt das Popup auf und verschwindet in Kürze wieder.
Habe es mit Deinen Code direkt auf meine Hauptseite (also nicht als weitere html-Datei) getestet.

Klappt das bei Dir mit:
data-get-on="on"
data-get-on="off"
?

Komischerweise konnte ich teilweise mal testen, ohne das das Popup verschwunden ist. Leider hat der richtige Code nicht funktioniert. Hast Du mit Nullen schon getestet?

EDIT: Also: Wenn die Seite schon geladen ist und dann der Alarm auf on geht, bleibt das Popup da. Wenn ich die Seite mit Alarm = on neu lade, dann öffnet das Popup und verschwindet wieder. Kannst Du das bitte einmal bei Dir nachstellen?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Photon68

Danke für das Modul!
Kann ich gut gebrauchen!

Beim Testen habe ich bei mir festgestellt, dass ein Code mit Nullen nicht funktioniert!?

Gruß Photon68

Gunther

Nochetwas komisches habe ich festgestellt.

Wenn ich einen neuen Pin mit
setreading Alarm pin 1234
setze, dann habe ich auf einmal 8 "Pinpunkte" im Widget (vgl. Screenshot)
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Syrex-o

#42
ZitatWenn ich einen neuen Pin mit
setreading Alarm pin 1234
setze, dann habe ich auf einmal 8 "Pinpunkte" im Widget (vgl. Screenshot)
Fehlerquelle schon gefunden. Fix sollte Morgen oder Mittwoch da sein.

ZitatBeim Testen habe ich bei mir festgestellt, dass ein Code mit Nullen nicht funktioniert!?
Auch schon erkannt. Selbes wie oben.
Habe vergessen, das die 0 extra erstellt wird und somit nicht wie die anderen Zahlen funktioniert.  ;D

@TWART016
Ich versuche alles noch genauer zu treffen. ;D

ZitatEDIT: Also: Wenn die Seite schon geladen ist und dann der Alarm auf on geht, bleibt das Popup da. Wenn ich die Seite mit Alarm = on neu lade, dann öffnet das Popup und verschwindet wieder. Kannst Du das bitte einmal bei Dir nachstellen?

Ich versuche dir morgen mal eine Lösung für das Problem zu geben und stelle den Hergang nach. ;)

Gunther

Danke für Deine Hilfe und Arbeit! Freu mich auf eine Lösung.
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Syrex-o

#44
Zitat von: Gunther am 21 November 2017, 21:57:05
Danke für Deine Hilfe und Arbeit! Freu mich auf eine Lösung.

So folgendes Problem: Es scheint so, dass wenn kein cache aufgebaut ist, dass Widget nicht lädt.
Bsp. Wenn ich die Developer Tools auf habe, (habe dabei den Cache aus gestellt) dann lädt das Pinpad nicht.
Wenn der Cache jedoch existiert funktioniert es.
Hier mal 2 Möglichkeiten für dich (hab mal einen quick fix für die 0 raus gebracht):
1. Popup was nur auf den Status reagiert und somit keinen Click button hat, weil er überflüssig ist:
<!DOCTYPE html>
<html>
<head>Home</head>
<body>
    <div class="page" id="content_testing">
       <section>
           <div data-type="popup"
                data-device="Alarm"
                data-height="500"
                data-width="400"
                data-get-on="on"
                data-get-off="off"
                data-draggable="false"
                class="interlock">
            <div class="dialog">
                <header>Alarmanlage</header>
                <div data-type="pinpad"
                     data-device="Alarm"
                     data-get="STATE"
                     data-get-pin="pin"
                     class="center">
                </div>
            </div>
        </div>
       </section>
    </div>
</body>
</html>


2. Popup was auf click events reagiert (daher kein data-on/data-off)
<!DOCTYPE html>
<html>
<head>Home</head>
<body>
    <div class="page" id="content_testing">
       <section>
           <div data-type="popup"
                data-device="Alarm"
                data-height="500"
                data-width="400"
                data-draggable="false">
            <div data-type="symbol"
                 data-device="Alarm"
                 data-states='["on","off"]' 
                 data-icons='["mi mi-lock_open","mi mi-lock_outline"]'
                 data-colors='["#ad3333","#6699FF"]'
                 data-background-icon=""
                 class="big">
            </div>
            <div  data-type="label" data-device="Alarm" data-get="state" class="darker small"/>
            <div class="dialog">
                <header>Alarmanlage</header>
                <div data-type="pinpad"
                     data-device="Alarm"
                     data-get="STATE"
                     data-get-pin="pin"
                     class="center">
                </div>
            </div>
        </div>
       </section>
    </div>
</body>
</html>


Hoffe es hilft dir und alles funktioniert. ;D

EDIT: Gerade festgestellt, dass es manchmal trotzdem nicht geladen wird.
Vielleicht baue ich diese Funktion auch einfach in das Widget ein. Somit könnte es sein eigenes Popup sein.
Glaube es gibt einen Konflikt zwischen beiden Widgets.
@Gunther guter Vorschlag ?