Fhemweb sehr langsam, neu Laden dauert "ewig" ios7

Begonnen von eldrik, 15 Februar 2014, 22:46:20

Vorheriges Thema - Nächstes Thema

fruemmel

Kurze Zwischenmeldung: Ein Proxy (in dem Fall squid auf einer Synology) scheint das Problem teilweise zu entschärfen. In einem kurzen Test kam es allerdings zu Wartezeiten bis zu ca. 20 Sekunden, und dann wurde die FHEM-Seite mit falscher Formatierung dargestellt (als ob teilweise das css nicht greift). Die Hänger von über 1 Minute waren aber in dem kurzen Test nicht mehr zu provozieren.
Ich werde das Ganze incl. der gewünschten Logs heute abend noch einmal durchtesten.

fruemmel

Hallo Rudolf,
jetzt kommen die gewünschten Logs. Alles mit fhem.cfg.demo getestet.

Hier erstmal das Log mit WEBphone, verbose 4 und closeConn=1. Dauert wieder die gewohnte Zeit bis sich was tut:
2014.11.19 18:06:58 4: Connection accepted from FHEMWEB:192.168.10.50:49917
2014.11.19 18:06:59 4: HTTP FHEMWEB:192.168.10.50:49917 GET /fhem
2014.11.19 18:06:59 4: /fhem / RL:8242 / text/html; charset=UTF-8 / Content-Enco                                         ding: gzip
/
2014.11.19 18:06:59 4: Connection accepted from FHEMWEB:192.168.10.50:49918
2014.11.19 18:06:59 4: Connection accepted from FHEMWEB:192.168.10.50:49919
2014.11.19 18:06:59 4: Connection accepted from FHEMWEB:192.168.10.50:49920
2014.11.19 18:06:59 4: HTTP FHEMWEB:192.168.10.50:49919 GET /fhem/pgm2/svg.js
2014.11.19 18:06:59 4: HTTP FHEMWEB:192.168.10.50:49918 GET /fhem/pgm2/style.css
2014.11.19 18:06:59 4: Connection accepted from FHEMWEB:192.168.10.50:49921
2014.11.19 18:06:59 4: HTTP FHEMWEB:192.168.10.50:49919 GET /fhem/pgm2/fhemweb_t                                         ime.js
2014.11.19 18:06:59 4: HTTP FHEMWEB:192.168.10.50:49921 GET /fhem/pgm2/fhemweb_c                                         olorpicker.js
2014.11.19 18:06:59 4: HTTP FHEMWEB:192.168.10.50:49918 GET /fhem/images/default                                         /dim37%.png
2014.11.19 18:06:59 4: HTTP FHEMWEB:192.168.10.50:49920 GET /fhem/pgm2/fhemweb.j                                         s
2014.11.19 18:06:59 4: Connection accepted from FHEMWEB:192.168.10.50:49922
2014.11.19 18:06:59 4: HTTP FHEMWEB:192.168.10.50:49922 GET /fhem/pgm2/fhemweb_m                                         ultiple.js
2014.11.19 18:06:59 4: HTTP FHEMWEB:192.168.10.50:49921 GET
2014.11.19 18:06:59 4: WEBphone: redirecting  to /fhem
2014.11.19 18:06:59 4: Connection accepted from FHEMWEB:192.168.10.50:49923
2014.11.19 18:06:59 4: HTTP FHEMWEB:192.168.10.50:49922 GET /fhem/pgm2/defaultCo                                         mmon.css
2014.11.19 18:06:59 4: HTTP FHEMWEB:192.168.10.50:49923 GET /fhem/pgm2/fhemweb_n                                         oArg.js
2014.11.19 18:06:59 4: HTTP FHEMWEB:192.168.10.50:49919 GET /fhem
2014.11.19 18:06:59 4: /fhem / RL:8242 / text/html; charset=UTF-8 / Content-Enco                                         ding: gzip
/
2014.11.19 18:06:59 4: HTTP FHEMWEB:192.168.10.50:49922 GET /fhem/pgm2/dashboard                                         _style.css
2014.11.19 18:06:59 4: Connection accepted from FHEMWEB:192.168.10.50:49924
2014.11.19 18:06:59 4: HTTP FHEMWEB:192.168.10.50:49924 GET /fhem
2014.11.19 18:06:59 4: /fhem / RL:8242 / text/html; charset=UTF-8 / Content-Enco                                         ding: gzip
/
2014.11.19 18:07:29 4: Connection closed for FHEMWEB:192.168.10.50:49922

*** Ab hier kommt die Anzeige am iPhone:
2014.11.19 18:08:15 4: Closing connection FHEMWEB:192.168.10.50:49920
2014.11.19 18:08:15 4: Closing connection FHEMWEB:192.168.10.50:49921
2014.11.19 18:08:15 4: Closing connection FHEMWEB:192.168.10.50:49918
2014.11.19 18:08:15 4: Closing connection FHEMWEB:192.168.10.50:49923
2014.11.19 18:08:15 4: Connection accepted from FHEMWEB:192.168.10.50:49932
2014.11.19 18:08:15 4: HTTP FHEMWEB:192.168.10.50:49932 GET /fhem/pgm2/fhemweb_svg.js
2014.11.19 18:08:15 4: Connection accepted from FHEMWEB:192.168.10.50:49933
2014.11.19 18:08:15 4: HTTP FHEMWEB:192.168.10.50:49933 GET /fhem/pgm2/fhemweb_textField.js
2014.11.19 18:08:15 4: Connection accepted from FHEMWEB:192.168.10.50:49934
2014.11.19 18:08:15 4: HTTP FHEMWEB:192.168.10.50:49934 GET /fhem/images/default/FS20.off.png
2014.11.19 18:08:15 4: Connection accepted from FHEMWEB:192.168.10.50:49935
2014.11.19 18:08:15 4: HTTP FHEMWEB:192.168.10.50:49935 GET /fhem/images/default/dim12%.png
2014.11.19 18:08:15 4: HTTP FHEMWEB:192.168.10.50:49932 GET /fhem/images/default/fhemicon_smallscreen.png
2014.11.19 18:08:15 4: Connection accepted from FHEMWEB:192.168.10.50:49936
2014.11.19 18:08:15 4: HTTP FHEMWEB:192.168.10.50:49936 GET /fhem/images/default/fhemicon_ios.png
2014.11.19 18:08:15 4: HTTP FHEMWEB:192.168.10.50:49932 GET /fhem?XHR=1&inform=type=status;filter=room=Cinema&timestamp=1416416897893
2014.11.19 18:08:15 4: HTTP FHEMWEB:192.168.10.50:49933 GET /fhem/images/default/dim37%.png


Und hier noch die Variante mit Rudolfs zusätzlichem Log-Eintrag (Zeile 315), closeConn nicht gesetzt, Wartezeit wie gehabt:
2014.11.19 18:14:05 4: HTTP FHEMWEB:192.168.10.50:49952 GET /fhem/pgm2/fhemweb_noArg.js
2014.11.19 18:14:35 4: Connection closed for FHEMWEB:192.168.10.50:49952
2014.11.19 18:14:35 4: Connection closed for FHEMWEB:192.168.10.50:49950
2014.11.19 18:14:35 4: Connection closed for FHEMWEB:192.168.10.50:49947

*** Ab hier kommt dann wieder die Anzeige am iPhone
2014.11.19 18:15:15 4: Closing connection FHEMWEB:192.168.10.50:49949
2014.11.19 18:15:15 4: Closing connection FHEMWEB:192.168.10.50:49951
2014.11.19 18:15:15 4: Connection accepted from FHEMWEB:192.168.10.50:49959
2014.11.19 18:15:15 4: Connection accepted from FHEMWEB:192.168.10.50:49960
2014.11.19 18:15:15 4: GET /fhem/images/default/dim37%.png HTTP/1.1
Host: 192.168.10.23:8084
Connection: keep-alive
Accept: */*
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B435
Accept-Language: de-de
Referer: http://192.168.10.23:8084/fhem
Accept-Encoding: gzip, deflate
2014.11.19 18:15:15 4: HTTP FHEMWEB:192.168.10.50:49959 GET /fhem/images/default/dim37%.png
2014.11.19 18:15:15 4: GET /fhem/pgm2/fhemweb_slider.js HTTP/1.1
Host: 192.168.10.23:8084
Connection: keep-alive
Accept: */*
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B435
Accept-Language: de-de
Referer: http://192.168.10.23:8084/fhem
Accept-Encoding: gzip, deflate
2014.11.19 18:15:15 4: HTTP FHEMWEB:192.168.10.50:49960 GET /fhem/pgm2/fhemweb_slider.js
2014.11.19 18:15:15 4: GET /fhem/images/default/fhemicon_smallscreen.png HTTP/1.1
Host: 192.168.10.23:8084
Connection: keep-alive
If-None-Match: "1382641821"
Accept: */*
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B435
Accept-Language: de-de
Referer: http://192.168.10.23:8084/fhem
Accept-Encoding: gzip, deflate
2014.11.19 18:15:15 4: HTTP FHEMWEB:192.168.10.50:49959 GET /fhem/images/default/fhemicon_smallscreen.png
2014.11.19 18:15:15 4: Connection accepted from FHEMWEB:192.168.10.50:49961
2014.11.19 18:15:15 4: GET /fhem/images/default/fhemicon_ios.png HTTP/1.1
Host: 192.168.10.23:8084
If-None-Match: "1387095804"
Accept: */*
User-Agent: Web/1.0 CFNetwork/711.1.16 Darwin/14.0.0
Accept-Language: de-de
Accept-Encoding: gzip, deflate
Connection: keep-alive
2014.11.19 18:15:15 4: HTTP FHEMWEB:192.168.10.50:49961 GET /fhem/images/default/fhemicon_ios.png
2014.11.19 18:15:15 4: GET /fhem?XHR=1&inform=type=status;filter=room=Cinema&timestamp=1416417317879 HTTP/1.1
Host: 192.168.10.23:8084
Connection: keep-alive
Accept: */*
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B435
Accept-Language: de-de
Referer: http://192.168.10.23:8084/fhem
Accept-Encoding: gzip, deflate
2014.11.19 18:15:15 4: HTTP FHEMWEB:192.168.10.50:49959 GET /fhem?XHR=1&inform=type=status;filter=room=Cinema&timestamp=1416417317879


Das warst erstmal wieder. Wenn weitere Logs oder Tests hilfreich sind, bitte Bescheid sagen.

Bubbles71

Hallo!

Ich habe die gleichen Probleme mit meinem iPhone 5s. Seltsamer Weise läuft FHEM auf dem iPhone meiner Frau, auch ein 5s ohne Probleme. Beide Male mit Safari getestet.

Einziger Unterschied: mein iPhone ist schwarz und wurde 2 Wochen früher geliefert, ihres Silber...

LG,

Roland

rudolfkoenig

@Bubbles71: ich vermute dein iPhone laeuft mit iOS8, das deiner Frau mit iOS7. Oder ist es doch die Farbe?
@fruemmel: kannst du ueber deine Experimente mit squid mehr sagen?

Ich habe die Logs angestarrt, und eine Weile mit dem iOS Simulator experimentiert: closeConn war nicht fuer alle Code-Pfade implementiert, das habe ich jetzt nachgeholt. Hat aber mAn nicht so recht geholfen. Auch meine anderen Experimente haben nichts Wesentliches gebracht: mit fhem.cfg.demo werden die SVGs nur im seltensten Faellen geladen.

fruemmel

Hallo Rudolf,
ich habe heute morgen noch einmal etwas mit dem Proxy getestet. Hintergrund: Ich habe ein Synology-NAS im Netz, dafür gibt es ein Standard-Paket "Proxy-Server". Dahinter verbirgt sich ein squid, den man mit einfachen Mitteln über die Oberfläche der Synology rudimentär konfigurieren kann. Ich habe nichts besonders eingestellt, sondern Cache, Authentifizierung und Protokollierung ausgeschaltet.
Dann noch auf dem iPhone in den Einstellungen des WLANs die Synology als manuellen Proxy eingetragen.

Resultat: 80-90% der FHEM-Aufrufe funktionieren tadellos. Beim Rest kommt es zu Wartezeiten von geschätzten 10 Sekunden, dann kommt die Antwort in Form einer optisch verunstalteten Seite. Die Icons sind dann (iPhone-)bildschirmfüllend, haben aber noch ihre Funktion. Ruft man die nächste Seite (einen anderen Raum) über die DropDown-Auswahl auf, geht es wieder korrekt weiter.
Getestet habe ich bisher nur mit meiner produktiven Umgebung, die deutlich komplexer ist als die Demo. FHEM hatte ich heute morgen noch per update auf den letzten Stand gebracht. Mit SVG-Plots gab es keine Probleme.

Als Gegenprobe habe ich dann den Proxy am iPhone noch einmal rausgenommen. Nach dreimal Springen zwischen verschiedenen Raum-Seiten hing das Frontend dann wieder.
Hilft es, wenn ich mit der squid-Konstellation noch einmal ein Protokoll von FHEM poste? Mir scheint der Proxy dank Deiner Idee schon ein Weg zu sein, die Ursache für die Probleme einzugrenzen.
Gruß Wolfgang

rudolfkoenig

Schaut mal bitte auch die aktuellen Aenderungen an, ob sie was bewirken.

Schlumpf99

Also mit meinem iPhone 5 (iOs 8.1.1) lädt er jetzt nach einem frischen Fhem-Update meine Fhem-Seiten jetzt absolut zufriedenstellend, Start über LTE / DNS dauert 1 bis 2 Sekunden, aber dann sind die Seiten blitzschnell aufgebaut.

Mit den SVG's hatte ich mit Safari nie Schwierigkeiten.

Super, vielen Dank, so macht das wieder Spaß!!!

VG Volker


DanHard

Hab vorhin ein Update gemacht! Bis jetzt keinen einzigen Hänger! Juhui!

Danke Danke Danke!

fruemmel

Hallo Rudolf,

das ist echt klasse, auch ich konnte in meiner Produktivumgebung keinen Hänger mehr produzieren! Herzlichen Dank.
Lag das jetzt an den fehlenden closeConn's, oder hast Du noch etwas anderes verändert?

Gruß Wolfgang

rudolfkoenig

Ich habe nur die closeConn Behandlung ueberall reingebaut: bis gestern war closeConn nur fuer die Hauptseite aktiv, aber nicht fuer die "gestreamten" Dateien (.js/.css/.png/etc).


Ich hatte auf meinem Simulator aber weiterhin etliche Probleme gehabt, das SVG Problem haengt vermutlich mit dem nicht gesetzten plotEmbed zusammen, die anderen Probleme mit dem alten Simulator (iOS 8-beta)

fhainz

Hallo!

Gerade ein Update gemacht und das Problem ist weg!
Danke!!

Grüße

eppi

Auch bei mir seit dem Update alles gut!
Ganz herzlichen Dank!

tpm88

#102
ipad2 mit iOS 8.1.1

=> mit dem heutigen Update keine Hänger mehr  :D

Was ich aber nicht ganz verstehe:

- es funktioniert jetzt auch vollständig mit dem normalen WEB Frontend (8083, longpoll=1, weder plotEmbed noch closeCon sind bei dieser Instanz explizit gesetzt). Dabei werden die normalen Icons (nicht SVG) über longpoll auch nach Schaltvorgängen korrekt nachgeladen  :D :D
- das FHEM Frontend funktioniert jetzt auch wieder als WebApp vom HomeScreen (FHEMWeb und FHEMphone). Seit iOS 8.1.1 werden diese aber nicht mehr im Vollbild angezeigt. Es öffnet sich ein neuer Tab im Safari, Browserleiste oben ist vorhanden. Ist das nur bei mir so? Hat Apple den FullScreen abgeschafft?

Gruß
Tobias

PS: Noch ein Nachtrag. Auch vor dem heutigen Update hatte ich keinerlei Probleme mit Hängern, wenn ich das Frontend über einen Apache Reverse Proxy (sogar mit SSL) aufgerufen habe.

Edit: Korrektur nach kurzer Verwirrung meinerseits.
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

fhainz

Zitat von: tpm88 am 20 November 2014, 18:02:37
Dabei werden die normalen Icons (nicht SVG) über longpoll auch nach Schaltvorgängen korrekt nachgeladen  :D :D
Das funktioniert bei mir, wenn ich mich jetzt nicht komplett irre, schon immer. in web und smallscreen. Bei dir nicht?

Zitat von: tpm88 am 20 November 2014, 18:02:37
- das FHEM Frontend funktioniert jetzt auch als "App" vom HomeScreen. Seit iOS 8.1.1 werden diese aber nicht mehr im Vollbild angezeigt. Es öffnet sich ein neuer Tab im Safari, Browserleiste oben ist vorhanden. Ist das nur bei mir so? Hat Apple den FullScreen abgeschafft?
Ich hab keine Probleme mit dem Vollbild, smallscreen wird immer im Vollbild gestartet. Versuch mal das Icon löschen und leg es dann neu an.

Grüße

tpm88

#104
Zitat von: fhainz am 20 November 2014, 18:11:18
Das funktioniert bei mir, wenn ich mich jetzt nicht komplett irre, schon immer. in web und smallscreen. Bei dir nicht?
Das hat eine ganze Weile nicht funktioniert. Deshalb gab es ja den Workaround mit den SVG Icons, die inline und nicht via longpoll geladen wurden (Attribut iconPath = openautomation:fhemSVG )

Zitat
Ich hab keine Probleme mit dem Vollbild, smallscreen wird immer im Vollbild gestartet. Versuch mal das Icon löschen und leg es dann neu an.
Du hast Recht - bei WEBphone und WEBtablet geht es wie früher auch.

Ich rede ausdrücklich nicht von WEBphone (smallscreen) oder WEBtablet. Sondern vom normalen WEB. Das ist immer vom HomeScreen aus im Vollbildmodus gestartet. Seit iOS gab es (zumindest beim DarkScreen) unten einen weißen Balken, weil die obige iOS Statuszeile (z.B. mit den Icons für WLAN und Batterladeanzeige) über die Webseite geblendet wurde. Neuanlegen des Icons ändert nichts - öffnet sich trotzdem als Tab im Safari...

Edit: Korrektur nach kurzer Verwirrung meinerseits...
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT