[Gelöst] Genau jede Minute - Disconnected from FHEM

Begonnen von Grishn, 21 Oktober 2016, 17:53:40

Vorheriges Thema - Nächstes Thema

Grishn

Hallo,

dies ist mein erster Eintrag, also habt bitte etwas Nachsicht mit mir :)

Bis jetzt habe ich es erfolgreich geschafft, alles durch Nachlesen im Forum, im Wiki oder der Referenz zu lösen, aber hier suche ich leider vergeblich.
Die anderen Einträge zu diesem Thema bringen mich leider auch nicht weiter bzw. verlaufen seid langem ohne Antworten / Lösung im Sande :(

Ich bekomme in absoluter Regelmäßigkeit ( alle 60 Sekunden ) auf meiner Tablet UI Oberfläche einen Disconnect ( Disconnected from FHEM - poll done - ) und sofort einen erneuten Lonpoll ( Longpoll started ).

Das passiert sowohl auf einem Android Tablet  ( Fully, Chrome, WebViewControl ), wie auch unter Windows ( UE, Chrome, Firefox ) und auch auf einem iPhone.
Egal ob per WLAN oder per Kabel verbunden.

Der Event Monitor zeigt zu diesem Zeitpunkt auch keine Fehler ( Verbose 5 ) und die Java Konsole sagt auch nur Disconnect und Longpoll startet.

FHEM und TabletUI sind auf dem aktuellsten Stand.

Hat jemand eine Idee, wo ich hier noch nachsehen kann oder am besten eine Vorschlag woran das liegen könnte ?

Der Fehler ist nicht nur nervig, wegen der ständigen Meldung, sondern teilweise friert dadurch auch die Oberfläche ein, da Abfragen / Kommandos mittendrin abgebrochen werden.

Danke schon mal für Eure Mühe.


setstate

Willkommen hier !!!

Und übrigens: hier wird niemand wegen einer Fragestellung ohne vorherige 10h Suchfunktionsnutzung zerpflückt.

Ich vermute, du hast noch nie eine Verbindung zum Fhem aufbauen können. 60sek wird der Timeout sein, und dann der Neuversuch. Nutzt du spezielle andere Pfade für Fhem oder das UI?

Sonst müsste man in der Index.html extra konfigurieren, wo fhem zu finden ist

Grishn

Das ging aber flott :)

Habe mich wohl etwas falsch ausgedrückt.

Es funktioniert ja eigentlich alles soweit und ich kann meine Tablet UI Oberfläche auch nutzen ( Statusanzeige, Thermostatsteuerung, PopUp´s, Charts etc. ), heisst bis zum Disconnect alle 60 sec klappt alles ohne Probleme und meistens startet ja danach der Longpoll auch wieder normal.

Theoretisch wäre nur die Anzeige der Meldung ( Disconnect bla bla bla ) nervig und die könnte man ja per CSS bestimmt unterbinden ABER oft friert, nach einem Disconnect, die Oberfläche ein bzw. Statusänderungen werden eben nicht vollständig angezeigt, da der Longpoll unterbrochen wird.

Und Nein, abweichende Pfade nutze ich nicht.
Das einzige was ich nutze ist das Pagetab Widget und die Unterseiten liegen im selben Verzeichniss wie die index.html

Gollum2

Nur mal eine Idee...nicht das ich irgend eine Ahnung von Fhem oder FTUI habe...

Wenn ich meine Anzeige im Browser Refreshe (also die Seite neu laden) bekomme ich auch diese Meldung.
Kann es sein, das dein Browser von alleine oder in deinem Code ein "refresh" der Seite gemacht wird und das alle 60 Sec.?

Gruß
Gollum
"Auch aus Steinen, die einem in den Weg gelegt werden, kann man Schönes bauen."

Fhem auf Raspberry PI 2
HM LAN HM USB, CUL 433
IT Steckdosen, Diverse HM Aktoren und Sensoren, Yamaha Receiver, Panasonic TV, Harmony Hub

setstate

Alle Stromsparfunktionen am Tablet sind ausgeschaltet?

Grishn

Ist ja leider nicht nur am Tablet so. Egal auf welchem Device ich das nutze, verhält es sich so.
Ob am PC, Tablet, iPhone, dass ist egal.

@Gollum2: Und ja, genau so verhält es sich. Als ob ein ständiger Refresh jede 60sec gemacht wird. Aber eben Geräteunabhängig.

setstate

Dann musst du rausfinden, welches Device in diesem Augenblick aktualisiert. Ich vermute, da sind Ajax unpassende Strings in der Liste. Das Device vorübergehend mal aus der fhem.cfg auskommentieren.

Gollum2

Nur sicherheitshalber, bevor du alle Devices durchgehst..

RELOAD hast du aber nicht im UI im Einsatz oder ?

https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/reload
"Auch aus Steinen, die einem in den Weg gelegt werden, kann man Schönes bauen."

Fhem auf Raspberry PI 2
HM LAN HM USB, CUL 433
IT Steckdosen, Diverse HM Aktoren und Sensoren, Yamaha Receiver, Panasonic TV, Harmony Hub

Grishn

