Die Außenbeleuchtung ist heute nicht mehr nur ein reines Mittel zum Zweck, sondern immer öfter auch Designelement am Haus. Daher ist ein Bewegungsmelder, der das Licht bei Bewegung einschaltet zwar nett, aber nicht immer gewünscht. In meinem Fall habe ich gar keinen Bewegungsmelder an der Haustüre, sondern möchte die Außenbeleuchtung individuell und automatisiert steuern.
Nun könnte man auf die Idee kommen, dass eine einfache Zeitschaltuhr genügt, um das zu erreichen. Wenn man ganzjährig das Licht um 18 Uhr anschalten will, obwohl es im Winter bereits 2 Stunden vorher dunkel ist – oder im Sommer die Sonne um diese Uhrzeit noch einen Sonnenbrand verursacht, ist das eine Lösungsmöglichkeit. Um ein wenig Ernst in die Sache zu bringen. Für eine intelligente Hausautomation ist das selbstverständlich keine Option.
Außenbeleuchtung mit dem Astrobinding anschalten
Am einfachsten funktioniert die Definition der Startzeit über das Astrobinding von openHAB. Hier gibt es sehr viele Werte, die man als gewünschte Startzeit heranziehen kann. In diesem Beispiel nehmen wir den Sonnenuntergang als relevante Größe. Wir möchten in der Regel festlegen, dass die Außenbeleuchtung täglich mit dem Sonnenuntergang angeschaltet wird.
Hierfür sollte natürlich in der items Datei bereits ein Item oder eine Gruppe für die Außenbeleuchtung existieren, welches wir ansteuern können. In meinem Fall ist das ein KNX Item. Das entsprechende Astro Event bekommen wir über die Paper UI. Wie du das Astro Binding installierst und einrichtest erfährst du hier.
1 |
Switch Licht_Aussen_Haupteingang "Haupteingang Aussen" {knx="1/5/24+<11/5/24"} |
Dieses Item können wir nun in unserer Regel verwenden.
1 2 3 4 5 6 7 |
rule "Aussenbeleuchtung Zeitschaltuhr-EIN" when Channel 'astro:sun:37f6fe1d:set#event' triggered START then sendCommand(Licht_Aussen_Haupteingang, ON) end |
In der .rules Datei wird nun eine neue Regel angelegt. Wir sagen der Regel in diesem Fall: „Wenn der Sonnenuntergang laut Astro Binding beginnt, dann schalte das Licht ein.“ Wenn dir das ganze noch zu hell ist kannst du auch andere Werte nutzen wie Abenddämmerung (dusk) oder der Beginn der Nacht (night). Das ist ganz vom persönlichen Geschmack abhängig. Natürlich kann man auch beim Sonnenuntergang bleiben und einen Zeitversatz einbauen z.B. Sonnenuntergang +30 Minuten. Das würde dann so aussehen:
1 2 3 4 5 6 7 8 9 10 |
rule "Aussenbeleuchtung Zeitschaltuhr-EIN" when Channel 'astro:sun:37f6fe1d:set#event' triggered START then createTimer(now.plusMinutes(30)) [| sendCommand(Licht_Aussen_Haupteingang, ON) ] end |
Der Ablauf heißt übersetzt jetzt: „Wenn der Sonnenuntergang laut Astro Binding beginnt, warte 30 Minuten und schalte dann das Licht ein.“
Beleuchtung per Zeitschaltuhr ausschalten
Nachdem wir das Licht erfolgreich angeschaltet haben, möchten wir es auch irgendwann wieder aus bekommen. Ich habe mir hierfür eine feste Zeit gesetzt. Ich lasse das Licht bis 23 Uhr brennen und es soll dann automatisch ausgeschaltet werden. Hierfür nutzen wir eine einfache Zeitschaltuhr. Die Regel lautet dann:
1 2 3 4 5 6 7 |
rule "Aussenbeleuchtung Zeitschaltuhr-AUS" when Time cron "0 0 23 * * ?" then sendCommand(Licht_Aussen_Haupteingang, OFF) end |
Heißt: Wenn 23 Uhr, dann schalte das Licht aus. Auf die Regeln für die Cron Expression gehe ich hier nicht näher ein. Es gibt tolle Tools, mit denen du deine gewünschte Zeit generieren kannst wie beispielsweise CronMaker.
Jetzt erleuchtet sich euer Haus jeden Abend von selbst. Viel Spaß beim testen 🙂
Hi Patrick, danke für den Beitrag. Steige gerade in OpenHab ein.
Nun ist die Regel zum Anschalten recht stur auf Sonnenuntergang ausgelegt. Was ist, wenn der Sonnenuntergang nach dem Ausschalten der Lampe liegt? Dann leuchtet die Lampe die ganze Nacht und wird nicht mehr ausgeschaltet.
Wie würdest Du herangehen, wenn Du bei Dämmerung anschaltest, das aber nur, wenn es vor der Ausschaltzeit liegt? Es müsste minütlich geprüft werden, ob Dämmerung kleiner Ausschaltzeit und erst dann die Beleuchtung angeschaltet werden.
Das selbe Problem ist ja beim Morgengrauen. z.B. sollte früh 5 Uhr, aber nur, wenn es noch nicht hell ist, angeschaltet werden. Ausgeschaltet wird dann, wenn z.B. 7:30 Uhr der letzte das Haus verlassen hat oder vorher, wenn es hell ist.
Danke.
Sirko
Hallo Sirko,
freut mich, dass dir der Beitrag gefällt. Das stimmt. Das Beispiel ist recht einfach gehalten. Ich stand irgendwann vor der gleichen Frage wie du, nachdem morgens irgendwann das Licht noch angeschaltet war. Letztendlich habe ich es mit 2 Regeln gelöst:
Einmal die Regel zum anschalten des Lichts bei Sonnenuntergang. Hier begrenze ich die Anschaltzeit auf 22 Uhr. Sollte der Sonnenuntergang später sein, schaltet sich das Licht nicht mehr an.
rule "Aussenbeleuchtung Sonnenuntergang-EIN"
when
Channel 'astro:sun:local:civilDusk#event' triggered END
then
if (now.getHourOfDay < 22)
{
sendCommand(Licht_Aussen_Haupteingang, ON)
}
end
In der zweiten Regel definiere ich eine feste Ausschaltzeit, nämlich 22:30 Uhr.
rule "Aussenbeleuchtung Zeitschaltuhr-AUS"
when
Time cron "0 30 22 * * ?"
then
if(Licht_Aussen_Haupteingang.state == ON)
{
sendCommand(Licht_Aussen_Haupteingang, OFF)
}
end
Durch den Umstand, dass die Beleuchtung nur bis 22 Uhr Uhr einen Einschaltbefehl bekommen kann, garantiert auch das Ausschalten zur festgeleten Zeit.
Ich hoffe das hilft dir weiter 🙂
Hi Patrick, vielen Dank für die schnelle Antwort auf diesen doch schon etwas älteren Beitrag. Ich merke schon, daß ich viel zu kompliziert denke. 😉
Ja, sie hat mir sehr weiter geholfen.
Danke.
Sehr gerne 🙂
Hallo Patrick, darf ich nochmal nachfragen?
Morgens sieht es etwas anders aus, oder?
Wenn das Licht morgens fünf Uhr angehen soll, aber nur, wenn es noch nicht hell ist, klappt die Syntax nicht:
rule „Hoflicht morgens an“
when
Time cron „0 0 5 1/1 * ?“
then
if ( Channel ‚astro:sun:home:civilDawn#event‘ triggered START )
{
sendCommand(AU_EI_Licht, ON)
}
end
Die Abfrage, ob es Morgengraut mit IF ist nicht erlaubt. Was ist hier falsch? Bzw. wie sieht Deine Regel aus?
Und für das Ausschalten müssten zwei Regeln erstellt werden, oder?
// Hoflicht immer um sieben aus – egal, ob hell oder dunkel
rule „Hoflicht morgens aus“
when
Time cron „0 0 7 1/1 * ? *“
then
if ( AU_EI_Licht.state == ON)
{
sendCommand(AU_EI_Licht, OFF)
}
end
// Hoflicht bei Morgengrauen aus – wenn es z.B. 5:30 Uhr schon hell ist, kann das Licht // auch aus
rule „Hoflicht bei Morgengrauen aus“
when
Channel ‚astro:sun:local:civilDawn#event‘ triggered START
then
if ( AU_EI_Licht.state == ON)
{
sendCommand(AU_EI_Licht, OFF)
}
end
Danke für Deine Bemühungen.
Hallo Sirko,
aber sicher doch. Du kannst im If Teil einer Regel nur einen State abfragen. Das Astro Event löst ja nur einmal aus und sagt „START“ oder „END“. Du könntest Regeln erstellen, die einen Dummy Switch anschaltet, wenn das Morgengrauen beginnt und eine Regel, die die Switch aussschaltet, wenn die Abenddämmerung einsetzt.
Das sähe dann so aus:
Rule „Morgengrauen beginnt“
when
Channel ‚astro:sun:37f6fe1d:set#dawn‘ triggered START
then
Dummyswitch_Tag.sendCommand(ON)
end
Rule „Abenddämmerung beginnt“
when
Channel ‚astro:sun:37f6fe1d:set#set‘ triggered START
then
Dummyswitch_Tag.sendCommand(OFF)
end
Jetzt kannst du mit dem State des Dummyswitch_Tag auch deine Regel befüllen. Am Beispiel von „Hoflicht morgens an“:
rule „Hoflicht morgens an“
when
Time cron „0 0 5 1/1 * ?“
if( Dummyswitch_Tag.state == OFF)
{
AU_EI_Licht.sendCommand(ON)
}
end
Übersetzt heißt das: Schalte um 5 Uhr das Licht an – aber nur, wenn „der Tag“ noch ausgeschaltet ist (also das Morgengrauen noch nicht begonnen hat).
Alternativ kannst du so etwas auch über einen Helligkeitswert steuern, sofern du eine Wettertation hast, die einen LUX Wert liefert.
Ich hoffe das hilft dir weiter 🙂
Das mit der automatischen Lichtausschaltung klingt für mich super, aber verstehe noch nicht ganz wozu der Aufwand? Es gibt doch bereits Steckdosen-Applikationen mit Zeitschalter? 🙂 ist für mich irgendwie intuitiver als es zusätzlich einzuprogrammieren.
Guten Tag,
Habe eigentlich alles wie Beschrieben befolgt und natürlich auf meine Bezeichnungen und Adressen Angepasst (wenn ich nichts übersehen habe)
habe nur Probleme mit dem Astro Binding… habe mir das in der Sitemap anzeigen lassen, allerdings passt die Uhrzeit nicht zu den Daten die ich im Internet finde, ich Vermute dort den Fehler..
Vielen dank für Deine Hilfe 🙂
Wenn du Zeiten angezeigt bekommst, ist das schon einmal ein gutes Zeichen. Bitte schaue einmal in der Paper UI unter Configuration -> Things -> Astro sun data und klicke auf den Stift zum Bearbeiten. Dort musst du unter „Configuration Parameters“ noch die Location in Form von Geokoordinaten eingeben. Diese sieht in etwa so aus: 49.5469688,8.7535823. Natürlich musst du hier die Koordinaten passend zu deinem ort eingeben. Diese findest du bei Google Maps. Einfach den Ort eingeben und dann oben im Browser in der URL nachschauen.
Ich hoffe damit kommst du weiter 🙂
Hallo Marvin,
ich habe den Vormittag genutzt und eine kleine Anleitung zum Thema Astro Binding geschrieben. Diese findest du unter Astro Binding in openHAB installieren
Hallo !
Wo finde ich den Artikel über das einrichten vom Astro Binding?
komme gerade nicht wirklich weiter
Vielen Dank !
Hallo Marvin,
vielen Dank für deinen Hinweis. Der Artikel ist mir durch die Lappen gegangen. Ich versuche kommende Woche einen Artikel zur Einrichtung des Astro Bindings zu verfassen.
Falls du aktuell an einem Punkt nicht weiterkommst, lass es mich wissen. Ich versuche gerne individuell zu helfen.
Viele Grüße
Patrick
Also diese komischen „37f6fe1d“ Einträge habe ich irgendwie nicht.
Hallo Daniel,
bei dir sollte dort natürlich eine andere Zeichenfolge stehen. Was genau dort steht, findest du in der Paper UI unter „Configuration -> Things -> Astro Sun Data“. Ich habe dir einen Screenshot angehängt.
hm das sieht bei mir definitiv anders aus.
http://www.bilder-upload.eu/show.php?file=6814b5-1528971389.jpg
Es sieht aus als wäre die Zeichenfolge in deinem Fall das „home“. Das Binding ist ja auch online. Hast du schon versucht Daten daraus darzustellen?
Hi,
warum hast du eigentlich diese Zeichen „37f6fe1d“ bei –> „astro:sun:37f6fe1d:rise#start ?
Ich erhalte leider im LOG folgende Meldung:
2018-05-06 13:26:31.790 [INFO ] [el.core.internal.ModelRepositoryImpl] – Refreshing model ‚aussenein.rules‘
2018-05-06 13:26:31.802 [WARN ] [el.core.internal.ModelRepositoryImpl] – Configuration model ‚aussenein.rules‘ is either empty or cannot be parsed correctly!
2018-05-06 13:26:31.992 [INFO ] [el.core.internal.ModelRepositoryImpl] – Loading model ‚aussenein.rules‘
Things und items sind wie im Beitrag umgesetzt.
DAnke und Gruß
Robi
Hallo Robi,
die Zeichenfolge gibt dir dein Astro Binding vor. Am besten du schaust in der Paper UI unter „Configuration > Things > Astro sun data“ nach. Dort findest du alle Channels. Alle haben eine gleiche Zeichenfolge, die jeweils von : umschlossen ist.
Diese Meldung erhältst du im Log File, wenn du Änderungen in der .rules speicherst. OpenHAB hat das scheinbar nicht gerne, dass man Dateien im laufenden Betrieb updated. Am besten, wenn du komplett fertig bist einmal neu starten. Solange aber die Meldung „Loading model….“ kommt ist alles gut.
Viele Grüße
Patrick
Weiss man eigentlich wann welches Astro Event auslöst, bzw. wo kann ich das einsehen?
Hi Rene,
du kannst items anlegen, die du dir in der Sitemap anzeigen lässt.
Beispiel item:
DateTime Sonnenaufgang_Zeit „Sonnenaufgang [%1$tH:%1$tM]“ { channel=“astro:sun:37f6fe1d:rise#start“ }
DateTime Sonnenuntergang_Zeit „Sonnenuntergang [%1$tH:%1$tM]“ { channel=“astro:sun:37f6fe1d:set#start“ }
Beispiel Sitemap:
Text item=Sonnenaufgang_Zeit icon=“sun“
Text item=Sonnenuntergang_Zeit icon=“moon“
Welche Astro items es gibt, kannst du in der Paper UI unter „Configuration -> Things -> Astro sun data“ sehen
Danke für deine Antwort, so habe ich das auch gemacht, dachte eventuell, dass es eine Webseite gibt, wo man das einsehen kann. Und siehe da, ich habe auch was gefunden: https://sunrisesunset.de
Gruß René
Super, danke für den Link. Dann kann ich mir das Anlegen von Items zukünftig auch sparen 🙂
Hallo
Super Seite.
Hast du vielleicht ein TUT wie man die Rolladen anhand von openHAB und dem Astro Binding steuern kann?
Gruss
Hallo Oliver,
vielen Dank 🙂
Eine Rollladensteuerung mit dem Astro Binding Binding habe ich auch schon umgesetzt. Ich schreibe dir gerne heute Abend ein kleines Tutorial. Sobald ich fertig bin, sende ich den Link als Kommentar 🙂
Viele Grüße
Patrick
Guten Morgen Oliver,
gestern ist zwar nicht mehr, aber heute Morgen konnte ich den Artikel zur Rollladensteuerung mittels Astro Binding fertigstellen: https://zukunftathome.de/rollladen-automatisch-schalten-mit-openhab/
Falls du Fragen hast, immer her damit.
Viel Spaß bei der Umsetzung 🙂