Wie kann man berechnen ob Tag oder Nacht ist?

Hallo Gemeinde,

ich habe die Astroskripte (das mit der tollen Grafik und das wo in einem Array Timer gesetzt werden können) bei mir integriert und das funktioniert auch sehr gut. Ich kann z.B. den Rolladen zu Sonnenuntergang herunter fahren.

Jetzt habe ich aber eine Garagentorsteuerung und ich möchte, dass das Licht in der Garage für 10 Minuten eingeschaltet wird, wenn es draußen dunkel ist und das Tor auf geht. Ich dachte das geht über die Ermittlung der Sonnenuntergangs- und Sonnenaufgangszeiten aber ich bekomme es nicht hin.

Ich habe den Sonnenuntergang als String mit einer Uhrzeit drin. Den Sonnenaufgang hab ich auch in gleicher Form, wenn der auch für den aktuellen Tag gilt und nicht für den nächsten aber so groß ist die Abweichung von einem auf den anderen Tag nicht. Ich bekomme es aber nicht hin daraus den Zeitraum für die Nacht bzw den Tag zu ermitteln.

Wenn ich z.B. Time() auswerte bekomme ich eine Zahl inkl des Datums (10-stellig). Wenn ich die beiden Stringvariablen auswerte bekomme ich aber nur eine Zahl für eine Zeit ohne Datum, die dann auch nur 5-stellig ist.

Kann mir jemand einen Tipp geben?

mws

Skripttechnisch habe ich keine Ahnung, aber Du könntest doch mit dem Astro… Abends eine Variable „Nacht“ auf true setzen und diese abfragen.

Gruß
Bruno

Das ist ja auch eine coole Idee!

Aber ich wüsste schon gerne, wie man das mttels Skript berechnen kann.

Probiere mal dies:

<?
   $longitude = "xx.yy";                              		// Longitude (geografische Länge)
   $latitude = "yy.xx";                               		// Latitude (geografische Breite)
   $uhrzeit = date("H:i");                            		// aktuelle Uhrzeit

// Sommer-/Winterzeit zu GMT
if (date("I") == 1) $daylight = 2;       // Sommerzeit
if (date("I") == 0) $daylight = 1;       // Winterzeit

// *** Sonnenaufgang des heutigen Tages berechnen ***
$sunrise = date(date_sunrise(time(), SUNFUNCS_RET_STRING, $latitude, $longitude, 90.8333, $daylight));
echo "Sonnenaufgang um ",date($sunrise)," Uhr"."
";

// *** Sonnenuntergang des heutigen Tages berechnen ***
$sunset = date(date_sunset(time(), SUNFUNCS_RET_STRING, $latitude, $longitude, 90.8333, $daylight));
echo "Sonnenuntergang um ",date($sunset)," Uhr"."
";

// String-Variablen schreiben für Sonnenauf- u. untergang
SetValueString(11101, $sunrise);
SetValueString(11102, $sunset);

// Bool-Variable für Tag/Nacht setzen
if ( ($uhrzeit < $sunrise) or ($uhrzeit > $sunset) )
{SetValueBoolean(12345 , false);}
else
{SetValueBoolean(12345 , true);}
?>

…und zyklisch, nach Bedarf triggern…

Ah super danke, ich hab es mir wohl zu schwer gemacht. Wenn ich das Datum als String hole (also mit GetValue(12345)) dann hab ich das Gleiche wie mit Deiner Funktion raus! :loveips: