Hallo,
ich habe gerade bei einem meiner Module (fhempy miio) das Problem, dass die FHEM Device Seite nach einem "set dev status" nicht neu geladen wird. Interessanterweise führt das dazu, dass man nochmaligen Klicken auf "set" auf der Device Seite kein "set dev status" ausgelöst wird, sondern ein "set dev status undefined". Ich habe keine Ahnung woher das "undefined" kommt, das kommt aber nur dazu, wenn die Device Seite nicht neu geladen wird. Macht man dazwischen ein F5, wird "undefined" nicht drangehängt.
Daher 2 Fragen:
- Wird bei jedem "set dev cmd" im Webinterface (also über das select) die Seite neu geladen? Was kann dazu führen, dass diese kein reload erfährt?
- Warum wird bei keinem reload ein "undefined" als weiteres Argument angehängt?
Im FHEM Web JS Code konnte ich leider nicht herausfinden wie das zusammenhängt.
Schon mal danke für die Unterstützung!
Fuer set (und bestimmte attr) wird die Seite nicht neu geladen, sondern der Befehl per asynchronem JavaScript Aufruf (aka ajax) abgesetzt.
Ok, liege ich dann richtig in der Annahme, dass nur bei Reading Updates somit die Seite neu geladen wird?
Wo finde ich den Code der den Befehl absetzt? fhemweb.js im FW_createSelect?
Bei Reading-Updates wird die Seite nicht neu geladen, nur das Reading (wenn auf der Seite vorhanden) aktualisert, und rot bemalt.
Fuer set muss einer der FW_cmd Aufrufe sein, bin im Moment auch etwas verloren, welcher.
Ok, danke!
Was mir noch nicht klar ist, wieso dann bei einem Set überhaupt in den meisten Fällen die gesamte Seite neu geladen wird. Diesen Code-Teil konnte ich noch nirgends finden.
Ich habe jetzt den fhemweb.js Code mal grob verstanden. In FW_cmd wird also der jeweilige Befehl ausgeführt. Wenn ich mir das ansehe, dann wird, wie du schon geschrieben hast, der Befehl via AJAX ausgeführt. Eigenartig ist nur, dass nur im Fehlerfall eigentlich die Seite neu geladen wird.
Also wenn ich einen dummy mit setList on off mache, dann lädt bei mir nach jedem Set die Seite neu. Ist das jetzt korrekt oder nicht? Bin gerade etwas verwirrt :)
Ich meine das ist so richtig. Es soll ja nicht staendig was schiefgehen.
Bin nicht sicher, ob das hier eine Nebenwirkung ist:
Zitat von: misave am 14 Dezember 2020, 11:57:01
fhemweb.js line 1262:
Uncaught ReferenceError: shift is not defined
Zitat von: mcp am 14 Dezember 2020, 13:15:50
ich bekomme seit heute genau die gleiche Fehlermeldung (nach heutigem Update), bei mir liegt es an "widgetOverride :" was bisher problemlos funktioniert hat.
Sobald ich das widgetOverride : vom Device weg nehme ist der Fehler weg.