Hauptmenü

DOIF, Wochentage

Begonnen von UweUwe, 30 Januar 2019, 18:49:20

Vorheriges Thema - Nächstes Thema

UweUwe

Hallo,
mein DOIF: ([{sunset("CIVIL",0,"16:00","22:00")}| Mo Sa] or  [{sunset("CIVIL",1800,"16:00","22:00")}| Mi So] and [Bewohner:state] eq "home" ) (set GARTENWEG_LICHT on-for-timer 2000)

Das DOIF soll montags und samstags um Civil:sunset  und Mittwoch und Sonntag Civil:sunset:plus 1800 sec einschalten, jeweils für 2000 sec.
Montag schaltet es ein:korrekt, Dienstag lässt es aus: korrekt, Mittwoch schaltet es nicht ein.. ? :falsch
Ich frage mich auch, ob ich (Bedingung) or (Bedingung) and (Bedingung) so machen kann. Es soll ja ( (Bedingung) or (Bedingung) ) and (Bedingung) heissen.
Der Bewohner state war "home", Mo, Di und Mittwoch, daran hat es nicht gelegen.


Damian

Zitat von: UweUwe am 30 Januar 2019, 18:49:20
Hallo,
mein DOIF: ([{sunset("CIVIL",0,"16:00","22:00")}| Mo Sa] or  [{sunset("CIVIL",1800,"16:00","22:00")}| Mi So] and [Bewohner:state] eq "home" ) (set GARTENWEG_LICHT on-for-timer 2000)

Das DOIF soll montags und samstags um Civil:sunset  und Mittwoch und Sonntag Civil:sunset:plus 1800 sec einschalten, jeweils für 2000 sec.
Montag schaltet es ein:korrekt, Dienstag lässt es aus: korrekt, Mittwoch schaltet es nicht ein.. ? :falsch
Ich frage mich auch, ob ich (Bedingung) or (Bedingung) and (Bedingung) so machen kann. Es soll ja ( (Bedingung) or (Bedingung) ) and (Bedingung) heissen.
Der Bewohner state war "home", Mo, Di und Mittwoch, daran hat es nicht gelegen.

Denk an die Regel aus der Schulzeit: "Punkt- vor Strichrechnung", dabei entspricht and dem Punkt or dem Strich. Die Lösung: Klammern nutzen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

UweUwe

Hi, dachte schon, dass es die () sind, meine Frage war nur welche Klammern (? oder [ ? oder {?. Kann ich die 3 Klammertypen alternativ verwenden?
Nur mit Klammern wird der Ausdruck eindeutig.  8) 8)
Hatte schon alle 3 Möglichkeiten im def versucht, kein Syntaxfehler. Das war mir unheimlich. deshalb hab ich gefragt:
Hier die Möglichkeit mit den []
[[[{sunset("CIVIL",0,"16:00","22:00")}| Mo Sa] or  [{sunset("CIVIL",1800,"16:00","22:00")}| Mi So]] and [Bewohner:state] eq "home" ) (set GARTENWEG_LICHT on-for-timer 2000) also [[Bedingung) or (Bedingung)] and (Bedingung) Kann ich die 3 Klammertypen alternativ verwenden?

Damian

Zitat von: UweUwe am 30 Januar 2019, 20:54:46
Hi, dachte schon, dass es die () sind, meine Frage war nur welche Klammern (? oder [ ? oder {?. Kann ich die 3 Klammertypen alternativ verwenden?
Nur mit Klammern wird der Ausdruck eindeutig.  8) 8)
Hatte schon alle 3 Möglichkeiten im def versucht, kein Syntaxfehler. Das war mir unheimlich. deshalb hab ich gefragt:
Hier die Möglichkeit mit den []
[[[{sunset("CIVIL",0,"16:00","22:00")}| Mo Sa] or  [{sunset("CIVIL",1800,"16:00","22:00")}| Mi So]] and [Bewohner:state] eq "home" ) (set GARTENWEG_LICHT on-for-timer 2000) also [[Bedingung) or (Bedingung)] and (Bedingung) Kann ich die 3 Klammertypen alternativ verwenden?

Für die Reihenfolge werden die runden Klammern verwendet.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

UweUwe

Dann werde ich mal diesen verwenden: define G.Weg.Url.N DOIF(([{sunset("CIVIL",0,"16:00","22:00")}| Mo Sa] or  [{sunset("CIVIL",1800,"16:00","22:00")}| Do So]) and [Bewohner:state] eq "home" ) (set GARTENWEG_LICHT on-for-timer 2000) Danke für die Unterstützung. Ich werde berichten. Danke Danke...