Mehrere Bedingungen abfragen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
fkempter
Beiträge: 46
Registriert: 6. Jan 2018 13:59
Answers: 0

Mehrere Bedingungen abfragen

Beitrag 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

Benutzeravatar
udo1toni
Beiträge: 15244
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Mehrere Bedingungen abfragen

Beitrag 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... ;)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

fkempter
Beiträge: 46
Registriert: 6. Jan 2018 13:59
Answers: 0

Re: Mehrere Bedingungen abfragen

Beitrag von fkempter »

Hi Udo
Genial !
Das ist genau was ich brauchen kann.
Wieder was gelernt.
Vielen lieben Dank und schöne Feiertage
Franz

Antworten