In der ftui Version eval2.2 werden verschiedene html events abgefangen, u.a. das online event, das erkennt, dass der Browser wieder online ist:
// event "page is loaded" -> start FTUI
$(document).on('ready', function() {
ftui.init();
});
$('.menu').on('click', function() {
$('.menu').toggleClass('show');
});
$(window).on('beforeunload', function(){
ftui.log(5,'beforeunload');
ftui.setOffline();
});
$(window).on('online offline', function() {
ftui.log(5,'online offline');
if (navigator.onLine)
ftui.setOnline();
else
ftui.setOffline();
});
Wenn ein online event kommt, wird ein shortpoll ausgeführt, damit die fhem readings in ftui alle aktualisiert werden ohne ein reload der Seite durchführen zu müssen.
setOnline: function(){
var ltime = new Date().getTime() / 1000;
if ((ltime - ftui.states.lastSetOnline) > 60){
if (ftui.config.DEBUG) ftui.toast("Network connected");
ftui.states.lastSetOnline = ltime;
// force shortpoll
ftui.states.lastShortpoll = 0;
ftui.startShortPollInterval(100);
if (!ftui.config.doLongPoll){
ftui.config.doLongPoll = ($("meta[name='longpoll']").attr("content") == '1');
if ( ftui.config.doLongPoll )
ftui.startLongPollInterval(100);
}
ftui.log(1,'FTUI is online');
}
},
Leider klappt das bei mir nicht nach einem Hibernate/Ruhezustand des Tablets mit fully und ftui Version eval2.2
Bei mir wird das Tablet per Bewegungsmelder angeschaltet, ansonsten ist es immer im Hibernate/Ruhezustand ohne wifi-Verbindung. Wenn es eingeschaltet wird, soll es ohne reload der Seite alle fhem readings aktualisieren per shortpoll. Bei ftui Version 2.0beta und Webviewcontrol hat das so funktioniert. Seit dem Umstieg auf ftui Version 2.2eval und Webviewcontrol geht das nicht mehr....
Ich weiss nicht, ob es an fully oder an ftui Version 2.2eval liegt, da diese ftui Version mit Webviewcontrol nicht läuft (gibt immer blauen Bildschirm mit Timeout).
Bin allerdings aber auch gerade am überlegen, ob man die Rückkehr aus dem hibernate nicht anders erkennen könnte als mit online events, z.B. mit jquery.wakeup plugin. Das könnte evtl auch das Problem lösen, muss ich mal testen.
Vielen Dank schon einmal!