Hallo zusammen,
bei mir läuft Infopanel auf einem Magic-Mirror. Der autoreload funktioniert gut - bis der FHEM-Server mal kurz nicht erreichbar ist. Da reicht ein update des Routers oder ein kurzer Neustart von FHEM.
Dann ist nämlich Infopanel nicht mehr eirreichbar und es wird auch nicht mehr versucht, neu zu verbinden.
Gibt es eine möglichkeit, Infopanel in einen lokal auf dem Mirror laufenden Webserver einzubinden, der dann einen Refresh auslöst, wenn Infopanel nicht mehr erreichbar war?
Wie wird das in FHEMWEB gemacht? Hier wird ja auch beim Verbindungsabbruch alle 5 Sekunden versucht, eine Verbindung aufzubauen.
viele Grüße,
Kuzl
Zitat von: Kuzl am 10 Oktober 2016, 07:57:16
Wie wird das in FHEMWEB gemacht?
Ein Blick in fhemweb.js verrät es Dir:
/*************** LONGPOLL START **************/
var FW_pollConn;
var FW_longpollOffset = 0;
var FW_leaving;
function
FW_doUpdate()
{
if(FW_pollConn.readyState == 4 && !FW_leaving) {
if(FW_pollConn.status == "401") {
location.reload();
return;
}
FW_errmsg("Connection lost, trying a reconnect every 5 seconds.", 4900);
setTimeout(FW_longpoll, 5000);
return; // some problem connecting
}
...
d.h ich müsste den Reload-Mechanismus von Infopanel deaktivieren und dann nur noch über js Refreshen, wenn eine Verbindung besteht?
Also sowas in der Richtung:
function RefreshSite() {
if(FW_pollConn.readyState == 4) {
setrefresh();
}
else {
location.reload();
}
}
function setrefresh() {
setTimeout(RefreshSite, 60000);
}
document.addEventListener("DOMContentLoaded", setrefresh, false);
Ich habe das jetzt so eingebaut.
Der Refresh wird gemacht. Allerdings liefert auch wenn die Verbindung unterbrochen ist FW_pollConn.readyState == 3
Muss ich da noch zyklisch irgendwas ausführen?
Ich kenn mich mit fhemweb nicht aus und würde gern auch allgemein das Thema Longpoll in FHEM besser verstehen. (auch, wie ich es im restlichen Infopanel verwenden kann)
Ich hoffe mir kann jemand weiterhelfen.
Gruß
Kuzl
Hat keiner eine Idee?
Denke das Thema ist besser im Unterforum FHEMWEB aufgehoben - wie kann ich das verschieben?