Autor Thema: fhemweb: Reload der Seite nach set cmd  (Gelesen 692 mal)

Offline dominik

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2468
fhemweb: Reload der Seite nach set cmd
« am: 13 Dezember 2020, 18:06:21 »
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/dominikkarall/fhempy: GoogleCast, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 23398
Antw:fhemweb: Reload der Seite nach set cmd
« Antwort #1 am: 13 Dezember 2020, 20:51:24 »
Fuer set (und bestimmte attr) wird die Seite nicht neu geladen, sondern der Befehl per asynchronem JavaScript Aufruf (aka ajax) abgesetzt.

Offline dominik

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2468
Antw:fhemweb: Reload der Seite nach set cmd
« Antwort #2 am: 13 Dezember 2020, 21:01:59 »
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/dominikkarall/fhempy: GoogleCast, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 23398
Antw:fhemweb: Reload der Seite nach set cmd
« Antwort #3 am: 13 Dezember 2020, 21:14:41 »
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.

Offline dominik

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2468
Antw:fhemweb: Reload der Seite nach set cmd
« Antwort #4 am: 13 Dezember 2020, 22:27:09 »
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/dominikkarall/fhempy: GoogleCast, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Offline dominik

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2468
Antw:fhemweb: Reload der Seite nach set cmd
« Antwort #5 am: 13 Dezember 2020, 23:48:57 »
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/dominikkarall/fhempy: GoogleCast, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 23398
Antw:fhemweb: Reload der Seite nach set cmd
« Antwort #6 am: 14 Dezember 2020, 08:52:22 »
Ich meine das ist so richtig. Es soll ja nicht staendig was schiefgehen.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 13207
  • "Developer"?!? Meistens doch eher "User"
Antw:fhemweb: Reload der Seite nach set cmd
« Antwort #7 am: 14 Dezember 2020, 13:36:13 »
Bin nicht sicher, ob das hier eine Nebenwirkung ist:
fhemweb.js line 1262:
Uncaught ReferenceError: shift is not defined

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-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, Twilight,  AttrTemplate => {mqtt2, mysensors, zwave}

 

decade-submarginal