If-Abfrage: Eine Bedingung mit mehreren Werten vergleichen

Begonnen von bastelfeak, 18 November 2019, 20:39:52

Vorheriges Thema - Nächstes Thema

bastelfeak

Hallo,
ich habe schon viel gesucht und gelesen und auch schon viel probiert, aber leider noch nicht die Lösung gefunden:

Kann eine if-Bedingung auf mehrere Werte checken?

Abstraktes Beispiel:


{if(VALUE eq "wert1" or "wert2") {fhem "set DEVICE on"}


Ich weiß man kann es auch anders machen:

{if(VALUE eq "wert1" || VALUE eq "wert2") {fhem "set DEVICE on"}


Aber das ist dann nicht mehr sonderlich kompakt.

Für Hilfe bin ich wie immer sehr dankbar!

amenomade

Nein, die erste Variante geht nicht
Variable in Perl haben ein $ Zeichen vorne.

Ansonsten kann man mit Regex auch arbeiten:
if ($VALUE =~ "Wert1|Wert2")
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

bastelfeak

Ah okay. Vielen Dank!

Warum funktioniert das mit ,,=~" aber nicht mit ,,eq"?


Damian

Zitat von: bastelfeak am 18 November 2019, 22:33:05
Ah okay. Vielen Dank!

Warum funktioniert das mit ,,=~" aber nicht mit ,,eq"?

weil eq keine Regex-Syntax erlaubt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF