Bewegungsmelder - Lampen - automatisch ausschalten

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 243
Wohnort: Darmstadt

Re: Bewegungsmelder - Lampen - automatisch ausschalten

Beitrag von udo1toni »

Nein, da gibt es noch grundsätzliches Missverstehen.

Der Channel astro:sun:local:civilDusk#start enthält Datum und Uhrzeit. Er wird einmal am Tag einen anderen Wert erhalten, aber keinesfalls zu dem Zeitpunkt, der in diesem Channel steht, sondern eher so um 00:00:00 Uhr... ;)

Du benötigst stattdessen Channel vom Typ RangeEvent. Wenn Du in der GUI die Channel des Thing sun:local anschaust, wirst Du diese Channel auch finden, allerdings wirst Du auch feststellen, dass es nicht möglich ist, diese Channel mit einem Item zu verlinken.
Warum ist das so? Nun, ein Item hält immer einen Status. Dieser Channel hat aber 86399,998 Sekunden am Tag den Status NULL.
Lediglich zwei Millisekunden am Tag gibt es andere Status, nämlich einmal den Status START, eben zu Beginn der einsetzenden bürgerlichen Dämmerung und END zum Ende der einsetzenden bürgerlichen Dämmerung.
Und NEIN, END bedeutet nicht, dass dann die Sonne aufgeht. Die bürgerliche Dämmerung ist der Moment, wenn die Sonne unter die -6 ° Höhenlinie wandert (nautisch -12 °, astronomisch -18 °). Da die Sonne einen relativ großen Durchmesser hat, gibt es einen Zeitpunkt, bei dem sie beginnt, die Höhenlinie zu berühren, und einen Zeitpunkt, bei dem sie aufhört, die Höhenlinie zu berühren.

Deshalb muss die Rule zwingend auf Channel triggered auslösen, keinesfalls auf irgendwelche Items.

Es gibt pro Event vier Channel, Start, End, Duration und Range Event. Die ersten beiden enthalten den passenden Zeitstempel, der dritte Channel beschreibt den zeitlichen Abstand zwischen Start und End, der vierte Channel triggert die Rules.

Und noch ein Detail, weil auch darüber gerne gestolpert wird... Bis auf Duration kann jeder dieser Channel noch konfiguriert werden, und zwar mit einem Offset und Ober- wie Untergrenze. Damit kann man also z.B. dafür sorgen, dass die Rollläden immer zwischen 6:00 Uhr und 8:00 Uhr aufgehen, gewöhnlich 10 Minuten nach Sonnenaufgang, es sei denn, damit wird eine der Grenzzeiten überschritten. Man kann diese Einstellungen in allen drei Channels unabhängig setzen, evtl möchte man eine Anzeige in der Oberfläche, wann der Laden fährt, dann müssen die Werte identisch gesetzt werden. Vielleicht möchte man aber auch den tatsächlichen Zeitpunkt angezeigt bekommen, dann darf der DateTime Channel nicht konfiguriert werden. Für den Trigger muss immer der RangeEvent Channel konfiguriert werden.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

SkyWalker2_D
Beiträge: 28
Registriert: 8. Feb 2022 19:36
Answers: 0

Re: Bewegungsmelder - Lampen - automatisch ausschalten

Beitrag von SkyWalker2_D »

Vielen Dank udo1toni!

Mühsam ernährt sich das Eichhörnchen. Ich weiß Eure Geduld und Hilfe zu schätzen! Ich werde wohl noch viel lernen (müssen), hoffe aber, ich bekomme zumindest die, aus Eurer Sicht sicherlich, einfachen Regeln und Abläufe in den Griff.

Ich habe meine Regel mal umgestellt auf civilDusk#event und warte auf den Sonnenuntergang!

SkyWalker2_D
Beiträge: 28
Registriert: 8. Feb 2022 19:36
Answers: 0

Re: Bewegungsmelder - Lampen - automatisch ausschalten

Beitrag von SkyWalker2_D »

Jetzt bemerke ich aber gleich die nächste Hürde!
Der Bewegungsmelder der Aussenlampen schaltet jetzt schon obwohl noch Tag.

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 243
Wohnort: Darmstadt

Re: Bewegungsmelder - Lampen - automatisch ausschalten

Beitrag von udo1toni »

Der Trick besteht darin, ein Switch Item Nacht zu definieren. Dieses Item wird von zwei Rules "geschaltet". Gewöhnlich wird man dafür Ereignisse wie Sonnenuntergang und Sonnenaufgang nehmen, oder eben eine der zur Verfügung stehenden Dämmerungen.
Die beiden Rules schalten ausschließlich das Item Nacht, sonst nichts. (super bequem über die UI zu erzeugen).
Eine dritte Rule kümmert sich darum, die Bewegung zum Steuern des Lichts zu verwenden. In dieser Rule wird aber zusätzlich abgefragt, ob das Nacht Item nun auf ON oder OFF steht.

Sinnvollerweise nutzt man aber hier nicht das "but only if" Feature der UI Rules, sondern man nutzt Code (ob nun DSL, javaScript oder Blockly...). Dann kann man das Licht nur unter der Voraussetzung anschalten, dass es auch "Nacht" ist, andererseits aber ausschalten, auch wenn es schon Tag ist.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

SkyWalker2_D
Beiträge: 28
Registriert: 8. Feb 2022 19:36
Answers: 0

Re: Bewegungsmelder - Lampen - automatisch ausschalten

Beitrag von SkyWalker2_D »

Moin!

Ich habe es mal versucht über die GUI. Ein Item "Tag" und ein Item "Nacht" jeweils als Switch. Bei Nacht wird aktuell 'Null' angezeigt, bei "`Tag" = 'On!
Dann habe ich Regeln erstellt. When "CivilDawn" triggerd dann sende 'On' an Item "Tag" und 'Off' an Item "Nacht" und eine zweite andersherum.

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 243
Wohnort: Darmstadt

Re: Bewegungsmelder - Lampen - automatisch ausschalten

Beitrag von udo1toni »

Du brauchst keine zwei Items, das ist ein logischer Zustand, entweder es ist Nacht, oder es ist Tag, die Information ist unnötig redundant.
Man kann if(Nacht.state == ON) fragen oder if(Nacht.state == OFF) oder auch if(Nacht.state != ON) (wobei das natürlich etwas anderes ist, weil das Item mehr als zwei Zustände annehmen kann).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten