Wetterwarnung

Hallo,

liegt es vielleicht an der Zeile, ist rot nicht ($im, 255, 0, 0)?
Kann sein das ich falsch liege, hab das script nur schnell überflogen.

Schöne Grüße
Thomas

Genau das hatte ich auch vermutet.

Daraufhin habe ich mal

echo $im;

ausgeführt und als Ergebnis „Ressource #7“ bekommen, was mir nun gar nichts gesagt hat.

Aber vielleicht hat Steiner, der Urvater des Scripts, ja eine Lösung parat.

@Steiner: Bitte um Hilfe.

Gruß

Jimmy

Hallo,

also es sollte an den 255, 255, 0 liegen, ist ja auch klar bei Rot findet er nichts und gibt 0 aus, muß einfach 255, 0, 0 heißen, wurde wie ich gesehen habe auch schon früher im Thema geschrieben das man das ändern soll.

Schöne Grüße
Thomas

Hallo zusamme,

bin neu hier mit der ganzen Materie und habe heute versucht mal das Wetterwarungs-Script zum laufen zu kriegn - leider ohne Erfolg :confused:

Hoffe ihr könnnt mir sagne was ich falsch mache bzw. wo der Fehler liegt…ich weiß echt nimmer weiter langsam :mad:

Also hier mal mein Script:

<?

 //Einstellungen in px - Oben-Links ist 0,0
$homeX = 250;     // 250
$homeY = 140;     // 140
$homeRadius = 15;

$remoteImage = "http://www.dwd.de/bvbw/portlets/WarnPortlet/jsp/getwarningmaps.jsp?src=SU_x_x_0.gif&mimeType=image/gif";
$localImage = IPS_GetKernelDir()."\\media\\unwetter.gif";
$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);

$warnung[4] = imagecolorresolve  ($im, 175, 0, 100);  // dunkel rot
$warnung[3] = imagecolorresolve  ($im, 255, 0, 0);  // rot
$warnung[2] = imagecolorresolve  ($im, 250,  150, 0); // orang
$warnung[1] = imagecolorresolve  ($im, 255,  255, 0); // gelb

//Pixel durchgehen
$warnstufe = 0;
for($x=$homeX-$homeRadius; $x<=$homeX+$homeRadius; $x++) {
   for($y=$homeY-$homeRadius; $y<=$homeY+$homeRadius; $y++) {
      $found = array_search(imagecolorat($im, $x, $y), $warnung);
      if(!($found === FALSE)) {
         $warnstufe+=$found;
      }
   }
}
SetValue(40729 /*[Objekt #40729 existiert nicht]*/, $warnstufe);

// Bereich zeichnen
$schwarz = ImageColorAllocate ($im, 0, 0, 0);
$rot = ImageColorAllocate ($im, 255, 0, 0);
imagerectangle($im, $homeX-$homeRadius, $homeY-$homeRadius, $homeX+$homeRadius, $homeY+$homeRadius, $rot);
imagesetpixel($im, $homeX, $homeY, $rot);
imagegif($im, $localImage);
imagedestroy($im);

echo "Unwetter: $warnstufe
";

if ($warnstufe > 100){

// ALARM

}

ich bekomm so die Fehlermeldung:

Fatal error: Call to undefined function ImageCreateFromGIF () in [Wetterwarnung] on Line 26

Wenn ich in Line 26 dann ein „@“ vor das ImageCreateFromGIF setze (also so: $im = @ImageCreateFromGIF ($localImage); ), dann das Script im Editor ausführe, kommt in der Scriptausgabe unten keine Fehlermeldung mehr, jedoch steht trotzdem ganz oben im Script-Editor „Dieses Script wurde als fehlerhaft markiert. Bitte beheben sie alle Fehler“. Auf der Webseiten-Darestellung blinkt beim anklicken „Wetterwarung“ der ganze Kasten kurz grün auf. Aber auch da keine Fehlermeldung. Mach ich das „@“ weg in Zeile 26, dan wieder der Fehler wie oiben schon beschrieben.

Habe die php.ini mit dem Editor erstellt mit dem Inhalt:


extension_dir = D:\Programme\IP-Symcon\
extension = php_gd2.dll
extension = php_mysql.dll
extension = php_soap.dll
extension = php_curl.dll
extension = php_xmlrpc.dll
extension = php_java.dll
extension = php_pdo.dll
extension = php_sqlite.dll
max_execution_time = 150

die php.ini und die php_gd2.dll liegen im IPS-Verzeichnis.
Wiips 2.9 liegt ebenfalls im IPS-Verzeichnis.


Hoffe es kann jemand helfen -Danke mal im Voraus  :o


P.S. wenn ich hier auf "Wetterwarnung" klicke, blinkt der ganze Kasten kurz grün auf. Sonst nix. (bei der Version mit dem "@" in Zeile 26)

