fhemweb: Reload der Seite nach set cmd

Begonnen von dominik, 13 Dezember 2020, 18:06:21

Vorheriges Thema - Nächstes Thema

dominik

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!
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

rudolfkoenig

Fuer set (und bestimmte attr) wird die Seite nicht neu geladen, sondern der Befehl per asynchronem JavaScript Aufruf (aka ajax) abgesetzt.

dominik

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?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

rudolfkoenig

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.

dominik

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.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

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 :)
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

rudolfkoenig

Ich meine das ist so richtig. Es soll ja nicht staendig was schiefgehen.

Beta-User

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files