Hallo zusammen,
habe seit längeren schon meine Rolladen mit FHEM automatisiert (Homematic), auch eine "Komfortsteuerung" konnte ich mit diversen Beispielen realisieren (geschlossener Rolladen wird beim öffnen des Fenster geöffnet und beim schließen wieder in die vorherige Position gefahren), funktioniert alles bestens.
Jetzt habe ich die Aufgabe bekommen das der Rolladen der Terrassentüre (Schiebetüre) nur geschlossen wird, wenn die Türe geschlossen ist (Automatik).
Die Türe ist mit einem optischen Homematic Sensor versehen. Habe mittlerweile versucht verschiedene Lösungen, Beispiele umzusetzen (DOIF, Notify), bisher bin ich aber gescheitert.
Wäre klasse wenn mir einer auf die Sprünge helfen könnte wie ich diese Anforderung so einfach wie möglich Umsetzen könnte, sehr gerne auch Hinweise auf entsprechende Module.
Gruss
Martin
Was genau hast Du ausprobiert? Poste mal ein Listing des DOIF, was nicht funktioniert und beschreibe die erwartete Funktion etwas genauer.
Allgemein geht es mit DOIF so:
(<Bedingung zum automatischen Schliessen> and [?TFK] eq "closed") (set Rolladen down)
DOELSEIF (<Bedingung zum automatischen Öffnen>) (set Rolladen up)
TFK = Tür- und Fensterkontakt
and [?TFK] eq "closed" verhindert das Schliessen, wenn der Kontakt nicht geschlossen ist, dabei verhindert ? das TFK auslöst, siehe: http://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Stati_ohne_Trigger
Hallo Martin,
ich habe das auch die Tage bei mir umgesetzt. Um zu verhindern, dass der Rolladen herunterfährt, wenn die Tür auf ist, habe ich ein HM-Drehgriffkontakt installiert. Somit kann ich die Tür zwar zu ziehen, aber es wird erkannt ob eben der Griff auch geschlossen, also wirklich zu ist.
Ist vielleicht nicht die einfachste Lösung aber vielleicht hilft es ja :)
Gruß
Wenns draußen dunkel wird und der Türkontakt auf "Closed" steht, fährt der Rollo runter.
(
[?16:00-23:00]
and
[twilight:twilight] < [rollosteuerung:twilight_grenzwert]
and
[EG.fk.seite:state] eq "closed"
and
[rollosteuerung:automatik] eq "an"
)
(set EG.rollo.seite off)
DOELSEIF (
([06:00|8] or [07:30|7])
and
[rollosteuerung:automatik] eq "an"
)
(set EG.rollo.seite on)
Ich habe meine Rolladensteuerung grundsätzlich über einen WeekdayTimer gelöst. Dort kann ich vorgeben, an welchen Tagen und zu welcher Zeit (bei mir über sunrise und min/max Werte) die Rolläden hoch/herunter gefahren werden sollen. Über die dort auch noch mögliche Bedingung verhindere ich, dass bei offener Tür/Fenster die Automatik greift. Zusätzlich habe ich 2 notifies. Eines für das herunterfahren des Rolladens, falls das ehemals geöffnete Fenster dann doch noch geschlossen wird (allerdings nur dann, wenn der Rolladen eigentlich herunter gefahren werden sollte) und ein zweites welches die Wetterdaten auswertet und auf Abdunkelung geht, falls Sonne und hohe Temperaturen vorhergesagt werden.
Weekdaytimer:
define dg_SZ_Rolladen_WD WeekdayTimer dg_SZ_Rolladen de Sa|{sunrise_abs_dat($date,0,"08:00","09:00")}|100 So|{sunrise_abs_dat($date,0,"09:00","10:00")}|100 Mo-Fr|{sunrise_abs_dat($date,0,"07:00","08:00")}|100 Mo-So|{sunset_abs_dat($date,0,"19:00","22:00")}|50 ((ReadingsVal("dg_SZ_Fenster_sued", "state", "closed") ne "open") || (ReadingsVal("dg_SZ_Rolladen_WD","nextValue","0") eq "100"))
In der Kondition (letztes Argument in Klammern) werden zwei Dinge abgefragt, erstens ob das zugehörige Fenster (ist bei mir ein Drehgriffsensor) nicht offen ist und zweitens ob das Reading "nextValue" des Weekdaytimer selbst auf 100 steht. Die zweite Bedingung stellt sicher, dass das Hochfahren auch dann funktioniert, wenn das Fenster offen ist (der Timer ist ja sowohl für das Herunterfahren abends als auch für das Hochfahren morgens zuständig).
Notify für das Fenster (zum Herunterfahren wenn das Fenster zur eigentlichen Weekdaytimer Aktion geöffnet war und jetzt geschlossen wird):
define dg_SZ_Rolladen_notify_window notify (dg_SZ_Fenster_sued:closed) {\
if (ReadingsVal("dg_SZ_Rolladen_WD","nextValue","0") eq "100") {\
fhem("set dg_SZ_Rolladen 0");;\
}\
}
Bedeutet also wenn das Fenster seinen Status auf geschlossen ändert und gleichzeitig das Reading des WeekdayTimers auf "hochfahren" steht (das ist die Phase nachts wenn der Befehl zum Herunterfahren schon abgesetzt wurde aber der Befehl zum Hochfahren morgens noch nicht). dann wird der Rolladen geschlossen.
Notify für das Wetterthema (hier nur zur Vollständigkeit, hat mit Deiner Anfrage ja direkt nichts zu tun):
define dg_SZ_Rolladen_notify_weather notify (myWetter:temperature.*) { if ($month >= 5 && $month < 10 && $hour >= 9 && $hour <=10) {\
if (ReadingsVal("dg_SZ_Rolladen_WD","nextValue","100") eq "0") {\
if (((ReadingsVal("myWetter","fc1_high_c","") > 28) || \
((ReadingsVal("myWetter","fc1_high_c","") > 24) && (ReadingsVal("myWetter","fc1_icon","") =~ m/sunny/)))) {\
fhem("set dg_SZ_Rolladen 50");;\
}\
}\
}\
}
Das Ganze ist nur einmal am Tag (zwischen 9 und 10 Uhr) und auch nur in den Sommer Monaten (von Mai bis September) aktiv. Wenn dann das Reading nextValue des WeekdayTimer auf "herunterfahren" steht (also tagsüber, nachdem der Befehl zum Hochfahren abgesetzt wurde) und der Wetterbericht größer 28 Grad oder größer 24 Grad und gleichzeitig Sonne meldet, dann wird der Rolladen halb geschlossen.
Das ist vielleicht nicht die einfachste Methode zum Einrichten, funktioniert aber ganz gut und lässt sich auch gut über das disable Attribut des WeekdayTimers an und ausschalten bzw. über die Parameter des Weekdaytimers konfigurieren.
Was ich noch plane, um das ganze noch etwas zu optimieren, ist es über $we und holiday2we zu erweitern um die Möglichkeit zu schaffen nicht nur an So und Sa sondern auch an Ferientagen später hochzufahren. Ich bin auch noch dran zu forschen, ob man da noch was über einen Kalender machen kann, in den dann die Familienmitglieder einfach spezielle Termine setzen, die dann auch noch festlegen ob Tage ausgeschlossen werden.
Guten Abend zusammen,
vielen Dank für die vielen Rückmeldungen. Habe jetzt mal die Lösung von EKI implementiert, diese Lösung bietet alles was ich benötige, insbesondere auch das Thema "Sonnenschutz".
Habe die Lösung zunächst mal über Dummys testweise abgebildet und getestet, vor allem auch um zu verstehen was in den Routinen explizit passiert, muss mich da zwar noch etwas beschäftigen, hat aber generell direkt funktioniert.
Die Lösung habe ich jetzt mal für einen Raum produktiv übernommen, mal schauen ob das alles so funktioniert, werde auf alle Fälle berichten.
Nochmals vielen Dank an alle für die Hilfe
Gruss
Martin