@Gollum2: Nein (leider) kein RELOAD im Einsatz.

@setstate: Hatte gehofft das ich das nicht müsste und es eine andere Möglichkeit gibt. ;)
Dazu noch eine Frage: Wirklich alle Devices probieren oder reichen die, die ich im TabletUI verwende ?

Ich frage um den Zusammenhang zu verstehe:. Kann ein Device, das nicht im TabletUI angezeigt wird dessen Verhalten beeinflussen also den Disconnetc / Reload auslösen ?
Sonst würde es doch auch genügen, in den (TabletUI)HTML-Dateien die Aufrufe auszukommentieren, oder ? Würde dann erst mal nicht die Funktion vom FHEM beeinflussen.

setstate

#9
Beim Longpoll wird alles rausgepusstet von FHEM, die Abfrage erfolgt mit filter=.*

Man müsste das auch parallel im eventMonitor sehen können

Man könnte aber auch versuchen, den Filter zu nutzen, um nur die FTUI abonierten Devices zu übertragen.

Änderung in der fhem-tablet-ui.js
um die Zeile 480:


        ftui.states.longPollRestart=false;

        var devicelist = $.map(ftui.devs, $.trim).join();

        ftui.longPollRequest=$.ajax({
            url: ftui.config.fhem_dir,
            cache: false,
            async: true,
            data: {
                XHR:1,
                inform: "type=status;filter="+devicelist+";fmt=JSON"
            },


Ich teste das bei mir und werde es einbauen, wenn es keine Einschränkungen damit gibt

Grishn

Das Problem scheint behoben zu sein. danke.

Habe Gestern einmal Updates installiert und seit dem läuft es stabil durch.

@setstate: Hatte gesehen, das Du dein Code Beispiel jetzt in der fhem-tablet-ui.js fest eingebaut hast (?) .

Ich vermute mal, dass das geholfen hat und ich tatsächlich irgendwo ein Device habe, das dieses Problem verursacht ( hat ).
Jetzt weis ich zumindest, das es keines ist, welches auf dem TabletUI ausgegeben wird.

Danke für deinen Einsatz und natürlich TabletUI an sich ;)

Stril

#11
Hallo!

Ich habe leider in der aktuellen Version ein ähnliches Problem, aber keine Idee, woran es liegt.

Alle paar Minuten erscheint auf meinem Tablet:
Disconnected from FHEM
Longpoll started

Bei mir ist es nicht minütlich, sondern erst dauert es eine viertel Stunde und dann ist es minütlich. Wenn das passiert, zeigt der Eventmonitor nichts an.

Hast Du eine Idee, wie ich den Fehler eingrenzen kann?


Edit: Bisher kann ich den Fehler nur auf dem iPad reproduzieren.

Danke und Grüße
Phil


Gleichzeitig ist im Eventmonitor nichts zu sehen.

Stril

Es scheint wirklich mit einem der letzten Updates gekommen zu sein und betrifft das iPad, nicht aber einen Chrome Browser unter Windows.

Bin für jeden Tipp dankbar!

Stril

Hallo!

Nochmal ein paar Zusatzinfos:

Das Problem tritt bei iPhone und iPad gleichermaßen auf - auch bei einer kleinen Demo-Seite. Ich habe einmal eine Seite mit nur einem einzigen Widget gemacht. Auch hier gibt es alle 60s einen Disconnect - Longpoll started.

Ich habe am 18.10. ein Backup gemacht. Da lief es noch, aber in der aktuellen Version gibt es die Disconnects.

Hier noch die Seite, mit der ich getestet habe:


<!DOCTYPE html>
<html>
<head>




    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <meta name="widget_base_width" content="74">
    <meta name="widget_base_height" content="71">
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="gridster_disable" content="1">
    <meta name="longpoll" content="1"> <!-- 1=longpoll;0=shortpoll every 30sec -->
    <meta name="debug" content="6"> <!-- verbose level 1-6 = output to console;0 = not output -->
    <meta http-equiv="Cache-Control" content="no-store" />

    <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" />

    <!-- define your personal style here, it wont be overwritten  -->
    <!-- link rel="stylesheet" href="css/fhem-green-ui.css" / -->
    <!-- link rel="stylesheet" href="css/fhem-tablet-ui-user.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>


    <link rel="stylesheet" href="/fhem/tablet/customfonts/robomow/style.css">


   <link rel="stylesheet" href="/fhem/tablet/lib/openautomation.css" />
   <link rel="stylesheet" href="/fhem/tablet/lib/fhemSVG.css" />


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

</head>
<body>
    <div class="gridster">
        <ul>
<li data-row="2" data-col="1" data-sizex="3" data-sizey="2">
        <div data-type="dimmer" data-device='aLd_EG_Wohnzimmer_Garten'
       data-get-on="!off"
       data-get-off="0|off"
        data-set-off="off"
        data-set-on="on"
       data-set=""
        data-dim="dim"
        data-get="dim"></div>

</li>
</ul>

</body>

</html>




Grüße
Phil

PatrickR

Hi!

Schließe mich Stril an. Habe das Problem auf einem iPhone 7. Das Android-Tablet hat das Problem nicht.

Patrick
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook