Jeden Abend einmal jeden Rollladen manuell herunterfahren – das muss nicht sein. Mit Hilfe von openHAB und einer Regel können die Rollläden im Haus ganz einfach in Abhängigkeit des Sonnenstandes heruntergefahren werden. In meinem Fall fahre ich die Rollläden nach Sonnenuntergang herunter und zu einer festen Zeit am Morgen wieder hoch. Die Zeit am Morgen entspricht meiner Morgenroutine, am Abend kann mir sicher sein, dass ich nicht zu früh im Dunkeln sitze.
Rollladen mit dem Astro Binding herunterfahren
Damit wir nicht für jeden Rollladen einzeln eine Regel zum herunterfahren anlegen müssen, ist es am besten eine Gruppe für alle Rollläden anzulegen. In meinem Haus ist KNX verbaut, daher sieht ein Rollladen Item in der .items Datei meinem Fall so aus
1 |
Rollershutter Rollladen_UG_Schlafen "Rollladen Schlafen" (RollladenGesamt) { knx="2/0/3, 2/0/103" } |
Hier wird der Rollladen der Gruppe „RollladenGesamt“ zugeordnet. Die Gruppe muss natürlich allen Items zugeordnet werden, die man später gemeinsam fahren möchte.
Als nächstes muss das entsprechende Group Item für die Gruppe RollladenGesamt angelegt werden.
1 |
Group:Rollershutter RollladenGesamt "Alle Rollläden" |
Jetzt sind alle notwendigen Items angelegt und die gewünschte Regel kann definiert werden. Ich habe für die Rollläden eine separate .rules Datei angelegt. Das ist kein Muss, sorgt aber für mehr Übersicht.
1 2 3 4 5 6 7 8 |
rule "Rollladen Gesamt runter" when Channel 'astro:sun:37f6fe1d:night#event' triggered START then sendCommand(RollladenGesamt, DOWN) end |
Die Regel sagt hier: Wenn das Astro Binding Event Nacht startet, dann fahre die Gruppe RollladenGesamt herunter. Warum das Event Nacht? – Hier kann ich sicher sein, dass es bereits dunkel ist. Ich möchte so lange wie möglich den Ausblick nach draußen genießen. Gerade im Sommer wäre es sehr störend, wenn alles zu früh abgedunkelt wird, während draußen noch „hell“ ist.
Selbstverständlich können sämtliche andere Events des Astro Binding verwendet werden wie :set#event (Sonnenuntergang). Wenn man einen Zeitversatz einbauen möchte, z.B. Sonnenuntergang + 30 Minuten kann das über einen Timer in der Regel gelöst werden. Am Beispiel der Rollläden sähe die Regel dann so aus:
1 2 3 4 5 6 7 8 9 10 11 |
rule "Rollladen Gesamt runter mit Timer" when Channel 'astro:sun:37f6fe1d:set#event' triggered START then createTimer(now.plusMinutes(30)) [| sendCommand(RollladenGesamt, DOWN) ] end |
Rollladen per Zeitschaltuhr hochfahren
Zum hochfahren der Rollläden nutze ich eine einfache Zeitschaltuhr. In meinem Fall soll der Rollladen von Montag bis Freitag am Morgen um 07:30 Uhr hochfahren.
1 2 3 4 5 6 7 |
rule "Rolladen Mo-Fr AUF" when Time cron "0 30 7 ? * MON,TUE,WED,THU,FRI" then sendCommand(RolladenGesamt, UP) end |
Mit der Einschränkung von Montag bis Freitag stelle ich sicher, dass ich nicht am Wochenende durch den Rollladen geweckt werde. Die gewünschten Cron Expressions können mit dem Onlinetool CronMaker ganz einfach erzeugt werden. Wenn du zusätzlich zu den Rollläden deine Beleuchtung in Abhängigkeit des Astro Bindings steuern möchtest, schau doch einmal in diesen Artikel.
Hallo Patrick,
muss hier hinter [ dieses Zeichen „|“ sein? Wofür steht es?
createTimer(now.plusMinutes(30))
[|
sendCommand(RollladenGesamt, DOWN)
]
end
Mit freundlichem Gruß
Jürgen
Hallo Jürgen,
ja, das „|“ muss da hin. Ich muss ehrlich zugeben, dass ich nicht hinterfragt habe warum das so ist 😀
Viele Grüße
Patrick
Hallo Patrick,
Danke!!
Ja, die Regel funtioniert! 😉 🙂
Mit freundlichem Gruß
Jürgen
Hallo ich habe auch ein Frage. Wie muss es heißen, wenn ich meine Rollos zum Zeitpunkt x nur auf 50 % fahren lassen möchte? Muss man da auch jedes mal eine Regel erstellen?
Oder gibt es eine App, wo man solche Sachen auch erstellen kann? Also unter Angabe der KNX Adresse eine Art Routine erstellen… Nimm KNX Adresse x und stelle die Rollos am Wochenende auf 50 % um 7:00 Uhr.
Danke
Hallo Tom,
grundsätzlich kann das KNX Binding mit prozentualen Werten von Rollläden umgehen. Dazu musst du in der Konfiguration „Position“ angehen. So sieht das in der Dokuemtation des Bindings aus:
Type rollershutter : demoRollershutter "Shade" [ upDown="4/3/50+4/3/51", stopMove="4/3/52+4/3/53", position="4/3/54+<4/3/55" ]
Die Regeln sind im Prinzip genau das was du mit einer Routine erstellen willst.
Eine Regel könnte folgendermaßen aussehen:
rule "Rollladen 50%"
when
Time cron "0 0 7 1/1 * ? *"
then
rollladen.sendCommand(50)
end
Ich kann die Regel leider nicht direkt testen, da meine Aktoren das Anfahren absoluter Positionen nicht unterstützen. Ich würde mich freuen, wenn du kurz berichtest, ob es geklappt hat.
Viele Grüße
Patrick
Hallo,
ich versuche mich gerade auch am Astro Binding für meine Rollos. Dabei bin ich auf deine Anleitung gestoßen ? Ich wollte mal fragen warum der Channel bei dir so aussieht astro:sun:37f6fe1d:set#event ?
Wo hast du diese 37f6fe1d Nummer her ?
Wenn man in der PaperUI schaut, sieht das einfach nur so aus astro:sun:home:set#event
Nutze OH2
Grüße
D3ltoro
Hallo,
hast du das Binding bereits eingerichtet und deinen Standort mittels Längen- und Breitengrad angeben? Bei mir stand von Beginn an in der Paper UI anstelle von Home diese Nummern- und Buchstabenfolge. Die variiert aber. Bei der Installation in meinem Büro ist es eine andere Kombination.
Funktioniert das Binding bei dir trotzdem?
Viele Grüße
Patrick
Hallo Patrick,
vielen Dank für deine schnelle Antwort. Also ich habe dort nun einfach Home stehen, so wie ich das Binding installiert hatte. erstellen tue ich Things immer über die Datei im Editor, vllt deswegen.
Auf jeden Fall fuhren gestern ausgewählte Rollos herunter, nachdem ich das ganze mit einem Timer zusätzlich erstellt hatte.
Vielen Dank erst mal für deine Anleitung.
Ich hätte noch ein paar Fragen. In einem anderen Forum wurde mir abgeraten viele Timer zu nutzen und auch Timer mit so einem großen Wert, bei mir waren es 15 min.
Ich versuche es heute mal mit dem Offset Wert beim Astro Binding, mal sehen was passiert. Danach lasse ich mehrere Timer erstellen mit ein paar min Versatz pro Zimmer, damit nicht alle gleichzeitig runtergehen.
So habe ich das mal geschrieben, ka ob es funktioniert, sehe ich heute Abend, nach dem Sonnenuntergang.
Das wäre das Rule
—————-
rule „Jalousien runter nach Astro Binding mit Timer“
when
Channel ‚astro:sun:home:set#event‘ triggered START
then
sendCommand(Kueche_Jalousien, DOWN)
createTimer(now.plusMinutes(2))
[| sendCommand(SZ_Jalousien, DOWN) ]
createTimer(now.plusMinutes(3))
[| sendCommand(Bad_Jalousien, DOWN) ]
createTimer(now.plusMinutes(4))
[| sendCommand(EZ_Jalousien, DOWN) ]
createTimer(now.plusMinutes(5))
[| sendCommand(WZ_Jalousien, DOWN) ]
createTimer(now.plusMinutes(6))
[| sendCommand(Buero_Jalousien, DOWN) ]
createTimer(now.plusMinutes(7))
[| sendCommand(Treppe_Jalousien, DOWN) ]
createTimer(now.plusMinutes(8))
[| sendCommand(Kinderzimmer_Jalousien, DOWN) ]
createTimer(now.plusMinutes(10))
[| sendCommand(Jalousien, DOWN) ]
end
—————-
und das wäre das Thing dazu
—————
astro:sun:home [ geolocation=“48.0287,9.2955,100″, interval=60 ] {
Channels:
Type rangeEvent : set#event [ offset=15 ]
———-
Ka ob das so richtig ist, kann ich ja leider erst heute Abend sehen.
Wie würdest du das lösen ? Möchte halt jeden Raum etwas versetzt fahren lassen. Was hälst du von mehreren Timern ? Ist das so schlimm, wenn man Timer nutzt ? Dafür ist diese Funktion doch da oder nicht ?
Grüße,
D3ltoro
Im Prinzip sind Timer genau dafür da. Mit inem Timer blockierst du dir die Regel auch nicht und könntest noch andere Dinge innerhalb der Regel ausführen. Alternativ kannst du auch schauen welche Werte das Astro Binding noch liefert. Oftmals sind Beginn und Ende von z.B. Sonnenuntergang nicht so weit voneinander entfernt, so dass man beide Werte zum triggern nehmen kann.
Ich habe bei mir einen Versatz der Rollläden pro Stockwerk und nicht pro Raum. Dann reichen 2-3 Timer (oder eben Regeln mit unterschiedlichen Events aus dem Astro Binding).
Hallo,
irgendwie will das bei mir nicht klappen.
Muss ich da am Astro-Binding noch was verändern?
Gruss
Daniel
Hallo Daniel,
ich kenne deine Konfiguration zwar nicht im Detail. Du musst das Astro Binding aber noch „einrichten“, indem du deinen Standort mitteilst. Das erledigst du in der Paper UI unter Configuration -> Things -> Astro Sun Data. Dort dann auf den bearbeiten Stift oben links klicken und deine Koordinaten eingeben. Diese kannst du beispielsweise hier ermitteln: https://www.gpskoordinaten.de
Viele Grüße
Patrick
Hallo.
Welche KNX Adressen hast du genommen? Die erste ist auf/ab und die zweite ist bei dir?
Theoretisch hat mein Aktor bis zu 4 Adressen.
Da ich das später auch gerne in der Visu brauchen würde brauche ich auf/ab, stop, Rückmeldung und Position.
Wie sieht der Eintrag dann aus?
Hallo Oliver,
Ich habe nur 2 Adressen. Auf/Ab und Start/Stop.
Von was bekommst du eine Rückmeldung? auf/ab oder Position?. Die Rückmeldung wird meines Wissens nach immer mit einem +< an die jeweilige Adresse angehängt. Wenn also die Rückmeldung bei der Position kommt, dann würde das so aussehen:
/* Rollershutters Up/Down, Stop/Move, Position */
Rollershutter Shutter_GF_Living „Shutter“ (GF_Living, Shutters) { knx=“4/2/10, 4/2/11, 4/2/12+<4/2/13" }
Okay Danke.
Ich bin mir nicht ganz sicher wie viele ich brauche.
Fahren Deine Rolladen einfach nur Morgens hoch und Abends wieder runter?
In Sachen Visualisierung ware halt ganz nett das man die Funktionen hoch runter stop bzw fahre auf 50% also halb auf oder zu. Und ich denke das die Visu halt einen Wert braucht um anzuzeigen ist sie auf zu oder wo auch immer.
Im Prinzip machen sie genau das. Da meine Aktoren auch keine Position oder Prozentwerte unterstützen kann ich nicht ganz so viel damit machen.
Hallo.
Super, das hat mir gefallen. Wie kann ich denn jetzt noch den Fenstergriffkontakt von Homematic so einbinden, das die Terassentür nur dann runter fährt, wenn der Griff auf Closed steht.
Und dann, wenn die Tür geschlossen wird, der Rollladen nachträglich auch runter fährt.
Hallo Holger,
freut mich, dass es hilft.
Homematic habe ich nicht im Einsatz, aber ich denke der Vorgang ist der Gleiche. Ich gehe jetzt einfach mal davon aus, dass du sämtliche Schaltbefehle für die Rollläden über openHAB gibst. Wenn das der Fall ist, kannst du einfach noch eine Bedingung einfügen, die prüft, ob die Tür offen oder geschlossen ist. Ob du dann noch mit der Gruppe für alle Rollläden arbeiten kannst, weiß ich nicht genau. Ich würde sagen nein.
Anbei ein Beispiel wie du die Bedingung einbauen kannst, wenn es sich um einen Rollladen handelt. Items und Co sind erfunden.
rule "Rollladen Terrasse ZU"
when
Channel 'astro:sun:37f6fe1d:night#event' triggered START
then
if (Tuerkontakt_Terrasse.state ==CLOSED)
{
sendCommand(Rollladen_Terrasse, DOWN)
}
end
Dadurch hast du einfach eine zusätzliche Bedingung geschaffen, die prüft, der Türkontakt geschlossen ist.
Ich hoffe das hilft weiter.
Viele Grüße
Danke Patrick,
das werde ich heute Abend direkt mal testen.
Gruss Oliver
Super, bin gespannt 🙂