Hallo,
ich würde gerne pagetab nutzen, bekomme das aber selbst in der einfachsten Variante nicht hin. Ich bekomme dabei je nach Browser sehr unterschiedliches Verhalten und unterschiedliche Fehlermeldungen. Leider reichen meine Kenntnisse nicht aus, die inhaltlich zu verstehen. Eine entsprechende Navigation mit Pagebutton oder Link funktioniert übrigens ohne Probleme.
Das Beispiel habe ich aus dem pagetab-Wiki übernommen, aber noch weiter vereinfacht habe, indem ich die Referenzen auf die Dummies entfernt habe.
Es soll zuerst die Navigationsleiste mit der leeren Seite "Start" aus index.html geladen werden, dann je nach Button die entsprechenden Unterseiten (wieder mit der Navigationsleiste).
FTUI-Version 2.7.14.
Ich wäre sehr dankbar, wenn mir jemand einen Tip geben könnte.
VG Norbert
Firefox:
Die leere Seite "Start" aus index.html lädt mit der Fehlermeldung (siehe unten). Die Fehlermeldung an dieser Stelle erscheint nicht mehr, wenn man Cookies als Ausnahme zugelassen hat; die weiteren erscheinen auch danach noch).
Beim Klicken auf den ERSTEN Button (home) passiert gar nichts, es kommt KEINE Fehlermeldung.
Bei den beiden anderen Buttons wird jeweils beim ERSTEN Klicken die gleiche Fehlermeldung angezeigt, ohne dass ansonsten etwas passiert. Bei weiteren Klicks passiert gar nichts mehr.
Toast-Fehlermeldung:
widget_pagetab.js:45
Security Error: The operation is insecure.
Konsole (User:Passwort@IP:port ersetzt)
SecurityError: The operation is insecure. widget_pagetab.js:43
loadPage https://<User>:<Passwort>@<IP>:<Port>/fhem/ftui/js/widget_pagetab.js:43
toggleOn https://<User>:<Passwort>@<IP>:<Port>/fhem/ftui/js/widget_pagetab.js:65
toggleOn https://<User>:<Passwort>@<IP>:<Port>/fhem/ftui/js/widget_famultibutton.js:399
u https://<User>:<Passwort>@<IP>:<Port>/fhem/ftui/lib/fa-multi-button.min.js:1
jQuery 2
dispatch
handle
Was ich bei Firefox schon (ohne Erfolg) versucht habe auf Basis von Hinweisen im www:
Leeren des Browser-Caches:
==> keine Änderung
In Cookies für /fhem/ftui/ als Ausnahme zugelassen:
==> Fehlermeldung erscheint bei der ersten Seite "Start" nicht mehr, ansonsten keine Änderung des Verhalten und der Fehler.
network.websocket.allowInsecureFromHTTPS auf true gesetzt in Firefox-about:config (ohne das zu verstehen):
==> keine Änderung
defer entfernt bei <script src="js/fhem-tablet-ui.min.js" defer></script>
==> keine Änderung
Chrome:
Es wird sofort pagetab01.html geladen, statt der leeren Seite "Start" aus der index.html.
Es gibt keine Fehlermeldungen und ansonsten funktioniert die Navigation wie vorgesehen.
Internet-Explorer(11):
Lädt im menu.html keine Icons, sondern nur die Texte. Außerdem wird sofort pagetab01.html geladen, statt Start aus der index.html.
Dazu kommt folgende Fehlermeldung:
Toast-Fehlermeldung:
Disconnected from Fhem.
The connection was closed abnormally,
e.g. without sending or receiving a close control frame.
Konsole: siehe angehängte Datei
Edge:
Es wird neben dem menu.html (mit allen Icons) sofort pagetab01.html (statt der leeren Seite "Start" aus der index.html). Dabei erscheint die Fehlermeldung (siehe unten) und der Aufbau erfolgt extrem langsam.
Ansonsten funktioniert die Navigation. Allerdings erscheint MANCHMAL beim Aufruf wieder die Fehlermeldung (kann bei jeder der Unterseiten passieren).
Toast-Fehlermeldung:
Disconnected from Fhem.
The connection was closed abnormally,
e.g. without sending or receiving a close control frame.
Konsole: siehe angehängte Datei
Die TabletUI-Dateien:
index.html:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="lib/jquery.gridster.min.css" />
<link rel="stylesheet" href="css/fhem-tablet-ui.css" />
<link rel="stylesheet" href="lib/font-awesome.min.css" />
<link rel="stylesheet" href="lib/jquery.toast.min.css" />
<script src="../pgm2/jquery.min.js"></script>
<script src="lib/jquery.toast.min.js"></script>
<script src="lib/jquery.gridster.min.js"></script>
<script src="js/fhem-tablet-ui.js" defer></script>
<script src="js/fhem-tablet-ui.min.js" defer></script>
<title>FHEM-Tablet-UI</title>
</head>
<body>
<div class="gridster">
<ul>
<li data-row="1" data-col="1" data-sizex="1" data-sizey="4" data-template="menu.html"></li>
<li data-row="1" data-col="2" data-sizex="4" data-sizey="4">Start</li>
</ul>
</div>
</body>
</html>
menu.html:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div class="sheet">
<div class="row">
<div data-type="pagetab"
data-url="pagetab01.html"
data-icon="fa-home"
data-text="home"
class="cell"></div>
</div>
<div class="row">
<div data-type="pagetab"
data-icon="fa-fax"
data-url="pagetab02.html"
data-text="anrufe"
class="cell labelright"></div>
</div>
<div class="row">
<div data-type="pagetab"
data-icon="fa-fax warn"
data-url="pagetab03.html"
class="cell"></div>
</div>
</div>
</body>
</html>
pagetab01.html:
pagetab01.html:
<!DOCTYPE html>
<html>
<head></head>
<body>
<div class="gridster">
<ul>
<li data-row="1" data-col="1" data-sizex="1" data-sizey="4" data-template="menu.html"></li>
<li data-row="1" data-col="2" data-sizex="4" data-sizey="4" class="left-align">Pagetab01.html</li>
</ul>
</div>
</body>
</html>
pagetab02.html und pagetab03.html entsprechend
@NoKi
Da ich derzeit pagetab einsetze und bislang keinerlei Probleme hatte, habe ich das Wiki-Beispiel mal 1:1 übernommen und sowohl unter Firefox (Linux) als auch unter Chrome (Linux) getestet. Bei mir funktioniert es wie erwartet ...
Geblieben sind bei mir deshalb (mindestens) 3 Fragen:
- Mit der Minimal-Version der index.html aus dem Wiki wird ja bereits alles Notwendige geladen! Was genau sollen die von Dir gemachten Änderungen in der index.html bewirken?
- Wie verhalten sich Deine Testbrowser bei unveränderter Übernahme des Wiki-Beispiels?
- Wie genau rufst Du denn die index.html überhaupt auf? (http,https,lokal,remote,...)
Hallo OdfFhem,
vielen Dank für deine Hilfe.
Ein Hinweis vorab: Bei mir läuft Firefox unter Android, unter Win 10 und früher unter Win 7 - immer mit den gleichen Fehlern. Fhem läuft auf Raspberry 3 mit Linux.
Zu deinen Fragen:
ZitatMit der Minimal-Version der index.html aus dem Wiki wird ja bereits alles Notwendige geladen! Was genau sollen die von Dir gemachten Änderungen in der index.html bewirken?
- In der index.html gibt es 2 Unterschiede zur Wiki-Datei:
Es stehen nur noch verschiedene zusätzliche Links und src-Referenzen im head-Bereich - die sind von früheren Versuchen stehen geblieben und sind vermutlich unnötig.
Im body-Bereich ist für das zweite gridster-Element der Text "Start" eingefügt.
- Die Datei menu.html habe ich vereinfacht, indem ich die Referenzen auf die Dummies und die dazugehörige Abhängigkeit der Icons vom Status der Dummies entfernt habe. Nach meinem Verständnis sollte das aber keinerlei Einfluss auf die Navigation und den Seitenaufbau haben.
- Die pagetab01.html etc. sind gar nicht geändert, sie sind identisch aus dem Wiki übernommen.
Zum Test habe ich jetzt aber auch nochmal die Original index.html und menu.html 1:1 übernommen, und die Dummies in mein fhem, eingefügt.
ZitatWie verhalten sich Deine Testbrowser bei unveränderter Übernahme des Wiki-Beispiels?
Das Ergebnis ist im Wesentlichen unverändert (bis auf die Disconnect-Fehlermeldungen, die jetzt nicht mehr auftauchen):
- ==> Das Verhalten im Firefox (bzgl. der Navigation) ist unverändert wie zuvor:
Neben dem Menu wird die leere Seite aus index.html angezeigt.
Beim Klicken auf den ERSTEN Button (home) passiert gar nichts, es kommt KEINE Fehlermeldung.
Bei den beiden anderen Buttons wird jeweils beim ERSTEN Klicken die gleiche Fehlermeldung angezeigt, ohne dass ansonsten etwas passiert. Bei weiteren Klicks passiert gar nichts mehr.
(Manchmal (!!!) wird auch beim ersten Aufruf der index.html gar nichts geladen - ich habe noch nicht herausgefunden wann das passiert und wann nicht.)
Zusätzlich habe ich noch Firefox im abgesicherten Mode probiert, bei dem alle Add-Ons deaktiviert sind:
==> Das Verhalten ist unverändert wie zuvor.
- ==> Das Verhalten in Chrome ist unverändert:
Es wird neben dem menu.html (mit allen Icons) sofort pagetab01.html angezeigt, statt einer leeren Seite aus der index.html (wie ich erwarten würde).
Die Navigation funktioniert danach wie vorgesehen. Es gibt keine Fehlermeldungen.
- ==> Das Verhalten im Internet Explorer(11) ist unverändert, außer dass keine Disconnect-Toast-Fehlermeldungen mehr erscheinen:
In dem menu.html werden die Icons nicht angezeigt, sondern nur die Texte. Die nicht sichtbaren Icons können aber angeklickt werden! Daneben wird sofort pagetab01.html angezeigt, statt einer leeren Seite aus der index.html (wie ich erwarten würde).
Die Navigation funktioniert danach wie vorgesehen. Es gibt keine Fehlermeldungen.
- ==> Das Verhalten in Edge ist nahezu unverändert, außer dass keine Disconnect-Toast-Fehlermeldungen mehr erscheinen (und damit identisch mit der von Chrome):
Es wird neben dem menu.html (mit allen Icons) sofort pagetab01.html angezeigt statt einer leeren Seite aus der index.html (wie ich erwarten würde).
Die Navigation funktioniert danach wie vorgesehen. Es gibt keine Fehlermeldungen.
ZitatWie genau rufst Du denn die index.html überhaupt auf? (http,https,lokal,remote,...)
In der Regel rufe ich zum Testen die Seite direkt im Browser auf:
über https://<IP>:<Port>/fhem/ftui/ (mit Eingabe von Benutzername und Passwort)
oder über fhem-webUI:
define TABLETUI HTTPSRV ftui/ ./www/tablet Tablet-UI
Das Verhalten im Firefox ist in beiden Fällen identisch.
Viele Grüße
Norbert
@NoKi
Firefox unter Android kann ich leider nicht ausprobieren, aber ich habe mal meine Win10-Testmaschine gestartet und das Wiki-Beispiel unter den genannten vier Browsern getestet:
- Den Disconnect-Fehler unter Edge bzw. IE11 kann ich dort ebenfalls reproduzieren; er taucht nicht immer auf, aber doch so oft, dass er stört. Ansonsten wird das Beispiel aber wie erwartet dargestellt.
- Unter Firefox funktioniert das Beispiel ohne irgendwelche Auffälligkeiten.
- Und auch unter Chrome läuft alles wie erwartet.
Optisch sehen die Darstellungen bei den vier Browsern sehr ähnlich aus; es fehlen keinerlei Icons, o.ä. (s. angehängtes Bild).
Im Unterschied zu Dir setze ich kein https ein; ob das letztlich für Deine Probleme sorgt, kann ich nicht beurteilen.
Setzt Du eine aktuelle Android-Version ein oder ist es schon eine betagte mit einem überalterten WebView-Control?
Hast Du das Wiki-Beispiel unter Android auch mal mit Chrome getestet?
ZitatEs wird neben dem menu.html (mit allen Icons) sofort pagetab01.html angezeigt, statt einer leeren Seite aus der index.html (wie ich erwarten würde).
Das automatische Laden des ersten Pagetab (im Beispiel pagetab01.html) gehört zum Standardverhalten. Der eigentliche Inhalt der index.html wird beim Initialisieren sofort ersetzt - wird also, wenn überhaupt, nur für einen klitzekleinen Moment sichtbar.
Hallo OdfFhem,
nochmals Danke für die Hilfe.
ZitatDas automatische Laden des ersten Pagetab (im Beispiel pagetab01.html) gehört zum Standardverhalten. Der eigentliche Inhalt der index.html wird beim Initialisieren sofort ersetzt - wird also, wenn überhaupt, nur für einen klitzekleinen Moment sichtbar.
Das klärt zumindest den Teil. Das finde ich zwar schade - ich hatte erwartet und gehofft, dass die Unterseiten erst dann geladen werden, wenn man den Button betätigt (oder wenn man bei dem pagetab class="default" setzt) - aber dann ist das zumindest kein Fehler.
Damit funktionieren dann Chrome, Edge wohl richtig.
Bleibt in IE11 das Problem mit den nicht sichtbaren Icons und im Firefox die Ladeprobleme und die Navigation insgesamt mit dem JS:45-Fehler.
Die Android-Version ist alt: 4.4.2
Darauf habe ich sowohl Firefox als auch Chrome getestet - mit den gleichen Ergebnissen wie unter Win10.
ZitatIm Unterschied zu Dir setze ich kein https ein; ob das letztlich für Deine Probleme sorgt, kann ich nicht beurteilen.
Kann ich leider auch nicht beurteilen. Ich kann das ja mal Testweise wieder umstellen in fhem. Allerdings muss es letzlich auch mit https gehen - mit anderen Browsern geht es ja auch.
Interessant und merkwürdig ist für mich nach wie vor, dass pagebutton- und link-Navigation problemlos funktionieren.
VG Norbert
Setze mal verbose 5 auf deinem HTTPSRV TabletUI Device, und guck mal, ob etwas in der Log kommt.
Wie alt sind deine FHEM und TabletUI?
Hallo OdfFhem,
Sowohl fhem als auch tabletUI sind (zumindest ziemlich) aktuell:
- fhem: fhem.pl:20069/2019-08-27
- tabletUI: 2.7.14
Beim Aufruf von TabletUI kommen auch mit verbose 5 bei dem HTTPSRV TabletUI Device keine Meldungen im Log.
Aber:
Wenn ich fhem ohne https laufen lasse, funktioniert auch im Firefox alles!
Das ist wohl endlich die richtige Spur. Das hat schon mal sehr geholfen. Vielen Dank!
Allerdings verstehe ich leider nicht, warum das jetzt funktioniert, und habe daher auch noch keine Idee, was ich tun müsste, um es auch mit https zum Funktionieren zu bringen. Da muss ich jetzt weiter forschen. Hast du dazu noch einen Tip?
Darüber hinaus:
Bei jedem Start von FHEM kommen (mit und ohne https) folgende Meldungen:
- FHEMWEB WEB CSRF error: csrf_268083012418819 ne csrf_308722839278424 for client WEB_192.168.178.36_61270 / command shutdown restart. For details see the csrfToken FHEMWEB attribute.
- FHEMWEB SSL/HTTPS error: SSL accept attempt failed error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number (peer: 192.168.178.10)
Um diese Fehlermeldungen wollte ich mich auch noch kümmern, war aber davon ausgegangen, dass sie mit dem pagetab-Firefox-Problem nichts zu tun haben, da es in anderen Browsern ja funktioniert. Da die mit und ohne https auftreten, gehe ich nach wie vor davon aus, dass die Annahme stimmt, oder?
Viele Grüße Norbert
ZitatFHEMWEB WEB CSRF error: csrf_268083012418819 ne csrf_308722839278424 for client WEB_192.168.178.36_61270 / command shutdown restart. For details see the csrfToken FHEMWEB attribute.
Das ist nw. nicht die Ursache deines Problems. Um das zu vermeiden, musst Du nach einem Restart von Fhem, dein Browser komplett schliessen und wieder öffnen. Beim Restart von Fhem wird ein neues csrf Token generiert und dein Browser, so lange nicht neu gestartet, merkt es nicht.
ZitatFHEMWEB SSL/HTTPS error: SSL accept attempt failed error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number (peer: 192.168.178.10)
Das könnte evl. etwas damit zu tun haben, aber unwahrscheinlich. Was hast Du als sslVersion Attribut auf global?
Kannst Du debug höher setzen, und die Console-Ausgabe zeigen?
<meta name="debug" content="5">
Hallo OdfFhem,
Zum Fehler:
ZitatFHEMWEB WEB CSRF error: csrf_268083012418819 ne csrf_308722839278424 for client WEB_192.168.178.36_61270 / command shutdown restart. For details see the csrfToken FHEMWEB attribute.
Das habe ich nachvollziehen können: wenn ich das Browserfenster nach dem fhem-Restart sofort schließe und neu öffne kommt diese Fehlermeldung nicht mehr. Es reicht aber auch, nur eine andere fhem-Seite aufzurufen, oder die Seite neu zu laden. Dann kann ich die Meldung also ignorieren.
Zum Fehler:
ZitatFHEMWEB SSL/HTTPS error: SSL accept attempt failed error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number (peer: 192.168.178.10)
- Bei global habe ich das Attribut sslVersion gar nicht besetzt.
Testweise habe ich auch dort einmal TLSv12:!SSLv3 eingesetzt. Sowohl der Fehler beim fhem-Restart als auch der js:45-Fehler beim Start von TabletUI mit https sind gleich geblieben.
Muss das Attribut gesetzt sein?
Bei define WEB FHEMWEB 8083 global:
OHNE https ist dieses Attribut auch nicht besetzt.
MIT https hatte ich zusätzlich eingefügt:
attr WEB HTTPS 1
attr WEB sslVersion TLSv12:!SSLv3
Der Fehler tritt aber ja auch mit und ohne https auf.
ABER, leider gibt es Neues zu dem ursprünglichen Anlass für diesen Thread zum js:45-Fehler:Nach Hin- und Her- ändern der fhem.cfg wegen https habe ich jetzt wieder die exakt gleiche Konfiguration OHNE https abgespeichert - und erhalte trotzdem wieder den js:45-Fehler, der ja zuvor beim Umstellen auf http verschwunden war.
Daraufhin habe ich als letzten Versuch noch Browser-Cache gelöscht, zur IP-Adresse gehörende Cookies gelöscht, Popup-Fenster für http://<IP:port> und https:<IP:port> als Ausnahme zugelassen, Browser neu gestartet ==> aber keine Änderung; der js:45-Fehler bleibt jetzt. Das Verhalten ist jetzt bis auf eine Ergänzung auch ohne https wieder komplett das gleiche, wie oben mit https beschrieben:
- Neue Erkenntnis: Exakt bei jedem ERSTEN Aufruf der index.html wird gar nichts geladen, bei jedem ZWEITEN Aufruf wird die menu.html-Seite geladen - es sei denn, mann hat einen der Buttons 2 oder 3 betätigt => dann wird beim nächsten Laden auch wieder die menu.html angezeigt. (bisher gab es das auch, allerdings hatte ich diese Regelmäßigkeit nicht erkannt).
Eine pagetab-Seite wird generell nicht geladen.- Beim Klicken auf den ERSTEN Button (home) passiert gar nichts, es kommt KEINE Fehlermeldung.
Bei den beiden anderen Buttons wird jeweils beim ERSTEN Klicken die gleiche Fehlermeldung angezeigt, ohne dass ansonsten etwas passiert. Bei weiteren Klicks passiert gar nichts mehr.
Das überfordert mich jetzt völlig. Warum war der Fehler zwischenzeitlich verschwunden? Wissentlich habe ich nichts geändert (bzw. alles wieder zurück gesetzt auf http).
Er scheint dann wohl doch nicht mit http vs. https zusammen zu hängen.
Dann habe ich nach deiner Empfehlung folgendes in den head-Teil der index.html eingebaut:
<meta name="debug" content="5">
und dann jeweils in einem neu geöffneten Browser-Fenster die url (mit http) für das TabletUI aufgerufen und die Konsolen-Ausgabe festgehalten:
Konsolenausgabe bei Aufruf der index.html - wenn keine Icons angezeigt werden:
Aufruf der index.html aus neu geöffnetem Browser-Fenster über URL direkt - http ==> es werden keine Icons angezeigt, es wird keine pagetab-Seite angezeigt
Base dir: ./ fhem-tablet-ui.js:2525:9
jQuery dynamically loaded fhem-tablet-ui.js:2534:25
Filename: fhem-tablet-ui.js:2091:21
FHEM dir: http://192.168.178.10:8083/fhem/ fhem-tablet-ui.js:2091:21
dynamic load file:./lib/jquery.toast.min.js / async:false fhem-tablet-ui.js:2091:21
Got csrf from FHEM:csrf_959816031403573 fhem-tablet-ui.js:2091:21
dynamidynamic load done:./lib/jquery.toast.min.js fhem-tablet-ui.js:2091:21
fhem-tablet-ui.css dynamically loaded. Waiting until it is ready to use... fhem-tablet-ui.js:2091:21
fhem-tablet-ui.css dynamically loaded. Waiting until it is ready to use... fhem-tablet-ui.js:2091:21
fhem-tablet-ui.css is ready to use. fhem-tablet-ui.js:2091:21
initPage - area=html fhem-tablet-ui.js:2091:21
dynamic load file:./lib/jquery.gridster.min.js / async:false fhem-tablet-ui.js:2091:21
dynamidynamic load done:./lib/jquery.gridster.min.js fhem-tablet-ui.js:2091:21
init templates - Done fhem-tablet-ui.js:2091:21
initWidgets before- area=html fhem-tablet-ui.js:2091:21
fhem-tablet-ui.js:2091:21
initWidgets after removed- area=html fhem-tablet-ui.js:2091:21
fhem-tablet-ui.js:2091:21
Load plugin "pagetab" for area "html" fhem-tablet-ui.js:2091:21
Start load plugin "pagetab" for area "html" fhem-tablet-ui.js:2091:21
dynamic load file:./js/widget_pagetab.js / async:true fhem-tablet-ui.js:2091:21
dynamidynamic load done:./js/widget_pagetab.js fhem-tablet-ui.js:2091:21
Start load plugin "famultibutton" for area "undefined" fhem-tablet-ui.js:2091:21
dynamic load file:./js/widget_famultibutton.js / async:true fhem-tablet-ui.js:2091:21
dynamidynamic load done:./js/widget_famultibutton.js fhem-tablet-ui.js:2091:21
dynamic load file:./lib/fa-multi-button.min.js / async:false fhem-tablet-ui.js:2091:21
dynamic load file:./lib/jquery-ui.min.js / async:false fhem-tablet-ui.js:2091:21
dynamidynamic load done:./lib/fa-multi-button.min.js fhem-tablet-ui.js:2091:21
dynamidynamic load done:./lib/jquery-ui.min.js fhem-tablet-ui.js:2091:21
Finished load plugin "famultibutton" for area "undefined" fhem-tablet-ui.js:2091:21
Try to init plugin: pagetab fhem-tablet-ui.js:2091:21
init is executed / currently at : http://192.168.178.10:8083/fhem/ftui/ fhem-tablet-ui.js:2091:21
get localStore pagetab_doload (init) to: null fhem-tablet-ui.js:2091:21
init set doload : home: pagetab01.html fhem-tablet-ui.js:2091:21
init set doload to <initializing> fhem-tablet-ui.js:2091:21
load page called with : pagetab01.html fhem-tablet-ui.js:2091:21
Konsolenausgabe bei Aufruf der index.html - wenn die Icons angezeigt werden:
Aufruf der index.html aus neu geöffnetem Browser-Fenster über URL direkt - http ==> Icons werden angezeigt, es wird keine pagetab-Seite angezeigt
Base dir: ./ fhem-tablet-ui.js:2525:9
jQuery dynamically loaded fhem-tablet-ui.js:2534:25
Filename: fhem-tablet-ui.js:2091:21
FHEM dir: http://192.168.178.10:8083/fhem/ fhem-tablet-ui.js:2091:21
dynamic load file:./lib/jquery.toast.min.js / async:false fhem-tablet-ui.js:2091:21
dynamidynamic load done:./lib/jquery.toast.min.js fhem-tablet-ui.js:2091:21
Got csrf from FHEM:csrf_959816031403573 fhem-tablet-ui.js:2091:21
fhem-tablet-ui.css dynamically loaded. Waiting until it is ready to use... 2 fhem-tablet-ui.js:2091:21
fhem-tablet-ui.css is ready to use. fhem-tablet-ui.js:2091:21
initPage - area=html fhem-tablet-ui.js:2091:21
dynamic load file:./lib/jquery.gridster.min.js / async:false fhem-tablet-ui.js:2091:21
dynamidynamic load done:./lib/jquery.gridster.min.js fhem-tablet-ui.js:2091:21
init templates - Done fhem-tablet-ui.js:2091:21
initWidgets before- area=html fhem-tablet-ui.js:2091:21
fhem-tablet-ui.js:2091:21
initWidgets after removed- area=html fhem-tablet-ui.js:2091:21
fhem-tablet-ui.js:2091:21
Load plugin "pagetab" for area "html" fhem-tablet-ui.js:2091:21
Start load plugin "pagetab" for area "html" fhem-tablet-ui.js:2091:21
dynamic load file:./js/widget_pagetab.js / async:true fhem-tablet-ui.js:2091:21
dynamidynamic load done:./js/widget_pagetab.js fhem-tablet-ui.js:2091:21
Start load plugin "famultibutton" for area "undefined" fhem-tablet-ui.js:2091:21
dynamic load file:./js/widget_famultibutton.js / async:true fhem-tablet-ui.js:2091:21
dynamidynamic load done:./js/widget_famultibutton.js fhem-tablet-ui.js:2091:21
dynamic load file:./lib/fa-multi-button.min.js / async:false fhem-tablet-ui.js:2091:21
dynamic load file:./lib/jquery-ui.min.js / async:false fhem-tablet-ui.js:2091:21
dynamidynamic load done:./lib/fa-multi-button.min.js fhem-tablet-ui.js:2091:21
dynamidynamic load done:./lib/jquery-ui.min.js fhem-tablet-ui.js:2091:21
Finished load plugin "famultibutton" for area "undefined" fhem-tablet-ui.js:2091:21
Try to init plugin: pagetab fhem-tablet-ui.js:2091:21
init is executed / currently at : http://192.168.178.10:8083/fhem/ftui/ fhem-tablet-ui.js:2091:21
get localStore pagetab_doload (init) to: initializing fhem-tablet-ui.js:2091:21
normal init : fhem-tablet-ui.js:2091:21
Finished load plugin "pagetab" for area "html" fhem-tablet-ui.js:2091:21
initWidgets - Done fhem-tablet-ui.js:2091:21
restartLongpoll fhem-tablet-ui.js:2091:21
stopLongpoll fhem-tablet-ui.js:2091:21
shortpoll: start in (ms):500 fhem-tablet-ui.js:2091:21
initPage-html: 438ms - Timer beendet fhem-tablet-ui.js:870:25
initPage (html): in 437ms fhem-tablet-ui.js:2091:21
startLongpoll: true fhem-tablet-ui.js:2091:21
websockets URL=ws://192.168.178.10:8083/fhem/?XHR=1&inform=type=status;filter=dummy1,dummy2, STATE;since=1570099580436;fmt=JSON×tamp=1570099580451 fhem-tablet-ui.js:2091:21
2 fhem-tablet-ui.js:2091:21
start shortpoll fhem-tablet-ui.js:2091:21
send to FHEM: jsonlist2 dummy1,dummy2 STATE fhem-tablet-ui.js:2091:21
shortpoll: start in (ms):900000 fhem-tablet-ui.js:2091:21
get jsonlist2: 118ms - Timer beendet fhem-tablet-ui.js:1022:29
fhemJSON: 0=Arg 1=Results fhem-tablet-ui.js:2091:21
shortpoll: fhemJSON.Results.length=2 fhem-tablet-ui.js:2091:21
isUpdated=false 2 fhem-tablet-ui.js:2091:21
shortPoll: Done fhem-tablet-ui.js:2091:21
read jsonlist2: 12ms - Timer beendet fhem-tablet-ui.js:1118:29
Konsolenausgabe beim ERSTEN Klicken von Button 2 oder 3 (wobei der js:45-Fehler kommt):
ERSTES Klicken von Button 3 - Fehler js:45 etc. - sonst keine Reaktion
change window location : pagetab03.html fhem-tablet-ui.js:2091:21
toggle on with : pagetab03.html fhem-tablet-ui.js:2091:21
load page called with : pagetab03.html fhem-tablet-ui.js:2091:21
SecurityError: The operation is insecure. widget_pagetab.js:43
loadPage http://<Benutzer:Passwort>@192.168.178.10:8083/fhem/ftui/js/widget_pagetab.js:43
toggleOn http://<Benutzer:Passwort>@192.168.178.10:8083/fhem/ftui/js/widget_pagetab.js:65
toggleOn http://<Benutzer:Passwort>@192.168.178.10:8083/fhem/ftui/js/widget_famultibutton.js:399
u http://<Benutzer:Passwort>@192.168.178.10:8083/fhem/ftui/lib/fa-multi-button.min.js:1
jQuery 2
dispatch
handle
Es gibt KEINE Ausgabe in der Konsole beim ZWEITEN Drücken der Buttons 2 oder 3 und bei jedem Klicken auf Button 1
Viele Grüße Norbert
Was passiert, wenn Du im Browser pauschal alle Cookies erlaubst?
Alle Cookies erlauben ==> keine Änderung.
Ich habe auch nochmal den abgesicherten Modus von Firefox probiert ==> keine Änderung.
Hmm das wird schwierig. Ich kann mir nicht vorstellen, was das Problem sein könnte.
Teste mal noch mit
<meta http-equiv="Cache-Control" content="no-store" />
in den Headers in index.html.
Ansonsten bleibt nur das step by step debugging in der Console des Browsers... was eigentlich schwierig ist zu verfolgen
Oder/und dein Browser komplett auf standard Einstellungen zurückzusetzen.
- Mit <meta http-equiv="Cache-Control" content="no-store" /> in der index.html ==> keine Änderung des Verhaltens
- Browser mit der Firefox-eigenen Routine auf Standard-Einstellungen zurückgesetzt ==> keine Änderung des Verhaltens
ABER:
- Komplettes Firefox-Profil mit allen Einstellung gelöscht ==> alles funktioniert!!!
Jetzt kann ich weitersuchen, bei welcher Einstellung das Problem auftaucht.
Erst mal wieder vielen Dank - ich werde berichten.
VG Norbert
Ich würde in Richtung Add-Ons oder in Richtung Cookies zuerst suchen.
Hattest Du mal irgendwas über about:config geändert, oder hast Du immer nur die Menüs benutzt?
Neue Erkenntnis:
Die Fehler treten auf:
- Bei Direktaufruf von TabletUI über die url mit:
http://<Benutzer:Passwort>@<IP:port>/fhem/ftui/ - Und beim Aufruf von TabletUI aus fhem heraus, wenn ich zunächst fhem starte mit
http://<Benutzer:Passwort>@<IP:port>/fhem/
und dann TabletUI aufrufe aus fhem heraus über
define TABLETUI HTTPSRV ftui/ ./www/tablet Tablet-UI
in der fhem.cfg.
Es treten
KEINE Fehler auf, wenn ich die Aufrufe
ohne die Benutzer:Passwort-Angabe mache, also
- Bei Direktaufruf von TabletUI über die url mit:
http://<IP:port>/fhem/ftui/
- Und beim Aufruf von TabletUI aus fhem heraus, wenn ich zunächst fhem starte mit:
http://<IP:port>/fhem/
und dann TabletUI aufrufe aus fhem wie oben über
define TABLETUI HTTPSRV ftui/ ./www/tablet Tablet-UI
in der fhem.cfg.
Beim ersten Aufruf werden dann die Zugangsdaten abgefragt.
Ich war bisher der Meinung, dieser Zusatz in der URL würde einfach die Abfrage im Browser oder die Speicherung von Benutzer und Passwort im Browser ersparen. Es scheint aber wohl etwas anderes zu passieren.
Was verstehe ich da nicht? Interessant scheint mir auch:
- Dieses Problem tritt (bei mir) nur bei der Nutzung von pagetab und nur bei Firefox auf.
- Nach einmaliger Eingabe von Benutzer/Passwort klappt der Zugriff auf fhem, per Direktaufruf von TabletUI über die url, und auch auf TabletUI aus fhem heraus ohne erneute Passworteingabe oder vorherige Speicherung der Zugangsdaten im Browser. Dies gilt auch, wenn man neue Browser-Fenster für fhem oder TabletUI öffnet. Erst nach komplettem Schließen und Neustart des Browsers (nicht nur der Seite!!) werden die Zugangsdaten dann wieder (einmalig) abgefragt.
Daran ändert auch das Löschen von Cookies und Cache nichts, solange man danach den Browser nicht komplett schließt.
Wo wird das gespeichert?
Jetzt ist dieses Verhalten übrigens auch gleich wenn ich die alten Einstellungen und Add-Ons des Browsers wieder verwende, und auch mit aktiviertem https in fhem.
VG Norbert
Rufst Du wirklich deine Weboberfläsche mit http://<Benutzer:Passwort>@<IP:port>/fhem/ftui/ auf?
Die meisten Browser unterstützen das nicht mehr.
https://medium.com/@lmakarov/say-goodbye-to-urls-with-embedded-credentials-b051f6c7b6a3
Hallo amenomade,
danke für den Hinweis, das wusste ich nicht; aber das erklärt natürlich, warum es damit Probleme gibt ;).
Zu deiner Frage:
Bei Firefox habe ich zumindest zum Schluß definitiv MIT den Benutzerdaten aufgerufen, mit den beschriebenen Fehlern.
Am Anfang und bei den anderen Browsern war ich nicht sicher, da ich so viel rumprobiert habe und dabei diesen Punkt nicht im Fokus hatte. Daher habe ich die url MIT den Nutzerdaten nochmal kurz getestet:
Firefox:
==> Fehler wie beschrieben - allerdings nur bei pagetab.
Edge und Chrome:
==> Beide entfernen die Nutzerdaten beim Aufruf selbständig aus der url ohne dass eine Warnung erscheint, und rufen die Seite ohne diese auf. Das hatte ich nicht bemerkt.
IE11:
==> Findet die Seite nicht "Seite wird nicht gefunden". Hier hatte ich offenbar nicht mit den Nutzerdaten in der url getestet.
Auch wenn die Frage bleibt, warum der Fehler
widget_pagetab.js:45 Security Error: The operation is insecure
nur bei pagetab als Problem auftaucht, betrachte ich das Problem als
gelöst und habe den Titel entsprechend angepasst.
Zusammengefasst (damit nicht jeder den ganzen Thread lesen muss):
Fazit & Lösung: Für den Fehler mit pagetab in Firefox
widget_pagetab.js:45
Security Error: The operation is insecure.
==> Nutzerdaten <Benutzer:Passwort> für den Zugriff auf fhem dürfen nicht (mehr) in der url stehen.Man muss sie wohl statt dessen im Browser speichern, wenn man sie nicht jedesmal neu eingeben möchte.
Also NICHT: http://<Benutzer:Passwort>@<IP:port>/fhem/ftui/
Sondern nur: http://<IP:port>/fhem/ftui/
Zusätzliche Erkenntnisse für mich:
- Wenn in der index.html ein erstes Gridster-Element für das Menu, und ein zweites für andere Inhalte definiert werden, und das zweite Element über verschiedene Pagetab mit Inhalt gefüllt werden soll, wird sofort beim Aufruf der index.html die erste Pagetab-Seite geladen, auch wenn das zweite Gridster-Element in der index.html als leer definiert ist.
- Die folgende Fehlermeldung im Logfile beim Restart von fhem kann wohl ignoriert werden:
FHEMWEB WEB CSRF error: csrf_959816031403573 ne csrf_106951268095674 for client WEB_192.168.178.50_56897 / command shutdown restart. For details see the csrfToken FHEMWEB attribute.
Sie kommt dadurch, dass beim Restart von fhem aus der WebUI-Oberfläche noch das Browser-Fenster geöffnet bleibt, aber nach dem Neustart von fhem ein neuer Token generiert wird. Nach Laden einer neuen Seite ist das erledigt.
- Die Ursache für den zweiten Fehler im Logfile beim Restart von fhem bleibt (für mich) unklar - scheint aber keine Auswirkung zu haben:
FHEMWEB SSL/HTTPS error: SSL accept attempt failed error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number (peer: 192.168.178.10)
Nochmals vielen Dank an OdfFhem und amenomade für die schnelle, ausdauernde und geduldige Hilfe.
Viele Grüße Norbert