Problem mit Longpoll seit FTUI 2.4

Begonnen von PatrickR, 30 Januar 2017, 21:24:08

Vorheriges Thema - Nächstes Thema

PatrickR

Mahlzeit!

Seit dem Update auf Version 2.4 habe ich ein Problem, das mit der aktuellen Version nach wie vor auftritt. Es äußert sich in ähnlicher Weise auf beiden Endgeräten, aber ist nicht zuverlässig reproduzierbar:

Intenso-Android-Tablet mit "Kiosk Browser"
Das Tablet startet automatisiert jeden Morgen über AMAD neu und ruft dann automatisch den Kiosk-Browser auf, der wiederum das Tablet UI aufruft. Etwa 1x pro Woche, d. h. in 1/7 der Fälle aktualisiert sich die Seite nicht mehr automatisch. Die letzte Aktualisierung - ich verfolge das an Hand eines Labels - ist ca. 1 Minute nach dem Neustart. Ich gehe daher davon aus, dass das initiale Laden durchläuft, dann aber die Aktualisierungen nicht mehr statt finden.

iPhone 7 mit Safari als Bookmarklet/WebApp
Im Gegensatz zum Tablet ist die Seite nicht dauerhaft aufgerufen, d. h. ich rufe sie auf und wechsle dann die App. Wenn ich dann zu einem späteren Zeitpunkt die App wieder aufrufe sind die angezeigten Werte nicht mehr aktuell. Nach einem Force Quit und erneuten Aufruf läuft alles einwandfrei.

Das ist momentan das letzte störende Problem, das mich auf meinem Weg zur Glückseligkeit mit FTUI 2.5 aufhält :)

Für jeden Hinweis bin ich dankbar und liefere gerne - sofern es hilft - Auszüge aus den Webseiten zu. Mit Konsolenlogs wird es wegen der Endgeräte aber schwierig.

/Edit: Longpoll ist aktiviert:

<meta name="longpoll" content="1"> <!-- 1=longpoll;0=shortpoll every 30sec -->

Ich benutze FHEM Tablet UI unter Apache auf dem FHEM-Host.

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

Waldmensch

Seit dem letzen Update hängt sich bei longpulse=1 Opera, FF und Crome auf Android nach 2-5 h weg


Gesendet von iPhone mit Tapatalk

Garbsen

Seit dem ich das Update auf 2.5 schmiert mein Tabletui in Safari (iOS 10) regelmäßig ab.D.h. Safari beendet sich selbstständig.

FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

Waldmensch

Zitat von: Garbsen am 31 Januar 2017, 07:42:50
Seit dem ich das Update auf 2.5 schmiert mein Tabletui in Safari (iOS 10) regelmäßig ab.D.h. Safari beendet sich selbstständig.
Setz mal longpulse =0 falls du ihn auf 1 hast


Gesendet von iPhone mit Tapatalk

setstate

longpoll (Autokorrektur hat vermutlich dazwischen gefunkt)

Aber mit 0 schaltest du das adhoc Aktualisieren ab und bekommst nur noch aller 30 Selunden ein volles Update. Aber wenn per Longpoll nicht mit FHEM kommuniziert werden kann, dann dürfte ShortPoll auch nicht klappen. JSON Fehler kommen auch nicht, wie manche berichten? Dann wäre FHEM die Ursache, weil es ein nicht konformes JSON zusammen baut.

Waldmensch

Ja, Autokorrektur ;)

Bei mir hängt sich Opera auf dem Droiden komplett weg. Ich krieg da aber auch keine debug Konsole. Kann das sein, das irgendwie Speicher voll läuft, wie beim Eventmonitor in FHEM? Dort stürzt ja der browsertab auch irgendwann ab, wenn man es lange laufen lässt


Gesendet von iPhone mit Tapatalk

Garbsen

#6
Zitat von: setstate am 31 Januar 2017, 08:44:21
longpoll (Autokorrektur hat vermutlich dazwischen gefunkt)

Aber mit 0 schaltest du das adhoc Aktualisieren ab und bekommst nur noch aller 30 Selunden ein volles Update. Aber wenn per Longpoll nicht mit FHEM kommuniziert werden kann, dann dürfte ShortPoll auch nicht klappen. JSON Fehler kommen auch nicht, wie manche berichten? Dann wäre FHEM die Ursache, weil es ein nicht konformes JSON zusammen baut.
Die Seite scheint ansonsten stabil zu laufen, Fehlermeldungen jedenfalls keine
Beim ersten Aufrufen kommt Meldung, dass Longpoll gestartet und dass ein Full refresh erfolgte.
Angezeigte Werte z.B. Vom Sonnensensor verändern sich auch. Mehr kann ich zur Zeit nicht ausprobieren, da ich nicht zuhause bin, sondern per VPN zugreife

FHEM ist auf neuestem Stand hatte ja für Tabletui 2.5 ein Update gefahren

Vor dem Update lief die Anzeige in Safari problemlos tagelang
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

Garbsen

Läuft denn bei allen anderen Tabletui problemlos durch, ohne sich zwischendrin zu verabschieden?
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

ext23

Ich nutze den Fully Kiosk Browser unter Android und der beendet sich nach ein paar Tagen auch, das ist aber schon länger so. Ich bin auch der Meinung das hier irgend etwas voll läuft aber gut ich nutze die Zeit immer um mal wieder PlayStore Updates zu machen ;-)

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Garbsen

Zitat von: ext23 am 31 Januar 2017, 15:19:02
Ich nutze den Fully Kiosk Browser unter Android und der beendet sich nach ein paar Tagen auch, das ist aber schon länger so. Ich bin auch der Meinung das hier irgend etwas voll läuft aber gut ich nutze die Zeit immer um mal wieder PlayStore Updates zu machen ;-)

/Daniel

Naja, ein paar Tage wäre ja ok, aber alle paar Stunden ist nervig
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

PatrickR

Guten Abend!
Zitat von: setstate am 31 Januar 2017, 08:44:21
JSON Fehler kommen auch nicht, wie manche berichten? Dann wäre FHEM die Ursache, weil es ein nicht konformes JSON zusammen baut.
Falls das an mich gerichtet war - wir diskutieren hier leider aktuell mehrere verschiedene Probleme gleichzeitig: Die JSON-Geschichte hatte ich auch in Verdacht und mir genauer angesehen:


while [ 1 ]; do
echo -n .
jsonlist=$(curl -s "http://fhem:8083/fhem?cmd=jsonlist2&XHR=1")
echo ${jsonlist}|python -m json.tool >/dev/null
sleep $SLEEP_TIME
done

Ich hatte über 48h exakt 0 JSON-Fehler, und das eingangs geschilderte Problem trat zwischendurch definitiv auf.

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

PatrickR

Mahlzeit!

Noch eine Info, die ggf. bei der Eingrenzung hilft: Heute morgen aktualisierte das Android-Tablet wieder nicht. (Zeitpunkt wie gehabt 1 Minute nach dem Restart). Nach dem Wechseln auf einen anderen Pagetab und zurück (ohne Reload etc.) hat das Problem dann behoben.

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

setstate

Longpoll wird erst gestartet, wenn ShortPoll ohne Fehler durchgelaufen ist.

Dann kommt das Event onUpdateDone

Vielleicht hast du bei dir auch sporadisch das jsonlist Problem.

https://forum.fhem.de/index.php/topic,66131.0.html

Die Toast Fehlermeldung ist ja nach wenigen Sekunden wieder weg. Du müsstest testweise stattdessen alert("huhu"); als Fehlermeldung reinnehmen.
Nach Zeile 730

drhirn

Ich hatte genau das selbe Problem. FTUI hat sich nicht mehr aktualisiert. Android 6+, mehrere Geräte. Hatte lange den Doze-Mode von Android im Verdacht. Bzw, dass Android eine App aus dem Speicher schmeißt, wenn lange nichts passiert. Hatte versucht, Browser und Android System Web View aus den Energiespareinstellungen raus zu nehmen. Hat leider nicht geholfen.
Die Lösung für mich war dann der Fully Browser, der die Möglichkeit bietet, die Seite zu aktualisieren, wenn das Display an geht. Interessanterweise brauch ich den Refresh inzwischen nicht mal mehr. Funktioniert auch so problemlos.
Das ist jetzt leider nicht sehr hilfreich, ich wollte dich nur wissen lassen, dass du mit dem Problem nicht alleine bist ;)

Waldmensch

#14
Ich habe mal mit der Chrome Konsole gespielt. Da ist ein Request, der permanent offen ist und immer mehr lädt. s.Screenshot. Der Heap sieht eigentlich (noch) normal aus. Ich lass mal weiter laufen. Während ich den Artikel geschrieben hab, hat der offene Request schon 1,7MB

Bei einem full refresh wird dieser immer neu gestartet, bei Longpoll wird der Browser irgendwann genug haben?!

Dieser hier:
Request URL:http://192.168.178.46:8083/fhem/?XHR=1&inform=type%3Dstatus%3Bfilter%3D.*%3Bfmt%3DJSON&_=1486021161838
Request Method:GET
Status Code:200 OK
Remote Address:192.168.178.46:8083
Response Headers
view source
Content-Type:application/octet-stream; charset=UTF-8
Request Headers
view source
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
Authorization:Basic xxxxxxxxxxxxxxxxxxxxxx
Connection:keep-alive
Cookie:TWISTED_SESSION=161bb670b167e39277e569fcdd7cb3e0
DNT:1
Host:192.168.178.46:8083
Referer:http://192.168.178.46:8083/fhem/ftui/
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
X-Requested-With:XMLHttpRequest
Query String Parameters
view source
view URL encoded
XHR:1
inform:type=status;filter=.*;fmt=JSON
_:1486021161838



meine index.html:

<!DOCTYPE html>
<html>
<head>
    <!--
     /* FHEM tablet ui */
     /*
     * Just another dashboard for FHEM
     *
     * Version: 1.4.4
     * Requires: jQuery v1.7+, font-awesome, jquery.gridster, jquery.toast
     * URL: https://github.com/knowthelist/fhem-tablet-ui
     *
     * Copyright (c) 2015 Mario Stephan <mstephan@shared-files.de>
     * Under MIT License (http://www.opensource.org/licenses/mit-license.php)
     *
     * - create a new folder named 'tablet' in /<fhem-path>/www
     * - copy all files incl. sub folders into /<fhem-path>/www/tablet
     * - add 'define tablet_ui HTTPSRV tablet ./www/tablet Tablet Frontend' in fhem.cfg
     * - Tadaaa! A new fhem ui in http://<fhem-url>:8083/fhem/tablet/
     */
    -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <meta name="widget_base_width" content="116">
    <meta name="widget_base_height" content="131">
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <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="/fhem/tablet/lib/jquery.gridster.min.css" />
    <link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui.css" />
    <link rel="stylesheet" href="/fhem/tablet/lib/font-awesome.min.css" />
    <link rel="stylesheet" href="/fhem/tablet/lib/jquery.toast.min.css" />
-->
    <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="/fhem/tablet/css/fhem-green-ui.css" / -->
    <!--<link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui-user.css" />-->
<!--
    <script src="/fhem/pgm2/jquery.min.js" defer></script>
    <script src="/fhem/tablet/lib/jquery.toast.min.js" defer></script>
    <script src="/fhem/tablet/lib/jquery.gridster.min.js" defer></script>
    <script src="/fhem/tablet/js/fhem-tablet-ui.min.js" defer></script>
-->
    <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>


    <!-- Remove this line to enable for usage with WebViewControl
    <script defer>var wvcDevices = {'12345': 'Tablet'}; var wvcUserCssFile="webviewcontrol.css"</script>
    <script src="/fhem/pgm2/cordova-2.3.0.js" defer></script>
    <script src="/fhem/pgm2/webviewcontrol.js" defer></script>
    <!-- End for WebViewControl -->

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


</head>
<body>

<div class="gridster">

<ul>
<li data-row="1" data-col="1" data-sizex="1" data-sizey="1">
<header>Tanken</header>
<!--<div
data-type="symbol"
data-device="dummy1"
data-icons='["fa-arrow-up","fa-arrow-right","fa-arrow-down"]'
data-on-colors='["#32a054","#6666cc","#ad3333"]'
data-get-on='["Wert1","Wert2","Wert3"]'
class="blink">
</div>-->
<div
data-type="label"
class="left small top-space ">&nbsp;&nbsp;Diesel
</div>
<div
data-type="label"
data-device="Jet"
data-get="Diesel"
data-unit=" &euro;"
class="cell big ">Status
</div>
<div
data-type="label"
class="left small ">&nbsp;&nbsp;Super
</div>
<div
data-type="label"
data-device="Jet"
data-get="SuperE5"
data-unit=" &euro;"
class="cell big ">Status
</div>
</li>

<li data-row="2" data-col="1" data-sizex="1" data-sizey="4">
<header>Wetter</header>
<div
data-type="label"
data-device="OG.te.WE.Temperatur"
data-part="2"
data-limits='[-73,10,23]'
data-colors='["#6699FF","#AA6900","#FF0000"]'
data-unit="%B0C%0A"
class="cell big thin top-space">
</div>
<div
data-type="simplechart"
data-device="OG.te.WE.Temperatur"
data-logdevice="logdb"
data-columnspec="OG.te.WE.Temperatur:temperature:::"
data-minvalue="-10"
data-maxvalue="35"
data-height="60"
data-width="90"
class="noticks">
</div>
<div
data-type="label"
data-device="OG.te.WE.Temperatur"
data-part="5"
data-unit="%"
class="cell big thin">
</div>
<div
data-type="simplechart"
data-device="OG.te.WE.Temperatur"
data-logdevice="logdb"
data-columnspec="OG.te.WE.Temperatur:humidity:::"
data-minvalue="0"
data-maxvalue="100"
data-height="60"
data-width="90"
class="noticks">
</div>
<header class="top-space">Heute</header>

<div data-type="popup" data-width="850px" class="inline">
<div
data-type="weather"
data-device="Forecast"
data-get="fc1_condition"
data-imageset="kleinklima"
class="centered">
</div>
<div class="dialog">
<header class="top-space">Wetter Vorhersage</header>
<table>
<tr>
<td>
<div class="left">
<div data-type="label" data-device="Forecast" data-get="fc1_day_of_week" class="centered large top-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc1_date" class="centered small top-space"></div>
<div data-type="weather" data-device="Forecast" data-get="fc1_condition" data-imageset="kleinklima" class="centered top-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc1_condition" class="centered small"></div>
<div class="centered">
<div data-type="label" data-device="Forecast" data-get="fc1_low_c" data-unit="%B0C%0A" class="left large right-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc1_high_c" data-unit="%B0C%0A" class="right large left-space"></div>
</div>
</div>
</td>
<td>
<div class="left">
<div data-type="label" data-device="Forecast" data-get="fc2_day_of_week" class="centered large top-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc2_date" class="centered small top-space"></div>
<div data-type="weather" data-device="Forecast" data-get="fc2_condition" data-imageset="kleinklima" class="centered top-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc2_condition" class="centered small"></div>
<div class="centered">
<div data-type="label" data-device="Forecast" data-get="fc2_low_c" data-unit="%B0C%0A" class="left large right-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc2_high_c" data-unit="%B0C%0A" class="right large left-space"></div>
</div>
</div>
</td>
<td>
<div class="left">
<div data-type="label" data-device="Forecast" data-get="fc3_day_of_week" class="centered large top-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc3_date" class="centered small top-space"></div>
<div data-type="weather" data-device="Forecast" data-get="fc3_condition" data-imageset="kleinklima" class="centered top-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc3_condition" class="centered small"></div>
<div class="centered">
<div data-type="label" data-device="Forecast" data-get="fc3_low_c" data-unit="%B0C%0A" class="left large right-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc3_high_c" data-unit="%B0C%0A" class="right large left-space"></div>
</div>
</div>
</td>
<td>
<div class="left">
<div data-type="label" data-device="Forecast" data-get="fc4_day_of_week" class="centered large top-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc4_date" class="centered small top-space"></div>
<div data-type="weather" data-device="Forecast" data-get="fc4_condition" data-imageset="kleinklima" class="centered top-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc4_condition" class="centered small"></div>
<div class="centered">
<div data-type="label" data-device="Forecast" data-get="fc4_low_c" data-unit="%B0C%0A" class="left large right-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc4_high_c" data-unit="%B0C%0A" class="right large left-space"></div>
</div>
</div>
</td>
<td>
<div class="left">
<div data-type="label" data-device="Forecast" data-get="fc5_day_of_week" class="centered large top-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc5_date" class="centered small top-space"></div>
<div data-type="weather" data-device="Forecast" data-get="fc5_condition" data-imageset="kleinklima" class="centered top-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc5_condition" class="centered small"></div>
<div class="centered">
<div data-type="label" data-device="Forecast" data-get="fc5_low_c" data-unit="%B0C%0A" class="left large right-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc5_high_c" data-unit="%B0C%0A" class="right large left-space"></div>
</div>
</div>
</td>
<td>
<div class="left">
<div data-type="label" data-device="Forecast" data-get="fc6_day_of_week" class="centered large top-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc6_date" class="centered small top-space"></div>
<div data-type="weather" data-device="Forecast" data-get="fc6_condition" data-imageset="kleinklima" class="centered top-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc6_condition" class="centered small"></div>
<div class="centered">
<div data-type="label" data-device="Forecast" data-get="fc6_low_c" data-unit="%B0C%0A" class="left large right-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc6_high_c" data-unit="%B0C%0A" class="right large left-space"></div>
</div>
</div>
</td>
<td>
<div class="left">
<div data-type="label" data-device="Forecast" data-get="fc7_day_of_week" class="centered large top-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc7_date" class="centered small top-space"></div>
<div data-type="weather" data-device="Forecast" data-get="fc7_condition" data-imageset="kleinklima" class="centered top-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc7_condition" class="centered small"></div>
<div class="centered">
<div data-type="label" data-device="Forecast" data-get="fc7_low_c" data-unit="%B0C%0A" class="left large right-space"></div>
<div data-type="label" data-device="Forecast" data-get="fc7_high_c" data-unit="%B0C%0A" class="right large left-space"></div>
</div>
</div>
</td>
</tr>
</table>
</div>
</div>
<div
data-type="label"
data-device="Forecast"
data-get="fc1_high_c"
data-unit="%B0C%0A"
class="centered large">
</div>
<header class="top-space">Wind</header>
<!-- <div data-type="wind_direction"
data-device="Forecast"
data-direction="wind_direction"
data-speed="wind_speed"
data-calm="-"
data-size="100"
data-tickstep="45"
data-angleoffset="0"
class ="top-space">
</div>
--> </li>

<li data-row="1" data-col="2" data-sizex="2" data-sizey="1">
<header>BAD</header>
<div
data-type="thermostat"
data-device="OG.bz.HZ.Thermostat"
data-valve="actuator_"
class="cell left">
</div>
<div class="cell right">
<div
data-type="symbol"
data-device="BadFenster"
data-get-on="Open"
data-get-off="Closed"
data-on-color="#00CED1"
class="narrow">
</div>
<div
data-type="label"
class="narrow darker small">Fenster
</div>
</div>
</li>

<li data-row="1" data-col="3" data-sizex="2" data-sizey="1">
<header>SCHLAFZIMMER</header>
<div
data-type="thermostat"
data-device="OG.sz.HZ.Thermostat"
data-valve="actuator_"
class="cell left">
</div>
<div class="cell right">
<div
data-type="symbol"
data-device="OG.sz.TK.Schlafzimmerfenster"
data-get-on="Open"
data-get-off="Closed"
data-on-color="#00CED1"
class="narrow">
</div>
<div
data-type="label"
class="narrow darker small">Fenster
</div>
</div>
</li>

<li data-row="1" data-col="6" data-sizex="2" data-sizey="1">
<header>KINDERZIMMER</header>
<div
data-type="thermostat"
data-device="OG.kz.HZ.Thermostat"
data-valve="actuator_"
class="cell left">
</div>
<div class="cell right">
<div
data-type="symbol"
data-device="OG.kz.TK.Kinderzimmertuer"
data-get-on="Open"
data-get-off="Closed"
data-on-color="#00CED1"
class="narrow">
</div>
<div
data-type="label"
class="narrow darker small">Fenster
</div>
</div>
</li>

<li data-row="1" data-col="8" data-sizex="1" data-sizey="1">
<header>TV K&uuml;che</header>
<div
data-type="switch"
data-device="ESPEasy_sonoff_9_S_Schalter"
data-icon="fa-television"
class="cell">
</div>
<div
data-type="label"
class="cell">TV
</div>
</li>

<li data-row="2" data-col="2" data-sizex="2" data-sizey="1">
<header>K&Uuml;CHE</header>
<div
data-type="thermostat"
data-device="OG.ku.HZ.Thermostat"
data-valve="actuator_"
class="cell left">
</div>
<div class="cell right">
<div
data-type="symbol"
data-device="OG.ku.TK.Terassentuer"
data-get-on="Open"
data-get-off="Closed"
data-on-color="#00CED1"
class="narrow">
</div>
<div
data-type="label"
class="narrow darker small">Terrasse
</div>
<div
data-type="symbol"
data-device="OG.ku.TK.Eingangstuer"
data-get-on="Open"
data-get-off="Closed"
data-on-color="#00CED1"
class="narrow">
</div>
<div
data-type="label"
class="narrow darker small">Eingang
</div>
</div>
</li>

<li data-row="2" data-col="4" data-sizex="2" data-sizey="1">
<header>WOHNZIMMER</header>
<div
data-type="thermostat"
data-device="OG.wz.HZ.Thermostat"
data-valve="actuator_"
class="cell left">
</div>
<div class="cell right">
<div
data-type="symbol"
data-device="OG.wz.TK.Wohnzimmerfenster"
data-get-on="Open"
data-get-off="Closed"
data-on-color="#00CED1"
data-get="Window"
class="narrow" >
</div>
<div
data-type="label"
class="narrow darker small">Fenster
</div>
</div>
</li>

<li data-row="2" data-col="6" data-sizex="2" data-sizey="1">
<header>FLUR</header>
<div
data-type="thermostat"
data-device="OG.fl.HZ.Thermostat"
data-valve="actuator_"
class="cell left">
</div>
<div class="cell right">
<div
data-type="symbol"
data-device="OG.wz.TK.Wohnzimmerfenster"
class="narrow">
</div>
<div
data-type="label"
class="narrow darker small">Fenster
</div>
</div>
</li>

<li data-row="4" data-col="2" data-sizex="2" data-sizey="2">
<header>HOMESTATUS</header>
<div
data-type="homestatus"
data-device='rr_Tommy'
data-version=''
data-get-on='["home","asleep","absent","gone"]'
data-alias='["Home","Night","Away","Holiday"]'
data-icons='["fa-home","fa-bed","fa-car","fa-suitcase"]'
class="top-space-2x" >
</div>
</li>

<li data-row="4" data-col="4" data-sizex="4" data-sizey="2">
<header>WOHNZIMMER</header>
<div class="left">
<div
data-type="switch"
data-device="ESPEasy_sonoff_2_Schalter"
class="cell">
</div>
<div
data-type="label"
class="">Hinterhof
</div>
<div
data-type="switch"
data-device="ESPEasy_sonoff_1_Schalter"
class="top-space-2x" >
</div>
<div
data-type="label"
class="cell">Vorderhof
</div>
</div>
<div class="right right-space">
<div
data-type="switch"
data-device="ESPEasy_sonoff_6_Schalter"
class="cell">
</div>
<div
data-type="label"
class="">Badschrank
</div>
<div
data-type="switch"
data-device="ESPEasy_sonoff_4_Schalter"
class="top-space-2x" >
</div>
<div
data-type="label"
class="cell">K&uuml;che LED
</div>
</div>
<div class="right top-space right-space-2x">
<div class="inline">
<div
data-type="label"
data-device="OG.fl.WE.Temperatur"
data-get="temperature"
data-limits='[-73,19,23]'
data-colors='["#6699FF","#aa6900","#bb6242"]'
data-unit="%B0C%0A"
class="bigger thin"></div>
<div
data-type="label"
class="cell">Temperatur</div>
</div>
<div class="inline">
<div
data-type="label"
data-device="OG.fl.WE.Temperatur"
data-fix="0"
data-part="5"
data-limits='[0,40,60]'
data-colors='["#bb6242","#aa6900","#bb6242"]'
data-unit="%"
class="bigger thin"></div>
<div
data-type="label"
class="cell">Luftfeuchte</div>
</div>
<div class="cell">
<div data-type="popup" data-width="450px" class="inline">
<div data-type="simplechart"
data-device="OG.fl.WE.Temperatur"
data-logdevice="logdb"
data-columnspec="OG.fl.WE.Temperatur:temperature:::"
data-minvalue="15"
data-maxvalue="25"
data-height="60"
data-width="90"
class="noticks">
</div>
<div class="dialog">
<header>TEMPERATURE</header>
<div
data-type="simplechart"
data-device="OG.fl.WE.Temperatur"
data-logdevice="logdb"
data-columnspec="OG.fl.WE.Temperatur:temperature:::"
data-minvalue="15"
data-maxvalue="25"
data-yticks="2"
data-height="250">
</div>
</div>
</div>
<div data-type="popup" data-width="450px" class="inline">
<div
data-type="simplechart"
data-device="OG.fl.WE.Temperatur"
data-logdevice="logdb"
data-columnspec="OG.fl.WE.Temperatur:humidity:::"
data-minvalue="0"
data-maxvalue="100"
data-height="60"
data-width="90"
class="noticks">
</div>
<div class="dialog">
<header>HUMIDITY</header>
<div
data-type="simplechart"
data-device="OG.fl.WE.Temperatur"
data-logdevice="logdb"
data-columnspec="OG.fl.WE.Temperatur:humidity:::"
data-minvalue="0"
data-maxvalue="100"
data-yticks="20"
data-height="250">
</div>
</div>
</div>
</div>
</div>
</li>

<li data-row="5" data-col="2" data-sizex="2" data-sizey="1">
<header>PV</header>
<div data-type ="symbol"
data-device ="Wechselrichter1"
data-limits='[0,500]'
data-on-colors='["red","green"]'
data-get="FeedIN"
data-icons='["fa-heart","fa-heart blink"]'
data-get-on='["0","2"]'
class="big right"></div>
<div data-type="label"
data-device="Wechselrichter1"
data-get="SPOT_PACTOT"
data-limits='[0,3000,5000]'
data-colors='["#6699FF","#AA6900","#FF0000"]'
data-unit=" W Generator"
class="cell big "></div>
<div data-type="label"
data-device="FS20_EVU_Leistung"
data-get="raw"
data-limits='[0,3000,5000]'
data-colors='["#6699FF","#AA6900","#FF0000"]'
data-unit=" W Verbrauch"
class="cell big ">
</div>
</li>

<li data-row="5" data-col="4" data-sizex="4" data-sizey="1">
<!--<div
data-type="chart"
data-device ="MySHM"
data-logdevice='["logdb","logdb","MySHM"]'
data-columnspec='["MySHM:PV:::","MySHM:TotalConsumption:::","TotalConsumption"]'
data-style='["ftui l0","ftui l2fill", "ftui l0"]'
data-minvalue="auto"
data-maxvalue="auto"
data-height="125"
data-width="450"
class="noticks nobuttons">
</div>-->
<div
data-type="chart"
data-device ="FS20_EVU_Leistung"
data-logdevice='["logdb","logdb","FS20_EVU_Leistung"]'
data-columnspec='["FS20_EVU_Leistung:raw:::","Wechselrichter1:SPOT_PACTOT:::","raw"]'
data-style='["ftui l2fill","ftui l1fill","ftui l1fill"]'
data-minvalue="0"
data-maxvalue="10000"
data-height="125"
data-width="490"
class="nobuttons">
</div>
</li>

<li data-row="2" data-col="8" data-sizex="1" data-sizey="4">
<header>ABFALL</header>
<div class="cell centered">
<div class="top-space centered top-space">
<div
data-type="symbol"
data-background-icon="fa-circle-thin"
data-off-background-color="#7A7A7A"
data-on-background-color="#7A7A7A"
data-device="abfall_GelberSack"
data-off-color="#E6E600"
data-get="alarm"
data-get-on='["off","warn|done","blink"]'
data-icons='["fa-recycle","fa-recycle warn","fa-recycle warn blink"]'
data-fhem-cmd="setreading abfall_GelberSack alarm done"
data-on-colors='["#E6E600","#E6E600","#E6E600"]'
class="big top-space centered top-space">
</div>
</div>
<div
data-type="label"
data-device="abfall_GelberSack"
class="cell">
</div>
</div>
<div class="centered top-space">
<div
data-type="symbol"
data-background-icon="fa-circle-thin"
data-off-background-color="#7A7A7A"
data-on-background-color="#7A7A7A"
data-device="abfall_Bio"
data-off-color="green"
data-get="alarm"
data-get-on='["off","warn|done","blink"]'
data-icons='["fa-trash","fa-trash warn","fa-trash warn blink"]'
data-fhem-cmd="setreading abfall_Bio alarm done"
data-on-colors='["green","green","green"]'
class="big">
</div>
<div
data-type="label"
data-device="abfall_Bio"
class="cell centered">
</div>
</div>
<div class="centered top-space">
<div
data-type="symbol"
data-background-icon="fa-circle-thin"
data-off-background-color="#7A7A7A"
data-on-background-color="#7A7A7A"
data-device="abfall_Papier"
data-off-color="blue"
data-get="alarm"
data-get-on='["off","warn|done","blink"]'
data-icons='["fa-trash","fa-trash warn","fa-trash warn blink"]'
data-fhem-cmd="setreading abfall_Papier alarm done"
data-on-colors='["blue","blue","blue"]'
class="big">
</div>
<div
data-type="label"
data-device="abfall_Papier"
class="cell centered">
</div>
</div>
<div class="centered top-space">
<div
data-type="symbol"
data-background-icon="fa-circle-thin"
data-off-background-color="#7A7A7A"
data-on-background-color="#7A7A7A"
data-device="abfall_Restmuell"
data-off-color="grey"
data-get="alarm"
data-get-on='["off","warn|done","blink"]'
data-icons='["fa-trash","fa-trash warn","fa-trash warn blink"]'
data-fhem-cmd="setreading abfall_Restmuell alarm done"
data-on-colors='["gray","gray","gray"]'
class="big">
</div>
<div
data-type="label"
data-device="abfall_Restmuell"
class="cell centered">
</div>
</div>
</div>
</li>
</ul>
</div>
</body>
</html>