Hallo!
Da ich mittlerweile meinem Problem des langsamen Ladens und auch der ständigen Auslastung von FHEM auf die Spur gekommen bin...hier mein Lösungsvorschlag.
Ich habe sehr viele Diagramme auf meiner FTUI Oberfläche (alleine für jeden Temperaturfühler von jedem Gerät = 42 Stück).
Mir ist aufgefallen, dass beim Laden der Seite und auch bei der Aktualisierung eines Wertes (wenn in [update] gesetzt) alle Chart Daten von FHEM angefordert werden.
Ich habe nun eine Änderung an der chart.component.js und chart-data.component.js vorgenommen. Dadurch werden die Chart-Daten nur geladen, wenn das Chart auch angezeigt wird.
components/chart/chart-data.component.js
fetch() {
const pop_parent = this.closest('ftui-popup');
if (pop_parent){
if (!(ftuiHelper.isVisible(pop_parent))){
return;
}
} else {
if (!(ftuiHelper.isVisible(this))) {
return;
}
}
if (!this.isLoading) {
this.fetchLogItems(this.log, this.file, this.spec);
}
www/ftui/components/chart/chart.component.js
import { dateFormat, getStylePropertyValue, isVisible } from '../../modules/ftui/ftui.helper.js';
...
...
refresh() {
const pop_parent = this.closest('ftui-popup');
if (pop_parent){
if (!(isVisible(pop_parent))){
return;
}
} else {
if (!(isVisible(this))) {
return;
}
}
this.updateControls();
...
Bei mir verkürzt sich die Ladezeit signifikant. Von ca. 1,8Min auf 30sek. (!)
Auch reagiert mein FHEM nun viel besser, da nicht ständig ein Haufen Daten transferiert werden müssen.
Ich habe auch einen Pull-Request erstellt. Ich hoffe, das es so richtig ist und auch übernommen werden kann :)
Gruß
Bismosa
(Thread, Titel und Inhalt geändert, da bereits überholt und keine Antwort vorhanden)
Gruß
Bismosa
[Inhalt entfernt, da mittlerweile überholt]
[Inhalt entfernt, da mittlerweile überholt]
Danke!
Wo werden die Änderungen in genannten Dateien eingefügt, um keinen Fehler zu machen?
Hallo!
Schau mal hier:
https://github.com/bismosa/ftui/blob/master/www/ftui/components/chart/chart-data.component.js
und hier:
https://github.com/bismosa/ftui/blob/master/www/ftui/components/chart/chart.component.js
Dort sind die Änderungen von mir enthalten.
Gruß
Bismosa
Hey Leute, wäre das nicht fein, wenn diese Änderung - wenigstens als optionaler Parameter o.ä. - in das FTUI3 generell einfliessen könnte? Dann bräuchten wir nicht nach jedem Update diese Änderung neu einpflegen.
setstate müsste bismosas pr (https://github.com/knowthelist/ftui/pull/51) nur mal übernehmen, dann käme dies automatisch mit dem nächsten update.