Regel Sonnenaufgang mit Zeitverzögerung

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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

Re: Regel Sonnenaufgang mit Zeitverzögerung

Beitrag von udo1toni »

Wenn Du mehrere Rules mit identischem Trigger hast, ist es besser, diese Rules zu einer Rule zusammenzufassen. openHAB kann maximal fünf Rules zeitgleich ausführen. Wenn Du schon allein drei Rules hast, die immer zeitgleich triggern, steigt die Gefahr, dass andere Rules nicht ausgeführt werden können, stark an.
Wenn Du innerhalb einer Rule einen Timer erzeugst, läuft der Code dieser Rule ohne Verzögerung weiter. Es wird nur das Lambda gemeinsam mit dem Startzeitpunkt an den Scheduler übertragen, der im Gegenzug einen Zeiger zurück liefert. Diesen kann man in einer Timer Variablen speichern und hat damit einen Handler, mit dem man den Timer abbrechen oder auch neu planen kann (solange der Timer noch nicht abgelaufen und die Ausführung des Lambdas beendet ist).
Wenn Du also zu drei verschiedenen Zeitpunkten, die sich fix auf den Sonnenaufgang beziehen, Läden verfahren willst, schreibst Du eine Rule, die drei Timer anlegt. Erzeuge dazu drei Timer Variablen, für jeden Timer eine.

Alternativ kannst Du auch eine Statemachine bauen. Die Statemachine nutzt einen Timer und einen Zähler. Beim Anlegen der Statemachine wird der Timer auf den ersten Zeitpunkt gesetzt und der Zähler auf den Startwert gesetzt. Wird der Code ausgeführt, zählt das Lambda den Zähler um eins nach oben, führt die passenden Befehle aus und rescheduled den Timer zum Abschluss auf den nächsten Ausführungszeitpunkt. Dabei können bei jedem Durchlauf beliebige Befehle ausgeführt werden, auch der gewählte Zeitpunkt ist komplett wahlfrei, nur muss er nach dem aktuellen Zeitpunkt liegen (Zeitmaschine geht leider immer noch nicht).

Wenn Du die Itemnamen geschickt wählst, kannst Du mit einer Rule, einer Gruppe und zwei Triggern alles erschlagen. Dabei läuft das Ganze dann so ab:
Die Rule triggert sowohl auf Sonnenauf- wie Sonnenuntergang. In der Rule wird geprüft, ob es nach 12 Uhr mittags ist (darüber kann man zuverlässig entscheiden, ob die Sonne steigt oder sinkt).
Es wird ein passender Timer angelegt. Im Lambda wird die Gruppe durchlaufen, wobei ein Filter die Itemnamen auf passende Items einschränkt (z.B. ost, sued oder west als Bestandteil des Namens) und diese Items dann passend verfährt, sowie zum Abschluss den nächsten Schritt vorbereitet. Eine Rule, eine Gruppe, ein Schrittzähler.
Mit etwas Aufwand könnte man sogar noch individuelle Höhen für die Läden vorgeben, obwohl die Steuerung über eine Gruppe läuft. Man muss dafür die Sollhöhen in einer Art Tabelle vorhalten (z.B. mit einem Array oder einer Hash Table), hier kann man sich natürlich die Frage stellen, ob sich der Aufwand dafür lohnt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
Joe
Beiträge: 200
Registriert: 10. Okt 2018 12:22
Answers: 0
Wohnort: bei Mannheim

Re: Regel Sonnenaufgang mit Zeitverzögerung

Beitrag von Joe »

Hi Udo,
wow danke für die Antwort (wenn ich auch nicht alles zu 100% verstanden habe) Ich bin leider in der ganzen Sache nicht so fit wie die meisten hier.
Ich denke jedoch ich habe den wichtigsten Teil verstanden. Hatte gestern bereits versucht mit dem Sonnenwinkel zu arbeiten, der natürlich effektiver in Bezug auf die Frage (wann genau scheint die Sonne in das betr. Fenster und in welchem Zeitfenster muss der Rollo auch welcher Pos. sein) ist.
Hier bin ich jedoch daran gescheitert, dass ich eine Regel benötige in der ich festlegen muss, dass wenn der Winkel MORGENS zwischen 25.1° und 50.3°liegt der Rollo sich auf 20% öffnet.
Das mit dem öffnen auf x% beim Winkel von 25.1° habe ich hinbekommen, allerdings reagiert der Rollo dann bei jeder Änderung des Winkels.
Ich komme mit den ganzen Befehlen leider noch nicht so zurecht. Aktuell lerne ich aus der Modifikation von vorhanden Regeln die ich mir auf meine Bedürfnisse anpasse.
Solltest Du zufällig eine passende Regel haben bin ich für jede Hilfe dankbar.
VG
Joe

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Regel Sonnenaufgang mit Zeitverzögerung

Beitrag von PeterA »

Joe,

dann schau Dir doch mal mein Verschattungsprojekt an:

viewtopic.php?f=8&t=2193

Vielleicht hilft es dir weiter.

Gruß Peter
- OpenHab 2.4
#PWRUP

Benutzeravatar
Joe
Beiträge: 200
Registriert: 10. Okt 2018 12:22
Answers: 0
Wohnort: bei Mannheim

Re: Regel Sonnenaufgang mit Zeitverzögerung

Beitrag von Joe »

Hi Peter,
ja danke ich werde es mal die Woche ein mein OH einbinden, schaut eigentlich genau nach dem aus was ich benötige.
Vielen Dank
Joe

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

Re: Regel Sonnenaufgang mit Zeitverzögerung

Beitrag von udo1toni »

Das Problem bei solchen mehrfachen Abhängigkeiten ist meist, dass die Prüfungen unvollständig sind.
1. Bedingung: aktuelle Uhrzeit innerhalb bestimmter Grenzen
2. Bedingung: Azimut innerhalb eines bestimmten Bereihs
3. Bedingung: Elevation innerhalb eines bestimmten Bereichs
4. Bedingung: gewünschte Rollladenposition nicht erreicht

Beim Erreichen bestimmter Werte muss die Rule triggern, aber jedes Mal müssen alle Bedingungen überprüft werden, ob sie alle erfüllt sind, insbesondere die 4. Bedingung ;)
Manchmal kann es auch hilfreich sein, ein Hilfsitem zu verwenden. Das Hilfsitem wird vielleicht immer wieder mit dem gleichen Wert getriggert, eine weitere Rule reagiert dann aber nur auf changed, so dass der Rollladen nur einmal verfahren wird.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten