Seite 1 von 1

Mehrere Bedingungen abfragen

Verfasst: 20. Dez 2018 19:41
von fkempter
Hallo
Vieleicht weiß einer wie ich das am Einfachsten programmieren kann.
Und Zwar_:
Ich möchte wenn einer der Werte eintrifft (könnte ca Zwanzig sein) eine Bedienung durchführen.
Was funktioniert aber umständlich ist habe ich so gemacht.
if ((RC433Value_1.state == 21) || (RC433Value_1.state == 521234) || (RC433Value_1.state == 74234) || (RC433Value_1.state == 61234) ) .....

Was einfacher wäre aber in Openhab nicht funktioniert wäre
switch(RC433Value_1.state ) {
case 21; 521234; 74234; 61234: { ..}

Weiß jemand wie man so was am besten realisiert?

SG Franz

Re: Mehrere Bedingungen abfragen

Verfasst: 20. Dez 2018 21:23
von udo1toni
Wenn die Liste der Werte fix ist, kannst Du eine Liste als String hinterlegen und schauen, ob die Zeichenfolge vorkommt:

Code: Alles auswählen

val String sCommands = "21_521234_74234_61234"

rule "auf Kommando testen"
when
    Item RC433Value_1 received command
then
    if(sCommands.contains(RC433Value_1.state.toString)) {
        //Befehl ausführen
    }
end
Wichtig ist natürlich, ein Trennzeichen zu verwenden, welches niemals in einem Code vorkommt. Es gibt sicherlich auch eine Möglichkeit, ein Array zu verwenden, um das Gleiche zu erreichen, ich finde nur gerade kein Codebeispiel dazu... ;)

Re: Mehrere Bedingungen abfragen

Verfasst: 20. Dez 2018 22:24
von fkempter
Hi Udo
Genial !
Das ist genau was ich brauchen kann.
Wieder was gelernt.
Vielen lieben Dank und schöne Feiertage
Franz