Sonnenstands-Funktionen

LoxBerry XL implementiert Funktionen, um die Sonnenzeiten sowie den Sonnenstand (Winkel) auszugeben. Dafür gibt es die Funktion $sun.

Die Sonnenstandsfunktion muss zu Beginn mit den GPS-Koordinaten und der gewünschten Zeit initialisiert werden. Danach können verschiedene Zeiten und die Sonnenstandswinkel abgerufen werden. Deine GPS-Koordinaten werden nicht an LoxBerry gesendet. 

Die Berechnungen basieren auf die Bibliothek https://github.com/gregseth/suncalc-php, wobei LoxBerry XL die Daten für uns aufbereitet.

<?php
require_once "loxberry_XL.php";
 
// Die Zeit kann, wie bei allen Funktionen, in verschiedenen Formaten übergeben werden. Mit time() wird die aktuelle Zeit übergeben.
$sun->gps( time(), 38.268660, -85.521844 );
 
// Es kann voreingestellt werden, ob die Rückgabe einer Zeit als Minuten des Tages ('minofday'=Standard), als Zeit HH:mm ('time') oder epoch ('epoch') zurückgegeben werden soll.
$sun->format('time');
 
// Nun fragen wir einige Werte der Sonne ab:
echo "Sonnenaufgang um " . $sun->sunTimes('sunrise') . "\n";
echo "Sonnenhöchststand um " . $sun->sunTimes('solarNoon') . "\n";
echo "Sonnenuntergang um " . $sun->sunTimes('sunset') . "\n";
echo "Abenddämmerung um " . $sun->sunTimes('dusk') . "\n";
echo "Morgendämmerung um " . $sun->sunTimes('dawn') . "\n";
 
// Sonnenwinkel (Angaben in Grad, Nordazimut)
echo "Himmelsrichtung: " . $sun->sunPosition('azimuth');
echo "Sonnenhöhe: " . $sun->sunPosition('altitude');
 
// Um Berechnungen mehrerer Zeiten oder Tage durchzuführen, kann man die Zeit jederzeit, ohne wieder die GPS-Koordinaten angeben zu müssen:
$sun->gps( '24.03.2020 12:00' );
echo "Himmelsrichtung: " . $sun->sunPosition('azimuth');
$sun->gps( '24.03.2020 13:00' );
echo "Himmelsrichtung: " . $sun->sunPosition('azimuth');

$sun->format( $format )

Damit kann die Ausgabe von Zeiten voreingestellt werden.

Parameter:

  • 'minofday' → Die Minuten seit Mitternacht
  • 'time' → Ausgabe im Format 'HH:mm', z.B. 13:50
  • 'epoch' → Unix Timestamp

$sun->sunTimes( $typeoftime ) $sun->sunTimes( $typeoftime, $format )

Dies liefert die Zeiten für den aktuellen Tag. Das Format kann optional direkt mitgegeben werden und hat dann Vorrang gegenüber dem voreingestellten Format.

Property Description
sunrise sunrise (top edge of the sun appears on the horizon)
sunriseEnd sunrise ends (bottom edge of the sun touches the horizon)
goldenHourEndmorning golden hour (soft light, best time for photography) ends
solarNoon solar noon (sun is in the highest position)
goldenHour evening golden hour starts
sunsetStart sunset starts (bottom edge of the sun touches the horizon)
sunset sunset (sun disappears below the horizon, evening civil twilight starts)
dusk dusk (evening nautical twilight starts)
nauticalDusk nautical dusk (evening astronomical twilight starts)
night night starts (dark enough for astronomical observations)
nadir nadir (darkest moment of the night, sun is in the lowest position)
nightEnd night ends (morning astronomical twilight starts)
nauticalDawn nautical dawn (morning nautical twilight starts)
dawn dawn (morning nautical twilight ends, morning civil twilight starts)

$sun->sunPosition($sunpostype)

Die Sonnenhöhe und der Sonnenwinkel.

Parameter sunpostype:

  • 'azimuth' → Die Himmelsrichtung der Sonne (Nordazimut). 0° ist Norden, 180° ist Süden.
  • 'altitude' → Die Sonnenhöhe. 90° bedeutet, die Sonne steht direkt über uns. 0° bedeutet, die Sonne steht auf einer Horizontale mit uns.

$sun->gps( $time, $lat, $lng ) $sun->gps( $time  )

Damit muss initial die Position und Zeit/Datum gesetzt werden. Nachdem einmal die Koordinaten gesetzt wurden, ist die Angabe optional.

Parameter time kann sein:

  • null → die aktuelle Zeit
  • $epoch → Ein epoch Zeitstempel
  • 'tt.mm.yyyy hh:mm' → Die Angabe eines Datums und der Zeit im gezeigten Format

Für die sunTimes ist die Uhrzeit nicht relevant, sondern nur das Datum. Für die sunPosition ist natürlich beides relevant.