![Web.JPG|1016x666](upload://xngYlpEnV7dfPO75FBzbb885H3e.jpeg)

hm, kann mir denn keiner helfen??

oder will keiner?? :eek:

Hast Du evtl. noch irgendwo auf deinem Rechner eine andere php.ini? Die könnte das ganze blockieren.

Nein nicht daß ich wüßte… :mad:

Hallo,

hast du die php_gd2.dll hier aus dem Forum?
Wenn nicht, mal diese Benutzen.

Was hat es eigentlich damit aufsich:
„Hinweis: ACHTUNG: Ab Version 1.6 wurde die komplette GIF-Unterstützung aus der GD-Bibliothek entfernt. Diese Funktion ist also nur verfügbar, wenn Sie eine Version vor 1.6 verwenden.“

Schöne Grüße
Thomas

Ich habe Steiner’s Klassiker mal probiert und es ging auf Anhieb. Also nur richtige php_gd2.dll und passende PHP.INI
für Bereich Berlin/Brandenburg übrigens …PD_X_X_0…
Nur, wie setzt sich eigentlich die $warnstufe zusammen? Ich hatte eben Warnstufe 699. Das war auf der Karte GELB

Halt / STOP!

DWD: Amtliche Warnungen > besser WWW-Reader (mein Fehler, Pixel zählen sinnlos!)

wetteronline.de: Regenradar > farbige, blaue Pixel zählen, je mehr Regen, des so höher der Wert

MST

So, also jetzt hab ich das mit der gd2.dll in der php.ini hinbekommen. Die anführungszeichen fehlten, das war wohl ein problem. Aber nun hab ich das nächste :mad:

Jetzt bekomm ich die Meldung:
Warning: Objekt #40729 existiert nicht in [Wetterwarnung] on line 43
Unwetter: 0

:confused:

… wenn es nicht existiert, dann anlegen (Typ: Integer) und ID anpassen …

MST

PS:

[b]ALLE ID in den Beispiel-Skripten MÜSSEN angepasst werden!

Halt / STOP!

DWD: Amtliche Warnungen > besser WWW-Reader (mein Fehler, Pixel zählen sinnlos!)

wetteronline.de: Regenradar > farbige, blaue Pixel zählen, je mehr Regen, des so höher der Wert

[/b]

…kliingt logisch :smiley: Objekt erstellen…aber welches Objekt, wo und vor allem wie?? Und welche ID anpassen? Die 40729??

Sorry…aber tu mir da grad bissi schwer damit :frowning:

Danke mal für die Hilfe im Voraus :o

Hy, ich würde sagen das Du eine Instance anlegen solltest. Als Typ nimmst Du
INTEGER. Danach bekommt die Instance eine ID, die schreibst Du dir auf und änderst diese NUMMER(ID) im Wetterwarnungsskript on line 43. OK?

AAAAHA - jetzt dämmerts langsam bei mir :rolleyes::rolleyes::rolleyes:

Supi danke mal für die Antwort…werd das gleich probieren

Na dann sag mal bescheid wenn es geklappt hat.:wink:

Danach bekommt die Instance eine ID, die schreibst Du dir auf…

… bei mehreren ID’s könntest Du alternativ auch das Shortcut <STRG><O> nutzen, der Dir alle ID’s zeigt.
Siehe auch Tastenkombinationen - IP-Symcon :: Automatisierungssoftware

Grüße,
Neon

Hallo Steiner (und alle die sich angesprochen fühlen),

du schriebst ja oben: „Halt / STOP!
DWD: Amtliche Warnungen > besser WWW-Reader (mein Fehler, Pixel zählen sinnlos!)wetteronline.de: Regenradar > farbige, blaue Pixel zählen, je mehr Regen, des so höher der Wert“

Das möchte ich noch einmal hier aufgreifen. Da die Texte ja jedesmal unterschiedlich sind, kann man damit keine vernünftige alamierung realisieren. Das Pixelzählen, macht aus meiner Sicht bedingt doch sinn, wenn man dabei die Farbe beim aufaddieren berücksichtigen würde, also ein rot eingefärbtes Feld einen höheren Wert zurück gibt als ein nur gelb eingefärbtes Feld. Hat jemand eine Idee, wie man dasa umsetzen könnte?

So, wollte deine Hilfe grade ausprobieren, doch: ???

ALso unter Objekt hinzufügern auf Instanz erstellen, ok - und nun?? Da bekomm ich die Auswahlliste der Geräte. Bin ich da richtig, nee, oder?!
Was muß ich auswählen, wo INTEGER wählen??

Wär supi wenn mirs einer nur einmal ausführlich erklärt, vielleicht raff ichs dann irgendwann mal :-((

Dank euch mal

*seufz…

Hi Wett74,
Du musst hier eine Variable anlegen. Dann klappt es auch.

Siehe auch Variablen - IP-Symcon :: Automatisierungssoftware

Grüße,
Neon