Zuletzt geändert am 23. August 2011 um 17:45

TCLScript:twilight

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°). Dies sind die gleichen Zeiten, die auch von der CCU als Sonnenauf- und -untergang errechnet werden. Abweichungen können dadurch auftreten, dass die CCU nicht-Schaltjahre in 0.25er Schritten auf den Jahrestag aufaddiert, während das Script den aktuellen Tag berücksichtigt und so den Schalttag gleichmäßig auf 4 Jahre verteilt.
  • 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.

Neu ab Version 1.5:

Frühere Versionen stürzten ab, wenn es keine astronomische Dämmerung mehr gab. Dies tritt im Sommer in unseren Breitengraden auf. Außerdem hatte das Script Probleme mit Untergangszeiten, welche nach Mitternacht lagen. Diese Probleme sind mit der neuen Version behoben. Wenn es keine Dämmerung einer bestimmten Art an der angegebenen Position gibt, dann wird diese in der Dämmerungstabelle mit --:--:-- angezeigt. Weiterhin wird in dem Feld "Dämmerungszeiten" nun der Tag angezeigt, für den die Berechnungen gelten, da u. U. nach Mitternacht noch Zeiten des Vortages gelten können. (Das Script dürfte noch Probleme haben, wenn es keinen Tag gibt, was im Winter in sehr hohen Breitengraden auftreten kann - nicht in Deutschland.)
Bitte berücksichtigen, dass das Script nun nur noch einmalig aufgerufen wird!

Datei:Twilight.tcl

Verwendung

Das Script wird täglich um Mitternacht aufgerufen. Es läuft dann als Hintergrundprozess bis zur astronomischen Abenddämmerung weiter. ab Version 1.5 einmalig beim Start der CCU (als Programm ohne Bedingung) aufgerufen. Es läuft dann im Hintergrund endlos weiter. Dabei werden regelmäßig Debug-Ausgaben auf das Temp-Verzeichnis geschrieben. Dateien älter als 3 Tage werden gelöscht, so dass es nicht zu einem Überlauf kommt. Zur Ausführung ist das Script daemonize.tcl notwendig, weches im lcd_msg-Addon mitgeliefert wird. Wenn das lcd_msg-Addon nicht installiert ist, müsste diese Datei momentan noch von Hand in das CCU-Verzeichnis "/www/addons/lcd_msg" kopiert werden. Das Verzeichnis muss dafür von Hand angelegt werden.

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>
Hinweis: ab Version 1.1 entfällt der frühere 5. Parameter Zeitzone, es wird die aktuelle Zeitzone genommen!

Parameter

  • <Breitengrad> Der Breitengrad (nördlich) für die Sonnenstandsberechnung.
  • <Längengrad> Der Längengrad (östlich) für die Sonnenstandsberechnung.
  • <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.