[FTUI 3] [Tipp] Optimierung der Ladezeit - Charts nur laden, wenn auch angezeigt

Begonnen von bismosa, 10 Juni 2023, 11:24:43

Vorheriges Thema - Nächstes Thema

bismosa

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
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

bismosa

#1
[Inhalt entfernt, da mittlerweile überholt]
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

bismosa

#2
[Inhalt entfernt, da mittlerweile überholt]
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...


Dracolein

Wo werden die Änderungen in genannten Dateien eingefügt, um keinen Fehler zu machen?
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

bismosa

1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

Dracolein

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.
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

yersinia

setstate müsste bismosas pr nur mal übernehmen, dann käme dies automatisch mit dem nächsten update.
viele Grüße, yersinia
----
FHEM 6.4 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl