Infopanel in Website einbinden

Begonnen von Kuzl, 10 Oktober 2016, 07:57:16

Vorheriges Thema - Nächstes Thema

Kuzl

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

dev0

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
  }
...

Kuzl

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);


Kuzl

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

Kuzl

Hat keiner eine Idee?

Denke das Thema ist besser im Unterforum FHEMWEB aufgehoben - wie kann ich das verschieben?