[FHEM-Tablet-UI] WeekdayTimer Widget

Begonnen von svenson08, 24 Januar 2016, 18:39:21

Vorheriges Thema - Nächstes Thema

Ulm32b

Boh, das nenne ich eine Antwortzeit.

Mit dem speziellen CSS nähern wir uns der äußeren Form, wie sie im Github zu sehen ist. Allerdings werden jetzt neue Schaltzeiten nicht mehr in FHEM abgespeichert ??? Hm.

eki

OK, was komisch aussieht ist, dass die Knöpfe unten alle doppelt sind (ich nehme an, dass auch die Save etc. Buttons doppelt sind). Kannst Du mal versuchen das Fenster größer zu machen und das nachzuschauen. Ansonsten wieder den Output von der Browser Console (mit aktiviertem Debug in deinem Index.html File und mit den Outputs wenn Du die Knöpfe drückst.

Ulm32b

Hier kommt der neue Statusbericht:

Eine geänderte Größendeklaration im Aufruf des Widget (height und width) ändert nichts daran, dass die Uhrzeiten nur unvollständig angezeigt werden und ein zweites, etwas höheres (aber gleichbreites) Fenster leicht versetzt geöffnet wird.

Zu Beginn sieht man Bild WD1. In diesem sind zwei aus FHEM stammende Schaltzeiten korrekt wiedergegeben.

Das zweite Fenster kann man durch Klick auf den oberen oder unteren Rand in den Vordergrund holen. Dann hat man Bild WD2. Dort sind dieselben Schaltzeiten zu sehen. Funktional verhält sich dieses Fenster wie das erste. Auffällig ist die Checkbox unten links. Wenn man diese deaktiviert, kommt Bild WD3.

Zurück zu WD1: Wenn man einen (egal welchen) der beiden Schieber unten links betätigt, kommt Bild WD4. Nach Betätigung des zweiten Schiebers WD5. Den roten Schleier kann man durch Zurückstellen eines (!) der beiden Schalter wieder komplett entfernen und findet sich im Bearbeitungsmodus wieder.

Von den anderen Schaltern wirft nur ,,Speichern" eine Fehlermeldung in der Konsole aus (soweit ich dies beurteilen kann): Siehe WD6.
Neu erstellte Schaltzeiten werden nicht in FHEM gespeichert, sind aber bei nochmaligem Öffnen des Fensters noch da (wohl aus einem Cache). Nach Neustart sind sie dann weg.

Soviel fürs erste; gerne erwarte ich weitere Nachfragen.

Ich kann immer noch nicht glauben, dass sich meine Installation so anders verhält als die anderer.

Ulm32b

eki

Sieht so aus, als ob das Fenster 2 mal aufgemacht wird, dadurch kommt die ganze Geschichte durcheinander. Das Verhalten der Schieber ist grundsätzlich schon so gedacht (sie deaktivieren den Timer und das wird durch das rot einfärben signalisiert.). Kannst Du mal bitte folgendes machen:

Öffne die Datei widget_wdtimer.js in einem Texteditor.
Gehe zu Zeile 805
Ändere den Text "click touchend" einmal in "click" probiere aus was passiert, dann in "touchend" und probiere noch mal aus was passiert.

Schicke mir mal das Consolenlog als Text und zwar möglichst komplett.

Ulm32b

#244
Nacheinander habe ich für die drei Konstellationen das Widget geöffnet, danach betätigt: Hinzufügen, Speichern, Abbrechen und das Logbuch (im PC) aufgenommen:

,,click touchend": Auf dem PC (Firefox 45.5.0) erscheinen die beiden Fenster mit den beiden Schiebern unten links. Auf dem Tablet (Android 5.0.2) erscheint unter Firefox und im Fully Browser nur ein Fenster mit nur einem Schieber. Ich bin zwar der Meinung, dass das gestern anders war ...
Style: round widget_wdtimer.js:300:3
TypeError: arr_config[0][i] is undefined
wdtimer_saveProfile()
widget_wdtimer.js:498
wdtimer_showDialog/wdtimer_dialog<.buttons.Speichern()
widget_wdtimer.js:176
._createButtons/</s.click()
jquery-ui.min.js:11
m.event.dispatch()
jquery.min.js:3
m.event.add/r.handle()
jquery.min.js:3
widget_wdtimer.js:498:11
--------- start healthCheck -------------- fhem-tablet-ui.js:873:9
now: Date 2016-11-29T09:04:12.114Z fhem-tablet-ui.js:874:1
FTUI version: 2.3.1 fhem-tablet-ui.js:875:9
Longpoll: true fhem-tablet-ui.js:876:9
Longpoll objects there: true fhem-tablet-ui.js:877:1
Longpoll curent line: 1 fhem-tablet-ui.js:878:9
Longpoll last event before: 17134 Tag(e) 9 Stunde(n) 4 Minute(n) 12 Sekunde(n) fhem-tablet-ui.js:879:1
Shortpoll interval: 900 fhem-tablet-ui.js:880:9
Shortpoll last run before: 7 Minute(n) 52 Sekunde(n) fhem-tablet-ui.js:881:1
FHEM dev/par count: 665 fhem-tablet-ui.js:882:1
FTUI known devices count: 111 fhem-tablet-ui.js:883:1
Page length: 62500 fhem-tablet-ui.js:884:1
Widgets count: 135 fhem-tablet-ui.js:885:1
--------- end healthCheck --------------- fhem-tablet-ui.js:886:9


,,click":
Das Widget sieht aus wie bei "click touched" und verhält sich auch so. Auch auf dem Tablet erscheinen zwei Fenster/Schieber.
Style: round widget_wdtimer.js:300:3
--------- start healthCheck -------------- fhem-tablet-ui.js:873:9
now: Date 2016-11-29T09:08:55.985Z fhem-tablet-ui.js:874:1
FTUI version: 2.3.1 fhem-tablet-ui.js:875:9
Longpoll: true fhem-tablet-ui.js:876:9
Longpoll objects there: true fhem-tablet-ui.js:877:1
Longpoll curent line: 1 fhem-tablet-ui.js:878:9
Longpoll last event before: 17134 Tag(e) 9 Stunde(n) 8 Minute(n) 55 Sekunde(n) fhem-tablet-ui.js:879:1
Shortpoll interval: 900 fhem-tablet-ui.js:880:9
Shortpoll last run before: 52 Sekunde(n) fhem-tablet-ui.js:881:1
FHEM dev/par count: 665 fhem-tablet-ui.js:882:1
FTUI known devices count: 111 fhem-tablet-ui.js:883:1
Page length: 364229 fhem-tablet-ui.js:884:1
Widgets count: 135 fhem-tablet-ui.js:885:1
--------- end healthCheck --------------- fhem-tablet-ui.js:886:9
TypeError: arr_config[0][i] is undefined
wdtimer_saveProfile()
widget_wdtimer.js:498
wdtimer_showDialog/wdtimer_dialog<.buttons.Speichern()
widget_wdtimer.js:176
._createButtons/</s.click()
jquery-ui.min.js:11
m.event.dispatch()
jquery.min.js:3
m.event.add/r.handle()
jquery.min.js:3
widget_wdtimer.js:498:11


"touched": Widget öffnet sich nicht!
--------- start healthCheck -------------- fhem-tablet-ui.js:873:9
now: Date 2016-11-29T09:12:29.637Z fhem-tablet-ui.js:874:1
FTUI version: 2.3.1 fhem-tablet-ui.js:875:9
Longpoll: true fhem-tablet-ui.js:876:9
Longpoll objects there: true fhem-tablet-ui.js:877:1
Longpoll curent line: 1 fhem-tablet-ui.js:878:9
Longpoll last event before: 17134 Tag(e) 9 Stunde(n) 12 Minute(n) 29 Sekunde(n) fhem-tablet-ui.js:879:1
Shortpoll interval: 900 fhem-tablet-ui.js:880:9
Shortpoll last run before: 54 Sekunde(n) fhem-tablet-ui.js:881:1
FHEM dev/par count: 665 fhem-tablet-ui.js:882:1
FTUI known devices count: 111 fhem-tablet-ui.js:883:1
Page length: 61772 fhem-tablet-ui.js:884:1
Widgets count: 135 fhem-tablet-ui.js:885:1
--------- end healthCheck --------------- fhem-tablet-ui.js:886:9
--------- start healthCheck -------------- fhem-tablet-ui.js:873:9
now: Date 2016-11-29T09:13:29.640Z fhem-tablet-ui.js:874:1
FTUI version: 2.3.1 fhem-tablet-ui.js:875:9
Longpoll: true fhem-tablet-ui.js:876:9
Longpoll objects there: true fhem-tablet-ui.js:877:1
Longpoll curent line: 1 fhem-tablet-ui.js:878:9
Longpoll last event before: 17134 Tag(e) 9 Stunde(n) 13 Minute(n) 29 Sekunde(n) fhem-tablet-ui.js:879:1
Shortpoll interval: 900 fhem-tablet-ui.js:880:9
Shortpoll last run before: 1 Minute(n) 54 Sekunde(n) fhem-tablet-ui.js:881:1
FHEM dev/par count: 665 fhem-tablet-ui.js:882:1
FTUI known devices count: 111 fhem-tablet-ui.js:883:1
Page length: 61772 fhem-tablet-ui.js:884:1
Widgets count: 135 fhem-tablet-ui.js:885:1
--------- end healthCheck --------------- fhem-tablet-ui.js:886:9


setstate

Entweder nur "click" oder "mouseup touchend"
Bei der doppelten Subscription muss man mit Event.preventDefault() doppelte Aufrufe verhindern, falls das Device beide erzeugt ( Hersteller/OS/Browser-abgängig)

eki

@setstate:
Event.preventDefault() ist da schon drin. Mit nur click hat es aber wohl auf einigen Devices nicht geklappt, daher der Versuch mit touchend. Komischerweise ist das vom Aufruf her genauso wie beim popup_widget und trotzdem klappt es nicht zuverlässig. Blöderweise kann ich selbst nicht mit Android testen (außer mit der Emulation im Chrome).

@Ulm32b
kannst Du noch mal mit "mouseup touchend" probieren? Im Fall von nur einem Fenster sollte eigentlich das Speichern funktionieren. Kannst Du das auch noch mal prüfen?

Ulm32b

Ich werde es heute Abend sofort ausprobieren.
Es kann sein, dass ich Tomaten auf den Augen hatte und "touched" statt "touchend" eingegeben habe. ::)
Das würde erklären, warum sich gar nichts tat. Also bitte etwas Geduld, das muss zunächst geklärt werden.

Ulm32b

Update: "click touchend" generiert auf dem PC und dem Android Tablet das doppelte Fenster mit zwei Schaltern unten links.

Und nun: "mouseup touchend":

Es wird nur ein Fenster geöffnet mit einem Schalter unten links. Die Funktion "Speichern" arbeitet einwandfrei: Die Zeiten werden nach FHEM übertragen. Nachfolgend der zugehörige LOG:
warning: wdtimer does not implement update function fhem-tablet-ui.js:1079:13
update done for "Wetter:fc6_condition" fhem-tablet-ui.js:1079:13
Define wird geändert 'defmod Zeitschalter_Radio_1 WeekdayTimer Radio_1 de 12345|22:00|on 12345|22:02|off 2|21:04|on 2|21:10|off  '  [Zeitschalter_Radio_1] fhem-tablet-ui.js:1079:13
setFhemStatus is a deprecated function: use ftui.setFhemStatus instead fhem-tablet-ui.js:1109:5
start shortpoll in (ms):900000 fhem-tablet-ui.js:1079:13
send to FHEM: defmod Zeitschalter_Radio_1 WeekdayTimer Radio_1 de 12345|22:00|on 12345|22:02|off 2|21:04|on 2|21:10|off fhem-tablet-ui.js:1079:13
setFhemStatus is a deprecated function: use ftui.setFhemStatus instead fhem-tablet-ui.js:1109:5
start shortpoll in (ms):900000 fhem-tablet-ui.js:1079:13
send to FHEM: save fhem-tablet-ui.js:1079:13

