FTUI und Aktualisierung

Begonnen von nanocosmos, 29 August 2017, 09:59:29

Vorheriges Thema - Nächstes Thema

nanocosmos

Guten Morgen,

habe leider erst heute wieder Zeit gefunden für fhem und mein Problem.

ZitatWelchen Port verwendest du für die Anzeige (Web/Webphone/Webtablet) und auf was ist der in FHEM als longpoll Attribut konfiguriert?
https://192.168.178.38:8083/fhem/ftui/flex.html
Im WEB habe ich longpoll attr auf 1 gestellt.

Habe jetzt auf websocket umgestellt und den meta Tag im HTML File entsprechend geändert.
Es kommt dann zwei Toast Nachrichten
Fully refresh done in 0.1s for 2 parameter(s)
Longpoll (Websocket) started


Leider sind alle Werte, d.h. für das Wetter, für die Abfallanzeige und für die Temperaturen in den Wohnräumen nicht aktuell im Vergleich zu FHEM.  :(
Auch nach mehrfachem Page Reload bleiben die Werte alt.
Es muss wohl daneben irgendein Problem mit dem Cache sein. FTUI müsste sich doch eigentlich zumindest beim ersten Aufruf die aktuellen Werte ziehen.
Aber die Werte sind teilweise noch von Dienstag.

setstate

Das hört sich stark danach an, dass nur die lokalen Daten aus dem Cache angezeigt werden. Ein Update erfolgt erst, nachdem alle Widgets erfolgreich initialisiert wurden.
Bleibt das "initWidgetsDone" Event aus, startet der Shortpoll (Full Refresh) auch nicht.

Da müssten Fehler in der Webconsole zu finden sein.

nanocosmos

Danke für Deine Hilfe.
Hast Du einen Tipp wie ich weiter vorgehen soll?

nanocosmos

Vielleicht weiß jemand noch einen Rat.
Würde FTUI gerne verwenden.
Schönen Sonntag noch!

ToM_ToM

Hallo nanocosmos,

kann es sein dass dein Browser im Offline-Modus ist?

Ansonsten geh mal nach dem Ausschlussprinzip vor.

1. schauen ob Werte in FHEM aktualisiert werden
2. irgendeinen Text in deine HTML-Datei schreiben und schauen ob dieser im Browser angezeigt wird
3. im Browser Strg+F5 für Relaod drücken
4. in unterschiedlichen Geräten / Browsern testen


VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

nanocosmos

Hallo Thomas,
der Browser bzw. die Browser funktionieren leider alle.
Habe auf verschiedenen Geräten (Android Handy, Android Tablet, Windows PC) getestet.
Es werden sporadisch Werte aktualisiert aber nicht zuverlässig.
Wenn ich das HTML File editiere, bspw. Text mitreinschreibe, so wird dieser auch angezeigt.
Ach ja in FHEM sind die Daten aktuell, nur halt bei FTUI nicht.

Überlege, ob ich Fhem nochmal komplett neu aufsetzen soll.

ToM_ToM

Erstell doch mal eine ganz simple HTML-Seite für das FTUI, welches nur ein Label Device enthält, auf einen dummy referenziert und dann änder den Wert des Dummys und schaue ob es dann geht.

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

nanocosmos

Der Wert des dummy Devices wird sofort geändert. Das klappt also schonmal.
Nehme ich nun ein Widget, bspw. das Wetter mit rein, so werden hier wieder falsche Werte angezeigt, d.h. andere Werte im FTUI als in FHEM.

ToM_ToM

Okay, dann scheint dein FHEM und FTUI an sich schon mal zu funktionieren.

Poste mal deine neue Test-Datei und die Device-Definition von dem welches du da abfragst.

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

nanocosmos

Ich nehme alles zurück, hat nur kurzfristig funktioniert mit dem dummy.
Habe gerade nochmal für FTUI ein Update gemacht.
Dann wollte ich gerade erneut das dummy device testen, jetzt wird der Status in FTUI nicht mehr aktualisiert.
Um zu Testen, ob es das Widget ist, habe ich dieses rausgeschmissen aus dem HTML FTUI File und nun geht auch das dummy device wieder.

Dann habe ich mal eine Temperaturanzeige eingestellt:
<div class"inline">
<div data-type="symbol" class="large inline" data-width="205" data-icon="fa-tint" data-color="#eee"></div>
<div data-type="label" data-device="MeinWetter" data-get="humidity" data-unit="%" data-limits='[0,40,81]' data-colors='["#0088CC","green","firebrick"]'class="big inline"></div>
</div>

Falsche Daten.
Nehme ich dann nur folgende Zeile
<div data-type="label" data-device="MeinWetter" data-get="humidity" data-unit="%" data-limits='[0,40,81]' data-colors='["#0088CC","green","firebrick"]'class="big inline"></div>
wird die richtige Temperatur angezeigt.

Gleiches für das Wetter. Nehme ich also den Code für mein Wetter Widget:
<div class="hbox items-space-between">
<div data-type="label" data-device="MeinWetter" data-get="temperature" data-unit="°C&nbsp;" class="grande"></div>
<div>
<div data-type="weather" data-device="MeinWetter" data-get="fc1_condition" class="bigger" ></div>
<div data-type="label" data-device="MeinWetter" data-get="fc1_condition"></div>
</div>
<div>
<div class="inline">
<div data-type="symbol" class="big inline" data-icon="fa-thermometer-full " data-color="#eee"></div>
<div data-type="label" data-device="MeinWetter" data-get="fc1_high_c" data-unit="°C&nbsp;" class="big inline"></div>
</div>
<div class"inline">
<div data-type="symbol" class="big inline"  data-icon="fa-thermometer-empty " data-color="#eee"></div>
<div data-type="label" data-device="MeinWetter" data-get="fc1_low_c" data-unit="°C&nbsp;" class="big inline"></div>
</div>
</div>

<div>
<div class"inline">
<div data-type="symbol" class="large inline" data-width="205" data-icon="fa-tint" data-color="#eee"></div>
<div data-type="label" data-device="MeinWetter" data-get="humidity" data-unit="%" data-limits='[0,40,81]' data-colors='["#0088CC","green","firebrick"]'class="big inline"></div>
</div>
<div class"inline">
<div data-type="symbol" class="large inline" data-width="205" data-icon="fa-umbrella" data-color="#eee"></div>
<div data-type="label" data-device="MeinWetter" data-get="humidity" data-unit="%" data-limits='[0,40,81]' data-colors='["#0088CC","green","firebrick"]'class="big inline"></div>
</div>
</div>
<div>
<div data-type="wind_direction" data-device="Mein Wetter" data-direction="windDir" data-speed="wind" data-calm="~" data-tickstep="22.5" class="small"></div>
<div class="cell big" data-type="label" data-device="MeinWetter" data-get="wind" data-unit="km/h" data-limits="[0, 20, 29, 39, 50, 62, 75, 89, 103, 117]" data-colors='["green","green","#aa6900","#aa6900","firebrick","firebrick","firebrick","red","red","red"]'></div>
</div>

</div>

Falsche Daten werden angezeigt, sogar wenn ich neben meinem Wetter Widget nur eine Zeile daneben anzeigen lasse, z.B.
<div data-type="label" data-device="MeinWetter" data-get="humidity" data-unit="%" data-limits='[0,40,81]' data-colors='["#0088CC","green","firebrick"]'class="big inline">
Lasse ich mir also gleichzeitig das Wetter mit meinem Wetter Widget Code und der einen Zeile (z.B. Humidity) anzeigen, sind die Werte falsch.
Schmeiße ich dann den Wetter Widget Code raus und lasse nur die Zeile für Humidity stehen, so zieht FTUI sich sofort die richtigen Werte.
Ich bin etwas verwundert...  ??? ???

ToM_ToM

Also du hast einige Dinge drin die mich verwirren.

Du sprichst davon dass dir richtig oder falsche Temperaturen angezeigt werden, fragst aber in deinen Beispielen die Feuchtigkeit ab und nicht die Temperatur.
Außerdem überprüf mal deinen Code. Da sind z.B. bei den data-icon Attributen immer Leerzeichen hinter dem Wert. Das dürfte dir daher auch keine Icons anzeigen.

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

nanocosmos

Sorry, dass mit der Temperatur war wirklich verwirrend.
Habe sowohl den Code für die Anzeige der Temperatur eines HM Thermostates, als auch die Temperatur und Humidity vom Wettermodul.

Irgendwie scheint mein Wetter Code Widget als ganzes Probleme zu machen.
Wie gesagt, wenn ich nur Teile verwende funktioniert es.
Irgendwo ist wohl ein Fehler im Code, der FTUI bzw. die Aktualisierung der Aktualisierung der Werte stört.
Werde auf jeden Fall mal die Leerzeichen entfernen. Danke für den Tipp!

ToM_ToM

Hier mal mein Wetter-Device:

<div class="left cell">
<div data-type="weather" data-device="Wetter_Yahoo"
data-get="condition" data-imageset="kleinklima" class=""
style="max-width: 150px">
</div>
<div data-type="label" class="narrow"
data-device="Wetter_Yahoo" data-get="condition">
</div>
</div>
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

nanocosmos

Dankeschön für Deine Hilfe!
Ich werde jetzt stückchenweise die Widgets einpflegen und schauen womit die Probleme zusammenhängen.

GuraxUbrax

Vielen Dank für den Tipp mit den Leerzeichen.
Ich hatte exakt dieses Problem und Schuld war folgende Zeile in der HTML-Datei:
<div data-type="push" data-device="HUEDevice1, HUEDevice2, HUEDevice3" data-set-on="pct 0 : transitiontime 300" data-icon="mi-timer_off" ></div>

Nach Löschen der Leerzeichen nach den Kommata zwischen den HUEDevices funktioniert bei mir der Longpoll bei den label- und weather-Widgets wieder:
<div data-type="push" data-device="HUEDevice1,HUEDevice2,HUEDevice3" data-set-on="pct 0 : transitiontime 300" data-icon="mi-timer_off" ></div>