Für den Ansatz von firebuster benötigst du nur minimale Skripte, die meiste Logik steuerst du über Ereignisse.
Die Dunkel-Variable würdest du als Boolean-Variable erstellen. Auf dieser Variable erstellst du zwei ausgelöste Ereignisse. Für das „Es ist dunkel“-Ereignis wählst du als auslösende Variable die Helligkeitsvariable aus der Wetterstation. Der Auslöser wäre „Bei Grenzunterschreitung“ und ein passender niedriger Helligkeitswert. Firebuster hatte 100 vorgeschlagen. Nachfolgende Ereignisse benötigst du hier nicht. Im nächsten Schritt kommt ein erstes Mini-Skript. Du möchtest die Variable auf true schalten (denn es ist dunkel). Das machst du mit
SetValue($_IPS['TARGET'], true);
Übersetzt bedeutet das: Setze den Wert der Zielvariablen (Dunkel) auf true.
Das zweite Ereignis erstellst du fast analog. Nur wäre der Auslöser jetzt „Bei Grenzüberschreitung“ und die Grenze entsprechend höher, z.B. 1000. Im Skript müsstest du die Variable dann auf false statt true setzen, da es ja eben nicht dunkel ist.
Für die Freigabe-Variable benutzt du am besten ein Wochenplan-Ereignis. Dieses erstellst du auf der Freigabe-Variablen. Du erstellst dann zwei Aktionen Ein und Aus, welche als Skript wieder das oben beschriebene ist, also
SetValue($_IPS['TARGET'], true); // So für Ein, für Aus das true durch false ersetzen
Das genaue zeitliche Verhalten kannst du dann komfortabel übers Webfront oder die App einrichten.
Damit die Skripte bei reinen SetValue-Aufrufen bleiben, kannst du dann einfach eine dritte Boolean-Variable erstellen, welche den Aktorstatus beschreibt. Auf dieser erstellst du wieder zwei Ereignisse, welche auf Änderungen von Dunkel bzw. Freigabe reagieren. In beiden Fällen setzt du den Wert auf Dunkel UND Freigabe, in PHP ist das:
SetValue($_IPS['TARGET'], GetValue(11111 /* ID von Dunkel */) && GetValue(22222 /* ID von Freigabe */));
Hier müsstest du die IDs noch an deine Variablen anpassen.
Als letztes erstellst du zwei Ereignisse auf dem Gerät, welche auf den Wert false oder true von Aktorstatus reagieren. Hier kannst du dann auch per Dropdown die gewünschten Operationen auswählen.
Man kann sich im ganzen Prozess zwar das ein oder andere Ereignis sparen, dies müsste man dann allerdings mit komplizierteren Skripten ausgleichen. Daher würde ich erstmal diesen Ansatz vorschlagen.