Astro Binding, alle Trigger in einer Rule

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
udo1toni
Beiträge: 13985
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Astro Binding, alle Trigger in einer Rule

Beitrag von udo1toni »

Was gibt es denn da für Irritationen? Selbstverständlich hat JEDES Event einen Beginn und ein Ende.

Ich hab das zwar schon in diversen Threads beschrieben, wiederhole es aber sehr gerne auch hier...

Es gibt für jedes Ereignis,, welches täglich auftritt vier Channel.
  • start, Typ DateTime: Der Zeitpunkt des Events START als Datum/Uhrzeit
  • end, Typ DateTime: DerZeitpunkt des Events END als Datum/Uhrzeit
  • duration, Typ Number:Time: Die Dauer des Events (Abstand zwischen START und END)
  • event, Typ Range Event (keine Verknüpfung mit Items): triggert START bei START und END bei END
Dies gilt für die Events, welche über die Elevation definiert sind:
  • rise/set ->
  • civilDawn/civilDusk -> -6°
  • nauticDawn/nauticDusk -> -12°
  • astroDawn/astroDusk -> -18°
  • noon/night -> Max/Min des Tages (jahreszeitabhängige Werte)
  • morningNight/eveningNight -> unklar, aber ebenfalls definiert (evtl. -3°?)
Warum gibt es nun jeweils einen Beginn und ein Ende?

EDIT: Achtung, es folgt eine Menge Unsinn :) ich habe das unten richtiggestellt...

Wie erwähnt geht es um die Elevation der Sonne, also den Höhenwinkel. Erreicht dieser die entsprechende gedachte Höhenlinie, so tritt das Ereignis ein.
Nun ist die betreffende Höhenlinie eine gedachte Kreislinie um die Erde, die "unendlich" schmal ist. Auf der anderen Seite haben wir die Sonne, welche kein unendlich kleiner Punkt ist, sondern ein "Kreis" mit einem ganz ordentlichen Durchmesser.
Es gibt also für jedes Ereignis der Liste oben einen Zeitpunkt, zu dem die Sonne beginnt, die Höhenlinie zu berühren, und einen weiteren Zeitpunkt, an dem diese Berührung endet. Beim Sonnenunter-/-aufgang hat man das sogar vor Augen, die Sonne berührt den Horizont und versinkt, bis sie nicht mehr zu sehen ist bzw. man sieht die ersten direkten Lichtstrahlen und die Sonne löst sich einige Minuten später vom Horizont.

Der Verlauf der Sonne über die Elevation ist sinusförmig (einfach mal die Elevation per analyze anschauen), die Dauer des Ereignisses ist vor allem davon abhängig, wie steil der Sinus beim Schneiden der Höhenlinie gerade verläuft. Dies ist abhängig von der Position auf der Erde und der Jahreszeit.

Außerdem gibt es noch das event daylight, welches anders als die oben genannten Channel tatsächlich als START und END die jeweiligen Zeitpunkte für Tagesbeginn und Tagesende angibt. Im Gegensatz zu allen anderen Range Event Channels kann man bei daylight nichts konfigurieren (mutmaßlich, weil man earliest/latest und offset jeweils doppelt konfigurieren müsste) Deshalb ist daylight auch nur bedingt als Trigger geeignet (eben wenn man ohne weitere Einflussmöglichkeit die betreffenden Zeitpunkte als Trigger verwenden möchte)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Oekel
Beiträge: 142
Registriert: 28. Aug 2021 10:34
Answers: 0

Re: Astro Binding, alle Trigger in einer Rule

Beitrag von Oekel »

Hey Udo,

danke für deine (sehr eingängige) Erläuterung.
Wäre aber nicht notwendig gewesen, da ich dies soweit alles bereits verstanden/nachgelesen hatte.
Die Irritation kam lediglich zustande, da in meinem konkreten Fall scheinbar zwei "END" nicht feuern.
Wenn es dafür technisch keine Erklärung gibt, muss ich auf Buglevel suchen, wo sich dort der Fehler eingeschlichen haben kann, obwohl es ja ein und dieselbe Regel ist, die von jeglichen Events getriggert wird und diese dann rausschreibt.

