Linux Shell Script – Sonnenaufgang / Sonnenuntergang bestimmen

Für die Webcam vom Verein war ich die letzten Tage auf der Suche, möglichst einfach bestimmen zu können, ob wir im momentan Tag oder Nacht haben. Dazu sollte auch ein gewisses Offset einstellbar sein um auch Bilder bei Dämmerung aufzunehmen.
Das ganze sollte dann als Shell-Script Zyklisch aufgerufen werden.

Datenquelle

Zu Hilfe wird hierfür der Yahoo-Apis für Wetter genommen. Unter www.weather.yahoo.com Sucht ihr eure gewünschte Stadt und Notiert euch die Idee, die im URL ausgelöst wird:

wetter_id

Hier bei Frankfurt wäre es die 650272

Script

Nun der Script: Diesen irgendwo ablegen und ausführbar machen!

LOCATION=650272

SUNSET12H=`curl -s http://weather.yahooapis.com/forecastrss?w=${LOCATION}|grep astronomy|awk -F" '{print $4}'`
SUNSET24H=`date --date="${SUNSET12H}" +%T`
sunset=$(date --date "${SUNSET24H}" +%s)  #+%R

SUNRISE12H=`curl -s http://weather.yahooapis.com/forecastrss?w=${LOCATION}|grep astronomy|awk -F" '{print $2}'`
SUNRISE24H=`date --date="${SUNRISE12H}" +%T`
sunrise=$(date --date "${SUNRISE24H}" +%s) 

if [ $sunrise -le $now ] && [ $sunset -ge $now ]; 
then
	echo "Es ist Tag!"
        //DO-SOMETHING
else
	echo "Es ist Nacht!"
fi

Wer in sehr Nördlichen oder Südlichen Orten wohnt, sollte sich noch eine Abfrage überlegen die den Code abfangen, wenn es im Sommer gar nicht dunkel wird! 😉

Offset

Wenn das Ereignis schon zur Dämmerung ausgeführt werden soll, ist natürlich ein Offset notwendig! Dies kann in Linux sehr einfach erstellt werden.

sunrise=$(date --date "${SUNRISE24H} 90 minutes ago" +%s) 
//Von der Zeit 90.Minuten subtrahieren

Am besten hier ein wenig ausprobieren!

Ergebnis

Siehe da! Die Linux Maschine weiß nun ob es Tag oder Nacht ist.

wetter_res

 

Da die meisten Raspberry Pi’s etc. meist eh mit dem Internet verbunden sind, ist dies eine einfache Möglichkeit. Alternativen per Geo. Berechnung wären selbstverständlich auch möglich! Wer Ideen hat, kann natürlich auch eine Stufe drauf setzten! Hier ein paar Ideen:

http://lexikon.astronomie.info/zeitgleichung/


Kommentare

2 Antworten zu „Linux Shell Script – Sonnenaufgang / Sonnenuntergang bestimmen“

  1. Avatar von R.brieke
    R.brieke

    Geht nicht

    1. Avatar von R.brieke
      R.brieke

      ./sonnenaufgang.sh: command substitution: line 3: unexpected EOF while looking for matching `“‚
      ./sonnenaufgang.sh: command substitution: line 4: syntax error: unexpected end of file
      ./sonnenaufgang.sh: command substitution: line 7: unexpected EOF while looking for matching `“‚
      ./sonnenaufgang.sh: command substitution: line 8: syntax error: unexpected end of file
      ./sonnenaufgang.sh: line 11: [: 1490482800: unary operator expected
      Es ist Nacht!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert