Das Problem, dass kein webseiten-refresh nach "klicken" beliebiger Buttons nach dem fhemweb.js Umbau mehr erfolgt, bleibt bestehen.
Ich habe gestern einmal, weil es ohnehin erforderlich war, auf meinem zweiten Cubietruck, debian neu instaliert und fhem (nightly build debian) entsprechend danach.
Und weiterhin besteht das Problem, dass die Folgenden *.js (in rot dargestellt) nicht geladen werden, bzw. jegliches "Klicken" auf Buttons kein refresh der Seite erzeugen. Ich nutze zu diesem Test auch nur! die fhem.cfg.demo, um hier etwaige weitere Abhängigkeiten auszuschliessen.
Ich habe es mit diversen Browsern probiert. Im übrigen zeigen IE/Chrome in der JavaScript-Console auch keine Fehler an.
Mit welchen Browser geht's nicht:
IE11, Chrome Version 40.0.2214.94 m, FF 30.0, FF 31.0, FF 35.01, Opera 27.0.1689.54
Mit welchem Browser geht's:
Safari (aktuell)
Das ist eine erdrückende Mehrheit an Browsern, bei diesen ein "refresh" unter fhem nicht! funktioniert, weshalb ich fhem jetzt nur bis zum Stand 9.1.2015 verwenden kann.
Frage: Welche Interimslösung wäre hier sinnvoll ? Derzeit verwende ich die "alte" fhemweb.js von 9.1.2015. Damit funktioniert "refresh" zwar, aber mache andere Dinge hingegen nicht.
Da ich zwei Android Tablett's als Info-Display (bzw. Steuerung) für FHEM verwende und hierbei auch kein refresh erfolgt, ist die Steuerung leider vollkommen unmöglich geworden mit der derzeitigen fhemweb.js.
Folgende *.js (in rot) werden nicht geladen:
2015.01.30 13:43:14 4: HTTP FHEMWEB:134.76.4.162:61036 GET /fhem/pgm2/style.css
2015.01.30 13:43:14 4: HTTP FHEMWEB:134.76.4.162:61039 GET /fhem/pgm2/svg.js
2015.01.30 13:43:14 4: HTTP FHEMWEB:134.76.4.162:61042 GET /fhem/pgm2/fhemweb.js
2015.01.30 13:43:14 4: HTTP FHEMWEB:134.76.4.162:61048 GET /fhem/pgm2/fhemweb_multiple.js
2015.01.30 13:43:14 4: HTTP FHEMWEB:134.76.4.162:61045 GET /fhem/pgm2/fhemweb_colorpicker.js
2015.01.30 13:43:14 4: HTTP FHEMWEB:134.76.4.162:61051 GET /fhem/pgm2/fhemweb_noArg.js
2015.01.30 13:43:14 4: HTTP FHEMWEB:134.76.4.162:61039 GET /fhem/pgm2/fhemweb_readingsGroup.js
2015.01.30 13:43:14 4: HTTP FHEMWEB:134.76.4.162:61042 GET /fhem/pgm2/fhemweb_readingsHistory.js
2015.01.30 13:43:14 4: HTTP FHEMWEB:134.76.4.162:61036 GET /fhem/pgm2/fhemweb_slider.js
2015.01.30 13:43:14 4: HTTP FHEMWEB:134.76.4.162:61051 GET /fhem/pgm2/defaultCommon.css
2015.01.30 13:43:14 4: HTTP FHEMWEB:134.76.4.162:61048 GET /fhem/pgm2/fhemweb_svg.js
2015.01.30 13:43:14 4: HTTP FHEMWEB:134.76.4.162:61045 GET /fhem/pgm2/fhemweb_textField.js
2015.01.30 13:43:14 4: HTTP FHEMWEB:134.76.4.162:61036 GET /fhem/pgm2/fhemweb_time.js
2015.01.30 13:43:15 4: HTTP FHEMWEB:134.76.4.162:61051 GET /fhem/pgm2/dashboard_style.css
2015.01.30 13:43:15 4: HTTP FHEMWEB:134.76.4.162:61051 GET /fhem/images/default/fhemicon.png
2015.01.30 13:43:15 4: HTTP FHEMWEB:134.76.4.162:61051 GET /fhem/icons/favicon
2015.01.30 13:43:15 4: 2058:FHEMWEB:134.76.4.162:61051: /fhem/icons/favicon / RL:20 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
Viele Grüße!
Andreas
Siehe
http://forum.fhem.de/index.php/topic,33026.msg254084.html#msg254084
Zitat von: rudolfkoenig am 03 Februar 2015, 12:47:28
Siehe
http://forum.fhem.de/index.php/topic,33026.msg254084.html#msg254084
Ja, war ja mein eigenes Posting, aber für das Problem gibt's noch keine (interims)Lösung/Fix. Fronthem verwende ich garnicht!.
Frage: Ist es sinnvoll die fhemweb.js (9.1.2015 vor dem Umbau) in Verbindung mit dem "neueren" 01_FHEMWEB.pm zu verwenden ? (... ich vermute einmal nein)
für die Akten: fronthem ist auch entlastet. Da habe ich sofort nach dem fhemweb Umbau angepasst.
vg
jörg
Natuerlich ist der Einsatz von veralteten Komponenten nicht die Loesung. Und ich helfe auch gerne das Problem zu loesen, wenn ich es nachvollziehen kann. Z.zt. kann ich das nicht, und ich habe mir echt Muehe gegeben (wg. IE11). Und viele Andere hier im Forum haben damit kein Problem, sonst waere das Geschrei gross.
Die Liste der fehlenden Komponenten hilft nicht: ja, ich habe fhemweb.js umgebaut, und einer der Ziele war den Anzahl der geladenen .js Dateien zu verringern. Die "fehlenden" fhemweb_*.js Dateien sind jetzt direkt in fhemweb.js integriert, und svg.js wird auch nur beim Bedarf geladen. Eine weitere Aenderung war das Neuladen der Seite vom backend (wenn machbar) zu vermeiden, d.h. viele Befehle werden jetzt per JS ausgefuehrt, und die Aenderung dynamisch in die Seite eingebaut, ohne die komplette Seite vom Backend zu holen. Was alles geaendert wurde, ist hier (http://forum.fhem.de/index.php/topic,31293.0.html) dokumentiert.
Zitat von: rudolfkoenig am 03 Februar 2015, 13:31:42
Natuerlich ist der Einsatz von veralteten Komponenten nicht die Loesung. Und ich helfe auch gerne das Problem zu loesen, wenn ich es nachvollziehen kann. Z.zt. kann ich das nicht, und ich habe mir echt Muehe gegeben (wg. IE11). Und viele Andere hier im Forum haben damit kein Problem, sonst waere das Geschrei gross.
Ja, einige Andere haben dieses Problem auch (gab's schon einige Threads dazu). Zugegeben, es sind weniger, als ich bei diesem eklatanten Problem erwartet hätte.
Zitat von: rudolfkoenig am 03 Februar 2015, 13:31:42
Die Liste der fehlenden Komponenten hilft nicht: ja, ich habe fhemweb.js umgebaut, und einer der Ziele war den Anzahl der geladenen .js Dateien zu verringern. Die "fehlenden" fhemweb_*.js Dateien sind jetzt direkt in fhemweb.js integriert, und svg.js wird auch nur beim Bedarf geladen. Eine weitere Aenderung war das Neuladen der Seite vom backend (wenn machbar) zu vermeiden, d.h. viele Befehle werden jetzt per JS ausgefuehrt, und die Aenderung dynamisch in die Seite eingebaut, ohne die komplette Seite vom Backend zu holen. Was alles geaendert wurde, ist hier (http://forum.fhem.de/index.php/topic,31293.0.html) dokumentiert.
Ja, ich habe mir den "fhemweb.js Umbau" Thread angesehen (zugegeben nicht alle Postings).
Ich würde ja gerne selbst eine Lösung finden, stehe aber hier ehrlich vor einem Rätsel, und wollte ansich eher nicht mir die gesamte fhemweb.js zur Gemüte führen:
Wg. der Reproduzierbarkeit:
Was habe ich gestern gemacht:
1.) Auf meinem 2'ten Cubietruck debian neu installiert (Igors Image)
2.) Alle erforderlichen Pakete installiert (muss ich nicht im Detail ausführen)
3.) FHEM Installiert:
--> Repository hinzugefügt: in /etc/apt/sources.list "deb http://debian.fhem.de/nightly ./" ... hinzugefügt
--> apt-get update
--> apt-get install fhem
4.) in /opt/fhem ... perl fhem.pl fhem.cfg.demo ... aufgerufen (habe natürlich vorher noch "attr WEB verbose 5" in fhem.cfg.demo eingefügt)
5.) Und siehe da: refresh geht nicht bei klick auf irgendwelche Buttons unter nahezu allen Browsern.
6.) in fhem "update force" gemacht (ist ansich nicht wirklich nötig gewesen, aber sicher ist sicher ;-)
7.) in /opt/fhem ... perl fhem.pl fhem.cfg.demo ... gestartet, und Problem ist immer noch da --> kein refresh. Vorher noch zur Sicherheit Browsercache komplett gelöscht.
Diesen Effekt (no refresh) habe ich auf meinem RasPI, beiden CT und einem BananaPI unter diversen LINUX Distributionen (auch hier ist keine Abhängigkleit zu einer bestimmten Distribution auszumachen). Während ich das hier schreibe, wunder ich mich schon selbst über die Randbedingungen, die ich hier mit einbeziehe, denn diese sind wirklich schon nicht mehr Kern der Problems.
(Achtung) <Ironie>Bald glaube ich auch noch an Effekte, die nur bei Sonnenfleckentätigkeit und etwaigen Wasseradern unter meinen Haus auftreten</Ironie>.
Was habe ich an den o.g. Punkten falsch gemacht ?Achja, auf den System läuft: >>> perl 5, version 14, subversion 2 (v5.14.2) <<< ... naja... was sonst.
Wäre der Tipp von "justme1968" sinnvoll ...
http://forum.fhem.de/index.php/topic,32305.msg248290.html#msg248290
Vor allen Dingen, wo macht ein Einfügen von "myUtils_refresh("WEB")" hierbei wirklich Sinn ?
Ich bräuchte einen sinnvollen Anstoß, wie ich das ggf. selbst lösen könnte, ohne das ich fhem 5.6 stable ohne Updates laufen lassen muss.
Seit einem Update am Wochenende und Umstellung einer Anzeige von RSS auf InfoPanel habe ich auch Probleme mit der Darstellung.
Ich nutze in der Regel IE11 auf Laptop und Tablet(surface). Auf dem Laptop ist alles in Ordnung. Auf dem Tablet aber gibt es Probleme. Ich habe alle möglichen Einstellungen im IE11 überprüft und einheitlich gesetzt. Trotzdem bleibt das unterschiedliche Verhalten:
- kein refresh von Icons, Werten in readings, timestamps auf dem Tablet
- das InfoDisplay wird auf dem Tablet nicht als SVG dargestellt; dort sieht man nur die Texte und Werte
- auf dem Tablet bekommt man(seit Sonntag) bei jeder SVG-Grafik(Plot) ein Popup "Laufzeitfehler in MS JScript" und "parent.window ist Null oder kein Objekt, line: 1, column: 0". in der Statuszeile steht noch: "ungültige CSS-Auswahl". Nach wegklicken des Popups erscheinen die Plots ganz normal
Nutzt man die "Entwicklertools" des IE sieht man folgendes: SCRIPT10: die für diesen Vorgang erforderlichen Daten sind noch nicht verfügbar, Datei fhemweb.js, Zeile: 321, Spalte 3 var Input = FW_pollConn.responseText;
und dann habe ich gerade etwas mit den "Entwicklertools" des IE11 gespielt: Es gibt dort ein Symbol Großer Bildschirm/Kleiner Bildschirm. Auf dem Laptop ist "Edge" eingestellt. Auf dem Tablet "7". Stelle ich auf dem Tablet auf "10" oder auch "Edge" funktioniert der Refresh, auch die Fehlermeldung/popup ist weg und selbst das InfoPanel funktioniert. Das ist also möglicherweise die Lösung des Problems. Nur: ich weiß nicht, was ich da verändert habe und ob das am SourceCode von FHEM oder am IE11 in Kombination mit der Hardware liegt!!!
EDIT: Hab noch etwas gegoggled. Was ich verändert hatte ist der "document type" des IE, der für die Abwärtskompatibilität zuständig ist. Und siehe da: Auf dem Tablet hatte ich unter "Einstellungen der Kompatibilitätsansicht " "Intranetsites in Kompatibilitätsansicht anzeigen" angeklickt. Häkchen entfernt schon benimmt das tablet sich wie der Laptop. Alles OK !!!
Grüße
Markus
der 'tipp' hat nichts mit deinem problem zu tun und ist auch nicht dafür gedacht als workaround für longpoll drobleme zu dienen. sondern es geht dabei ausschliesslich darum wie man von fhem aus einen refresh anstossen kann wenn sich die definition einer readingGroup so sehr ändert das es (aktuell) nicht mehr durch longpoll abgedeckt werden kann.
ich glaube du bist schon mal gefragt worden was die javascript console anzeigt. wenn hier wirklich gar nichts steht. noch nicht mal das longpoll gestartet wurde kann longpoll nicht gehen. warum das bei dir so ist müsste sich auch über die entwickler tools rausfinden lassen. schau dir nicht nur dein seiten quelltext an sondern auch die den dom und den ressourcen baum. wenn javascript in deinem browser aktiviert ist muss hier etwas zu sehen sein.
gruss
andre
Zitat von: justme1968 am 03 Februar 2015, 15:36:01
der 'tipp' hat nichts mit deinem problem zu tun und ist auch nicht dafür gedacht als workaround für longpoll drobleme zu dienen. sondern es geht dabei ausschliesslich darum wie man von fhem aus einen refresh anstossen kann wenn sich die definition einer readingGroup so sehr ändert das es (aktuell) nicht mehr durch longpoll abgedeckt werden kann.
ich glaube du bist schon mal gefragt worden was die javascript console anzeigt. wenn hier wirklich gar nichts steht. noch nicht mal das longpoll gestartet wurde kann longpoll nicht gehen. warum das bei dir so ist müsste sich auch über die entwickler tools rausfinden lassen. schau dir nicht nur dein seiten quelltext an sondern auch die den dom und den ressourcen baum. wenn javascript in deinem browser aktiviert ist muss hier etwas zu sehen sein.
gruss
andre
Ja, die JS Console zeigt nur keine Fehler, sicherlich zeigt sie was an.
Hier nochmal fhem log (verbose=5):root@fhem2:/daten/backup/fhem.org# perl fhem.pl fhem.cfg.demo
2015.02.03 15:42:28 1: Including fhem.cfg.demo
2015.02.03 15:42:28 3: telnetPort: port 7072 opened
2015.02.03 15:42:29 3: WEB: port 8083 opened
2015.02.03 15:42:29 3: WEBphone: port 8084 opened
2015.02.03 15:42:29 3: WEBtablet: port 8085 opened
2015.02.03 15:42:29 2: eventTypes: loaded 159 events from demolog/eventTypes.txt
2015.02.03 15:42:29 1: CUL_0 device is none, commands will be echoed only
2015.02.03 15:42:31 1: Including ./demolog/fhem.save
2015.02.03 15:42:31 2: FHEM demo version
2015.02.03 15:42:31 0: Server started with 54 defined entities (version $Id: fhem.pl 7815 2015-02-01 13:19:39Z rudolfkoenig $, os linux, user root, pid 3663)
2015.02.03 15:42:37 4: Connection accepted from FHEMWEB:134.76.4.162:50329
2015.02.03 15:42:37 4: Connection accepted from FHEMWEB:134.76.4.162:50323
2015.02.03 15:42:37 4: Connection accepted from FHEMWEB:134.76.4.162:50326
2015.02.03 15:42:37 4: Connection accepted from FHEMWEB:134.76.4.162:50320
2015.02.03 15:42:37 4: HTTP FHEMWEB:134.76.4.162:50320 GET /fhem?room=Light
2015.02.03 15:42:37 4: 3663:FHEMWEB:134.76.4.162:50320: /fhem?room=Light / RL:14257 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2015.02.03 15:42:37 4: Connection accepted from FHEMWEB:134.76.4.162:50332
2015.02.03 15:42:38 4: HTTP FHEMWEB:134.76.4.162:50320 GET /fhem/pgm2/style.css
2015.02.03 15:42:38 4: HTTP FHEMWEB:134.76.4.162:50323 GET /fhem/pgm2/jquery-ui.min.css
2015.02.03 15:42:38 4: HTTP FHEMWEB:134.76.4.162:50326 GET /fhem/pgm2/jquery.min.js
2015.02.03 15:42:38 4: HTTP FHEMWEB:134.76.4.162:50332 GET /fhem/pgm2/jquery-ui.min.js
2015.02.03 15:42:38 4: HTTP FHEMWEB:134.76.4.162:50320 GET /fhem/pgm2/fhemweb_colorpicker.js
2015.02.03 15:42:38 4: Connection accepted from FHEMWEB:134.76.4.162:50335
2015.02.03 15:42:38 4: HTTP FHEMWEB:134.76.4.162:50335 GET /fhem/pgm2/fhemweb.js
2015.02.03 15:42:38 4: HTTP FHEMWEB:134.76.4.162:50323 GET /fhem/pgm2/fhemweb_knob.js
2015.02.03 15:42:38 4: HTTP FHEMWEB:134.76.4.162:50326 GET /fhem/pgm2/fhemweb_readingsGroup.js
2015.02.03 15:42:38 4: HTTP FHEMWEB:134.76.4.162:50332 GET /fhem/pgm2/defaultCommon.css
2015.02.03 15:42:38 4: HTTP FHEMWEB:134.76.4.162:50320 GET /fhem/pgm2/fhemweb_readingsHistory.js
2015.02.03 15:42:38 4: HTTP FHEMWEB:134.76.4.162:50323 GET /fhem/pgm2/dashboard.js
2015.02.03 15:42:38 4: HTTP FHEMWEB:134.76.4.162:50326 GET /fhem/images/default/icoEverything.png
2015.02.03 15:42:38 4: HTTP FHEMWEB:134.76.4.162:50335 GET /fhem/codemirror/fhem_codemirror.js
2015.02.03 15:42:38 4: HTTP FHEMWEB:134.76.4.162:50332 GET /fhem/pgm2/dashboard_style.css
2015.02.03 15:42:39 4: HTTP FHEMWEB:134.76.4.162:50332 GET /fhem/images/default/fhemicon.png
2015.02.03 15:42:39 4: HTTP FHEMWEB:134.76.4.162:50320 GET /fhem?XHR=1&inform=type=status;filter=room=Light;since=1422974556;fmt=JSON×tamp=1422974559359
2015.02.03 15:42:39 4: HTTP FHEMWEB:134.76.4.162:50326 GET /fhem/jscolor/hue_background.svg
2015.02.03 15:42:39 4: HTTP FHEMWEB:134.76.4.162:50323 GET /fhem/jscolor/jscolor.js
2015.02.03 15:42:39 4: HTTP FHEMWEB:134.76.4.162:50335 GET /fhem/jscolor/ct_background.svg
2015.02.03 15:42:39 4: HTTP FHEMWEB:134.76.4.162:50335 GET /fhem/jscolor/hs.png
2015.02.03 15:42:39 4: HTTP FHEMWEB:134.76.4.162:50323 GET /fhem/jscolor/cross.gif
2015.02.03 15:42:39 4: HTTP FHEMWEB:134.76.4.162:50326 GET /fhem/jscolor/arrow.gif
2015.02.03 15:42:43 4: HTTP FHEMWEB:134.76.4.162:50326 GET /fhem?cmd.Livingroom=set%20Livingroom%20dim0%&room=Light&room=Light&XHR=1
2015.02.03 15:42:43 3: FS20 set Livingroom off
2015.02.03 15:42:43 4: 3663:FHEMWEB:134.76.4.162:50326: /fhem?cmd.Livingroom=set%20Livingroom%20dim0%&room=Light&room=Light&XHR=1 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
Anbei die JS Console (hier chrome):die "
fhemweb.js:168 15:44:27.203 FW_cmd:/fhem?cmd.Office=set Office off&room=Light&room=Light&XHR=1" sind die einzelnen Klicks auf das "licht" in der fhem.cfg.demo.
15:44:08.891 Loading script /fhem/jscolor/jscolor.js
fhemweb.js:168 15:44:08.981 Longpoll with filter room=Light
fhemweb.js:168 15:44:22.326 FW_cmd:/fhem?cmd.Office=set Office off&room=Light&room=Light&XHR=1
fhemweb.js:168 15:44:26.275 FW_cmd:/fhem?cmd.Office=set Office off&room=Light&room=Light&XHR=1
fhemweb.js:168 15:44:27.203 FW_cmd:/fhem?cmd.Office=set Office off&room=Light&room=Light&XHR=1
Navigated to http://irgendwas.no-ip.com:28083/fhem?room=Light
fhemweb.js:168 15:44:30.946 Loading script /fhem/jscolor/jscolor.js
fhemweb.js:168 15:44:31.035 Longpoll with filter room=Light
Audit bei "reload" der Seite selbst (ohne klick auf Button):Combine external CSS (4)
There are multiple resources served from same domain. Consider combining them into as few files as possible.
4 CSS resources served from irgendwas.no-ip.com.
Combine external JavaScript (10)
There are multiple resources served from same domain. Consider combining them into as few files as possible.
10 JavaScript resources served from irgendwas.no-ip.com.
Leverage browser caching (19)
The following resources are missing a cache expiration. Resources that do not specify an expiration may not be cached by browsers:
style.css
jquery-ui.min.css
jquery.min.js
jquery-ui.min.js
fhemweb.js
fhemweb_colorpicker.js
fhemweb_knob.js
fhemweb_readingsGroup.js
fhemweb_readingsHistory.js
fhem_codemirror.js
dashboard.js
icoEverything.png
defaultCommon.css
dashboard_style.css
fhemicon.png
ct_background.svg
hue_background.svg
jscolor.js
The following resources are explicitly non-cacheable. Consider making them cacheable if possible:
fhem
Leverage proxy caching (4)
Consider adding a "Cache-Control: public" header to the following resources:
icoEverything.png
fhemicon.png
ct_background.svg
hue_background.svg
Specify image dimensions (1)
A width and height should be specified for all images in order to speed up page display. The following image(s) are missing a width and/or height:
icoEverything.png
Ich kann ansonsten gerne auch die Minimalconfig "public" zur Verfügung stellen (zum lokalen Browser debugging).
Ich kann gerne dazu eine VM bei uns installieren und gebe dann die IP (vielleicht nicht allzu public) bekannt zum Testen.
Viele Grüße!
Andreas
ich kann den "Fehler" nachstellen, wenn ich die Fhemdemo über z.B. "no-ip.org" oder meine direkte externe IP , versuche aufzurufen.
wenn ich bei Office auf on drücke passiert im Display nichts, Lampe wurde aber geschalten in fhem, drücke ich off dann , Lampe im Display an, in Fhem aber aus
getestet mit chrome auf android
@fhem-challenge: So schaut es in der JS-Konsole aus, wenn es funktioniert:
19:51:34.362 Loading script /fhem/jscolor/jscolor.js
19:51:34.443 Longpoll with filter room=Light
19:52:01.380 FW_cmd:/fhem?cmd.Office=set Office off&room=Light&XHR=1
19:52:01.389 Rcvd:
19:52:01.390 Rcvd: ["AllLights","undefined","<div id=\"AllLights\" class=\"col2\"><a href=\"/fhem?cmd.AllLights=set AllLights on&room=Light\"><svg cla...(4008)
19:52:01.396 Rcvd: ["AllLights-state","undefined","undefined"]
...
Die longpoll Verbindung wurde in deinem Fall zwar geoeffnet:
2015.02.03 15:42:39 4: HTTP FHEMWEB:134.76.4.162:50320 GET /fhem?XHR=1&inform=type=status;filter=room=Light;since=1422974556;fmt=JSON×tamp=1422974559359
allerdings kommen die von FHEM gesendeten Daten nicht im Browser an, weil die "Rcvd:" Zeilen fehlen. Ich habe noch keine Idee wieso. Liefert
list FHEMWEB:127.0.0.1:49722 .WRITEBUFFER
etwas zurueck?
Danke fuer den Hinweis auf Chrome-Audit.
Zitat von: rudolfkoenig am 03 Februar 2015, 20:04:42
@fhem-challenge: So schaut es in der JS-Konsole aus, wenn es funktioniert:
19:51:34.362 Loading script /fhem/jscolor/jscolor.js
19:51:34.443 Longpoll with filter room=Light
19:52:01.380 FW_cmd:/fhem?cmd.Office=set Office off&room=Light&XHR=1
19:52:01.389 Rcvd:
19:52:01.390 Rcvd: ["AllLights","undefined","<div id=\"AllLights\" class=\"col2\"><a href=\"/fhem?cmd.AllLights=set AllLights on&room=Light\"><svg cla...(4008)
19:52:01.396 Rcvd: ["AllLights-state","undefined","undefined"]
...
Die longpoll Verbindung wurde in deinem Fall zwar geoeffnet:
2015.02.03 15:42:39 4: HTTP FHEMWEB:134.76.4.162:50320 GET /fhem?XHR=1&inform=type=status;filter=room=Light;since=1422974556;fmt=JSON×tamp=1422974559359
allerdings kommen die von FHEM gesendeten Daten nicht im Browser an, weil die "Rcvd:" Zeilen fehlen. Ich habe noch keine Idee wieso. Liefert
list FHEMWEB:127.0.0.1:49722 .WRITEBUFFER
etwas zurueck?
Danke fuer den Hinweis auf Chrome-Audit.
Nein, liefert nichts zurück:
fhem>
fhem>
fhem> list FHEMWEB:127.0.0.1:49722 .WRITEBUFFER
fhem>
fhem>
Ich sehe schon auch browser dependencies in der Problematik. Mit Chrome (gleiche Version) unter MacOS funktioniert der Refresh, mit Chrome unter allen Windows'en hingegen nicht (zur Sicherheit sind auch alle Virenscannen/Webscanner/Malwarescanner deaktiviert).
So einfach ist das nicht, erstens habe ich das gerade geprueft (bei mir tut das auf einem Windows-VM mit aktuellen Chrome problemlos), zweitens bin ich ueberzeugt, dass ueber die Haelfte der FHEM Anwender Windows auf dem Desktop, und keine Probleme haben.
Da es bei dir unter OSX funktioniert (war der erwaehnte Safari auch unter OSX?), koennte eine Netzwerkeinstellung unter Windows oder auf dem Weg zu den Windows Geraeten dafuer zustaendig sein.
Funktioniert es mit anderen Geraeten (Handy/Tablet/etc)?
Zitat von: rudolfkoenig am 04 Februar 2015, 09:30:53
So einfach ist das nicht, erstens habe ich das gerade geprueft (bei mir tut das auf einem Windows-VM mit aktuellen Chrome problemlos), zweitens bin ich ueberzeugt, dass ueber die Haelfte der FHEM Anwender Windows auf dem Desktop, und keine Probleme haben.
Da es bei dir unter OSX funktioniert (war der erwaehnte Safari auch unter OSX?), koennte eine Netzwerkeinstellung unter Windows oder auf dem Weg zu den Windows Geraeten dafuer zustaendig sein.
Funktioniert es mit anderen Geraeten (Handy/Tablet/etc)?
Richtig, konsens:
- Es läuft nicht unter Windows (win 7, 8.0,8.1) (FF,Chrome,IE,Opera), auch nicht Android 4.2 Tablet
- es läuft unter Chrome/&Safari unter OSX. Und iPhone (5)! (gerade getestet).
Ja, in der Tat, eine Netzwerkabhängigkeit wäre denkbar (tcp Stack , Windows-FW etc. etc.).
Schade, dann gehöre ich zu der anderen Hälfte...
Aber jetzt weiß ich wenigstens woran es liegt und brauche mir nicht mehr den "Wolf zu suchen".
Zumindest kann ich das Problem für Win7 mit FF & IE bestätigen. Auch bei mir fehlen die Rcvd: Zeilen für den jeweils betreffenden room.
Mal eine blöde Frage: Kann es sein, dass das mit FS20 zusammenhängt? Zumindest bei denen habe ich das Problem (zB: ST4), während ich das bei HM bisher nicht beobachtet habe...
Gruß
@wibi_: Verstehe ich richtig, in manchen FHEMWEB-Raeumen hast du das Problem, in anderen nicht?
Mit FS20 hat das sicher nichts zu tun, hoechstens mit einem gemeinsam mit den FS20 Geraeten angezeigten Geraet (Dashboard/readingsProxy/etc), oder einem konfigurierten Widget (slider/etc). Allerdings wuerde man in der JS-Konsole dann Fehler sehen.
Zitat von: wibi_ am 04 Februar 2015, 09:58:54
Schade, dann gehöre ich zu der anderen Hälfte...
Aber jetzt weiß ich wenigstens woran es liegt und brauche mir nicht mehr den "Wolf zu suchen".
Zumindest kann ich das Problem für Win7 mit FF & IE bestätigen. Auch bei mir fehlen die Rcvd: Zeilen für den jeweils betreffenden room.
Mal eine blöde Frage: Kann es sein, dass das mit FS20 zusammenhängt? Zumindest bei denen habe ich das Problem (zB: ST4), während ich das bei HM bisher nicht beobachtet habe...
Gruß
Nicht gleich aufgeben, es kann! sein, muss aber nicht. Es heisst hier nicht, dass die Netzwerkkonfiguation "falsch" sein muss (viel Spielraum gibt's hier ohnehin nicht).
Mit FS20 hängt's aus meiner Sicht nicht zusammen. Ich verwende zum Tast ja die fme.cfg.demo, obwohl natürlich in der demo.cfg FS20 Devices definiert sind.
Der Effekt trifft aber auch bei reinen DummyDevices auf.
Es ist nach wie vor nach dem FHEMWEB.js Umbau entstanden. Mit der "alten" fhemweb.js vom 9.1.2015 läuft's ja (wenngleich diese zu verwenden nicht mehr wirklich sinnvoll wäre).
LG
Andreas
Wichtige Erkenntnis in dieser Problematik!
Subtiles Problem:
Das Problem mit dem fehlenden "refresh" und dem FHEMWEB.js Umbau hängt zumindest an einer Stelle ganz explizit mit etwaigen vorhandenen Antiviren/Malware/Scannern zusammen.
Konkretes Beispiel:
Beobachtung 1:
Ich habe auf einem Windows 7 Sophos AV laufen. Dieser blockiert hierbei die Rückverbindung zum Browser (seit FHEMWEB.js Umbau/Update). Dabei logt Sophos hier schlicht nichts (obwohl hier "verbose" auf maximal steht). Schalte ich hierbei den Webschutz in Sophos aus, klappt's auch mit dem "refresh". (siehe hierzu Bild attached)
Beobachtung 2:
Unter Windows 8.1 funktioniert alles mit Chrome, aber mit IE 11.0.9600 nicht!. Generell hatte ich hier zunächst (analog zum Sophos) den Windows Defender in Verdacht, der war's aber nicht, da auf dem gleichen System es ja mit Chrome funktioniert und ich überdies den Defender auch einmal komplett deaktiviert habe (on-access schutz).
Ergo:
1.) Jetzt müsste man klären, was den einen oder anderen AV Scanner dazu bewegt, fhem als Malware/o.Ä. anzusehen. Vermutlich ist es die (neue) fhemweb.js die einige AV Scanner dazu verleitet, das (oder Teile) zu blocken.
2.) Übrig bleibt auch noch das Problem, dass IE11 (auch vollkommen ohne AV-/Malware/Scanner) unter (zumindest bei Windows 7,Windows 8.1) aus ungeklärten Gründen motiviert ist, hier Einiges zu "blocken".
3.) Ich finde hier im Forum durchaus einige Threads (auch in diesem), mit vergleichbaren Problemen, wobei hier durchaus die Kombination aus (neuer fhemweb.js) & Browser & AV/Malware-Scanner den Kern des Problems darstellt.
LG
Andreas
Hat longpoll in der alten Version von fhemweb.js funktioniert? Mit longpoll meine ich die automatische Aktualisierung des angezeigten Statusbildes, wenn das Element anderswo (z.Bsp. im anderen Browser) geschaltet wurde.
Wenn ja, dann ist dein AV Scanner auf das geaenderte Protokoll zw. Backend und Browser allergisch, das ist neuerdings JSON.
Hallo,
bei mir aktualisiert sich der Scrren nicht, wenn ich ein Objekt per modify ändere, z.B. readingsGroup oder das Attribut webCmd verändere.
Ist das so gewollt?
Und wie kann ich einen refresh des entsprechenden Bereiches dann anstossen?
Elektrolurch
Zitat von: rudolfkoenig am 04 Februar 2015, 12:02:26
Hat longpoll in der alten Version von fhemweb.js funktioniert? Mit longpoll meine ich die automatische Aktualisierung des angezeigten Statusbildes, wenn das Element anderswo (z.Bsp. im anderen Browser) geschaltet wurde.
Wenn ja, dann ist dein AV Scanner auf das geaenderte Protokoll zw. Backend und Browser allergisch, das ist neuerdings JSON.
Nein, hatte damit auch nicht funktioniert (mit fhemweb.js <= 9.1.2015). Ich habs gerade einmal "nachgebaut" mit den alten Modulen. Lediglich das lokale "refresh" funktioniert, wenngleich natürlich nach (...in meinem Fall wg. attr WEB refresh 60) 60 Sekunden, der Status zwangsweise aktuell war/ist.
Offen ist noch der IE11 Effekt, der ohne lokale AV Scanner etc. nicht funktioniert. Hier habe ich schon alle möglichen Varianten am Browser eingestellt, von Sicherheitsstufe auf "gering" ... über vertrauenswürde Site (fhem), erlauben des Ausführen von beliebigen Scripts etc. etc. hier habe ich nichts gefunden, was IE dazu bringt, die Seite zu "refreshen".
@Elektrolurch: das ist ein ganz anderer effekt. attribut änderungen erzeugen zwar events aber es ändert sich kein reading das dann aktualisiert werden würde. eine readingGroup kann zur zeit auch nur teile (d.h. einzelne readings) aktualisieren nicht sich selbst komplett.
letzteres kommt bestimmt irgendwann. bis dahin kannst du nur mit dem code aus dem anderen thread ein refresh der ganzen seite anstossen. die rückfrage die hier bei dir kommt kann man bestimmt irgendwo abschalten. wann genau kommt die rückfrage?
gruss
andre
@rudolfkoenig: nein, ich habe in den Räumen FS20 und HM devices gemischt, und bei den FS20 gibt es keine Aktualisierung, bei den HM devices aber schon. Dürfte allerdings daran liegen, dass die HM devices nur Meldungen senden (KFM100, SC, RHS) und nicht über das Web geschaltet werden. Die von Dir angesprochenen Module etc. benutze ich (noch?) nicht.
PS: In der Browser Konsole bekomme ich immer den Fehler "Syntax Error: JSON.parse: unexpected character at line 1 column 1 of JSON data" in fhemweb.js:line 323
Gruß
Zitat"Syntax Error: JSON.parse: unexpected character at line 1 column 1 of JSON data" in fhemweb.js:line 323
fhemweb.js nicht aktuell. Falls das Problem nach einem Update immr noch besteht, dann bitte die Asugaben aus der JS-Konsole hier anhaengen.
@rudolfkoenig:
danke für den Hinweis - hatte zwar erst letzte Woche einen Update gemacht, aber mit dem heutigen funktioniert es jetzt wieder. Allerdings ist jetzt oben links das FHEM-Logo weg (nur noch ein kleines Icon wie eine Weltkugel oder so). Aber das stört mich erstmal nicht.
Nach erneutem "Durchstarten" von FHEM ist auch das Logo wieder da.
Danke für die schnelle Hilfe und ein vielen Dank an alle, die sich hier für FHEM engagieren. Ist ein absolut tolles System!
Gruß
Hallo,
ich möchte kurz die Angaben zum modify bestätigen.
Zitat... bei mir aktualisiert sich der Scrren nicht, wenn ich ein Objekt per modify ändere, ...
Ich nutze auch das modify um 2
at defines zu verändern. Vor dem großen Update, hat das Longpoll noch funktioniert. Die Anzeige hat sich nach dem Ändern des Wertes direkt im Frontend geändert. Das funktioniert jetzt nicht mehr.
Gruß,
X
Zitat2 at defines zu verändern
Das ist mir zu ungenau, und ich fange nicht an zu Raten
Zitathat das Longpoll funktioniert
Hat wirklich longpoll funktioniert, oder wurde die Seite neu geladen?
Hallo zusammen,
auch bei mir funktioniert das refresh nicht mehr.
Das DashBoard baut sich nicht mehr richtig auf.
Es lädt zwar, bleibt dann aber wild zusammen gewürfelt stehen, die einzelnen Spalten
ordnen sich mehr an.
Auch die TABs werden nicht mehr angezeigt, es ist praktisch alles auf einer Seite.
Beim Klick auf eine Lampe schaltet diese zwar, das Icon bleibt dann aber auf "set_on" hängen.
Die Lampe lässt sich dann erst nach einem manuellen refresh wieder schalten, wobei bei
einem manuellen refresh das Icon dann auch von "set_on" auf "on" springt.
In der JS-Console kommen dabei folgende Fehler:
dasboard.js
TypeError: $ is not a function Zeile: 468
$(document).ready( function () {
fhemweb.js
TypeError: $ is not a function Zeile 40
$("a[href]").each(function() { FW_replaceLink(this); })
fhemweb.js
TypeError: $ is not a function Zeile 391
$("embed").each(function() {
Ich hoffe, das ist überhaupt von Relevanz.. :)
Gruß
Jens
Dieses Problem liegt nicht direkt in fhemweb.js, ich vermute veraltete Dashboard oder fronthem Dateien.
Funktioniert Dashboard im fhem.cfg.demo? Bei mir ja.
Hmm..... ja, mit der fhem.cfg.demo funktioniert alles.
Das letzte Update ist von heute, mache ich alles täglich.
Jetzt, bleibt nur die Frage, was ist passiert ? :)
Alles klar, es war fronthem. ::) ::)
ZitatDas ist mir zu ungenau, und ich fange nicht an zu Raten
Es gibt folgende at defines:
define UhrzeitRunter at *{sunset(14400)} ...
define GartenLichtAus at *{sunset(14400+40)} ...Die werden in einem notify auf ein dummy mit modify geändert
...
modify GartenLichtAus *{sunset($settemp+40)} ;; \
modify UhrzeitRunter *{sunset($settemp)} ") ;; \
...ZitatHat wirklich longpoll funktioniert, oder wurde die Seite neu geladen?
Ja es hat wirklich longpoll funktioniert. Spricht es haben sich direkt die Werte von GartenLichtAus und UhrzeitRunter geändert, die im selben Raum angezeigt werden. Als workaround nutze ich aktuell
myUtils_refresh("WEB") ;;
ZitatEs gibt folgende at defines:
Ist mir immer noch zu ungenau. Bitte etwas zum einfach nachstellen.
Zitates haben sich direkt die Werte von GartenLichtAus und UhrzeitRunter geändert
Das ist noch lange kein Beweis fuer ein frueher besser funktionierndes longpoll. Definition von longpoll in diesem Kontext: die Seite wird nicht neu geladen, nur die geaenderten Werte werden aus der Seite modifiziert. Frueher wurde die Seite deutlich haeufiger neu geladen.
Das mag fuer den Endbenutzer "wurscht" sein, fuers Fehlermelden bzw. debuggen ist es nicht.
Zitat von: Jewo am 06 Februar 2015, 10:17:26
Alles klar, es war fronthem. ::) ::)
Hi,
welche Version ?
vg
jörg
Hier der komplette config Code:
# ------------ Test modify --------------
define 1_TSchottenDichtEG dummy
attr 1_TSchottenDichtEG group TestModify
attr 1_TSchottenDichtEG room TestModify
attr 1_TSchottenDichtEG setList state:10,15,30,45,60,90,120,150,180,210,240,270,300
attr 1_TSchottenDichtEG stateFormat {ReadingsVal($name,"state",0)." Minuten nach Sonnenuntergang"}
attr 1_TSchottenDichtEG webCmd state
define 2_TGartenLichtAus at *{sunset(14400+40)} set 1_Terrasse off
attr 2_TGartenLichtAus group TestModify
attr 2_TGartenLichtAus room TestModify
define 3_TUhrzeitRunter at *{sunset(14400)} set 1_EG_Runter on-for-timer 40
attr 3_TUhrzeitRunter group TestModify
attr 3_TUhrzeitRunter room TestModify
define 4_TMinSchottenDicht dummy
attr 4_TMinSchottenDicht group TestModify
attr 4_TMinSchottenDicht room TestModify
define 5_TNotifySchottenDicht notify 1_TSchottenDichtEG { \
my $settemp = (ReadingsVal("1_TSchottenDichtEG", "state", "0")*60) ;; \
fhem(" set 4_TMinSchottenDicht $settemp ;; \
modify 2_TGartenLichtAus *{sunset($settemp+40)} ;; \
modify 3_TUhrzeitRunter *{sunset($settemp)} ") ;; \
}
attr 5_TNotifySchottenDicht group TestModify
attr 5_TNotifySchottenDicht room TestModify
Wird jetzt der 1_TSchottenDichtEG Wert geändert, bleibt bei 2_TGartenLichtAus und 3_TUhrzeitRunter der alte Wert stehen. Früher hat er sich direkt gändert. Ob mittels Longpoll kann ich nicht sagen. Anzeichen, dass die ganze Seite einen Refresh erfahren hat, sind mir nicht aufgefallen.
Zitat von: herrmannj am 06 Februar 2015, 12:15:04
Hi,
welche Version ?
vg
jörg
Hi Jörg,
es war noch die 1. Beta, hatte seitdem noch kein Update gemacht. ::) ::)
Gruß
Jens
Solche Aenderungen wurden frueher auch nie per longpoll uebertragen, d.h. die Seite wurde neu geladen.
Ich habe FHEMWEB angepasst, dass bei einem "global MODIFY" Event der Status des geaenderten Geraetes im longpoll Kanal an das Frontend gesendet wird, falls dieser das modifizierte Geraet abonniert hat, in deinem Beispiel aendern sich damit die Zeilen 2 und 3 zusaetzlich.
Perfekt! So ist das Verhalten wieder wie früher. Vielen DANK!! Ist echt super wie das hier im Forum läuft. Gefühlte 90% der Probleme kann man lösen, in dem man hier ein wenig mitliest und sucht. Und beim Rest wird einem geholfen!