Nicht selten kommt es mal vor, dass sich ein Rechner nach astronomischen Zyklen orientiert. Die zur Berechnung der Osterfeiertage häufig verwendete Gaußsche Osterformel basiert so z.T. auf der Mondgleichung.
Unser Problem stellte sich etwas anders dar: Die LED-Flurbeleuchtung in unserem Flur wird durch den Router geregelt und lief bisher in der Regel 24/7. Mit dem hier vorgestellten Programm haben wir es nun geschafft die Laufzeit auf die Nachstunden zu begrenzen, indem wir die von unserer geografischen Position abhängige Sonnenuntergangszeit nutzen um die Lampen erst bei Dämmerung einzuschalten.
UPDATE: Ich habe nochmal etwas Arbeit in das Tool investiert und es in ein eigenes Projekt ausgelagert. Das neue Tool liefert wesentliche genauere Ergebnisse und mehr Funktionen. Zu finden ist es hier: calcelestial.
Das neue Tool besitzt eine Reihe weiterer nützlicher Funktionen:
usage: sun mode [options]
mode is one of: rise, set, noon, daytime, nighttime
following OPTIONS are available
-t, --twilight use special twilight (nautic|civil|astro)
-d, --date calculcate for specified date (eg. 2011-12-25)
-f, --format output format (eg. %H:%M:%S)
-a, --lat geographical latitude (-90° to 90°)
-o, --lon geographical longitude (-180° to 180°)
-q, --query query geonames.org for geographical position
-z, --zone use timezone for output
-h, --help show this help
-v, --version show version
A combination of --lat, --lon or --query is required!
Beispiele
Die einfachste Variante nutzt das Unix Tool at:
echo ~/bin/enable-lightning | at $(sun set -q Frankfurt -t civil)
Mit folgenden Cronjobs, lässt sich dieses Prinzip auch leicht auf andere Anwendungen übertragen:
0 0 * * * echo 'fnctl stop && fnctl fade -c 000000' | at $(sun rise -q Aachen)
0 0 * * * echo 'fnctl start' | at $(sun set -q Frankfurt)
Mit dem Tool nvram-wakeup, lässt sich so bsp. der Rechner jeden Tag 10 Minuten for Sonnenaufgang automatisch starten ^^:
nvram-wakeup -s $(date -d "-10min $(sun rise -q Berlin)" +%s)
Oder möchtest du deinen Rechner nach Sonnenuntergang automatisch herrunterfahren?
shutdown $(date -d +10min $(src/sun set --lat=50.55 --lon=-6.2) +%H:%M)