Bei DEF Änderungen keine Seitenaktualisierung mehr

Begonnen von Ellert, 12 August 2017, 09:03:24

Vorheriges Thema - Nächstes Thema

Ellert

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()", "");



rudolfkoenig

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.

Ellert

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.