Wenn man nur die Mülltermine braucht, ansonsten aber auf die Kalenderfunktion verzichten kann, könnte man die Termine für die Leerung auch einfach in vier String-Variablen schreiben. Ich habe das mal in einem Skript versucht. Dabei habe ich berücksichtigt, dass an einem Tag auch mal mehrere Tonnen geleert werden. In dem Skript erzeuge ich jeweils für die Leerung heute und morgen max. vier Variablen, die sozusagen die Stellpätze an der Straße repräsentieren. Diese Variablen kann ich dann in IPSView leicht verwenden, um die Mülltonnen anzuzeigen. Wenn man nur eine Tonne pro Tag zulässt, würde sich das Skript natürlich deutlich vereinfachen.
Bei der manuellen Eingabe der Leerungstermine ist wichtig, dass das Datum in der Form „TT.MM.JJJJ“ mit führender Null geschrieben wird, also z.B „06.01.2014|20.01.2014|03.02.2014|17.02.2014|…“
Gruß
Peter
<?
$max_stellplaetze=4; // wieviel Mülltonnen werden max. an einem Tag geleert?
for($i=0;$i<$max_stellplaetze;$i++) // Mit 0 initialisieren
{
$id_tonne_heute[$i] = CreateVariablebyname(34207, "Muelltonne".$i."_heute", 1);
$id_tonne_morgen[$i] = CreateVariablebyname(34207, "Muelltonne".$i."_morgen", 1);
SetValue($id_tonne_heute[$i],0);
SetValue($id_tonne_morgen[$i],0);
}
// in diesen String-Variablen steht jeweils die Liste alle Leerungstermine
// die Termine müssen Anfang des Jahres einmalig manuell in die Variablen geschrieben werden.
$restmuell = GetValue(44396);
$biotonne = GetValue(14679);
$blauetonne = GetValue(49786);
$gelbersack = GetValue(23708);
$tomorrow = date("d.m.Y", strtotime("+1 day"));
$today = date("d.m.Y");
$rm_tage = explode("|", $restmuell);
$bio_tage = explode("|",$biotonne);
$bt_tage = explode("|", $blauetonne);
$gs_tage = explode("|", $gelbersack);
// Welche Tonnen werden heute geleert?
$stellplatz=0;
if(array_search ( $today , $rm_tage) !== FALSE) // heute Restmüll?
SetValue($id_tonne_heute[$stellplatz++],1);
if(array_search ( $today , $bio_tage) !== FALSE) // heute Biomüll?
SetValue($id_tonne_heute[$stellplatz++],2);
if(array_search ( $today , $bt_tage) !== FALSE) // heute Biomüll?
SetValue($id_tonne_heute[$stellplatz++],3);
if(array_search ( $today , $gs_tage) !== FALSE) // heute Blaue Tonne?
SetValue($id_tonne_heute[$stellplatz],4);
//Welche Tonnen werden morgen geleert?
$stellplatz=0;
if(array_search ( $tomorrow , $rm_tage) !== FALSE) // morgen Restmüll?
SetValue($id_tonne_morgen[$stellplatz++],1);
if(array_search ( $tomorrow , $bio_tage) !== FALSE) // morgen Biomüll?
SetValue($id_tonne_morgen[$stellplatz++],2);
if(array_search ( $tomorrow , $bt_tage) !== FALSE) // morgen Blaue Tonne?
SetValue($id_tonne_morgen[$stellplatz++],3);
if(array_search ( $tomorrow , $gs_tage) !== FALSE) // morgen Gelber Sack?
SetValue($id_tonne_morgen[$stellplatz],4);
// -------------------------------------------------
function CreateVariableByName($id, $name, $type, $profile = "")
{
global $IPS_SELF;
$vid = @IPS_GetVariableIDByName($name, $id);
if($vid === false)
{
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $name);
IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF");
if($profile !== "") { IPS_SetVariableCustomProfile($vid, $profile); }
}
return $vid;
}
?>