FTUI und Aktualisierung

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

Vorheriges Thema - Nächstes Thema

nanocosmos

Hallo zusammen,

ich hoffe Ihr könnt mir weiterhelfen. Ich habe das Problem, dass sich mein FTUI nicht aktualisiert.
Ich bin gerade dabei mir eine TabletUI aufzubauen. Aktuell habe ich Wetter, Müllabfuhr und Raumtemp (mittels HM Thermostaten gelesen) integriert.
Allerdings werden Änderungen nicht angezeigt. Die Anzeige für die Mülltonnen ist beispielsweise 1 Woche alt (die braune Tolle sollte heute geleert werden, steht aber auf 7 Tagen).
Auch ein Reload im Browser bringt nur manchmal etwas, oft werden die gleichen alten Werte angezeigt.
Auf meinem Android Tablet verwende ich Fully (Version 1.18) zur Anzeige, auf meinem Windows 10 PC Firefox (55.0.3).
Interessant ist, dass die Temperaturanzeige im Wetter auf den verschiedenen Anzeigegeräten immer 13°C ist.

Ich habe versucht mich im Wiki und mittels Forensuche schlau zu machen.
So wie ich es verstanden habe, wird bei aktivem longpoll der Wert eines Devices, z.B. Temperatursensor, bei Änderung aktualisiert. Daher habe ich bei fhem im WEB longpoll auf 1 gesetzt.
Es müsste doch also jetzt jedesmal, wenn sich z.B. die aktuelle Wetterlage ändert, diese Änderung auch bei FTUI angezeigt werden, oder?
Des Weiteren habe ich es so verstanden, dass shortpoll in einem definierten Zeitbereich sämtliche Werte neu einliest. Ich möchte allerdings nur Änderungen aktualisieren, habe mich daher also für longpoll entschieden.

In meinem HTML File für habe ich im head Bereich folgendes gesetzt:
<meta name="longpoll" content="1">

Vielleicht habe ich ja auch Blödsinn bei den Devices geschrieben, daher hier auszugsweise meine Devices
Temperatur:
<div>
<div data-type="symbol" class="large center" data-width="205" data-icon="ro-sofa" data-color="#eee"></div>
<div data-type="label" data-device="HM_ABC123_Clima"    data-unit="%B0C%0A" data-get="measured-temp" data-limits="[16, 18, 24]" data-colors='["blue", "green", "red"]'  class="bigger"></div>
<div class="narrow">Wohnen</div>
</div>


Wetter:
<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>


Abfall
<div>
<div data-type="symbol"  data-off-background-color="#7A7A7A" data-on-background-color="#7A7A7A" data-device="myABFALL" data-get='AbfallGoogleCalender_RSAGBiotonne2-woeinklusiveBuendel-Mitnahme_tage' data-off-color="#6E3707" data-get-on='["off","^[01]$","^[1-9][0-9]|[2-9]$"]' data-icons='["fs-dustbin warn","fs-dustbin warn blink","fs-dustbin warn"]' data-on-colors='["#6E3707","#6E3707","#6E3707"]' class="bigger"></div>
<div data-device="myABFALL" data-get="AbfallGoogleCalender_RSAGBiotonne2-woeinklusiveBuendel-Mitnahme_datum" data-type="label" class="darker"/>

<div data-device="myABFALL" data-get="AbfallGoogleCalender_Biotonne_wochentag" data-type="label" class="darker"/>
<div data-type="label" class="darker">Biomüll</div>
</div>


