Fehler im Script "UnwetterZentrale"

Hi,

ich glaube, beigefügtes Script kommt von Steiner. Dieses Script erzeugt bei mir immer folgenden Fehler:

ScriptError UnwetterZentrale.ips.php ~ Sender TimerEvent ~ Result: <br>|<b> Fatal error </b>: Call to undefined function ImageCreateFromGif() in <b> C:\Programme\IP-Symcon\scripts\UnwetterZentrale.ips.php</b> on line <b>65</b><br />|

Weiss jemand, was falsch läuft?

Hier das Script:

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : UnwetterZentrale.ips.php
Trigger  : 
Interval : 
*/
//Einstellungen in px

$homeX = 270;
$homeY = 126;
$homeRadius = 4;

//Zum testen der X,Y,Radion Angaben auf true setzen und Bild hinerher angucken
//$debug= False;
$debug = False;

//Auf 15 Minuten Takt Synchronizieren

$offset = (integer)date("s") + ((integer)date("i") % 15) * 60;

if($offset != 0) {
   IPS_SetScriptTimer("UnwetterZentrale",910 - $offset);
} else {
    IPS_SetScriptTimer("UnwetterZentrale",910);
}

//Zeit berechnen

$minute=Floor(date("i") / 15) * 15 - 30;
$dateline=mktime(date("H"), $minute, 0, date("m"), date("d"), date("y"));

$year=gmdate("Y", $dateline);
$month=gmdate("m", $dateline);
$day=gmdate("d", $dateline);
$time=gmdate("Hi", $dateline);

$remoteImage = "http://www.wetteronline.de/daten/radar/dsch/$year/$month/$day/$time.gif";
$localImage = IPS_GetKernelDir()."\\radar.gif";

//Radarbild Downloaden

$remoteFile = fopen("$remoteImage",'rb');
$localFile = fopen($localImage,'wb');

if(!$remoteFile || !$localFile) {
   exit; //Error erzeugen!
}

while (!feof($remoteFile)) {

  $chunk = fread($remoteFile,1024);

  fwrite($localFile,$chunk);

}

fclose($localFile);
fclose($remoteFile);

//Radarbild auswerten

$im = ImageCreateFromGIF ($localImage);

//Stärken

$regen[6] = imagecolorresolve  ($im, 255,   0, 255);
$regen[5] = imagecolorresolve  ($im, 153,  51, 153);
$regen[4] = imagecolorresolve  ($im,  28,  126, 217);
$regen[3] = imagecolorresolve  ($im,  42,  170, 255);
$regen[2] = imagecolorresolve  ($im,  83,  210, 255);
$regen[1] = imagecolorresolve  ($im, 170,  255, 255);

//Pixel durchgehen

$regenmenge = 0;

for($x=$homeX-$homeRadius; $x<=$homeX+$homeRadius; $x++) {

   for($y=$homeY-$homeRadius; $y<=$homeY+$homeRadius; $y++) {

      $found = array_search(imagecolorat($im, $x, $y), $regen);

      if(!($found === FALSE)) {

         $regenmenge+=$found;

      }
   }
}


//Im DebugModus Rechteck einzeichnen

if($debug) {

   $schwarz = ImageColorAllocate ($im, 0, 0, 0);

   $rot = ImageColorAllocate ($im, 255, 0, 0);

   imagefilledrectangle($im, $homeX-$homeRadius, $homeY-$homeRadius, $homeX+$homeRadius, $homeY+$homeRadius, $schwarz);
   imagesetpixel($im, $homeX, $homeY, $rot);
   imagegif($im, $localImage);
}

imagedestroy($im);
//Regenmenge der jeweiligen Stärken im Radius aufsummiert
echo $regenmenge;
echo $year;
echo $month;
echo $day;
echo $time;
if ($regenmenge == 0) {
      SetValueString("WE_Unwetter", "kein Regen in Anmarsch");
}
if ($regenmenge >= 1) {
      SetValueString("WE_Unwetter", "Regen naht!");
}
if ($regenmenge >= 1000) {
      SetValueString("WE_Unwetter", "alle Schotten dicht");
}
?>

Bitte um Hilfestellung.

Danke + Gruß

Jimmy

Kann es sein, das da noch GDRAW Lib oder so in die php.ini rein muß? Wenn ja, hat dann jemand den genauen Eintrag und eine Info welche Dateien dafür evtl. benötigt werden?

Hast Du die „php_gd2.dll“ eingebunden ?

siehe http://www.ip-symcon.de/forum/showthread.php?t=1974

speziell der Block „Voraussetzung“

„php_gd2.dll“ - diese gibt es hier: http://de3.php.net/get/php-5.1.5-Win.../from/a/mirror

… und einen Eintrag in die PHP.ini:

bin mir aktuell nicht sicher, ob die PHP Version noch stimmt.

Drei gleichzeitige Antworten :), aber die Suche hätte auch vor der Frage geholfen :O.

Hi,

nach der Neuinstallation von ipshomecontrol und der anschließenden Anpassung meiner php.ini ist der „Extension-Pfad“ plötzlich „C:\Programme\IP-Symcon“ und nicht wie bisher „C:\Programme\IP-Symcon\extensions“, wo auch die php_gd2.dll liegt.

Habe ich jetzt angepasst. Mal schauen, jetzt müsste es funktionieren.

Danke an die Helfer.

Gruß

Jimmy

Hallo ralf,

Drei gleichzeitige Antworten , aber die Suche hätte auch vor der Frage geholfen :O.

die „Suche“ habe ich schon benutzt, aber das Script läuft seit langer Zeit ohne Probleme.

Doch, wenn sich in der php.ini nur eine kleine Schraube dreht…s.o.

Gruß

Jimmy

passt scho ;), couldn’t resist