Bedeutet die nachfolgenden Codeschnipsel das selbe ?
{if (Value("Flurlicht" eq "off") && ($hour <6 || $hour > 22))
{if (Value("Flurlicht" eq "off") && $hour <6) || (Value("Flurlicht" eq "off") && $hour > 22))
Also es soll geschaltet werden wenn Flurlicht aus ist und zwischen 23 - 5:59 Uhr
Versuch macht kluch :) Probiers doch einfach aus, dann lernst Du was dabei.
Ausprobieren im Zusammenhang mit Uhrzeitschaltungen ist vielleicht etwas unkomfortabel.
Aus meinem Restwissen über Logik aus dem Informatikunterricht heraus führen die beiden Codeschnipsel zum gleichen Ergebnis.
mein logisches Verständnis führt zum gleichen Ergebnis.
Ausprobieren von Uhrzeitschaltungen funktioniert übrigens problemlos, wenn man die Tests einfach mit aktuellen Uhrzeiten durchführt. Im Moment ist es kurz nach elf, ich würde die Tests also mit "< 10" und ">12" machen um die grundsätzliche Funktionalität zu prüfen.
Ich war auch der Überzeugung dass die Schnipsel richtig sind, aber warum bekomme ich dann bei dem Code eine Fehlermeldung?
BM_Flur {if (Value("Flurlicht" eq "off") && $hour <9) || (Value("Flurlicht" eq "off") && $hour > 16) {fhem "set Flurlicht dim81%%; set Flurlicht on-old-for-timer 120"}}
Ohne define weil aus Fhemweb kopiert.
Bitte sagt jetzt nicht da fehlt eine Klammer, ich habe mindestens 100 mal gezählt.
Fehlermeldung :
2014.03.05 20:21:02 3: bwFlur return value: syntax error at (eval 62570) line 1, near ") ||"
syntax error at (eval 62570) line 1, near "}}"
weil deine Klammern an der falschen Stelle sind.
die schließende Klammer von value gehört vor das eq.
gruss
andre
Danke da fehlten noch mehr Klammern
BM_Flur {if (((Value("Flurlicht") eq "off") && $hour <9) || ((Value("Flurlicht") eq "off") && $hour > 16)) {fhem "set Flurlicht dim81%%; set Flurlicht on-old-for-timer 120"}}
jetzt sind es eindeutig zu viele :)
Aber jetzt klappt es. Habe mind. 2 Stunden mit den Klammern verbracht und hoffe wenn ich jetzt noch ein elsif einbaue das in 10 Minuten erledigt ist.