Ah, Du nutzt bestimmte Sonnenstände für die Beschattung

Also brauchst Du nur eine zusätzliche Bedingung, die Du einfach mit einbaust. Meine Empfehlung ist aber, die Rule leicht anders zu gestalten:
Code: Alles auswählen
rule "azimuth Sonnenstand West"
when
Item PositionAzimuth changed
then
val nPos = (PositionAzimuth.state as Number).floatValue // Azimuth
val nWolken = Bewoelkung.state as Number // Bewölkungsgrad
var iSoll = OFF // Default Befehl
if(nPos > 241 && nPos < 242 && nWolken < 40)
iSoll = ON
if(EgBeschattungWest.state != iSoll) {
EgBeschattungWest.sendCommand(iSoll.toString)
logInfo("Azimuth","Rollo {} (Azimuth {}°, Wolken {}%)",(if(iSoll == ON) "zu" else "auf"), nPos, nWolken)
}
end
Die Nutzung von lokalen Konstanten macht hier die Rule zum einen leichter lesbar, zum zweiten wird der Status nur einmal ausgelesen, was Taktzyklen spart. Die Bewölkung habe ich pro forma mal mit rein geschrieben.
Der größte Unterschied zu Deiner Rule ist aber, dass der Steuerbefehl nur dann gesendet wird, wenn dies auch wirklich notwendig ist. Bei Deiner version wird alle 10 Minuten (wenn das der Refresh Intervall für Astro ist) ein Befehl OFF gesendet, außer wenn die Sonne passend steht, dann wird alt immer ON gesendet.
Das logInfo() verwendet zusätzlich einen ternären Operator um die Meldung entsprechend auszugeben.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet