Neues FTUI Widget PinPad für Alarmanlagen

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

Vorheriges Thema - Nächstes Thema

setstate

Zitat von: Syrex-o am 22 November 2017, 09:23:58
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.


Das hatte ich doch schon irgendwo mal angesprochen: Im Init sollte man noch keine Readings benutzen

elem.getReading("get-pin").val.length

Und auch nicht sofort "length" abfragen, wenn man nicht weiß, ob "val" nicht vielleicht "undefined" ist. Dann kommt es zu einer Exception.

Erst wenn Update() gerufen wird, hat man Readings lokal und kann diese benutzen

Syrex-o

#46
ZitatDas hatte ich doch schon irgendwo mal angesprochen: Im Init sollte man noch keine Readings benutzen

Huch, ich dachte, ich hab die Funktion schon aussortiert.
Dann wird es das sein.

EDIT: Habe nochmal nachgescheut und ich habe sie ausgelagert.
Die Dots stecken jetzt in einer eigenen funktion, die außerhalb von init ist.
Reicht das noch nicht?
Darf sie nur in Update auftauchen?

setstate

ich mache das gerne so "sicher"


var state = elem.getReading('get').val;
if (ftui.isValid(state)) {
...
}

Photon68

@Syrex-o

Ein PIN mit Nullen wird jetzt korrekt verarbeitet.
Vielen Dank für das schnelle Update.

Gruß

Gunther

Nullen gehen. Danke!

Das alte Problem besteht leider weiterhin - auch mit Deinem Beispielcode.
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

Update
Hab mich mal an paar Fixes gesetzt.

Infos:
- Das Widget geht im Popup immer noch nicht, da es überhaupt nicht initialisiert wird.
@setstate habe alles probiert. Schluss endlich kommt es dazu, dass das Widget überhaupt nicht ausgeführt wird, wenn es im Popup liegt.

- Für @Gunter: da das Popup nicht geht habe ich die Möglichkeit über class: pop eingebaut, die bisher nur auf on und off reagiert.
on = zeigt pinpad, off = versteckt pinpad.
Stehe nur gerade auf dem Schlauch, wie man es haben will, dass man den Alarm auch wieder scharf stellen kann. Dies geht aktuell nur aus der normalen Oberfläche. Vorschläge sehr willkommen.

- bezüglich der 8 Pinpunkte: Wenn ein neuer pin eingegeben wird per setreading, muss die Seite nur einmal aktuallisiert werden und alles wird neu berechnet. Also sollte kein Problem mehr sein.

Grüße

Gunther

Ich schau mir das am Sonntag an. Danke für Deine Mühen.
Scharf schalten werde ich über den Hausstatus.
Das Popup will ich aktiv haben, wenn der Alarm aktiv ist, so dass derjenige, der ins Haus kommt den Alarm eigeben kann/muss -falls er nicht über den Fingerprintsensor schon deaktiviert wurde (der Alarmstatus 😉)
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

ioT4db

Hallo Zusammen,

erstmal danke fürs Widget!

Ich verwende das Widget auch, aber ich versteh die Popup-Problematik noch nicht ganz. Ist das ein generelles Problem oder tritt es nur vereinzelt auf?

Ich frage deshalb, da dieses Problem bei mir nicht auftaucht. Ich verwende allerdings noch die "erste" Version des Widgets, also da wo die Zahlen noch "verrutscht" sind.

Momentan traue ich mich jedoch noch nicht auf die aktuelle Version umzusteigen. Ich befürchte dass danach das Problem auch bei mir auftritt.

Hier mal mein Code mit dem es zuverlässig funktioniert (wie gesagt bei mir):

<!-- Alarmanlage Keypad -->
<div data-type="popup" data-device="DI_AlarmKeypad" data-get-on="on" data-get-off="off" data-width="350px" data-height="540px" class="interlock">
<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 data-type="pinpad" class="inline"
                 data-device="DI_AlarmKeypad"
                 data-get="STATE"
data-get-pin="pin">
</div>
</div>
</div>
<!-- Alarmanlage Keypad Ende -->


VG
Daniel
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

Gunther

auch wenn Du die Seite komplett neu lädst?
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

Achja: speicher doch einfach die beiden Dateien, die Du gerade nutzt weg und teste einfach mit der neuen Version. Dann weißt Du ob es bei Dir geht.
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

Zitat von: friesenjung am 24 November 2017, 23:31:57
Hallo Zusammen,

erstmal danke fürs Widget!

Ich verwende das Widget auch, aber ich versteh die Popup-Problematik noch nicht ganz. Ist das ein generelles Problem oder tritt es nur vereinzelt auf?
Habe deinen Code mit der neusten Version getestet. Meistens funktioniert es. Jedoch wird das Widget oft auch nicht aktiviert, wenn man die Seite aktualisiert.

Kannst du bei dir mal versuchen die Seite einfach mal 20 mal zu aktualisieren und dann berichten, wie oft das Widget nicht geladen wird.?

Grüße

ioT4db

HI,

also ich habe meinen aktuellen Stand mal getestet. 20x den Browser refreshed, 20x war das PinPad aktiv!

Ich werden nun mal die neuen Dateien testen und berichten...

VG
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

miep

#57
Hallo.
Ich habe mich bisher im Forum noch nicht geäußert. Aber ich lese schon länger mit. Ich wollte mich aber einmal Bedanken für die tolle Arbeit.
Habe dieses Widget eingebunden. Bei mir funktioniert es halbwegs zuverlässig.. Hab gerade versucht, dass PopUp öfters hintereinander zu öffnen. (Also sozusagen die Alarmanlage scharf zu schalten) bei 6 Versuchen hat es 5 mal zuverlässig funktioniert. Das 6. Mal dann leider nicht. Mir kommt aber vor, dass das einfach mit der Last zu tun hat. Wenn ich dann wieder ein paar Sekunden warte, dann gehts wieder.

Mir ist aber auch gerade aufgefallen, dass ich plötzlich auch 8 Sternchen oben sehe. Bisher waren es immer 4.

EDIT!:
Hab gerade den Cache gecleared. Sieht wieder in Ordnung aus.

ioT4db

Hi,

also auch die aktuelle Version verrichtet Ihren Dienst tadellos. Wieder 20x versucht und 20x hats geklappt.

Welche Browser verwendet Ihr und auf welcher Plattform?

Ich habe den FullyBrowser (Plus-Version) auf einem 60€-China-Tablet mit Android 7 laufen...

VG
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

miep

Bei mir ebenfalls fully (nicht plus, noch nicht, erst mal testen)

Auf einem Fire-HD-10