Hi,
There seems to be a bug in FHEMWEB. If I view my max valve log file the URL is
.....:8083/fhem/FileLog_logWrapper&dev=FileLog_MAX_Lounge1&type=text&file=MAX_Lounge1-2017.log
I can click refresh on the browser with that URL with no problem. If I then jump the end the URL is
.....:8083/fhem/FileLog_logWrapper&dev=FileLog_MAX_Lounge1&type=text&file=MAX_Lounge1-2017.log#end_of_file
If click browser refresh now I get this error message
fhemweb.js line 919:
Uncaught SyntaxError: Failed to construct 'WebSocket': The URL contains a fragment identifier ('end_of_file?XHR=1&inform=type=status;filter=;since=1488221958;fmt=JSON&fw_id=135×tamp=1488221959585'). Fragment identifiers are not allowed in WebSocket URLs.
Remove the #end_of_file and it is ok. However this error does NOT occur with the main log file, this URL
.......:8083/fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2017-02.log#end_of_file
works fine and refreshes ok.
Thanks for the report, I fixed it, available via update after tomorrow, 8:00 CET.
Hallo Rudi,
die fhemweb.js von heute morgen sorgt dafür, dass longpoll im Zusammenspiel mit InfoPanel im Browser (webviewcontrol) auf Android (4.0.4) nicht mehr funktioniert und die Verbindung zwischen Tablet und FHEM nach ca. 1 Minute abreißt. Mit anderen Kombinationen habe ich es noch nicht getestet.
Mit fhemweb.js #13516 ist alles noch ok.
Die besagte Aenderung betrifft nur websocket:
% svn diff -r13516 fhemweb.js
Index: fhemweb.js
===================================================================
--- fhemweb.js (revision 13516)
+++ fhemweb.js (working copy)
@@ -916,7 +916,7 @@
var loc = (""+location).replace(/\?.*/,"");
if(typeof WebSocket == "function" && FW_longpollType == "websocket") {
- FW_pollConn = new WebSocket((loc+query).replace(/^http/i, "ws"));
+ FW_pollConn = new WebSocket(loc.replace(/[&?].*/,'').replace(/^http/i, "ws")+query);
FW_pollConn.onclose =
FW_pollConn.onerror =
FW_pollConn.onmessage = FW_doUpdate;
Laut http://caniuse.com/#feat=websockets (http://caniuse.com/#feat=websockets) gibts websocket erst seit Android 4.4.
Bin offiziell ratlos.
Zitat von: rudolfkoenig am 28 Februar 2017, 20:47:38
Bin offiziell ratlos.
Schon das zweite Mal heute? *staun*
Leider kann ich Dir auch nicht mehr sagen, als dass die "alte" fhemweb.js funktioniert und die neue nicht.
Dass websocket erst ab 4.4. verfügbar sind, hatten wir neulich schonmal als Ursache für Probleme. Was kann ich tun, um Dich bei der Problemlösung zu unterstützen?
Bist du _ganz_ sicher, das es daran liegt, bzw. dass das aktuelle fhembwe.js geladen wurde?
Hast du "longpoll websocket" eingestellt ?
Kannst du mir die JS-Console zeigen?
Welcher Browser laeuft auf dem Geraet? Stock oder Chrome?
Was liefert "trigger WEB JS:alert(typeof WebSocket)" ?
Den Browser hatte ich oben schon genannt: webviewcontrol, JS-Console gibts da nicht.
Hab die Seite jetzt mal im Stock-Browser des Tablets geladen, da kommt nach der gleichen Zeitspanne (ca. 1 Minute) ein Popup Fenster, in dem nur "undefined" steht.
Ein ähnlicher Fehler tritt auf, wenn ich das InfoPanel im Safari auf dem MacBook lade - siehe screenshot
Wenn ich trigger WEB JS:alert(typeof WebSocket) in Safari ausführe, hängt mein FHEM eine Zeitlang in einer Ladeschleife, eine Ausgabe erfolgt nicht.
Apropos Safari: was ist mir dem Desktop-Safari? Der hat naemlich eine Konsole :)
Das undefined Popup ist das was ich auf einem Nicht-WebSocket-Faehigen Browser erwarte.
Und wo ist die Antwort auf meinen ersten zwei Fragen abgeblieben?
Zitat von: rudolfkoenig am 28 Februar 2017, 21:13:41
Apropos Safari: was ist mir dem Desktop-Safari? Der hat naemlich eine Konsole :)
Ja, da bin ich auch grade draufgekommen. Aber bisher keine Auffälligkeiten.
Zitat von: rudolfkoenig am 28 Februar 2017, 21:13:41
Und wo ist die Antwort auf meinen ersten zwei Fragen abgeblieben?
Sorry, ich kämpfe nebenbei noch gegen diverse DNS Konfigurationen 8)
- "attr web longpll 1" steht in meiner Konfiguration.
- ja, es ist die aktuelle fhemweb.js geladen.
Nachdem FHEM vorhin bei den Versuchen, Deine Fragen zu beantworten, mehrfach abgestürzt ist, scheint es jetzt einfach so zu laufen, wie es soll.
Genau so ein Mysterium wie die Sache mit den nicht funktionierenden at-devices, die plötzlich auch wieder laufen - zum Glück nicht nur bei mir.