Die Gestalt des geöffneten Widgets in PC und Firefox stimmt überein. In beiden Fällen ist das Feld für die Uhrzeit zu schmal, anders als die Darstellung im Github (vgl. auch die Bilder von gestern). Nur auf dem Tablet tritt noch folgender Effekt auf: Nach dem erstmaligen Betätigen eines Schalters wird um die Elemente eine feine rechteckige Umrandung eingeblendet, was besonders an den runden Ecken auffällt.

Soviel für heute.

eki

Vielen Dank fürs Testen.

Na, das hört sich ja schon mal vielversprechend an. Bezüglich der zu kleinen Textfelder hätte ich noch eine Frage, was passiert wenn Du den Text veränderst, verändert sich dann auch die Breite der Textfelder? Das sollte eigentlich so sein. Was die Umrandung betrifft, könnte es sein, dass das die Anzeige des Fokus ist? Bleibt die Umrandung auch wenn Du einen anderen Knopf wählst?

Ulm32b

#250
Guten Morgen.

Zunächst eine kleine Klarstellung: In meiner Mail von gestern Abend sollte es heißen: "Die Gestalt des Widgets in PC (Firefox) und auf dem Tablet (Android) stimmen überein."

Die Textfelder für die Uhrzeit passen sich auf PC und Tablet nicht der Breite an. Wählt man in dem Knopf neben "An", "Aus", ... eine andere Option als die reine Uhrzeit, werden zwei bis vier weitere Felder angezeigt (das ist soweit wohl o.k., ich habe die Symbole allerdings noch nicht verstanden - man könnte vielleicht deren Wirkung durch Hinweistexte etwas verdeutlichen); diese Felder sind überwiegend ganz schmal und ebenfalls größeninvariant.

