FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: aherby am 20 November 2015, 23:28:27

Titel: DOIF und Monate als Bedingung
Beitrag von: aherby am 20 November 2015, 23:28:27
Guten Abend,

ich fange gerade an mich an die DOIF zu gewöhnen und diese entsprechen in den Config einzubauen.
Nun versuche ich einige at-Befehle zu ersetzen und gerade ist das Schalten der Flurbeleuchtung in den Wintermonaten morgens um 6:15 Uhr an der Reihe.

Wie würde eine Bedingung mit der Abfrage von Monaten aussehen? Ist dies schon möglich?


Ich denke hier an folgendes:

define Auto_Lichtmorgens_ON_Week DOIF ([06:15|8] and ( $month <= 4 || $month >= 9 )) (set AK_Flur_Licht on) DOELSEIF ([08:15|8]) (set AK_Flur_Licht on)
attr Auto_Lichtmorgens_ON_Week do always

Funktioniert der Code oder gibt es ggf noch eine andere Lösung?

Danke
Titel: Antw:DOIF und Monate als Bedingung
Beitrag von: kumue am 20 November 2015, 23:55:04
So kurz vorm einnicken würde ich behaupten, daß der Code funktioniert.
Anders habe ich die Monate bei mir in DOIFs auch nicht eingebunden.

Was kosmetische..Zitat aus der DOIF-commandref:
ZitatLogische Verknüpfungen sollten zwecks Übersichtlichkeit mit and bzw. or vorgenommen werden.

Gute Nacht.
Titel: Antw:DOIF und Monate als Bedingung
Beitrag von: aherby am 21 November 2015, 00:21:17
Danke

auch kurz vorm einnicken würde ich sagen wenn du auch
( $month <= 4 || $month >= 9 )
benutzt hast und es funktioniert finde ich es gut das ich langsam in die Programmiersprache schreiben kann.
Hatte gedacht die ,,||" könnten ein Problem geben.

Aber wenn ich nun am Ende noch ein ,,off" statt ,,on" schreibe könnte es wirklich funktionieren.
define Auto_Lichtmorgens_ON_Week DOIF ([06:15|8] and ( $month <= 4 || $month >= 9 )) (set AK_Flur_Licht on) DOELSEIF ([08:15|8]) (set AK_Flur_Licht off)
attr Auto_Lichtmorgens_ON_Week do always


Danke und gute Nacht
Titel: Antw:DOIF und Monate als Bedingung
Beitrag von: Loredo am 21 November 2015, 01:55:39
Der Monat steht on $mon.


Gruß
Julian
Titel: Antw:DOIF und Monate als Bedingung
Beitrag von: Damian am 21 November 2015, 07:56:12
Zitat von: Loredo am 21 November 2015, 01:55:39
Der Monat steht on $mon.


Gruß
Julian

Der Anwender kann folgende Zeitvariablen in der Bedingung von DOIF nutzen:

$sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst

Gruß

Damian
Titel: Antw:DOIF und Monate als Bedingung
Beitrag von: aherby am 22 November 2015, 12:34:43
Hallo Damian,

danke für die Rückmeldung. Ich habe mir gleich die Zeitvariablen als Merker aufgeschrieben.

Aus meiner Sicht ist die Frage damit beantwortet.

Danke

Gruß

aherby

Titel: Antw:DOIF und Monate als Bedingung
Beitrag von: Damian am 22 November 2015, 12:48:46
Zitat von: aherby am 22 November 2015, 12:34:43
Hallo Damian,

danke für die Rückmeldung. Ich habe mir gleich die Zeitvariablen als Merker aufgeschrieben.

Aus meiner Sicht ist die Frage damit beantwortet.

Danke

Gruß

aherby

Interessant ist vermutlich $mday, $month, $year, $yday, $isdst.

$wday wird normalerweise mit Wochentagangaben [..|123455678] abgedeckt.


Es gibt noch $HMS für HH:MM:SS und $HM für HH:MM, allerdings braucht man diese Angaben normalerweise auch nicht, da ja DOIF mit Zeit und Zeitintervallen umgehen kann.

Gruß

Damian
Titel: Antw:DOIF und Monate als Bedingung
Beitrag von: aherby am 22 November 2015, 22:52:13
Hallo Damian,

danke

Was versteckt sich genau hinter:
$yday

$isdst

$mday

Danke
Titel: Antw:DOIF und Monate als Bedingung
Beitrag von: kumue am 23 November 2015, 08:54:21
einfach mal auf der Konsole eingeben...

fhem> {$yday}
326
fhem> {$isdst}
0
fhem>  {$mday}
23


326 Tag des Jahres, beginnend bei 0
keine Sommerzeit
23. Tag des Monats
Titel: Antw:DOIF und Monate als Bedingung
Beitrag von: aherby am 25 November 2015, 16:46:16
Super,

danke für die Hilfe / Tipps.

Damit hat sich mein Problem erledigt.

Gruß aherby
Titel: Antw:DOIF und Monate als Bedingung
Beitrag von: patman1607 am 25 November 2015, 21:52:41
Hallo,

wenn ich folgendes eingebe

Zitatdefine Auto_Lichtmorgens_ON_Week DOIF ([21:30|8] and ( $month <= 4 || $month >= 9 )) (set  LEDspot1  on) DOELSEIF ([21:31|8]) (set  LEDspot1  off)
attr Auto_Lichtmorgens_ON_Week do always

kommt Error:
set  LEDspot1  off: Please define  LEDspot1  first


definiert ist meine Lampe die hinter einer FS20 steckdose hängt...so

Zitat### LED SPOTS Küchenzeile
define LEDspot1 FS20 1234 11
attr LEDspot1 IODev nanocul
attr LEDspot1 model fs20st
attr LEDspot1 room Kueche

Titel: Antw:DOIF und Monate als Bedingung
Beitrag von: schucki am 26 November 2015, 17:44:26
Zitat von: patman1607 am 25 November 2015, 21:52:41
Hallo,

wenn ich folgendes eingebe

kommt Error:
set  LEDspot1  off: Please define  LEDspot1  first


definiert ist meine Lampe die hinter einer FS20 steckdose hängt...so

Hast du deine FS20 direkt in der fhem.cfg eingegeben, oder über die Kommandozeile in FHEM definiert? Diesen Fehler habe ich in den Anfangszeiten auch gemacht. Lass lieber die Finger von der fhem.cfg da kann man so manchen shitstorm hier ernten. ;-)

Gib einfach define <name> FS20 housecode addr [fg addr] [lm addr] [gm FF] in die Kommandozeile ein. Sollte funzen.

Gruß schucki