Hi,
da mir sun_rise und set speziell im Sommer zu frueh ist um die Rolladen zu fahren habe ich mir kurzerhand die Stelle im Programm gesucht die das berechnet und entsprechend erweitert.
Hoffentlich richtig
Von den Werten im Moment wuerde ich sagen passt es.
Grundsaetzliches Problem ist ja das speziell im Winter es nach Sonnenuntergang (-0.833°) noch sehr lange hell ist. Definiert ist die "bürgerliche" Dämmerung (siehe Wikipedia) bis -6° Sonnenstand.
Im Prinzip ist das der Sonnenstand "von dem an" bzw "bis zu dem man" draussen noch eine Zeitung lesen kann.
Also folgendes habe ich eingefuegt so das die normal Funktion erhalten bleibt. Im Prinzip werden zwei neue Werte angelegt sun_civil_rise und sun_civil_set (koennte man evtl noch civil_rise und civil_set draus machen)
Der wesentlich Unterschied ist das ich im SUN_TIME eine weiteres delta ausrechne. Welches nicht wie in Zeile 9 mit dem sin(-0.833°) = -0.0145 rechnet sondern mit dem sin(-6°) = -0.1453.
SUN_TIME (FB)
==========
VAR_OUTPUT
sun_civil_rise : TOD; (* civil twilight for current day in local time *)
sun_civil_set : TOD; (* civil twilight for current day in local time *)
VAR
delta_civil: TIME; (* delta from midday for civil twilight *)
delta_civil := HOUR_TO_TIME(ACOS((-0.1453 - SIN(B) * SIN(DK)) / (COS(B) * COS(DK))) * 3.819718632);
sun_civil_rise := sun_midday - delta_civil;
sun_civil_set := sun_midday + delta_civil;
CALENDAR (STRUCT)
==============
SUN_CIVIL_RISE : TOD; (* civil twilight for current location *)
SUN_CIVIL_SET : TOD; (* civil twilight for current location *)
CALENDAR_CALC (FB)
==============
0035 XCAL.SUN_CIVIL_RISE := sun.sun_civil_rise;
036 XCAL.SUN_CIVIL_SET := sun.sun_civil_set;