SUNRISE_EL definiert eine Reihe von Perl-Subroutinen (z.B. zur Nutzung mit at):
sunrise()
- absolute Zeit des nächsten Sonnenaufgangs (+ 24 h, wenn am nächsten Tag)sunset()
- absolute Zeit des nächsten Sonnenuntergangs (+ 24 h, wenn am nächsten Tag)sunrise_rel()
- relative Zeit des nächsten Sonnenaufgangssunset_rel()
- relative Zeit des nächsten Sonnenuntergangssunrise_abs()
- absolute Zeit des nächsten Sonnenaufgangs (ohne Stundenzuschlag)sunset_abs()
- relative Zeit des nächsten Sonnenuntergangs (ohne Stundenzuschlag)sunrise_abs_dat()
- absolute Zeit des nächsten Sonnenaufgangs an einem bestimmten Tagsunset_abs_dat()
- relative Zeit des nächsten Sonnenuntergangs an einem bestimmten Tagisday()
- Tag oder NachtBevor du SUNRISE_EL verwendest, solltest du im global-Device die Werte für latitude (geographische Breite) und longitude (geographische Länge) entsprechend deines Standorts setzen.
Deine geopgragischen Koordinaten kannst du z.B. mit Google Maps bestimmen. Dazu setzt du einen Punkt auf der Karte und findest dann im unteren Bereich der Karte die Angabe für beide Werte. Der erste Wert ist die geographische Breite (latitude); der zweite Wert die geographische Länge (longitude).
Der Default-Wert ist 50.112, 8.686 (Frankfurt am Main).
SUNRISE_EL geht von einem Höhenwinkel der Sonne bezogen zum Horizont, h, von -6° aus. Dieser Wert bedeutet,
dass die Sonne 6° unter dem Horizont steht und Lesen im Freien ohne künstliche Beleuchtung nicht
mehr möglich ist (civil twilight, bürgerliche Dämmerung).
SUNRISE_EL speichert diesen Wert in $defaultaltit
.
Siehe auch perldoc DateTime::Event::Sunrise für weitere Hinweise.
Jede der folgenden Funktionen akzeptiert bis zu vier (bzw. fünf) Parameter in der angegebenen Reihenfolge:
Ausschließlich sunrise_abs_dat()
& sunset_abs_dat()
erwarten als ersten Parameter einen Unix-Timestamp (Unix-Epoche) in Sekunden, der ein Datum spezifiziert. Andere Subroutinen
erwarten diesen Parameter nicht!
Eine der folgenden Zeichenketten, die unterschiedliche Höhenwinkel h definieren und den Wert
von $defaultaltit
verändern.
Erlaubte Werte sind:
REAL
, h = 0°,
CIVIL
, h = -6°,
NAUTIC
, h = -12°,
ASTRONOMIC
, h = -18°,
HORIZON=
, gefolgt von einer positiven oder negativen Zahl ohn Gradzeichen, die einen Höhenwinkel
angibt.
Offset in Sekunden, der zu dem Rückgabewert der Funktion addiert wird.
isday()
ignoriert diesen Wert.
Einen Zeitstempel im Format hh:mm, vor dem keine Aktion ausgeführt werden soll.
isday()
wird (int) 0 zurückliefern, wenn min gesetzt
und der aktuelle Zeitstempel kleiner ist.
Einen Zeitstempel im Format hh:mm, nach dem keine Aktion ausgeführt werden soll.
isday()
wird (int) 0 zurückliefern, wenn max gesetzt
und der aktuelle Zeitstempel größer ist.
sunrise(), sunset()
sunrise_rel(), sunset_rel()
sunrise_abs(), sunset_abs()
sunrise_abs_dat(), sunset_abs()_dat
isday()
sunrise("CIVIL");
Zeitpunkt des Sonnenaufgangs bei einem Höhenwinkel der Sonne von -6° unter dem Horizont (identisch zu sunrise()
).
sunset("HORIZON=-3");
Zeitpunkt des Sonnenuntergangs bei einem Höhenwinkel der Sonne von 3° unter dem Horizont
(zwischen REAL
und CIVIL
).
sunset("HORIZON=1");
Zeitpunkt des Sonnenaufgangs bei einem Höhenwinkel der Sonne von 1° über dem Horizont.
defmod a15 at *{sunset("REAL",0,"18:00","21:00")} set lamp1 on
Schalte lamp1 an, sobald die Sonne unter den Horizont sinkt (h ≤ 0), jedoch nicht vor 18:00 und nicht nach 21:00.
my $date = time() + 7*86400;
sunrise_abs_dat($date);
Berechne den Sonnenaufgang von heute + sieben Tage.
my $date = time() + 7*86400;
sunrise_abs_dat($date, "CIVIL");
Berechne den Sonnenaufgang von heute + sieben Tage mit einem Höhenwinkel h = -6°.
SUNRISE_EL kann nicht explizit als Device definiert werden, sondern bietet die oben genannten Subroutinen.
SUNRISE_EL unterstützt set nicht.
SUNRISE_EL unterstützt get nicht.
Diese Attribute müssen im global-Device gesetzt werden!
latitude
Geographische Breite in Dezimalgrad in Form einesfloat
, z.B49.872471
.
Default-Wert ist 50.112
.
longitude
Geographische Länge in Dezimalgrad in Form einesfloat
, z.B8.650991
.
Default-Wert ist 8.686
.
altitude
Höhenwinkel h der Sonne bezogen auf den Horizont in Grad in Form einer Zahl ohne Gradzeichen.
Default-Wert ist -6
.