Frage zu DOIF und Vergleichsoperatoren sowie and / or

Begonnen von josburg, 01 Mai 2016, 12:53:58

Vorheriges Thema - Nächstes Thema

josburg


Hallo,

ich bin mir nicht sicher, ob ich beim Einsatz des DOIF und den notwendigen Vergleichsoperatoren sowie and / or  alles richtig mache.
Kann sich jemand evtl mal die folgenden 4 Beispiele anschauen und eine Rückmeldung geben, ob ich das richtig gemacht habe?


Wenn die Außentemperatur > 12 Grad ist und die Windgeschwindigkeit < 2 ist, dann...
define TESTDOIF DOIF ([SENSOR_HUETTE:TEMP] > 12 and [SENSOR_WINDGESCHWINDIGKEIT:WINDGESCHWINDIGKEIT] < 2 (set XYZ) DOELSE (set XYZ)

Wenn die Außentemperatur > 12 und <= 20 Grad ist und die Windgeschwindigkeit < 2 ist, dann...
define TESTDOIF DOIF (([SENSOR_HUETTE:TEMP] > 12 and [SENSOR_HUETTE:TEMP] <= 20) and [SENSOR_WINDGESCHWINDIGKEIT:WINDGESCHWINDIGKEIT] < 2 (set XYZ) DOELSE (set XYZ)

Wenn die Außentemperatur > 12 ODER die Windgeschwindigkeit >= 2 ist, dann...
define TESTDOIF DOIF ([SENSOR_HUETTE:TEMP] > 12 or [SENSOR_WINDGESCHWINDIGKEIT:WINDGESCHWINDIGKEIT] >= 2 (set XYZ) DOELSE (set XYZ)

Wenn die Außentemperatur > 12 und <= 20 Grad ist ODER die Windgeschwindigkeit >1 und <= 2 ist, dann...
define TESTDOIF DOIF (([SENSOR_HUETTE:TEMP] > 12 and [SENSOR_HUETTE:TEMP] <= 20) or ([SENSOR_WINDGESCHWINDIGKEIT:WINDGESCHWINDIGKEIT] > 2 and [SENSOR_WINDGESCHWINDIGKEIT:WINDGESCHWINDIGKEIT] > 2) (set XYZ) DOELSE (set XYZ)

Vielen Dank für Eure Mühe.

Grüße
Jens

Damian

Alles OK.

Eine Sache in diesem Zusammenhang sollte man immer vor Augen halten: Priorität: and vor or

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

heikoh81

Hallo Damian,

Zitat von: Damian am 01 Mai 2016, 13:50:24
Eine Sache in diesem Zusammenhang sollte man immer vor Augen halten: Priorität: and vor or

Könntest du hierzu etwas ausführen, am besten mit Beispielen?
Vielleicht wäre das auch einen Hinweis in der Commandref wert?
Habe auch mit Google nichts Brauchbares gefunden, außer vielleicht das hier: http://perl-seiten.privat.t-online.de/html/perl_op.html#abs3.

Ich hatte das überhaupt nicht auf dem Radar und hatte auch schon ein DOIF, das so nicht funktioniert hat

((Bedingung1 or Bedingung2) and Event)


dafür aber so ohne die Klammern um die Bedingungen

(Bedingung1 or Bedingung2 and Event)


Und ich habe nie wirklich verstanden warum, weil eigentlich dürften die Klammern um das or nicht schädlich sein?

Danke & Viele Grüße,
Heiko