RegEx - Negation mit oder

Begonnen von obelix221, 13 Februar 2018, 19:39:28

Vorheriges Thema - Nächstes Thema

obelix221

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
RPi3 als FHEM-Server, 868 MHz CUL, 433 MHz Transmitter, Homematic Aktoren und Sensoren, Yamaha AVR, Logitech Harmony, Fritzbox, Logitech SB, 433 MHz Steckdosen, HUE, EnOcean

Mundus

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

obelix221

Hi,

das dürfte meines Erachtens gar nicht funktionieren, da z.B. "armed" jetzt auf 2 Status gemappt werden kann :
--> armed
--> !disarmed
RPi3 als FHEM-Server, 868 MHz CUL, 433 MHz Transmitter, Homematic Aktoren und Sensoren, Yamaha AVR, Logitech Harmony, Fritzbox, Logitech SB, 433 MHz Steckdosen, HUE, EnOcean

Mundus

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ß

setstate

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>


obelix221

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
RPi3 als FHEM-Server, 868 MHz CUL, 433 MHz Transmitter, Homematic Aktoren und Sensoren, Yamaha AVR, Logitech Harmony, Fritzbox, Logitech SB, 433 MHz Steckdosen, HUE, EnOcean