isNight wäre sinnvoll als Switch, ja.
Was die Trigger für die Rules betrifft, so habe ich diese exakt hingeschrieben

(allerdings aus dem Kopf...)
Der Punkt ist: Du brauchst gar kein Item dafür (wobei es ab openHAB3.4 auch einen Trigger
Time is gibt, mit dem Du Items verwenden kannst, aber der Reihe nach:
Das Astro Binding stellt verschiedene täglich auftretende Ereignisse zur Verfügung, unter anderem die, welche hier interessant sind.
rise,
set: Sonnenauf-/-untergang, genauer: die Sonne passiert die
0° Höhenlinie.
civilDawn,
civilDusk: bürgerliche Dämmerung (Auf- und Untergang), genauer: die Sonne passiert die
-6° Höhenlinie.
nauticDawn,
nauticDusk: nautische Dämmerung (Auf- und Untergang), genauer: die Sonne passiert die
-12° Höhenlinie.
astroDawn,
astroDusk: astronomische Dämmerung (Auf- und Untergang), genauer: die Sonne passiert die
-18° Höhenlinie.
Da die jeweilige Höhenlinie auf der seinen Seite ein unendlich dünner Strich ist, auf der anderen Seite die Sonne aber kein Punkt, sondern ein Kreis, gibt es für die Passage jeweils zwei interessante Zeitpunkte, nämlich Beginn (Sonne berührt die Höhenlinie) und Ende (Sonne löst sich von der Höhenlinie).
Entsprechend gibt es vier Channel für jedes dieser Ereignisse, start, end, duration und
event.
Start und End sind vom Typ DateTime. Sie werden um 0:00 Uhr für den aktuellen Tag berechnet (nun ja, eigentlich alle paar Minuten, aber das Ergebnis der Berechnung ändert sich nur um 0:00 Uhr). Die Duration gibt die Zeitspanne zwischen Start und End an, in Minuten. Diese drei Channel sind vor allem interessant, um den Zeitpunkt anzuzeigen oder damit Berechnungen anzustellen (Rechnen mit DateTime ist eklig, lässt man am besten, wenn es nicht unbedingt sein muss...)
der event Channel ist vom Typ RangeEvent und kann überhaupt nicht mit einem Item verlinkt werden. Er triggert genau in dem Moment, der errechnet wurde, und zwar zu Beginn mit dem Event START und zum Ende mit dem Event END.
Die Rules triggern also auf gar kein Item, sondern auf exakt die angegebenen Channel. Natürlich ist es möglich, dass Dein Thing nicht
local heißt, das wäre aber der einzig variable Teil im Channelnamen, alles andere ist fix.
Ich habe ja oben erwähnt, dass es mit openHAB3.4 auch noch eine andere Variante gibt, das ist, den Trigger
Time is <Item> zu verwenden. Das verwendete Item muss dann vom Typ DateTime sein. Die Rule wird ausgelöst, wenn der im Item gespeicherte Zeitpunkt erreicht wird.
Das ist vielleicht für den Einen oder Anderen besser zu verstehen, aus Softwaresicht ist der Channel Trigger eleganter, weil kein extra Scheduler gebraucht wird.
Time is wird bei jedem changed Event für das gewählte Item intern eine Berechnung vornehmen und im Scheduler einen Eintrag anlegen, der dann die Rule zum berechneten Zeitpunkt auslöst - beim Channel-Trigger wird einfach auf den Bus gestarrt und auf das Event gewartet, das gibt es ohnehin.
Time is ist aber natürlich ein legitimer Weg, auch im Zusammenhang mit Astro, nur halt nicht der "übliche" Weg.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet