FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: thinman am 21 Oktober 2019, 09:08:05

Titel: FTUI Popup - update probleme
Beitrag von: thinman am 21 Oktober 2019, 09:08:05
Servus, ich hab unsere "Badezimmer" FTUI Seite neu gestaltet weil es etwas nervig war, dass die Radio Stream-Wiedergabe immer gestoppt hat wenn man eine Unterseite aufgerufen hat.
Nachdem ich die Unterseiten als Popup realisiert habe, ist diese Problem weg, dafür aber eine neue aufgetaucht.
Der Inhalt der Popup wird nur einmal aktualisiert. Wenn man es erneut aufmacht werden die alte Daten wieder gezeigt.
(Z.B. die DBLog Diagramm zeigt nur die Daten vom ersten Aufruf.) Das bleibt solange so, bis das ganze FTUI Seite refresh-t wird.

Hier ein Beispiel über die Wettervorhersage. Dieses Bild sollte immer bei der aktuelle Stunde anfangen:
<li data-row="1" data-col="3" data-sizex="2" data-sizey="2" class="gs-w">
<header><div data-type="label" class="">Vorhersage</div></header>
<div data-type="popup" data-draggable="false" class="interlock"
   data-height="348px"
   data-width="800px">
<div  data-type="push" data-icon="fa fa-thermometer-half" class="small"></div>
<div data-type="label" class="">Hanau</div>
  <div class="dialog">
<div data-type="image"
data-size="100%"
data-refresh="300"
onclick="$('.dialog-close').trigger('click');"
data-url="http://www.yr.no/place/Germany/Hesse/Hanau/meteogram.png">
</div>
</div>
</div>
</li>


...und diese DBLog Diagramm soll immer die aktuelle Kurven zeigen und nach 24 Stunden auf das nächste Tag springen:
<li data-row="1" data-col="7" data-sizex="2" data-sizey="2" class="gs-w">
<header><div data-type="label" class="">Temperatur</div></header>
<div data-type="popup" data-draggable="false" class="interlock"
   data-height="420px"
   data-width="800px">
<div  data-type="push" data-icon="fa fa-line-chart" class="small"></div>
<div data-type="label" class="">Diagramm</div>
  <div class="dialog">
<div data-type="push" data-icon="fa-home" onclick="$('.dialog-close').trigger('click');"></div>
<div class=""
data-type="chart"
data-device="Wetterstation"
data-height="300"
data-logdevice="DBLogging"
data-logfile="HISTORY"
data-columnspec='["Wetterstation:temperature","LaCrosse_34:temperature","HM_AussenTemperatur:1.ACTUAL_TEMPERATURE"]'
data-style='["ftui l2","ftui l6","ftui l4"]'
data-ptype="lines"
data-uaxis="primary"
data-yunit="C"
data-ytext="Temperature"
data-y_margin="10"
data-minvalue="auto"
data_maxvalue="auto"
data-legend='["Temperatur Wetterstation","Temperatur Terrasse","Temperatur HomeMatic"]'
data-cursorgroup="1"
data-scrollgroup="1"
data-showlegend="true"
data-xticks="auto"
data-yticks="auto"
data-crosshair="true">
</div>
</div>
</div>
</li>


Beide verharren aber aber bei der Daten des ersten Aufrufs.
Gibt es eine Möglichkeit das Popup mitzuteilen, dass es neue Daten ziehen soll ohne das gesamte Seite neu zu laden?
Titel: Antw:FTUI Popup - update probleme
Beitrag von: Thorsten Pferdekaemper am 21 Oktober 2019, 09:35:18
Hi,
das Problem bei den Popups ist, dass sie sozusagen komplett mit der Seite geladen werden und das Öffnen und Schließen des Dialogs dann nur noch das Popup zeigt und wieder versteckt.
Ich hatte mit FUIP ein ähnliches Problem beim Resizing der Views (Widgets) auf dem Dialog. Ich habe das dann so gelöst, dass ich mich auf den Event "fadein" aller dialog-Elemente registriere und dann kurz danach das mache, was ich eben machen will. Also in etwa so:

$(".dialog").on("fadein",function() {  setTimeout(<yourfunction goes here>, 10 ) } );

Dort könnte man dann ggf. auch ein refresh der einzelnen Widgets im Dialog machen. ...ob das allerdings für jedes Widget so einfach geht ist ein anderes Thema.
Gruß,
   Thorsten
Titel: Antw:FTUI Popup - update probleme
Beitrag von: thinman am 21 Oktober 2019, 10:46:44
Hallo Thorsten, vielen Dank!

Ich kenne mich dummerweise nicht mit HTML Programmierung aus. Mein wissen reicht gerade noch zum Interpretieren der FHEM Dokumentation und mit einige Trial & Error dann das entsprechende Implementierung von meine Seite...  :-[
Dein code segment ist mir leider noch etwas chinesisch aber ich google und experimentiere damit und wenn ich es nicht hinkriege frage ich nach weiteren details.



Titel: Antw:FTUI Popup - update probleme
Beitrag von: thinman am 23 Oktober 2019, 13:39:57
Es ist schon doof wenn  man von Java keine Ahnung hat.  :-[  ich komme nicht weiter was ja kein Wunder ist: ich versuche nur Code Fragmenten aus der Net zu verbasteln ohne, dass ich die Sprache kenne.

Ich hab damit versucht:
$(".dialog").load('refresh.php', function() {$(this).dialog('open');});

aber natürlich ohne Erfolg. Kann jemand mir noch weiter Tipps geben? Danke.
Titel: Antw:FTUI Popup - update probleme
Beitrag von: Thorsten Pferdekaemper am 23 Oktober 2019, 13:50:56
Hi,
vielleicht solltest Du das ganze etwas anders angehen: Bei image könntest Du z.B. was mit data-refresh bzw. data-get machen. Bei chart mit data-get. Damit kannst Du steuern, wann das ganze jeweils aktualisiert wird.
Gruß,
   Thorsten
Titel: Antw:FTUI Popup - update probleme
Beitrag von: thinman am 23 Oktober 2019, 14:59:26
Hi Thorsten,

danke für  den Tipp. Bei Image habe ich schon eine data-refresh von 300 drin (alle 5 Minuten). Leider wird dies ignoriert sobald das Image in ein Popup steckt.
Früher hatte ich diese Bilder als eigene Seiten drin aber das hatte der gravierende Nachteil, dass der Radio Stream nach  aufrufen eine  Image Seite weiter gespielt hat und dann nur noch durch eine Reload das gesamte Seite gestoppt werden konnte.
Bei eine Kiosk Style (Full  Screen) Sytem ohne Tastatur ist das natürlich nicht praktikabel. Deswegen wären PopUps so gut, weil man nie der Seite verlassen müsste.
Eine mehrere Tage alte Wettervorhersage ist wiederum nicht mehr besonders hilfreich. (Der Chart ist eher unwichtige Spielerei).
Ich versuche mal was passiert wenn ich die Image URL aus eine Dummy Reading hole und diese periodisch update. Mal sehen ob das klappt.

Ich weis es nicht ob FTUI noch weiter entwickelt wird aber es wäre toll wenn irgendwann der PopUp Widget eine Option für Refresh beim Aufruf bekommen könnte.
Titel: Antw:FTUI Popup - update probleme
Beitrag von: Thorsten Pferdekaemper am 23 Oktober 2019, 15:28:57
Hi,
meiner Meinung nach sollten da eher die einzelnen Widgets erstmal auch auf Popups richtig funktionieren, bevor man da was neues einbaut.
Gruß,
   Thorsten
Titel: Antw:FTUI Popup - update probleme
Beitrag von: thinman am 23 Oktober 2019, 16:26:07
Zitat von: Thorsten Pferdekaemper am 23 Oktober 2019, 15:28:57
Hi,
meiner Meinung nach sollten da eher die einzelnen Widgets erstmal auch auf Popups richtig funktionieren, bevor man da was neues einbaut.
Gruß,
   Thorsten

Ja, das wäre wahrscheinlich das richtige Weg.

Ich frage mich warum ich immer etwas bastle bei dem immer Probleme auftreten...  ???

Also wenn ich die URL aus ein Reading hole, dann funktioniert das Update im  PopUp/Image... ABER: es muss immer was neues im Reading sein sonst geht es nicht.
Einfach das selbe reinschreiben und darauf vertrauen, dass event-on-update-reading.*  feuert, bring nix.

Internals:
   CFGFN     
   FUUID      5db04cdc-f33f-0963-24dd-d4004a3e37b63c30
   NAME       page_refresh
   NR         425804
   STATE      http://www.datum-und-uhrzeit.de/datetime.exe?datetime3=true
   TYPE       dummy
   READINGS:
     2019-10-23 15:36:06   update          http://www.datum-und-uhrzeit.de/datetime.exe?datetime3=true
   helper:
...
Attributes:
   event-on-change-reading .*
   event-on-update-reading .*
   readingList update
   room       WetterStation
   stateFormat update


und

Internals:
   CFGFN     
   COMMAND    setreading page_refresh  update http://www.datum-und-uhrzeit.de/datetime.exe?datetime3=true
   DEF        +*00:01:00 setreading page_refresh  update http://www.datum-und-uhrzeit.de/datetime.exe?datetime3=true
   FUUID      5db052c6-f33f-0963-afc4-ba484f3147326cb1
   NAME       UpdateWetter
   NR         427379
   NTM        15:38:06
   PERIODIC   yes
   RELATIVE   yes
   REP        -1
   STATE      Next: 15:38:06
   TIMESPEC   00:01:00
   TRIGGERTIME 1571837886.31268
   TRIGGERTIME_FMT 2019-10-23 15:38:06
   TYPE       at
   READINGS:
     2019-10-23 15:37:06   state           Next: 15:38:06
  ...
Attributes:
   room       WetterStation


funktionieren in FHEM einwandfrei. Das Reading: "update" kriegt jede Minute eine neue Update Zeit... nur das Widget im FTUI interessiert das nicht die Bohne.
Erst wenn ich die Inhalt des Readings ändere, wird das Bild im Image Widget entsprechend aktualisiert.
Bisschen doof weil dadurch das ganze Konstrukt unnötig kompliziert wird.

Titel: Antw:FTUI Popup - update probleme
Beitrag von: Thorsten Pferdekaemper am 23 Oktober 2019, 19:50:29
Zitat von: thinman am 23 Oktober 2019, 16:26:07
Also wenn ich die URL aus ein Reading hole, dann funktioniert das Update im  PopUp/Image... ABER: es muss immer was neues im Reading sein sonst geht es nicht.
Das liegt meiner Meinung nach am Browser Cache. Da kann man dann z.B. sowas wie "?time=<date/time>" dranhängen.

Zitat
Einfach das selbe reinschreiben und darauf vertrauen, dass event-on-update-reading.*  feuert, bring nix.
event-on-update-reading.* bringt eh nix. Das ist sowieso das, was FHEM normalerweise macht.

Gruß,
   Thorsten
Titel: Antw:FTUI Popup - update probleme
Beitrag von: thinman am 23 Oktober 2019, 22:33:55
event-on-update-reading.* wäre für diesen Zweck perfekt, weil es auch dann ein Event produziert wenn der Reading das selbe blieb.
Es funktioniert auch in FHEM. Das letzte Update Zeit eines Readings ändert sich auch wenn der Inhalt das selbe ist.
Somit wäre es perfekt um das PopUp Dialog auszutricksen. 
Dummerweise funktioniert das in FTUI nicht. Obwohl das Änderungsdatum neu ist, aktualisiert das PopUp nur dann das Inhalt wenn tatsächlich der Reading eine andere Inhalt hat.
Doof.
Also erst den Pfad fürs Bild leeren, dann ein kurze sleep (ohne ein sleep hat es nicht geklappt) und dann das richtige Pfad reinschreiben.
Dann erscheint das aktuelle Bild im Image PopUp.

Grüße
Steve
Titel: Antw:FTUI Popup - update probleme
Beitrag von: Thorsten Pferdekaemper am 24 Oktober 2019, 13:00:44
Zitat von: thinman am 23 Oktober 2019, 22:33:55
event-on-update-reading.* wäre für diesen Zweck perfekt, weil es auch dann ein Event produziert wenn der Reading das selbe blieb.
Ja, das tut es. Was ich meinte ist folgendes: Das ist sowieso auch das, was FHEM auch ohne event-on-change-reading und event-on-update-reading macht. Du hast sozusagen mit event-on-change-reading erst alle updates abgeschaltet und dann mit event-on-update-reading wieder an. Du hättest beides auch weglassen können.
(Das hat aber mit Deinem Problem nichts zu tun.)
Gruß,
   Thorsten
Titel: Antw:FTUI Popup - update probleme
Beitrag von: thinman am 24 Oktober 2019, 19:44:25
Ach, okay. Das leuchtet ein. Sorry, ich brauche manchmal etwas länger...  :-[

Mein Problem habe ich mit ein at und Dein Idee mit data-get erfolgreich gelöst. Danke!

Grüße
Steve