Ich habe ein Problem mit dem Einschalten einer Lampe. Diese schaltet nur wochentags ein, obwohl ich (meines Wissens) nirgends definiert habe, dass sie am Wochenende nicht eingeschaltet werden soll.
Der Dummy du_Licht_Master ist zum generellen ein- bzw. Ausschalten der Lichtautomatik (und ist derzeit immer "an").
Der Dummy du_Licht_Art kann zwischen "Normal" und "Urlaub" gewechselt werden, wird aber bisher nur in "Normal" benutzt.
Der Dummy du_Licht_Zeit_an beinhaltet einen Zeitpunkt (z.B: 06:00), zu diesem Zeitpunkt soll wochentags das Licht früh eingeschaltet werden.
Der Dummy du_Tageslicht wird zum Sonnenauf- und untergang zwischen "hell" und "dunkel" gewechselt.
Ich habe folgendes DOIF definiert, um zwei verschiedene Lichter einzuschalten.
([du_Licht_Master] eq "an" and [du_Licht_Art] eq "Normal" and [[du_Licht_Zeit_an]|8] and [du_Tageslicht] eq "dunkel") (set Licht on)
DOELSEIF
([du_Licht_Master] eq "an" and [du_Licht_Art] eq "Normal" and [{sunset(-1550,"16:00","23:00")}]) (set Licht on)
DOELSEIF
([du_Licht_Master] eq "an" and [du_Licht_Art] eq "Normal" and [du_Tageslicht] eq "dunkel" and [TVReceiver:presence] eq "present" and [?20:00-22:00]) (set anderes_Licht on)
Der erste Zweig schaltet zuverlässig montags bis freitags das Licht früh ein.
Der zweite Zwei sollte eigentlich IMMER zum Sonnenuntergang (+Offset) zwischen 16:00 und 23:00 Uhr das Licht einschalten, tut es aber irgendwie nicht samstags und sonntags.
Der dritte Zweig schaltet eine andere Lampe ein, falls der Satellitenreceiver zwischen 20:00 Uhr und 22:00 Uhr eingeschaltet wird und es draußen bereits dunkel sein sollte. Auch dieser Zweig funktioniert gut.
Warum also, schaltet Zweig 2 nur montags bis freitags und nicht am WE? :(
Ich vermute, dass Du das Attribut do auf always setzen musst, weil der Status von cmd_2 nicht gewechselt wird.
Du solltest mal alle Ereignisse von Sonntag bis Dienstag in einem extra FileLog mitschreiben.
define DOIF_Log FileLog ./log/DOIF_Log-%W.log <DOIFname>:.*|du_Licht_Master:.*|du_Licht_Art:.*|du_Tageslicht:.*|Licht:.*|du_Tageslicht:.*|TVReceiver:.*|anderes_Licht:.*
Mit dem kompletten Verhalten des DOIF kannst Du analysieren warum das DOIF nicht schaltet, und poste dann das Ergebnis
Nachtrag: du_Licht_Zeit_an gibts im DOIF nicht.
Hallo der_da,
du hast hier eine Programmierung auf Mo.-Fr. ...
[du_Licht_Zeit_an]|8]
Gruß Jens
Zitat von: EIB-Fan am 27 September 2016, 17:17:24
Hallo der_da,
du hast hier eine Programmierung auf Mo.-Fr. ...
[du_Licht_Zeit_an]|8]
Gruß Jens
korrekt, und das funktioniert ja auch wie der_da schrieb (erster Zweig)
Es wird wohl so sein, wie Ellert es schrieb...
Am Freitag wird zum Sonnenuntergang cmd2 ausgeführt und am Samstag nicht mehr, weil cmd1 bzw. cmd3 zwischendurch nicht dran gekommen sind. Kein Zustandswechsel ohne do always -> keine Ausführung.
Solche Aufgaben funktionieren besser, wenn man mit dem selben Modul die Lichter auch wieder ausmacht, dann hat man automatisch immer einen Zustandswechsel, nämlich zwischen Licht an und Licht aus.
Gruß
Damian
Zitat von: Damian am 27 September 2016, 17:54:03
Am Freitag wird zum Sonnenuntergang cmd2 ausgeführt und am Samstag nicht mehr, weil cmd1 bzw. cmd3 zwischendurch nicht dran gekommen sind. Kein Zustandswechsel ohne do always -> keine Ausführung.
Solche Aufgaben funktionieren besser, wenn man mit dem selben Modul die Lichter auch wieder ausmacht, dann hat man automatisch immer einen Zustandswechsel, nämlich zwischen Licht an und Licht aus.
Damian
Danke! Werde ich ändern.
Danke auch an Ellert, kumue, EIB-Fan :)