FHEM Forum

FHEM => Frontends => FHEMWEB => Thema gestartet von: Ellert am 12 August 2017, 09:03:24

Titel: Bei DEF Änderungen keine Seitenaktualisierung mehr
Beitrag von: Ellert am 12 August 2017, 09:03:24
Wenn die Definition eines Gerätes in der Detailansicht über DEF geändert wird, dann findet seit einiger Zeit keine Aktualisierung der Detailseite statt.

Subjektiv ist dieses Verhalten seit der FHEM Version 5.8 zu beobachten, getestet mit aktuellem Firefox und Chrome im Auslieferungszustand.

Bei Modulen, die eine FW_detailFn nutzen ist das Verhalten störend, da das Ergebnis einer Definitionsänderung erst nach einem manuellen Neuladen der Seite angezeigt wird.

Das beschriebene Verhalten ist auch beim Ändern von Attributen, welche die Ansicht verändern, zu beobachten.

Am Beispiel einer readingsGroup ist das Verhalten nachzustellen.

Raw definition
defmod noreload readingsGroup .*:temperature
attr noreload room 0_Test


Zuerst die Definition erstellen und die Detailseite aufrufen.
In der Deitailseite temperature durch measured-temp ersetzen und den modify-Button drücken.

Wenn die readingsGroup erstellt wurde und über DEF geändert wird, dann wird die geänderte Tabelle erst nach manuellem Laden der Seite angezeigt.

Beobachten dieses Verhalten auch andere User?
Ist dieses Verhalten gewollt?
Liegt die Aktualisierung der Seite in der Verantwortung des Modul-Erstellers?
FW_directNotify("#FHEMWEB:$FW_wname", "location.reload()", "");


Titel: Antw:Bei DEF Änderungen keine Seitenaktualisierung mehr
Beitrag von: rudolfkoenig am 13 August 2017, 12:48:24
Seit 2016-04-03 (r11178) wird ein Klick auf modify in FW_inlineModify realisiert (Kommentar in fhemweb.js: Do not generate a new HTML page upon pressing modify). Das Gleiche gilt fuer attr (2016-05-29/r11553). Bei attr gibts eine Sonderbehandlung: falls die Zeile mit dem Attribut noch nicht sichtbar ist, dann wird die Seite neu geladen, sonst passiert die Aktualisierung durch die longpoll Benachrichtigung.

Um dein Problem zu loesen, muesste das Aendern des relevanten Attributes/Definition ein Event fuers Geraetestatus ausloesen, das muesste via longpoll im Browser ankommen. Kann sein dass ich etwas uebersehe, ich habe diesen Ratschlag noch nicht ueberprueft.
Titel: Antw:Bei DEF Änderungen keine Seitenaktualisierung mehr
Beitrag von: Ellert am 13 August 2017, 16:58:46
Ich habe es probiert, ein Geräte Event aktualisiert die FW_detailFn nicht, ist eigentlich auch logisch, denn die Rückgabe der FW_detailFn wird durch FHEMWEB in die Detailseite eingebaut, soweit ich es verstanden habe.

Wenn ich den Inhalt eines Attributes ändere und diese Änderung den Rückgabewert der FW_detailFn ändert, dann wird es ohne manuellem Reload nur angezeigt, wenn ich in der AttrFn des Moduls
FW_directNotify("#FHEMWEB:$FW_wname", "location.reload()", "");
einbaue.