TCLScript:twilight

Aus Wikimatic
Wechseln zu: Navigation, Suche

Beschreibung

Die Datei berechnet verschiedene Dämmerungswerte im Sonnenaufgang und -untergang und schreibt die Werte in Systemvariablen. Folgende Dämmerungen werden berechnet (siehe folgender Link auf die Zeitgleichung und den Parameter künstlicher Horizont):

  • allgemein definierten Dämmerungswerte
    • astronomische Dämmerung (totale Finsternis, Horizont -18°)
    • nautische Dämmerung (Licht am Horizont sichtbar, Horizont -12°)
    • bürgerliche Dämmerung (Sonne unterm Horizont, aber ausreichend Licht um sich draußen zu bewegen, Horizont -6°)
    • "standard" Dämmerung (Sonnenauf- und -untergang, Horizont -50/60° = -0,833°)
  • spezielle, selbst definierbare Dämmerungswerte
    • "Indoor" Dämmerung (künstliche Beleuchtung in der Wohnung nötig, Horizont > -0,833)
    • "Wetterabhängige" Dämmerung (künstliche Beleuchtung, welche vom Bewölkungsgrad abhängig früher oder später ein- oder ausgeschaltet werden kann. Die Wetterdaten hierzu werden online kurz vor erreichen des entsprechenden Zeitpunktes abgerufen. Als Server wird der Wetterdaten-Dienst von google verwendet. Der wetterabhängige Horizont wird auf Basis des künstlichen Indoor-Horizonts und der aktuellen Wetterbedingung folgendermaßen Berechnet (Wetterbedingung und entsprechender Aufschlag auf den Horizont):
  • "Klar": +0,2
  • "Meist sonnig": +1,5
  • "Teils sonnig": +3,0
  • Alle anderen: +5,0

Die Formel zur Berechnung des Sonnenstandes basiert auf dieser Zeitgleichung.

Datei:Twilight.tcl

Verwendung

Das Script wird täglich um Mitternacht aufgerufen. Es läuft dann als Hintergrundprozess bis zur astronomischen Abenddämmerung weiter.

Folgende Systemvariablen werden benötigt:

Variablen-Name Variablentyp Minimal Maximal Maßeinheit Beispiel-Wert
Dämmerung Werteliste Aufgang Bürgerlich
Tageslicht Zahl 0 6 Helligkeit 0ANBSIW 3 Helligkeit 0ANBSIW
Dämmerungszeiten Zeichenkette
  • Dämmerung muss mit folgender Werteliste initialisiert werden: Nacht;Aufgang Astronomisch;Aufgang Nautisch;Aufgang Bürgerlich;Aufgang;Aufgang Indoor;Aufgang Wetterabhängig;Untergang Wetterabhängig;Untergang Indoor;Untergang;Untergang Bürgerlich;Untergang Nautisch;Untergang Astronomisch
    • Der Wert wird zu Beginn (beim Aufgang) und zum Ende (beim Untergang) einer Dämmerung weitergeschaltet. Hiermit lassen sich sehr einfach Aktionen mit einzelnen Dämmerungen verknüpfen.
  • Tageslicht enthält einen Zahlenwert der die Menge an Tageslicht repräsentiert, daher die fiktive Einheit Helligkeit. Der Rest der Einheit dient als Merkzettel an dem man ablesen kann, welchen Dämmerungswerten die Helligkeit entspricht: 0 = 0 (Nacht), 1 = Astronomisch, 2 = Nautisch etc. Hiermit lassen sich Schaltvorgänge von Lampen an verschiene Tageslicht-Helligkeitsgrade knüpfen.
  • Dämmerungszeiten dient lediglich der Information und lässt sich nicht (sinnvoll) in Programmen verwenden. Hier wird tabellarisch aufgelistet, welche Dämmerungen an welchen Zeitpunkten stattfinden. Der letzte Dämmerungsübergang wird fett dargestellt. Die Dämmerungszeiten der wetterabhängigen Dämmerung werden zunächst kursiv dargestellt (das sind sozusagen vorläufige Extremwerte) und nach dem Abruf des Wetterberichts (wenn die Zeiten also feststehen) normal dargestellt.

Aufruf

tclsh twilight.tcl <Breitengrad> <Längengrad> <künstlicher Horizont> <PLZ> <Zeitzone>

Parameter

  • <Breitengrad> Der Breitengrad für die Sonnenstandsberechnung.
  • <Längengrad> Der Längengrad für die Sonnenstandsberechnung. Das Minuszeichen ist in der Formel berücksichtigt, also hier den positiven Wert eingeben
  • <künstlicher Horizont> Der Winkel des virtuellen Horizonts (siehe Zeitgleichung) für die Indoor-Berechnung, hier sollte zunächst 2 verwendet werden (höhere Werte = Zeiten liegen näher an Mittag).
  • <PLZ> die (deutsche) Postleitzahl, für die die Wetterdaten abgerufen werden sollen.
  • <Zeitzone> Die Zeitzone der Berechnung laut Zeitformel. Weil der Tcl-code die Zeitzone selbständig berücksichtigt, muss hier im Winter eine 0 stehen. Das Script schaltet nicht automatisch auf Sommerzeit um, das muss man über diesen Parameter erledigen!