Abfallkalender für den Rems-Murr-Kreis

Hallo erstmal zusammen,

ich bin seit 2 Jahren begeisterter User von IP-Symcon und habe immer „schweigend“ in diesem Forum mitgelesen und Dank euer aller Ideen und Anleitungen sehr viel umsetzen können.

Nun möchte ich dem Forum auch mal etwas „zurückgeben“ und habe das Abfallkalender-Script geändert für den Rems-Murr-Kreis.

Ich bin kein PHP-Guru, aber ich denke, der ein oder andere kann sicher etwas damit anfangen :slight_smile:

Noch eine Anmerkung: die Auswahl, welche Abfuhrtermine angezeigt werden sollen, funktioniert leider nicht so, wie ich mir das vorstelle. Deswegen hole ich einfach alle Termine und mache dann die, die ich nicht benötige, im Objektbaum unsichtbar.

Für Verbesserungen oder Kritik bin ich immer offen…


<?

include("snoopy.class.php");

$snoopy = new Snoopy;
$snoopy->referer="http://www.awg-rems-murr.de/generator/abfallkalender.php5";


$submit_url = "http://www.awg-rems-murr.de/generator/abfallkalender.php5";
$submit_vars["kalender"] = "7"; // Gemeindekreis
$submit_vars["step1"] = ">> weiter  "; // Weiter

$submit_vars["ortschaft"] = "25"; // 25=Sulzbach
$submit_vars["step2"] =">> weiter "; // Weiter
$starttime = time();
$endtime = strtotime("+1 week");

$submit_vars["a_tag"] = date("j",$starttime);
$submit_vars["a_monat"] = date("n",$starttime);
$submit_vars["a_jahr"] = date("Y",$starttime);
$submit_vars["e_tag"] = date("j",$endtime);
$submit_vars["e_monat"] = date("n",$endtime);
$submit_vars["e_jahr"] = date("Y",$endtime);
$submit_vars["alle_abfallfraktionen"] = "1";
$submit_vars["rest_2w"] = "1";
$submit_vars["rest_4w"] = "1";
$submit_vars["container_1w"] = "1";
$submit_vars["container_2w"] = "1";
$submit_vars["bio"] = "2";
$submit_vars["papier"] = "3";
$submit_vars["gelber_sack"] = "4";
$submit_vars["christbaeume"] = "7";
$submit_vars["gruengut"] = "8";

$submit_vars["auswahl"] = "Abfuhrtermine anzeigen";

//Daten holen
$snoopy->submit($submit_url,$submit_vars);

$buffer = $snoopy->results;

$buffer = stristr($buffer, "kalenderdatenBody");

$content=$buffer;
$pattern = "!<div class=\"kalendertag\">(.*)</div>!isU";
preg_match_all($pattern, $content, $result);
$result = $result[1];
$anzahl = count($result)-1;
$Bezeichnung = "";

for ($zaehler = 0; $zaehler <= $anzahl; $zaehler++)
	{
	//print_r($result[$zaehler]);
	$buffer = stristr($buffer,$result[$zaehler]);
	$buffer = stristr($buffer, "> ");

	$Abfallart = str_replace(" ","",substr($buffer, 1, strpos($buffer, "<br />")-1));

	$Abfallart = str_replace("</span>","§",$Abfallart);

	$Abfallart = str_replace("ä","ä",$Abfallart);
    $Abfallart = str_replace("Ä","Ä",$Abfallart);
    $Abfallart = str_replace("ö","ö",$Abfallart);
    $Abfallart = str_replace("Ö","Ö",$Abfallart);
    $Abfallart = str_replace("ü","ü",$Abfallart);
    $Abfallart = str_replace("Ü","Ü",$Abfallart);
    $Abfallart = str_replace("ß","ß",$Abfallart);

	$Bezeichnung = $Abfallart;
	$Bezeichnung = strip_tags($Bezeichnung);

	$Bezeichnung = str_replace("§","<br>",$Bezeichnung);
 		//echo $Bezeichnung;
	$arr = explode("<br>",$Bezeichnung);
	$Gesplittet = "";
  	for($i=0; $i<sizeof($arr); $i++)
  		{
   		$Gesplittet = $arr[$i];
   		If ($Gesplittet == "")
   		{
   		}
   		else
   		{
   		SetValueString (CreateVariableByName($IPS_SELF, strip_tags($Gesplittet), 3), $result[$zaehler]);


function CreateVariableByName($id, $name, $type)
{
   global $IPS_SELF;
   $name = str_replace("§","",$name);
   
	$vid = @IPS_GetVariableIDByName($name, 24226 /*[.Abfallkalender]*/);
	//IPS_DeleteVariable($vid);
   if($vid===false) {
      $vid = IPS_CreateVariable($type);
      IPS_SetParent($vid, 24226 /*[.Abfallkalender]*/);
      IPS_SetName($vid, $name);
      IPS_SetInfo($vid, "This Variable was created by Script #$IPS_SELF");
      IPS_SetVariableCustomProfile($vid, "~String");
   }
   return $vid;
}

function DateAdd($interval,$nummer,$date)
   {
   $date=$date+($interval*$nummer);
   return date("d/m/Y",$date);
   }
?>

Halllo Grebi,

super!! Komme auch aus WN, werde dein Skript gleich am WE einmal testen und dir dann Rückmeldung geben.

Wow,

es gibt hier ja doch Schwaben :slight_smile:

Viele Grüße aus AA

Ich werde mein Müllscript auch mal posten… ist aber nicht so schön. Die GOA im Ostalbkreis stellt die Termine nur auf einer blöden unstrukturierten Webseite zur Verfügung.

Viele Grüße
Chris

Falls Interesse für ein Skript des Bodenseekreis besteht, kann ich auch gern eins posten. Denn: wir Schwaben können alles, außer Hochdeutsch… :smiley:

Hallo,

hier wär auch noch ein Schwabe (gerade so - das Nachbargrundstück in der Schwabentorstraße war ursprünglich gelbfüßig :smiley: ), der ein Script für den Enzkreis posten kann. Das basiert aber auf Mails, die vom Abfallentsorger kommen.

Wenn Bedarf besteht, bitte kurzes Feedback.

Viele Grüße

Thomas

hi und wie wäre es mit Heilbronn/Neckar haben wir da auch schon ein script ???

grüßle:p

Wie kommst du denn an die Daten? Gibts ne Webseite oder so?
Dann schau ich mir das mal an.

Viele Grüße
Chris

Hallo,

das Script scheint unvollständig zu sein. Es sieht so aus, als ob vor der Funktionsdefinition von CreateVariableByName eine ganze Ecke fehlt.
Ich wäre an der vollständigen Fassung interessiert.

Gruß
Stephan

Gilt das Angebot noch, mit aktuellen Daten für 2011 ?? :eek:

Gruß
Bruno

Hallo Grebi,

danke für dein Script mit dem Terminkalender das ich schon seit längerem verwende.
Es scheint so das die Seite von AWG geändert wurde und das Script das Datum nicht mehr übernimmt und in die Variable reinschreibt.

Könntest du das Script evtl. richtigstellen, das wär voll nett weil ich bekomm das selbst nicht hin

Danke

Kann mir jemand anderes vielleicht weiterhelfen?
Warum werden die Termine nicht mehr angezeigt, wieso ist der Body immer leer.
Eigentlich müsste es doch funktionieren, weil Abholbezirk usw. richtig ausgefüllt wird?

<?
include("snoopy.class.php");

$snoopy = new Snoopy;
$snoopy->referer="http://www.awg-rems-murr.de/generator/abfallkalender.php5";


$submit_url = "http://www.awg-rems-murr.de/generator/abfallkalender.php5";
$submit_vars["Abfuhrbezirk"] = "12"; // Gemeindekreis
$submit_vars["step1"] = "> > weiter"; // Weiter

$submit_vars["Ortschaft"] = "42"; // 25=Sulzbach
$submit_vars["step2"] =">> weiter"; // Weiter
$starttime = time();
$endtime = strtotime("+1 week");
//$submit_vars["DatumBis"] = date("d.m.Y", $starttime);
//$submit_vars["a_tag"] = date("j",$starttime);
//$submit_vars["a_monat"] = date("n",$starttime);
//$submit_vars["a_jahr"] = date("Y",$starttime);
//$submit_vars["e_tag"] = date("j",$endtime);
//$submit_vars["e_monat"] = date("n",$endtime);
//$submit_vars["e_jahr"] = date("Y",$endtime);
$submit_vars["alle_abfallfraktionen"] = "0";
$submit_vars["rest_2w"] = "1";
$submit_vars["rest_4w"] = "1";
$submit_vars["container_1w"] = "1";
$submit_vars["container_2w"] = "1";
$submit_vars["bio"] = "2";
$submit_vars["papier"] = "3";
$submit_vars["gelber_sack"] = "4";
$submit_vars["christbaeume"] = "7";
$submit_vars["gruengut"] = "8";

$submit_vars["auswahl"] = "Abfuhrtermine anzeigen";
//$submit_vars["step3"] ="Abfuhrtermine anzeigen"; // Weiter
//Daten holen
$snoopy->submit($submit_url,$submit_vars);
print_r($snoopy);
$buffer = $snoopy->results;
//print_r($buffer);
$buffer = stristr($buffer, "kalenderdatenBody");

$content=$buffer;
$pattern = "!<div class=\"kalendertag\">(.*)</div>!isU";
preg_match_all($pattern, $content, $result);
$result = $result[1];
$anzahl = count($result)-1;
$Bezeichnung = "";

for ($zaehler = 0; $zaehler <= $anzahl; $zaehler++)
    {
    //print_r($result[$zaehler]);
    $buffer = stristr($buffer,$result[$zaehler]);
    $buffer = stristr($buffer, "> ");

    $Abfallart = str_replace(" ","",substr($buffer, 1, strpos($buffer, "<br />")-1));

    $Abfallart = str_replace("</span>","§",$Abfallart);

    $Abfallart = str_replace("ä","ä",$Abfallart);
    $Abfallart = str_replace("Ä","Ä",$Abfallart);
    $Abfallart = str_replace("ö","ö",$Abfallart);
    $Abfallart = str_replace("Ö","Ö",$Abfallart);
    $Abfallart = str_replace("ü","ü",$Abfallart);
    $Abfallart = str_replace("Ü","Ü",$Abfallart);
    $Abfallart = str_replace("ß","ß",$Abfallart);

    $Bezeichnung = $Abfallart;
    $Bezeichnung = strip_tags($Bezeichnung);

    $Bezeichnung = str_replace("§","<br>",$Bezeichnung);
         //echo $Bezeichnung;
    $arr = explode("<br>",$Bezeichnung);
    $Gesplittet = "";
      for($i=0; $i<sizeof($arr); $i++)
          {
           $Gesplittet = $arr[$i];
           If ($Gesplittet == "")
           {
           }
           else
           {
           SetValueString (CreateVariableByName($IPS_SELF, strip_tags($Gesplittet), 3), $result[$zaehler]);
             }
			  }
	 }

function CreateVariableByName($id, $name, $type)
{
   global $IPS_SELF;
   $name = str_replace("§","",$name);

    $vid = @IPS_GetVariableIDByName($name, 57744 /*[Mülltonnen]*/ );
    //IPS_DeleteVariable($vid);
   if($vid===false) {
      $vid = IPS_CreateVariable($type);
      IPS_SetParent($vid, 57744 /*[Mülltonnen]*/ );
      IPS_SetName($vid, $name);
      IPS_SetInfo($vid, "This Variable was created by Script #$IPS_SELF");
      IPS_SetVariableCustomProfile($vid, "~String");
   }
   return $vid;
}

function DateAdd($interval,$nummer,$date)
   {
   $date=$date+($interval*$nummer);
   return date("d/m/Y",$date);
   }

?>