...Seltsam

Benutzeravatar
udo1toni
Beiträge: 13985
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Astro Binding, alle Trigger in einer Rule

Beitrag von udo1toni »

Ja, das kommt davon, wenn man nicht ganz nach unten scrollt... Sorry dafür.

Ich habe hier mal mein Log ausgewertet (reicht allerdings nur knapp drei Tage zurück...) und kann bestätigen, dass die beiden Channel night und eveningNight nur jeweils START liefern. Bliebe zu klären, ob die betreffenden DateTime Channel dann auch tatsächlich leer sind.

Viel schlimmer ist aber, dass ich festellen musste, dass sich die Zeiten teilweise überlappen.
Nun habe ich ja an verschiedenen Stellen die Trigger verschoben... das heißt, bevor ich hier einen Issue aufmache, muss ich mal ein paar Tage in meiner Testumgebung ein passendes "nacktes" Thing einrichten, um Trigger ohne Grenzwerte und Offsets zu erhalten.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
udo1toni
Beiträge: 13985
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Astro Binding, alle Trigger in einer Rule

Beitrag von udo1toni »

So, nachdem ich etwas getestet habe, habe ich mir noch mal die Definitionen angeschaut, und ich habe die ganze Zeit Unsinn erzählt :)

Für rise/set stimmt die Definition (Sonne beginnt, den Horizont zu berühren und Sonne löst sich vom Horizont), bei den drei Dämmerungsstufen bürgerlich/nautisch/astronomisch ist es aber so, dass die Sonne sich innerhalb der jeweiligen Bereiche bewegt, bei bürgerlich also 0° bis -6°, für nautisch -6° bis -12°, für astronomisch -12° bis -18°. Ab unterhalb -18° ist es Nacht. Das heißt, es gibt jeweils zwei Trigger, die zeitgleich auftreten, z.B. civilDusk END und nauticDusk START.
Entsprechend sind die Zeitspannen dann für jeweils 6° Höhenunterschied angegeben, nicht für die Passage einer Höhenlinie.
daylight sendet zeitgleich mit rise END sein START und zeitgleich mit set START sein END.

Da man alle Channel einzeln parametrieren kann, gilt diese Beschreibung natürlich nur für unparametrierte Channel :)

Aber auch in meinem Testsystem (wo nichts weiter parametriert ist, bis auf meinen Standort) triggern eveningNight und night ebenfalls nur START. Ich denke, das ist ein Fehler :)
Und jetzt gibt es dazu auch ein Issue: https://github.com/openhab/openhab-addons/issues/16565

Kleine Ergänzung: Eventuell hängt dieses Problem damit zusammen, dass der END Trigger hier vor dem START Trigger auftritt (bzw. es wird jeweils zu Beginn des Tages der Trigger für den nächsten Tag berechnet. Wenn dann der END-Trigger ausgelöst wird, wurde bereits der nächste END-Trigger (am nächsten Tag) berechnet.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Oekel
Beiträge: 142
Registriert: 28. Aug 2021 10:34
Answers: 0

Re: Astro Binding, alle Trigger in einer Rule

Beitrag von Oekel »

Sehr gut. Danke fürs Prüfen und erstellen des Tickets.
Dann hätte meine dumme Frage ja noch einen allgemeinen Nutzen.

Liebe Grüße David

Benutzeravatar
udo1toni
Beiträge: 13985
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Astro Binding, alle Trigger in einer Rule

Beitrag von udo1toni »

War ja keine dumme Frage :) und irgendjemand muss halt als erstes über einen Fehler stolpern, sonst bleibt er unbemerkt...
Also andersrum wird ein Schuh draus, danke für den Hinweis und Deine Hartnäckigkeit :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten