Hauptmenü

FTUI 2.6

Begonnen von setstate, 11 Februar 2017, 14:59:21

Vorheriges Thema - Nächstes Thema

Andy89

#390
irgendwie hab ich seit kurzem übelst Probleme mit meinem FTUI. Version ist 2.6.9.
FTUI hängt für 54-58 Sekunden beim Start der Seite. Danach läuft alles super schnell und easy. Diese Zeit lässt mein Firefox komplett abstüzen, Safari läuft dann nach der knappen Minute wieder.

Der Befehl, der währenddessen noch ausgeführt wird, ist folgender
http://192.168.xxx.xxx:xxxx/fhem?_=1488491286649
Laut Debugger dauert dieser Befehl aber auch "nur" 1-3 Sekunden

Ich weiß nicht woran das liegen könnte.

Meine FhemWEB Definition:
defmod WEB FHEMWEB xxxx global
attr WEB CORS 1
attr WEB confirmDelete 1
attr WEB editConfig 1
attr WEB endPlotNow 1
attr WEB longpoll websocket
attr WEB longpollSVG 1
attr WEB ploteditor always
attr WEB showUsedFiles 1


Mein FTUI Index Header:
<!DOCTYPE html>
<html>
<head>
<meta name="fhemweb_url" content="http:///192.168.xxx.xxx:xxxx/fhem">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name='longpoll_maxage' content='240'>
<meta name='web_device' content='WEB'>
<meta name="widget_base_width" content="120">
<meta name="widget_base_height" content="140">
<meta name="widget_min_cols" content="13">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="gridster_disable" content="1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="debug" content="3">
<meta http-equiv="Cache-Control" content="no-store" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 
<script src="js/fhem-tablet-ui.js" defer></script>
<script src="js/fhem-tablet-ui-myExtension.js" defer></script>
<link rel="stylesheet" href="/ftui/css/myStyle.css" />
<link rel="shortcut icon" href="/ftui/images/favicon.ico">


<title>FHEM-Tablet-UI</title>
</head>
<body>


Mein FTUI ist auf meinem Synology-Server und FHEM selbst ist auf einem Raspberry.

Wäre cool, wenn ihr mir hilft  8) DANKE!

Edit:
ab und zu läuft noch eine weitere Abfrage an den Server:
http://192.168.xxx.xxx:xxxx/fhem?cmd=jsonlist2%20WEB%2CAnzahlGesamtCirclemenue%2CUntwetterzentrale%2CmyAbfall%2CWZ_Fenster_virtual%2CKZ_Fenster_virtual%2CSZ_Fenster_virtual%2CBZ_Fenster_virtual%2CAZ_Fenster_virtual%2CEingangstuer%2CWZ_Balkontuer%2CAnzahlLeererBatterien%2CAnzahlAngeschaltetetDeckenlampe%2Cd_TrafficFritzbox%2CUpdatesAvailable%20STATE%20longpoll%20Zaehler%20WarnCount%20Muellkalender_GelberSack_tage%20GesamtMonat%20anzahl&XHR=1&_=1488492504985
das sind die WarnCounts für das Menü. Hier steht dann auch im Debugger eine Zeit von 52-58 Sekunden für das Laden.
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

setstate

http://192.168.xxx.xxx:xxxx/fhem

rufe ich, um den csrfToken zu holen.
Was passiert, wenn du diese URL im Browser direkt aufrufst? Wird da bei dir eine komplizierte Startseite aufgerufen, die lange dauert?

Welche URL, um den csrfToken zu bekommen, sollte ich stattdessen rufen, die für alle passt, aber wenig Trafik verursacht?

Andy89

die Seite dauert 3-4 Sekunden. Ewig langes Menü, mit einer JavaScript Uhr statt des Logos und ein Hintergrundbild. Also eigentlich nichts besonderes. Und auf jeden Fall deutlich kürzer als eine knappe Minute ???

hmm..
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

setstate

#393
dauert bei mir 50ms.

Vllt. finde ich einen besseren Aufruf, der für alle passt ....

Frage:
haben alle fhem/style.css, oder gibt es da jemand, der das File nicht hat? Oder der das File größer als 1KB aufgebläht hat?

Andy89

ich hab mal probeweise alle roomIcons, mein eigenes Stylesheet und die Uhr weggemacht, damit ist der Fehler nun weg. Aber der Aufruf der Seite dauert noch so 400-500ms. Aber das ist locker um den Faktor 10 kürzer geworden.

Geht vielleicht statt einer GET Anfrage an FHEM eine OPTIONS Anfrage? Da wird zumindest kein Content mitgeladen.
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

CoolTux

Zitat von: setstate am 02 März 2017, 23:13:56
http://192.168.xxx.xxx:xxxx/fhem

rufe ich, um den csrfToken zu holen.
Was passiert, wenn du diese URL im Browser direkt aufrufst? Wird da bei dir eine komplizierte Startseite aufgerufen, die lange dauert?

Welche URL, um den csrfToken zu bekommen, sollte ich stattdessen rufen, die für alle passt, aber wenig Trafik verursacht?

http://192.168.xxx.xxx:xxxx/fhem?XHR=1

Sollte kein Content liefern dafür aber den wichtigen Header.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

setstate

Zitat von: CoolTux am 02 März 2017, 23:48:52
http://192.168.xxx.xxx:xxxx/fhem?XHR=1

Sollte kein Content liefern dafür aber den wichtigen Header.

Sehr guter Tipp. Nehme ich ... Danke.

Andy89

hab bei mir die fhem-tablet-ui.js angepasst und es läuft nun wieder  :) Danke für die schnelle Hilfe von euch beiden!  :) :)

edit:
zeile 1324 hab ich so angepasst im  "getCSrf: function ()" Block:
'url': ftui.config.fhemDir + '?XHR=1',
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

setstate

aber ich glaube, der csrfToken kommt damit im Header nicht mit. Geht bei mir zumindest nicht :-(

CoolTux

Im Header von der Antwort sollte die Zeile
X-FHEM-csrfToken: fhem_xxxxxxxxxxx
stehen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

setstate

Mein Fehler, ich hatte die Seite noch per Port-Forwarding aufgerufen und noch kein FHEM Update eingespielt, was das Fehlen von  X-FHEM-csrfToken mit CORS beseitigte

https://forum.fhem.de/index.php/topic,66879.msg596310.html#msg596310

Andy89

hab deins runtergeladen. Funktioniert.  ;D ;D ;D ;D
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Andy89

im widget_clock.js hat sich ein typo eingeschlichen: "M‰rz"  ;)
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

mordrad

Zitat von: setstate am 02 März 2017, 22:26:16
http://192.168.2.5:8083/fhem/js/fhem-tablet-ui.js.
der Pfad sieht falsch aus

es muss so sein
http://192.168.2.5:8083/fhem/ftui/js/fhem-tablet-ui.js

Wie sieht deine httpsrv Definition aus? Hast du noch Apache spezifische Meta Tags im FTUi HTML?

Mein httpsrv sieht wie folgt aus:
Internals:
   DEF        ftui ./www/tablet Tablet-UI
   NAME       TABLETUI
   NR         54
   STATE      TABLETUI
   TYPE       HTTPSRV
   Fhem:
     directory  ./www/tablet
     friendlyname Tablet-UI
     infix      ftui
Attributes:
   room       02-System


Ein Bild von index_state habe ich angehängt.

setstate

Läuft doch alles. Oder gibt es noch Probleme?