Nur auf dem Tablet tritt noch folgender Effekt auf: Im Dropdown-Menü der Symbole (... A R D ...) werden die Symbole selbst durch ein Rechteck mit den Diagonalen ersetzt. Wählt man eine der Optionen, wird deren Symbol dann aber übernommen und angezeigt.

Zu den Umrandungen im Fokus: Jein: Bei den Schaltflächen im Inneren des Widgets ist es so wie Du sagst: Nur der aktive Knopf wird hervorgehoben. Bei den Schaltflächen am unteren Rand, die alle über die Fläche des großen Rechtecks hinausragen (vgl. frühere Bilder) werden bei Betätigung eines der Schalter alle über den Rand ragenden und auch das große Rechteck des gesamten Widgets hervorgehoben.

SamNitro

Hey, habe mal wieder ein update-problem... sollte jetzt auf FTUI 2.4 sein.
wenn ich jetzt auf speichern klicke kommt eine Fehlermeldung siehe Anhang.

Hat da schon jemand eine Lösung?

Gruß Patrick
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

setstate

das muss "ftui." davor.

Zeile 526:

ftui.setFhemStatus



SamNitro

Perfekt Danke  :)

Zeile 541 muss auch angepasst werden ;)
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

myhome

#254
Hallo eki ich mal wieder,
habe ein Problem beim Chrome Browser Firefox geht. Das Folgende

define Timer_wz.Lichtschacht WeekdayTimer st.wz.li.Lichtschacht de 1234560|{sunset("REAL",0,"16:00","21:50")}|on 1234560|23:57|off 1234560|23:58|off 123456|05:35|on 123456|{sunrise("REAL",0,"05:40","07:20")}|off
attr Timer_wz.Lichtschacht disable 0
attr Timer_wz.Lichtschacht group Lifestyle
attr Timer_wz.Lichtschacht icon time_timer
attr Timer_wz.Lichtschacht room Wohnzimmer,Lifestyle

wird im wdtimer angezeigt aber nur gespeichert unter dem Firefox. Nehme ich ein "sun.. "raus geht es bei Chrome und Firefox. Kann mir das nicht erklären. Es wird bei Beiden richtig angezeigt!!! Also ich mach die Einträge in der cfg und öffne dann den wdtimer.
Noch was,  stört mich aber nicht. Beim Chrome bekomme ich immer den "disable" Schalter doppelt nebeneinander angezeigt beim Firefox nicht.
Raspberry Pi4, Pi3 und Zero's, Homematic, Zigbee, WLAN, USB, One-wire für Wasser, Heizung und Rücklauftemp und alte F20 für den Garten, Messen GAS, Wasser, Strom, PV, weiteres