Hallo!
Ich habe eine Frage zu dem WeekDayTimer.
Ich steuere mit ihm meine Rollläden.
Nun möchte ich, dass die WeekDayTimer nicht ausgeführt werden, wenn das Fenster geöffnet ist.
Bis hier klappt das auch alles schon ganz gut.
Wenn ich nun das Fenster schließe, möchte ich, dass sich der Rollladen entsprechend seinem WeekDayTimer einstellt. Das klappt leider nicht.
Ich habe dafür den Befehl "{WeekdayTimer_SetAllParms()}" benutzt. Dieser wird auch erfolgreich ausgeführt. Leider wird aber auf Grund der Aktualisierung kein Steuerbefehl an die Rollläden gesendet. Muss ich den noch manuell nachschieben? Also so etwas wie "Execute WeekdayTime xy"?
Vielen Dank für eure Tipps!
Viele Grüße
Stephan
"{WeekdayTimer_SetAllParms()}"
Ist aus meiner Sicht korrekt, muss nur an ein notify auf den Türkontakt gebunden werden
ja, das habe ich. ich sehe auch im Logfile, das es korrekt ausgeführt wird.
Allerdings werden Rollläden, die nach WeekDayTimer offen sein müssten, nicht geöffnet, wenn sie gerade geschlossen sind :(
Ich sehe mir nachher mal an was passiert
define HWR_Fenster_Closed notify HWR_Fenster:[Cc]losed {if (OldValue("HWR_Fenster") =~ /[Oo]pen/) {WeekdayTimer_SetAllParms()}}
Vorweg: WD basiert auf HeatingControl.
ich glaube es liegt an folgendem(Absicht) siehe Codeschnipsel aus HC:
Der Gedanke war, dass nur Heizungen bei einer zufälligen Definiton des WD/HC geschaltet werden sollen.
Würde man es anders machen, dann würde ein Gerät, das morgen bzw. abends geschaltet werden soll, auch geschaltet werden, wenn tagsüber die Definition angelegt würde.
wie wäre es das per attribut auch für andere devices zu aktivieren?
gruß
andre
ps: schau mal bitte hier: http://forum.fhem.de/index.php/topic,27471.msg203610.html#msg203610
Hallo,
also jetzt habt ihr mich abgehängt ... :(
Kann ich die Aktualisierung denn durch einen Befehl auslösen?
Ansonsten wäre doch so etwas wie
"WeekdayTimer_SetParms(My_WeekDayTimer)"
ganz hilfreich.
Die Funktion schaut, ob das Device entsprechend My_WeekDayTimer gestellt ist und falls nicht, wird ein Stellbefehl geschickt ...
Viele Grüße
Stephan
Sehr wahrscheinlich nein. Weil WD vergangene Schaltungen nicht ausführt. Ich müsste ein Attribut einfügen, das dies einstellbar gestaltet.
Das kann allerdings ein wenig dauern.
Hallo Stephan,
hast du dir schon einmal das neue DOIF-Modul angeschaut? http://forum.fhem.de/index.php/topic,23833.0.html (http://forum.fhem.de/index.php/topic,23833.0.html)
Bei mir funktioniert es wunderbar mit dem Fensterkontakt und der Rollladensteuerung.
vg Jens
Hallo Dietmar,
warum willst du vergangene Schaltungen berücksichtigen?
Wenn die Funktion "WeekdayTimer_SetAllParms()" aufgerufen wird, wird doch jeder WeekDayTimer aktualisiert. Im Rahmen dieser Aktualisierung müsste noch geprüft werden, ob das gesteuerte Device entsprechend dem WeekDayTimer steht. Falls nicht, muss ein entsprechender set-Befehl an das Device geschickt werden.
Viele Grüße
Stephan
es gibt keine möglichkeit aus einem gegebenen set kommando automatisch die passende abfrage für den aktuellen zustand zu erzeugen.
entweder schaltet man immer oder nie. bzw. schafft die möglichkeit per attribut zwischen beiden umzuschalten.
gruß
andre
mhhh ...
ich stelle mir vor, dass irgendwo die Funktion "WeekdayTimer_SetAllParms()" definiert ist. Und in der Definition müsste man doch Zugriff auf den aktuellen WeekDayTimer-Parameter und den aktuellen Device-Paramter haben, oder? Wenn beide voneinander abweichen, schickt man am Ende der Funktionsdefinition einen set-Befehl mit dem WeekDayParameter an das Device.
Das klingt doch in der Theorie ganz einfach ;)
Ansonsten verstehe ich auch den Sinn/Anwendungsfall der Funktion "WeekdayTimer_SetAllParms()" nicht.
Ich dachte, mit der Funktion kann ich Devices, die außerhalb des WeekDayTimers geschaltet wurden, wieder auf den aktuellen Programmstand des WeekDayTimers zurück setzen.
Oder wofür benutze ich die Funktion?
Und wenn HeatingControl das kann, könnte ich dann auch HeatingControl zur Rolladensteuerung benutzen oder kann ich da nur Temperaturen angeben?
Viele Grüße
Stephan
Gerade für Zeitsteuerung in Verbindung mit Zuständen habe ich das DOIF-Modul programmiert.
Beispiel als Einzeiler:
define di_rollladen DOIF ([08:00-20:00] and [fenster] eq "geschlossen") (set Rollladen hoch) DOELSE (set Rollladen runter)
Hierbei musst du nichts auf enable oder disable setzen.
Um 8:00 Uhr geht der Rollladen hoch, wenn fenster geschlossen ist, sonst bleibt der unten. Sobald Fenster geöffnet wird, geht der Rollladen runter, wenn er oben war. Um 20:00 Uhr geht Rollladen runter, wenn er bis dahin noch oben war. Es wird also zu jedem Zeitpunkt das getan, was der Anwender intuitiv durch die definierte Bedingung erwartet. Dabei wird nie ein Befehl unnötig gesendet, da das Modul zu jedem Zeitpunkt den aktuellen Zustand des Rollladens kennt.
Gruß
Damian