Ich bin seit einiger Zeit "stiller" Mitleser und absoluter Anfänger im Hinblick auf OpenHab und die Erstellung von Rules. Ich habe schon einige Tipps und Hinweise hier in diesem Forum finden können, die mich im Hinblick auf meine Heimautomatisierung weiter gebracht haben.
Besten Dank für die tolle Unterstützung.
Nun habe ich jedoch ein Problem mit meiner Beschattung und hoffe auf eure Hilfe

Mein Anliegen ist folgendes:
Ich möchte eine sogenannte Lüftungsposition bei meinen Raffstores bzw. Jalousien verwirklichen.
Wenn die Raffstores komplett geschlossen sind und ich öffne das dazugehörige Fenster, so sollen die Raffstores sich wenden und in die Lüftungsposition fahren. Nach dem Schließen des Fensters, sollen sich dann auch die Raffstores wieder komplett schließen.
Nun zu meinem Problem:
Ich kann bei den Raffstores keine Lüftungsposition programmieren und dann direkt über OpenHab anfahren.
Das heißt die Raffstores kennen nur folgende Stati zuverlässig:
100 - komplett geschlossen (Endlage unten)
0 - komplett geöffnet (Endlage oben)
50 - irgend eine Position zwischen geschlossen und geöffnet
Weiters habe ich zur Steuerung nur folgende Befehle:
UP - zum vollständigen Öffnen
DOWN - zum vollständigen Schließen
STOP - zum Stoppen der Raffstores / Jalousien
Meine Rules für Öffnen und schließen sehen nun wie folgt aus und funktionieren soweit auch einwandfrei:
Öffnen:
Code: Alles auswählen
// Lüftungsautomatik - öffnen
rule "Lüftungsautomatik - öffnen"
when
Item KU_Vio changed from OFF to ON
then
if (Rollershutter3.state == 100 && KU_Vio.state == ON) {
Rollershutter3.sendCommand(UP)
createTimer(now.plusSeconds(3)) [|
Rollershutter3.sendCommand(STOP)
]
}
end
Code: Alles auswählen
// Lüftungsautomatik - schließen
rule "Lüftungsautomatik - schließen"
when
Item KU_Vio changed from ON to OFF
then
if (Rollershutter3.state == 50 && KU_Vio.state == OFF) {
Rollershutter3.sendCommand(DOWN)
}
end
Soweit alles gut und es funktioniert grundsätzlich auch einwandfrei...
Jedoch jetzt zum eigentlichen Problem.
Wie in der Rule ersichtlich frage ich beim Schließen der Raffstores nur ab, ob die Raffstores vorab in der Position (50) sind - also irgendwo zwischen geöffnet und geschlossen.
Ich habe leider keinen anderen Anhaltspunkt. Durch das Öffnen der Raffstores durch die Rule oben fahren sie ja nach oben, stoppen nach drei Sekunden und befinden sich dann somit in Position (50).
Ich möchte jedoch sicherstellen, dass die Raffstores sich nur dann wieder schließen, wenn sie auch NUR durch die oben beschriebene Rule sich geöffnet haben.
Beispiel:
Ich öffne das Fenster - Rule zum Öffnen wird ausgeführt und die Raffstores fahren für 3 Sekunden nach oben. Anschließend schließe ich das Fenster wieder und die Raffstores fahren wieder nach unten => alles Perfekt!
Aber Angenommen ich fahre jetzt tagsüber die Raffstores händisch in irgend eine Zwischenposition (nicht zum Lüften) und öffne anschließend das Fenster, so würden bei meiner Regel nach dem Schließen des Fensters wieder die Raffstores nach unten fahren, was ich aber eigentlich gar nicht möchte.
Der Vorgang sollte nur geschehen, wenn die Raffstores durch die Öffnen-Regel vorab geöffnet wurden.
Gibt es in OpenHab eine Möglichkeit soetwas zu programmieren?
Meine Gedanken waren nämlich folgende:
Vielleicht kann man nach dem Ablauf der Öffnen-Regel irgendwo eine Variable beschreiben, die den Zustand definiert (Bsp.: geöffnet durch Öffnen-Regel), und diese Variable dann bei der Schließen-Regel vorab abfragen, sodas diese nur dann durchgeführt wird, wenn vorab durch die Öffnen-Regel geöffnet wurde. Bei jeder anderen Betätigung müsste diese Variable wieder gelöscht werden.
Ich hab leider keine Ahnung wie man so etwas umsetzen könnte.
Vielleicht denke ich aber auch einfach nur viel zu kompliziert und es gibt eine noch einfachere Variante das Problem zu lösen...
Ich hoffe auch, dass ich den Sachverhalt zumindest ein bisschen verständlich darstellen konnte... war für mich nicht leicht zu beschreiben

Bin auf jeden Fall für jeden Hinweis dankbar...
Beste Grüße
Christian