Hallo zusammen,
ich verwende folgendes DOIF:
([19:14|01234] and [rr_location_janic] eq "home" and [Ferientag_Berlin] eq "NEIN") ((set gong_MP3 playTone 254,021,254)) DOELSEIF ([20:14] and [rr_location_janic] eq "home") ((set gong_MP3 playTone 254,021,254))
Es soll am SO,MO,DI,MI,DO wenn Janic zu Hause ist und kein Ferientag ist den gong auslösen. An allen anderen Tagen wenn Janic zu Hause ist um 20:14.
Von der Sache her funktioniert es auch, was mich aber wundert ist das es an manchen Tagen (wie heute) eine Erinnerung um 19:14 UND eine um 20:14 gibt :-(
Ich sehe das so...
aus der commandref DOIF
ZitatSyntax:
define <name> DOIF (<Bedingung>) (<Befehle>) DOELSEIF (<Bedingung>) (<Befehle>) DOELSEIF ... DOELSE (<Befehle>)
Die Angaben werden immer von links nach rechts abgearbeitet.
Um 19:14Uhr wird die erste Bedingung abgearbeit..SO,MO,DI,MI,DO, Janic zu Hause ist, Berlin kein Ferientag => DingDong
Um 20:14Uhr wird DOIF wieder aktiv und arbeitet von links nach rechts ab...
Die erste Bedingung triff nicht mehr zu, da es nun schon 1h später ist.
Ist 20:14 Uhr Janic immer noch zu Hause => DingDong
Sozusagen müßte es täglich - wenn Janic daheim ist - 20:14Uhr DingDong machen
also sollte ich vermutlich die Tage 5, 6 noch in die zweite Bedingung einbringen und eine dritte dafür wenn Ferien sind.
Zitat von: mfeske am 26 November 2015, 09:46:17
also sollte ich vermutlich die Tage 5, 6 noch in die zweite Bedingung einbringen und eine dritte dafür wenn Ferien sind.
In einem DOIF-Modul wird bei Zeittriggern nur der DO-Fall ausgewertet, bei dem die getriggerte Zeit vorkommt, alle anderen DOELSEIF-Zweige werden zu diesem Zeitpunkt nicht ausgewertet,
Gruß
Damian
Vermutlich habe ich da etwas noch nicht verstanden, dabei dachte ich langsam mit DOIF zu mindest befreundet zu sein :-(
([20:16|01234] and [rr_location_janic] eq "home" and [Ferientag_Berlin] eq "NEIN") ((set gong_MP3 playTone 254,020,254)) DOELSEIF ([21:16|56] and [rr_location_janic] eq "home") ((set gong_MP3 playTone 254,020,254))
ergibt aber laut list trotzdem eine Ausführung heute an einem Sonntag um 20:16 und 21:16 :-(
2015-11-29 19:40:05 timer_1_c1 29.11.2015 20:16:00|01234
2015-11-29 19:40:05 timer_2_c2 29.11.2015 21:16:00|56
Zitat von: mfeske am 29 November 2015, 19:44:07
Vermutlich habe ich da etwas noch nicht verstanden, dabei dachte ich langsam mit DOIF zu mindest befreundet zu sein :-(
([20:16|01234] and [rr_location_janic] eq "home" and [Ferientag_Berlin] eq "NEIN") ((set gong_MP3 playTone 254,020,254)) DOELSEIF ([21:16|56] and [rr_location_janic] eq "home") ((set gong_MP3 playTone 254,020,254))
ergibt aber laut list trotzdem eine Ausführung heute an einem Sonntag um 20:16 und 21:16 :-(
2015-11-29 19:40:05 timer_1_c1 29.11.2015 20:16:00|01234
2015-11-29 19:40:05 timer_2_c2 29.11.2015 21:16:00|56
Benutzt du FHEM 5.7? Hast du schon ein Update gemacht?
siehe: http://forum.fhem.de/index.php/topic,44757.0.html
Gruß
Damian
Ich habe den Hinweis oben in rot schon gesehen :-) Ich führe regelmässig update, damit dürfte ich dann auch 5.7 haben ?! Habe keine Stelle gefunden wo ich mir die FHEM Version anzeigen lassen kann :-(.
Mein Code sollte doch aber so korrekt sein, oder ?
Gruß
Micha
Zitat von: mfeske am 29 November 2015, 20:33:38
Ich habe den Hinweis oben in rot schon gesehen :-) Ich führe regelmässig update, damit dürfte ich dann auch 5.7 haben ?! Habe keine Stelle gefunden wo ich mir die FHEM Version anzeigen lassen kann :-(.
Mein Code sollte doch aber so korrekt sein, oder ?
Gruß
Micha
Deswegen musst du die DOIF-Version von heute nehmen.
Gruß
Damian
update check --> nothing to do...
Zitat von: mfeske am 29 November 2015, 20:41:49
update check --> nothing to do...
Was liefert "Version DOIF"?
Version DOIF
98_DOIF.pm 10040 2015-11-28 22:25:32Z damian-s
Version FHEM
01_FHEMWEB.pm 9988 2015-11-24 13:45:07Z rudolfkoenig
Zitat von: mfeske am 29 November 2015, 20:47:55
Version DOIF
98_DOIF.pm 10040 2015-11-28 22:25:32Z damian-s
Version FHEM
01_FHEMWEB.pm 9988 2015-11-24 13:45:07Z rudolfkoenig
OK, dann sollte alles korrekt funktionieren. Die Timer stehen als Reading immer da. Das heißt nicht gleichzeitig, dass etwas ausgeführt wird. Um 21:16 Uhr kann heute nichts ausgeführt werden, weil wir heute nicht Freitag und auch nicht Samstag haben.
Um 20:15 Uhr wäre das Kommando heute nur ausgeführt worden, wenn Janic zu diesem Zeitpunkt auch at home gewesen wäre.
Gruß
Damian