FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: obelix221 am 13 Februar 2018, 19:39:28

Titel: RegEx - Negation mit oder
Beitrag von: obelix221 am 13 Februar 2018, 19:39:28
Hallo Community,

ich versuche nun langsam verzweifelt, dass ich meinen "Alarm"-Status richtig auslese und einfärbe.
Der Status wird im Attribut level6 gehalten und hat den Status "armed" "disarmed" oder ungleich (disarmed oder armed).

Nun versuche ich mit folgender RegEx das Thema zum rot leuchten zu bekommen:
data-states='["!(armed|disarmed)", "armed", "disarmed"]'
data-background-colors='["red", "yellow", "green"]'


Gelb und grün leuchtet richtig auf, nur rot funktioniert nicht. Ich fürchte es liegt an der Negation.

Wer kann mir helfen?

Thx
Titel: Antw:RegEx - Negation mit oder
Beitrag von: Mundus am 13 Februar 2018, 19:58:48
Hi,
Kannst du nicht den Code auf vier states erweitern?

data-states='["!armed", "!disarmed", "armed", "disarmed"]'
data-background-colors='["red", "red", "yellow", "green"


Habe ich nicht getestet, und mit dem Handy geschrieben, daher können die Anführungszeichen falsch sein.

Gruß

Mundus
Titel: Antw:RegEx - Negation mit oder
Beitrag von: obelix221 am 13 Februar 2018, 21:03:23
Hi,

das dürfte meines Erachtens gar nicht funktionieren, da z.B. "armed" jetzt auf 2 Status gemappt werden kann :
--> armed
--> !disarmed
Titel: Antw:RegEx - Negation mit oder
Beitrag von: Mundus am 14 Februar 2018, 15:30:30
Hi,

vermutlich hast du recht, aber dann dürfte dein Ansatz auch nicht funktionieren, da dieser die gleiche Idee hat.

Vielleicht kannst du die Status nochmal nennen (hier die Ausgabe in FHEM).
Status 1 = armed;
Status 2 = disarmed;
Status n = ?

Gruß
Titel: Antw:RegEx - Negation mit oder
Beitrag von: setstate am 14 Februar 2018, 17:15:20
Negation in RegEx ist nicht ohne ...

data-states='["((?!armed|disarmed).)*", "disarmed", "armed"]'

und als Beispiel für den ftui_snippet_tester.html

<div data-type="symbol" data-device="ftuitest" data-states='["((?!armed|disarmed).)*", "disarmed", "armed"]'
data-colors='["red", "yellow", "green"]'></div>
<div class="vbox">
    <div data-type="push" data-device="ftuitest" data-set-on="disarmed"></div>
    <div>disarmed</div>
</div>
<div class="vbox">
    <div data-type="push" data-device="ftuitest" data-set-on="armed"></div>
    <div>armed</div>
</div>
<div class="vbox">
    <div data-type="push" data-device="ftuitest" data-set-on="mmmh"></div>
    <div>mmmh</div>
</div>

Titel: Antw:RegEx - Negation mit oder
Beitrag von: obelix221 am 18 Februar 2018, 10:28:54
Hi setstate,

genau das war's, was ich gesucht habe....

Vielen Dank!

Sorry für die späte Rückmeldung, hatte die Woche aber zu viel um die Ohren.

VG
obelix