Autor Thema: && und || Bedingungen  (Gelesen 3156 mal)

Offline Zrrronggg!

  • Hero Member
  • *****
  • Beiträge: 2362
    • www.fresse.de
&& und || Bedingungen
« am: 01 April 2013, 20:47:56 »
Folgendes ist klar und verwende ich viel:


{ if (Value("Aktor_A") eq "on" || Value("Dummy_B") eq "irgendwas") { fhem("...

{ if (Value("ktor_A") eq "off" && Value("Dummy_C") ne "blabla") { fhem("...


Ich habe aber jetzt eine Aufgabe, wo ich gerne Folgendes machen würde:

Wenn (A oder B) und C, dann...

if (Value("Aktor_A") eq "on" || Value("Dummy_B") eq "irgendwas" && Value("Dummy_C") ne "blabla") { fhem("...

scheint mir nicht okay, weil da ja nicht klar ist, ob  

(A oder B) und C

oder

A oder (B und C)

zutreffen soll.

Wie mach ich das eindeutig? Kann nicht genug Perl...

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9839
Aw: && und || Bedingungen
« Antwort #1 am: 01 April 2013, 20:56:09 »
Hallo,

ich vermute mal so ähnlich wie in Mathe.
Die Klammern richtig setzen ;-)

if (((Value("Aktor_A") eq "on" || Value("Dummy_B")) eq "irgendwas" && Value("Dummy_C")) ne "blabla") { fhem("...

Ungetestet und nur aus dem Kopf.

grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Offline Zrrronggg!

  • Hero Member
  • *****
  • Beiträge: 2362
    • www.fresse.de
Aw: && und || Bedingungen
« Antwort #2 am: 01 April 2013, 22:05:23 »
Diese Vermutung hatte ich auch, sowas ist aber bei Perl und FHEM öfters mal falsch.

Das Austesten ist bei solchen Sachen nicht ganz unkomplex, daher bin ich eigentlich auf der suche nach jemand der es ... ehem ... weiß, bevor ich das austesten muss.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Aw: && und || Bedingungen
« Antwort #3 am: 01 April 2013, 22:40:23 »
Du mußte klammern! : (A oder B) und C

&& bindet stärker als ||. Wenn du sie fort lässt wird eine implizite Klammer um b und C gesetzt
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm