Script zum testen. IPS V2 !!!
Ausführen mit Execute, die Variablen werden angelegt.
Zeile 48 bis 51 wird automatisch übernommen.
Alles andere muss über Anpassung per Hand vorgenommen werden.
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : SUNRISE_SUNSET.ips.php
Trigger :
Interval : 60 Sekunden
*/
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
switch ($IPS_SENDER)
{
case "Execute": // ************** Initialisierung *****************************
$CatID = IPS_CreateCategory(); // Kategorie anlegen
IPS_SetName($CatID, "SunriseSunset"); // Kategorie benennen
$VarID = IPS_CreateVariable(1); IPS_SetName($VarID, "SUNRISE_OFFSET"); IPS_SetParent($VarID, $CatID);
$VarID = IPS_CreateVariable(1); IPS_SetName($VarID, "SUNSET_OFFSET"); IPS_SetParent($VarID, $CatID);
$VarID = IPS_CreateVariable(3); IPS_SetName($VarID, "SUNRISE"); IPS_SetParent($VarID, $CatID);
$VarID = IPS_CreateVariable(3); IPS_SetName($VarID, "SUNSET"); IPS_SetParent($VarID, $CatID);
$VarID = IPS_CreateVariable(0); IPS_SetName($VarID, "DAYLIGHT"); IPS_SetParent($VarID, $CatID);
$VarID = IPS_CreateVariable(3); IPS_SetName($VarID, "TIME"); IPS_SetParent($VarID, $CatID);
$VarID = IPS_CreateVariable(3); IPS_SetName($VarID, "WEEKDAY"); IPS_SetParent($VarID, $CatID);
$VarID = IPS_CreateVariable(1); IPS_SetName($VarID, "DAY"); IPS_SetParent($VarID, $CatID);
$VarID = IPS_CreateVariable(3); IPS_SetName($VarID, "MONTH"); IPS_SetParent($VarID, $CatID);
$VarID = IPS_CreateVariable(1); IPS_SetName($VarID, "YEAR"); IPS_SetParent($VarID, $CatID);
$VarID = IPS_CreateVariable(3); IPS_SetName($VarID, "TIME_STRING"); IPS_SetParent($VarID, $CatID);
break;
}
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
// Sonnenauf Sonnenuntergang berechnen
$longitude = 9.0;
$latitude = 50.25;
$day_offset = (GetValue(57376 /*[SunriseSunset\Sonnenauf Sonnenuntergang\SUNRISE_OFFSET]*/ )+(date("I")*60))/60+1;
$night_offset = (GetValue(27507 /*[SunriseSunset\Sonnenauf Sonnenuntergang\SUNSET_OFFSET]*/ )+(date("I")*60))/60+1;
$var_sunrise = date(date_sunrise(time(), SUNFUNCS_RET_STRING, $latitude, $longitude, 90, $day_offset));
$var_sunset = date(date_sunset(time(), SUNFUNCS_RET_STRING, $latitude, $longitude, 90, $night_offset));
$VarID = IPS_GetVariableID("SUNRISE");
SetValue($VarID, $var_sunrise);
$VarID = IPS_GetVariableID("SUNSET");
SetValue($VarID, $var_sunset);
//DAYLIGHT festlegen
if (date("H:i") == $var_sunrise) {
SetValue(15438 /*[SunriseSunset\Sonnenauf Sonnenuntergang\DAYLIGHT]*/ , true);
}
if (date("H:i") == $var_sunset) {
SetValue(15438 /*[SunriseSunset\Sonnenauf Sonnenuntergang\DAYLIGHT]*/ , false);
}
//Zeit ausgeben
SetValue(54188 /*[SunriseSunset\Sonnenauf Sonnenuntergang\TIME]*/ , date("H:i"));
// Wochentag in deutsch ausgeben
$Tag = Date("w");
//$Tag1 = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
$Tag1 = array("So","Mo","Di","Mi","Do","Fr","Sa");
SetValue(38024 /*[SunriseSunset\Sonnenauf Sonnenuntergang\WEEKDAY]*/ , $Tag1[$Tag]);
// Tag
SetValue(32843 /*[SunriseSunset\Sonnenauf Sonnenuntergang\DAY]*/ , (INT)date("j"));
//Monat in deutsch ausgeben
$Monat = Date("n");
$Monat1 = array("","Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
SetValue(13541 /*[SunriseSunset\Sonnenauf Sonnenuntergang\MONTH]*/ , $Monat1[$Monat]);
//Jahr ausgeben
SetValue(13903 /*[SunriseSunset\Sonnenauf Sonnenuntergang\YEAR]*/ , (INT)date("Y"));
//Timestring schreiben
//SetValue(50347 /*[SunriseSunset\Sonnenauf Sonnenuntergang\TIME_STRING]*/,$Tag1[$Tag]." ".date("j").".".$Monat1[$Monat]." ".date("Y")." ".date("H:i"));
SetValue(50347 /*[SunriseSunset\Sonnenauf Sonnenuntergang\TIME_STRING]*/ ,date("j").".".$Monat1[$Monat]." ".date("Y"));
?>