Was du beschreibst klingt gut, Öffnen-Zeitplan wird erst ab 6 Uhr aktiviert. Allerdings, wenn der Öffnen-Zeitplan ("Öffne 15 Min. vor Sonnenaufgang") bereits vor 6 Uhr erfüllt war und er aber erst ab 6 Uhr aktiviert wird, dann wird er doch nicht mehr ziehen, oder?
Ok, dein Einwand ist berechtigt, ich muss präziser werden. ( Candid und Flutschi )
Nehmen wir folgende Schedule Jobs.
- Job A enabled Job D bei Sonnenaufgang - immer enabled
- Job B lässt öffnen bei Sonnenaufgang - abends disabled
- Job C enabled Job B um 6 Uhr - immer enabled
- Job D lässt öffnen um 6 Uhr - abends disabled
- Job E sei der Job zum schließen. Dieser kann zusätzlich Job B und Job D disablen.
Dies gelingt, weil ein Job eine Liste an Methoden aufruft, hier also drei Methoden. Diese Liste ist das Datenfeld (Array) "calls", welches mindestens eine Methode enthält. Die Fleißarbeit besteht darin dieses Datenfeld fehlerfrei zusammenzustellen. Die Methode zum enablen/disablen lautet "Schedule.Update" und ist hier dokumentiert: https://shelly-api-docs.shelly.cloud/gen2/Component…#scheduleupdate
Zwei Fälle sind zu unterscheiden. Ich verweigere den Fall Sonnenaufgang genau um 6 Uhr. 
- Sonnenaufgang < 6 Uhr
Job A enabled Job D.
Um 6 Uhr lässt Job D öffnen.
Um 6 Uhr enabled Job C den Job B, was nichts bewirkt, weil der Zeitpunkt von B bereits vergangen ist. - Sonnenaufgang > 6 Uhr
Job A enabled Job D, was nichts bewirkt, weil der Zeitpunkt von D bereits vergangen ist.
Job C enabled Job B.
Bei Sonnenaufgang lässt Job B öffnen.
Auf diese Weise wird um 6 Uhr geöffnet, wenn der Sonnenaufgang vor 6 Uhr liegt.
Liegt der Sonnenaufgang nach 6 Uhr, wird dann erst geöffnet.
Konkret zum disablen der Jobs B und D mit dem Schließen des Rollladens: B mag die id 2, D die id 4 haben. (ungetestet)
Hier nur der "calls" Teil. Die anderen Dinge ließen sich per WebUI einstellen und danach der calls Teil updaten.
"calls": [
{
"method":"Cover.Close",
"params": {
"id":0
}
},
{
"method": "Schedule.Update",
"params": {
"id": 2,
"enable": false
}
},
{
"method": "Schedule.Update",
"params": {
"id": 4,
"enable": false
}
}
]
Alles anzeigen
Die Konstellation dieser 5 Schedule Jobs ist immer gleich. Die Zeiten können jederzeit leicht per WebUI geändert werden.
Zum Fall Sonnenaufgang genau um 6 Uhr:
Hierfür müsste es genügen, einen der beiden 6 Uhr Jobs auf 5:59 Uhr vorzuverlegen. Welcher vorverlegt werden sollte, überlasse ich dem geneigten Leser.
Nachgereicht
Die obigen Schedule Jobs sollen die folgenden id haben: A:1, B:2, C:3, D:4, E:5
Alle Jobs können zunächst per WebUI im Advanced Mode angelegt werden. Anschließend können diese per URL wie folgt abgeändert werden. Die IP-Adressen sind selbstverständlich anzupassen. Die Zeilennummern sind zu ignorieren.
http://192.168.178.53/rpc/Schedule.Update?id=1&calls=[{"method":"Schedule.Update","params":{"id":4,"enable":true}}]
http://192.168.178.53/rpc/Schedule.Update?id=3&calls=[{"method":"Schedule.Update","params":{"id":2,"enable":true}}]
http://192.168.178.53/rpc/Schedule.Update?id=5&calls=[{"method":"Cover.Close","params":{"id":0}},{"method": "Schedule.Update","params":{"id":2,"enable":false}},{"method":"Schedule.Update","params":{"id":4,"enable":false}}]
Diese URLs passen die zuvor in geeigneter Reihenfolge (A ... E) angelegten Schedule Jobs an. Danach können alle Jobs so bleiben. Bei Bedarf können diese in den Zeiten nachträglich per WebUI geändert werden. Dabei nicht die Actions ändern oder löschen!
Das WebUI zeigt bei solchen Jobs, die nicht die vorgesehenen Actions enthalten an: "Call may not work as expected". Dies zeigt nur, dass das WebUI die eingetragenen Calls (=Actions) nicht kennt. Sie funktionieren trotzdem.
Nachgereicht 2
Um solche Methodeneinträge für Schedule Jobs in URLs zu unterstützen, habe ich soeben eine neue Webseite zusammengestellt. Diese ist zu finden unter https://tools.eichelsdoerfer.net/schedjob_methods.html. Nach vorzunehmenden Einträgen ist ein Link anzuklicken, welcher (hoffentlich) die gewünschte Aktion ausführen lässt.
Damit lässt sich bspw. der oben letzte URL zusammenstellen, indem man die IP-Adresse, die id des Schedule Jobs (hier: 5), die drei Methoden (hier: "Cover.Close", zweimal "Schedule.Update") und die Parameter (hier: {"id":0}, {"id":2,"enable":false}, {"id":4,"enable":false}) einträgt. Daraufhin kann man den Text des Links komplett lesen und zwecks Ausführung anklicken.