Deine Rule kann so, wie Du sie hier gepostet hast, nicht funktionieren.
Du hast globale Variablen definiert, welche genau einmal einen Wert zugewiesen bekommen, nämlich wenn die Rules-Datei geladen wird.
Was auch nicht so ganz klar ist: wo werden Deine Jalousien angesteuert?
Grundsätzlich sollten Rules strukturiert sein, im besten Fall läuft es so, dass zuerst alle Werte auf Plausibilität geprüft werden, dann alle Werte in lokale Variablen oder Konstanten übernommen werden, dann alle nötigen Vergleiche getroffen werden, anhand derer dann ein Sollstand festgelegt wird und abschließend wird geprüft, ob der Sollstand bereits erfüllt ist.
Weiterhin gibt es drei Möglichkeiten, wie die Rule handelt. 1. Die Beschattung wird aktiviert, 2. Die Beschattung wird deaktiviert, 3. die Rule tut nichts. der dritte Fall tritt ein, wenn die Jalousien bereits die Sollposition haben oder aber die Position manuell festgelegt wurde.
Wenn ein bestimmter Wert nur einmalig gebraucht wird, kann man natürlich auf eine Variable verzichten.
Beispiel: Die Jalousien sollen nur verfahren werden, wenn die Elevation zwischen h1 und h2 liegt, der Azimut zwischen w1 und w2 liegt sowie die Bewölkung unter p ist. Also fragen wir Elevation, Azimut sowie Bewölkungsgrad ab. JEder der drei Werte kann theoretisch statt einer Zahl auch den Wert NULL oder UNDEF liefern, also muss zunächst eine Prüfung erolgen, ob ein gültige Zahl vorliegt.
An dieser Stelle kommt schon die Frage, was die Rule tun soll, wenn kein gültiger Wert geliefert wird. Soll sie abbrechen? Soll sie in diesem Fall von einem default Wert ausgehen? Soll sie einen Ersatzwert auf anderem Weg gewinnen?
Anschließend (nehmen wir an, die Rule läuft noch und wir haben nun Zahlen zum testen) geht es darum, den Sollwert festzulegen. Der kommt also in eine Variable, wobei der Defaultwert hineingeschrieben wird (in diesem Fall wäre das die aktuelle Position der Jalousie, default tu die Rule nichts).
Nun vergleichen wir auf einhalten der Grenzwerte und setzen gegebenenfalls einen neuen Sollwert. Abschließend muss die Rule nur prüfen, ob die Ist Position von der Soll Position abweicht und gegebenfalls den Steuerbefehl senden.
Diese Struktur hat mehrere Vorteile:
1. Die Rule ist leicht um weitere Bedingungen erweiterbar.
2. Die Rule wird leichter lesbar.
3. Die Rule senden nur dann Steuerbefehle, wenn dies auch wirklich notwendig ist.
Der letzte Punkt ist dabei fast der wichtigste.
So wie beschrieben kann die Rule sich um alle Jalousien des ganzen Hauses kümmern, es müssen lediglich die Sollwerte für die verschiedenen Bereiche getrennt berechnet werden.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet