FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Roli1606 am 13 Juni 2014, 13:44:48

Titel: (gelöst) Problem mit einem if Befehl
Beitrag von: Roli1606 am 13 Juni 2014, 13:44:48
Hallo FHEM´ler

Ich habe ein Problem mit der if Bedingung in folgendem Code

define WohnungstuerVonMoBisSaentriegeln at *13:36 {if (($wday == 1) || ($wday == 2) || ($wday == 3) ||($wday == 4) || ($wday == 5) || ($wday == 6)) {fhem("set Tuerschloss unlock  if (Value('Anwesenheit') eq 'present');; set WDonoff on;; trigger Anwesenheit") }}

Die Tür wird aufgeschlossen obwohl der Dummy Anwesenheit auf absent steht. ich nehme an der Fehler liegt an den '
Hat jemand eine Idee wie es funktionieren könnte?

Gruß Roland
Titel: Antw:Problem mit einem if Befehl
Beitrag von: betateilchen am 13 Juni 2014, 14:18:36
1. Wenn nicht Sonntag ist, ist Montag-Samstag, Du kannst die Abfrage also auf <> 7 beschränken und brauchst keine sechs Abfragen.
2. falsche Klammersetzung bei Verwendung eines zusätzlichen if.



{
fhem("set Tuerschloss unlock")  if (Value('Anwesenheit') eq 'present');;
fhem("set WDonoff on");;
fhem("trigger Anwesenheit")
}



3. könnte ich mir vorstellen, dass beim trigger noch ein Parameter fehlt.
Titel: Antw:Problem mit einem if Befehl
Beitrag von: Puschel74 am 13 Juni 2014, 15:38:22
Hallo,

wday sollte sich auch so
(!(wday==7))
eingrenzen lassen.

Wobei es auf das gleiche raus kommt wie betateilchens Vergleich  8)

Grüße
Titel: Antw:Problem mit einem if Befehl
Beitrag von: Roli1606 am 13 Juni 2014, 15:42:26
Danke für die schnelle Antwort.
Habe die Abfrage so gestaltet weil ich insgesamt 4 Zeitschaltuhren so gebastelt habe und die alle an unterschiedlichen Tagen laufen sollen, und so sind alle im gleichen Schema. Die Klammern waren wirklich der Fehler.

Herzlichen Dank Roland
Titel: Antw:(gelöst) Problem mit einem if Befehl
Beitrag von: rudolfkoenig am 13 Juni 2014, 17:39:07
Laut commandref bzw. "perldoc -f localtime" kann wday Werte zw. 0 und 6 aufnehmen, sollte also meist ungleich 7 sein. :)
Titel: Antw:(gelöst) Problem mit einem if Befehl
Beitrag von: Puschel74 am 13 Juni 2014, 17:45:17
Hallo,

äh ja.
Dann wäre wohl in diesem Fall
(!(wday==0))
richtig  ::)

Grüße
Titel: Antw:(gelöst) Problem mit einem if Befehl
Beitrag von: betateilchen am 13 Juni 2014, 19:24:30
Zitat von: rudolfkoenig am 13 Juni 2014, 17:39:07
Laut commandref bzw. "perldoc -f localtime" kann wday Werte zw. 0 und 6 aufnehmen

Ich hatte keine Lust, nachzuschauen und habe geraten. Meine Chance war 50:50 8)