Ich hoffe ihr könnt mir weiterhelfen.
Ohne aktuellen Werte ist FTUI für mich eigentlich nutzlos.  :(

Viele Grüße

ToM_ToM

Hallo nanocosmos,

lösen deine Geräte in FHEM auch events aus?

Setz mal zum Test ein:
attr myABFALL event-on-update-reading .*

und schaue dann ob sich die Werte aktualisieren wenn du in FHEM den Kalender neu einliest.

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

nanocosmos

Hallo Thomas

vielen Dank, dass Du Dir meinen langen Beitrag durchgelesen hast!

Ich habe meinen Browser mit der FTUI Seite geöffnet, Anzeige der Mülltonne war z.B. 7 Tage.
Dann habe ich in einem parallelen Tab in FHEM den Befehl von Dir ausgeführt.
Im FTUI hat sich nichts getan, erst als ich Deine Seite neu geladen habe, wurden die korrekten Werte dargestellt.
Schonmal danke dafür!
Aber sollte es nicht so sein, dass die Daten automatisch aktualisiert werden, sonst müsste ich ja immer ein Page Reload machen?

Viele Grüße
Daniel

nanocosmos

Ich hatte es so verstanden, dass wenn bei einem Device weder event-on-update-reading noch event-on-change-reading angegeben wurde, also quasi ein "nacktes" Device Attribute, werden für alle Readings sowohl bei Aktualisierung als auch bei der Änderung Events erzeugt.

ToM_ToM

Hallo nanocosmos,

mit dem Befehl von mir setzt du nur das Attribut.
Anschließend musst du noch deinen Kalender aktualisieren. Erst dann solltest du auch eine Aktualisierung in deinem TabletUI sehen.
Ob ein Event ausgelöst wird, ist meiner Meinung nach, modulabhängig.
Manche Module lösen bei jeder Readingänderung ein Event aus, andere wiederum nur bei bestimmten Readings, da es auch nicht immer nötig ist, ein Event zu triggern, nur weil sich ein Reading aktualisiert.
Deshalb mal das Attribut und die Kalneder-Aktualisierung danach zum testen.

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

nanocosmos

Ah ok.
Da sich beim Müllkalender erst morgen wieder was ändern würde, habe ich mal das besagte Attribut auf das Wetter angewandt.
attr MeinWetter event-on-update-reading .*

Danach ein update des Wetters
set MeinWetter update

In FTUI tut sich leider gar nichts. Auch nach Page Reload werden immernoch alte Werte angezeigt (13°C usw. )

ToM_ToM

Also da sich am Müllkalender erst morgen was ändert, verwendest du ja auch event-on-update-reading und nicht event-on-change-reading.
Werden denn die Werte in FHEM aktualisiert? Ist der Zeitstempel aktuell nachdem du in FHEM die Werte holst?
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

nanocosmos

ZitatAlso da sich am Müllkalender erst morgen was ändert, verwendest du ja auch event-on-update-reading und nicht event-on-change-reading.
Leider kann ich nicht mehr sehen, ob sich was in FTUI verändert, weil die Tage bis zur Entleerung ja jetzt korrekt da stehen.
Ich habe daher das Wetter gewählt, da hier wesentlich häufiger eine Änderung eintritt und man diese in FTUI dann sehen könnte.
Oder habe ich bei Deiner Aussage jetzt was total falsch verstanden?

ZitatWerden denn die Werte in FHEM aktualisiert? Ist der Zeitstempel aktuell nachdem du in FHEM die Werte holst?
Da stehe ich ehrlich gesagt etwas auf dem Schlauch.
Meinst Du den Zeitstempel der in FHEM bei den Readings steht?
Wenn ich in FHEM z.B set MeinWetter update mache, so ändert sich der Zeitstempel in den Readings auf die aktuelle Zeit zu die der Befehl ausgeführt wurde.

ToM_ToM

Okay nanocosmos,

ich denke, du solltest dir bevor du weiter machst, erst mal die Doku in Ruhe durchlesen: https://fhem.de/Heimautomatisierung-mit-fhem.pdf
Wie es scheint, mangelt es hier sehr stark noch an Grundlagen.
Das ist nicht böse gemeint, aber wenn du dir die Doku durchliest, wird dir sicher einiges klarer.

Ansonsten schau mal wenn du ein Update machst, im Event Monitor nach ob überhaupt ein Event getriggert wird.

In deinem Fall müsste dort MeinWetter fc1_condition auftauchen. Denn darauf triggerst du ja deine Aktualisierung im TabletUI.


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

nanocosmos

Danke für deinen Hilfeversuch!
Da ich leider aktuell keine Zeit habe mir die komplette Doku durchzulesen, um mein TabletUI zum Laufen zu kommen, werde ich es wohl mit dem FTUI sein lassen.  :(

Nur der Vollständigkeit halber, finden sich im EventMonitor nach einem Update von MeinWetter
2017-08-29 12:52:19 Weather MeinWetter wind_chill: 25
2017-08-29 12:52:19 Weather MeinWetter wind_direction: 170
2017-08-29 12:52:19 Weather MeinWetter wind_condition: Wind: S 11 km/h
2017-08-29 12:52:19 Weather MeinWetter humidity: 62
2017-08-29 12:52:19 Weather MeinWetter pressure: 989
2017-08-29 12:52:19 Weather MeinWetter current_date_time: Tue, 29 Aug 2017 12:00 PM CEST
2017-08-29 12:52:19 Weather MeinWetter temp_c: 25
2017-08-29 12:52:19 Weather MeinWetter temperature: 25
2017-08-29 12:52:19 Weather MeinWetter T: 25  H: 62  W: 11  P: 989


Die Werte aktualisieren sich, nur leider nicht in FTUI.

CoolTux

sieht doch gut aus.

Gib mal bitte Dein index.html. Also da wo header und so drin stehen
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

setstate

Es könnte auch noch sein, dass du Codesnipsel von anderen Usern kopiert hast, ohne auf deine Device und Reading Namen geändert zu haben.
Dann funktioniert der ganze "informiere mich, wenn sich bei folgenden Geräten etwas ändert!" Auftrag an FHEM nicht. Müsste vllt. sogar im FHEM log Fehler zu finden sein.
Ich würde dann erstmal klein anfangen, nur 1-2 Widgets auf der Seite und testen.

ToM_ToM

Hey nanocosmos,

also Temperatur sollte sich mal aktualisieren, da das im EventMonitor auftaucht.
fc1_condition vermisse ich jedoch.

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

nanocosmos

Erst einmal vielen Dank, dass ihr euch die Mühe macht um mir weiterzuhelfen!

@setstate
ZitatEs könnte auch noch sein, dass du Codesnipsel von anderen Usern kopiert hast, ohne auf deine Device und Reading Namen geändert zu haben.
Dann funktioniert der ganze "informiere mich, wenn sich bei folgenden Geräten etwas ändert!" Auftrag an FHEM nicht. Müsste vllt. sogar im FHEM log Fehler zu finden sein.
Ich würde dann erstmal klein anfangen, nur 1-2 Widgets auf der Seite und testen.

Müsste ich bei FTUI bei falschen Device und Reading Namen nicht gar nichts angezeigt bekommen?  ???
Es werden mir jedoch Werte angezeigt, nur leider nicht aktuelle, die ich in FHEM sehen kann.

@ToM_ToM
Die Condition hatte ich bloß nicht mit rauskopiert, sorry!

@CoolTux
Die Index habe ich mal mit angehängt. Ist noch sehr rudimentär...  ich versuche alles in FTUI Flex Layout zu machen ::)
BTW: Wenn jemand weiß, wie ich die Cards in FTUI Flex dunkel bekomme, würde mich das freuen.
Sowas funktioniert bspw. in Flex nicht:  <div class="card blue-grey darken-1">

Als Beispiel für die nicht aktualisierten Widgets, die Temperatur vom Wettermodul
Aus dem Eventmonitor:
2017-08-29 14:01:07 Weather MeinWetter temperature: 27
In FTUI steht beim Firefox unter Windows 25°C. Bei Android mit Fully 13°C.

Vielleicht ist der Cache Schuld, aber ich habe bei z.B. Fully mehrfach den Cache geleert.

ToM_ToM

Welchen Port verwendest du für die Anzeige (Web/Webphone/Webtablet) und auf was ist der in FHEM als longpoll Attribut konfiguriert?
Keine Ahnung ob das damit zusammenhängt, aber wäre mal ein Versuch wert.

Setzt mal in FHEM im das Attribut von (Web/Wephone/Webtablet), jenachdem welches du zum Aufruf für das TabletUI verwendest, auf "websocket" und füge folgendes in deinen Header mit ein.

<meta name="longpoll" content="websocket">

Edit: Bin gerade bei der Arbeit und kann mir den Aufbau daher leider nur aus meinen Gedanken ziehen.^^

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