Hauptmenü

FTUI version 3

Begonnen von Bunnu, 25 Oktober 2020, 09:25:41

Vorheriges Thema - Nächstes Thema

grossmaggul

Hi setstate,

da Du ja Deine Sommerpause beendet hast, kann ich ja nochmal ein wenig zum Thema Medialist quengeln. ;)

Zum einen hat ChrisD das Problem gefunden, daß das Auswählen in der Medialist nicht richtig funktioniert, siehe hier

Zum anderen habe ich festegestellt, daß die Medialist Probleme mit Unterstrichen hat, habe ich hier schonmal beschrieben.

Es wäre schön, wenn Du Dich bei Gelegenheit da mal drum kümmern könntest, danke!

gm
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

yersinia

Kann es sein, dass mit dem commit gestern die unit am label ignoriert wird? Bei mir werden seit diesem Update alle units ignoriert.
<ftui-label [text]="FB_Gesendet:FB_Gesendet | round(2) | fix(2)" unit="GB" class="size-0"></ftui-label>
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | 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

setstate

Unit geht wieder. Da hatte ich zu viel am letzten PR verändert.

StephanFHEM

#1458
da hat sich etwas in der Update-Datei verhakt...

10.18 20:20:15 1 : UPD www/ftui/components/button/button-nice.component.js
2021.10.18 20:20:15 1 : UPD www/ftui/components/button/button.component.js
2021.10.18 20:20:15 1 : UPD www/ftui/components/chart/chart-data.component.js
2021.10.18 20:20:16 1 : UPD www/ftui/components/chart/chart.component.js
2021.10.18 20:20:16 1 : UPD
2021.10.18 20:20:16 1 : PERL WARNING: Use of uninitialized value $fName in concatenation (.) or string at ./FHEM/98_update.pm line 392.
2021.10.18 20:20:16 1 : PERL WARNING: Use of uninitialized value in string ne at ./FHEM/98_update.pm line 395.
2021.10.18 20:20:16 1 : PERL WARNING: Use of uninitialized value $fName in concatenation (.) or string at ./FHEM/98_update.pm line 396.
2021.10.18 20:20:16 1 : PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_update.pm line 396.
2021.10.18 20:20:16 1 : Got 20 bytes for , expected
2021.10.18 20:20:16 1 : aborting.


schätzungsweise hier:
UPD 2021-10-11_22:43:44 2257 www/ftui/components/checkbox/checkbox.component.js
UPD www/ftui/components/circlemenu/circlemenu.component.css
UPD 2021-10-18_08:47:23 2554 www/ftui/components/circlemenu/circlemenu.component.js

StephanFHEM

#1459
also.... das Update lief wieder durch nach deiner Anpassung.

Aber Chrome Debugger spuckt mir seit dem Update folgende Fehlermeldung aus..
products Cant create ecmwf calendar from meta tag noMinifestStr

okay: es kommt von windy.com ... hab es als iframe in einem popup eingebunden

und er meckert bei label.js rum in Zeile 62

this.unitSlotElement.innerHTML = this.text.length === 0 ? '' : this.unit; mit Fehlermeldung "Uncaught TypeError: Cannot set properties of null (setting 'innerHTML')"

yersinia

Zitat von: StephanFHEM am 18 Oktober 2021, 22:01:16und er meckert bei label.js rum in Zeile 62

this.unitSlotElement.innerHTML = this.text.length === 0 ? '' : this.unit; mit Fehlermeldung "Uncaught TypeError: Cannot set properties of null (setting 'innerHTML')"
dto mit letztem commit der label.component.js.

Ich frage mich, warum bei einer Änderung von text du unit mit aktualisiert werden muss. Ich hab in der Zeile 37 wieder die unit Vorbelegung ergänzt und 62 auskommentiert:
[37] <slot name="pre"></slot><slot></slot><slot name="content"></slot><slot name="unit">${this.unit}</slot>`;
[62] //this.unitSlotElement.innerHTML = this.text.length === 0 ? '' : this.unit;
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | 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

setstate

Ich glaube, der Usecase hinter dem PR (https://github.com/knowthelist/ftui/pull/16) ist, dass Readings manchmal NULL sind und dann aber noch die Unit stehen bleibt. Wenn dann wieder ein Wert vorliegt, sollte die Einheit wieder dabei sein. Ich kann das technisch verstehen, aber praktisch habe ich keine Beispiel dafür. Alle Messwerte mit Einheiten sind nicht plötzlich weg, oder? Wind: 10km/h => 0km/h, Stromverbrauch: 109W => 9W => 0W, Zeit: 29s => 3s => 1s => 0s

Ich kann aber auch eure Fehler nicht nachvollziehen. In welchen Fällen sollte this.unitSlotElement nicht definiert sein? Es wird am Anfang statisch erzeugt und wird nicht verändert. Was sieht euer HTML für so ein problematisches Label aus?

yersinia

Zitat von: setstate am 19 Oktober 2021, 12:09:01Ich glaube, der Usecase hinter dem PR (https://github.com/knowthelist/ftui/pull/16) ist, dass Readings manchmal NULL sind und dann aber noch die Unit stehen bleibt. Wenn dann wieder ein Wert vorliegt, sollte die Einheit wieder dabei sein. Ich kann das technisch verstehen, aber praktisch habe ich keine Beispiel dafür. Alle Messwerte mit Einheiten sind nicht plötzlich weg, oder? Wind: 10km/h => 0km/h, Stromverbrauch: 109W => 9W => 0W, Zeit: 29s => 3s => 1s => 0s
Ich kann verstehen, dass man die unit weghaben will, wenn text leer ist. Würde ich dann aber nicht eher [hidden] nutzen? Was ist der Unterschied zwischen [hidden] und leerem text und unit?

Zitat von: setstate am 19 Oktober 2021, 12:09:01Ich kann aber auch eure Fehler nicht nachvollziehen. In welchen Fällen sollte this.unitSlotElement nicht definiert sein? Es wird am Anfang statisch erzeugt und wird nicht verändert. Was sieht euer HTML für so ein problematisches Label aus?
Nicht außergewöhnlich würde ich sagen:
          <ftui-label [text]="DUM_Temp_Draussen:temp"
            [color]="DUM_Temp_Draussen:temp | step('-50:blue, 5:light, 15:success, 25:danger')"
            unit="&deg;C"
            class="inline size-5">
          </ftui-label>

Aber aus irgendeinem Grund ist bei der Initialisierung unit noch nicht Verfügbar (null) wenn es durch den text-case läuft. Das spuckt die FF Konsole aus:
12:25:17.786 Uncaught TypeError: this.unitSlotElement is null                                                                                                                                                label.component.js:62:11
    onAttributeChanged http://meinfhem.lan:8085/fhem/ftui3/components/label/label.component.js:62
    attributeChangedCallback http://meinfhem.lan:8085/fhem/ftui3/components/element.component.js:76
    loadFileContent http://meinfhem.lan:8085/fhem/ftui3/components/content/content.component.js:41
    FtuiContent http://meinfhem.lan:8085/fhem/ftui3/components/content/content.component.js:21
    loadFileContent http://meinfhem.lan:8085/fhem/ftui3/components/content/content.component.js:41
    FtuiContent http://meinfhem.lan:8085/fhem/ftui3/components/content/content.component.js:21
    <anonymous> http://meinfhem.lan:8085/fhem/ftui3/components/content/content.component.js:49
    onAttributeChanged http://meinfhem.lan:8085/fhem/ftui3/components/label/label.component.js:62
    attributeChangedCallback http://meinfhem.lan:8085/fhem/ftui3/components/element.component.js:76
    loadFileContent http://meinfhem.lan:8085/fhem/ftui3/components/content/content.component.js:41
    AsyncFunctionNext self-hosted:692
    (Async: async)
    FtuiContent http://meinfhem.lan:8085/fhem/ftui3/components/content/content.component.js:21
    loadFileContent http://meinfhem.lan:8085/fhem/ftui3/components/content/content.component.js:41
    AsyncFunctionNext self-hosted:692
    (Async: async)
    FtuiContent http://meinfhem.lan:8085/fhem/ftui3/components/content/content.component.js:21
    <anonym> http://meinfhem.lan:8085/fhem/ftui3/components/content/content.component.js:49
    InnerModuleEvaluation self-hosted:2371
    evaluation self-hosted:2332


Der PR prüft ja auch auf null:
[59]+            if (this.unitSlotElement) { 

Wenn ich 62 um die null-Prüfung ergänze, habe ich keinen Fehlerfall (ohne Adaption der Zeile 37):
[62]         if(this.unitSlotElement) {
[63]           this.unitSlotElement.innerHTML = this.text.length === 0 ? '' : this.unit;
[64]         }

Und die Unit wird auch angezeigt.
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | 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

setstate

ich kann das immer noch nicht nachvollziehen. Nicht im Safari, Chromium, Firefox; mit und ohne content-file

Warum sollte this.mainSlotElement das sein und this.unitSlotElement nicht?

grossmaggul

Seit dem letzten Update bekomme ich immer die unten angehängte Toastmeldung in mehrfacher Ausführung.
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

yersinia

Zitat von: grossmaggul am 19 Oktober 2021, 15:07:44Seit dem letzten Update bekomme ich immer die unten angehängte Toastmeldung in mehrfacher Ausführung.
dto, hier mit FF93.0
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | 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

StephanFHEM

#1466
Zitat von: setstate am 19 Oktober 2021, 13:58:13
ich kann das immer noch nicht nachvollziehen. Nicht im Safari, Chromium, Firefox; mit und ohne content-file

Warum sollte this.mainSlotElement das sein und this.unitSlotElement nicht?

Ich hab mal alle meine Sachen Stück für Stück rausgeworfen... hatte anfangs 12 Fehler und am Ende noch zwei (aber kein Label mehr).
Hab dann rausgefunden, dass der Fehler komischerweise wohl direkt durch ein Badge ausgelöst wird. Hier mein Code:
<ftui-badge color="danger" [text]="Fehler_Check.DOIF:FehlerAnzahl" class="size-1"></ftui-badge>

Das passt auch zu meinen 12 Fehlern. Bei den Mülltonnen hab ich je Tonne 2 mögliche Badges und dann noch 2 extra ....

setstate

Aaaaahhhhh, das ist es !!!! Badge erweitert Label und hat aber ein anderes Template. Dann hätte das Abchecken der Verfügbarkeit des Slots durchaus einen Sinn. Ich habe es jetzt aber durch reines CSS gelöst.

Danke aber trotzdem für's Suchen

meier81

Hallo euch allen,

kann das sein das sich in den letzen Änderungen irgendetwas bezüglich der span class und slot geändert hat, ich hatte die ganze Zeit meine Units wie folgt angegeben:

  <ftui-column>
    <ftui-label [text]="Fuehler_Kueche:temperature"
                [color]="Fuehler_Kueche:temperature | step('0:blue, 24:yellow, 26:red')"><span class="size-0" slot="end">°C</span>
    </ftui-label>
  </ftui-column>


Funktioniert jetzt nicht mehr, habe nirgends mehr eine Einheit dran stehen. Ist das ein Fehler oder muss ich auf das Attribut unit="&deg;C" umsteigen?
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices

setstate