FTUI3: Frage zu "| map()"

Begonnen von DerITler, 12 Oktober 2025, 11:42:47

Vorheriges Thema - Nächstes Thema

DerITler

Hallo Zusammen,

leider hab ich im Netz dazu keine Angaben gefunden, die mich weiterbringen.

Ich möchte ein ftui-icon einfärben:

<ftui-icon name="iconname" [color]="device:reading | map('on:success,off:warning')"/>
Das Prinzip von map ist mir hier klar. Aber wie realisiere folgendes: grün, wenn das Device "irgendein Text mit Leerzeichen" im Reading state hat und rot bei allen anderem?

Außerdem habe ich bei einigen Beispielen dieses Hochkomma (`) gesehen. Wann muss ich das benutzen? Was bedeutet in dem folgenden Beispiel das .* ? Ich hatte gehofft, dass .* "bei allem anderem" bedeutet, aber bei mir funktioniert es irgendwie nicht.

<ftui-icon name="trash-o" size="3" color="brown" [class-name]="myAbfall:Biotonne | map('`0|1`:hop,`.*`:')"></ftui-icon>
Ich bedanke mich schon mal für Eure Antworten.

VG

Guybrush

map('(0|1):hop') sollte funktionieren. .*: ohne value bringt ja nicht viel?

DocCyber

#2
So geht es:
<ftui-icon [color]="myDev:myReading | map('´.* .*´:success, ´.*´:danger')" name="wrench"></ftui-icon>

Erklärung:
Der gesamte Ausdruck für [color] steht zwischen Anführungszeichen " "
Der gesamte Ausdruck für map steht zwischen Hochkommas ' '
Der gesamte Ausdruck für RegEx steht zwischen Backticks ´ ´
Der erste RegEx (.* .*) findet Ausdrücke mit irgendwas vor und hinter einem Leerzeichen.
Der zweite RegEx findet alles, was nicht leer ist.
Durch die Reihenfolge der RegExe erreichst du das, was du willst.

Willst du auf state prüfen, lässt du im oben genannten Ausdruck einfach den Teil  :myReading  weg.
Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-4B mit HM-CFG-LAN und viele weitere HM Komponenten, diverse Shellys, Tuya-Geräte, SMA und Solis Wechselrichter, Elgris EnergyManager, go-e Wallbox

Guybrush

.* .* findet leerzeichen, egal ob was davor oder dahinter ist. wenn das sein soll, dann wäre es .+ .+. wäre für die lesbarkeit aber besser \s zu nutzen