DWD (Un)Wetterwarnung

Ich schau mir das heute Abend, wenn ich zu Hause bin, nochmal an.

Ist Komisch, jetzt gibt es wieder Warnmeldungen und Warnbilder und ich habe keine Fehlermeldung mehr.

Hallo,

also bei mir schmeißt der IPSLogger Fehlermeldungen raus, wenn es keine Warnungen / Warnkarten gibt.

Kann ich die Warnkarten abschalten?

Hallo Horst,

magst Du mir mal auch gerne per PM die Fehlermeldung zukommen lassen? Dann schaue ich mir das mal an.

Em - das abschalten der Warnkarten kann ich gerne (mal) mit einbauen …

Grüße
Thomas

Wenn ich heute Abend zu Hause bin.

Version 0.35 ist Online …

Hallo,

hast Du sonst noch was gemacht?
Mit der neuen vVersion erhalte ich, obwohl keine Wetterwarnungen vorhanden sind, keine Fehlermeldung mehr :confused: .

Moin,

emm - nö?

hauptsache es geht nun… kannst es ja weiter beobachten ob es noch mal auftaucht.

Gruß
Thomas

Werde ich machen.

Hallo,

bis heute Vormittag lief das Script ohne Fehler, jetzt erhalte ich diese Fehlermeldung:

Notice: Undefined variable: orte_export in C:\IP-Symcon_2_0\scripts\16333.ips.php on line 127

Warning: array_unique() expects parameter 1 to be array, null given in C:\IP-Symcon_2_0\scripts\16333.ips.php on line 127

Warning: array_values() expects parameter 1 to be array, null given in C:\IP-Symcon_2_0\scripts\16333.ips.php on line 127

Wenn ich Debug ausschalte ist wieder alles gut.

Hallo,
danke für das super Script, funktioniert super aber mir ist aufgefallen das die Bilder (Regenradar, Satbilder etc.) nicht im Webfront aktualisiert werden. Bei einem Reload des Webfronts sind sie dann aktuell. Ich bin mir eigentlich sicher das das nicht am Script liegen kann, evtl. Browser Cache oder so ähnlich. Vielleicht kann mir ja jemand einen Tip geben wo ich dran drehen muss. Ich habe mit dem Cache schon viel rumgespielt, aber letztendlich hilft immer nur ein reload.

Danke und Gruß
Torsten

Hi,

entweder ich stell mich grad doof aber beim ausführen des Scritpes vom Beitrag 1 bekomme ich immer einen Fehler:

Parse error:  syntax error, unexpected 'bild' (T_STRING) in /var/lib/symcon/scripts/51954.ips.php on line 325

In der Zeile 325 befindet sich dieser Inhalt:

<span style='top: -100px; left: 70px;'><img src='http://www.niederschlagsradar.de/image.ashx?type=loop1stunde&jaar=&regio=homepage' id='bild' onmouseout='javascript: applyVisibility("bild", "-100");'></span></a>

Woran kann das liegen?

Schönen Ggruß
CX

Moin,

habe mal weitere Warnungen hinzugefügt.

Grüße
Thomas

Hallo

ich bekomme den gleichen Fehler auf meinen Raspi wie Chemicalx in POST 32.

Hat jemand eine Ahnung wieso ?

Danke Tim

Hallo,

ich habe die doppelten Anführungsstriche durch einfache ersetzt bei ‚bild‘ und ‚-100‘

id=‚bild‘ onmouseout=‚javascript: applyVisibility(„bild“, „-100“);‘></span></a>

versucht mal. ob das hilft.

VG

Frank

Danke geht

Seit dem update auf IPS 5.0 bekomme ich folgende Fehlermeldung:

„Warning: date() expects parameter 2 to be integer, string given in /var/lib/symcon/scripts/31858.ips.php on line 89
Abort Processing during exceed of maximal ErrorCount: date() expects parameter 2 to be integer, string given
Error in Script /var/lib/symcon/scripts/31858.ips.php on Line 89“

Bekomme das Skript nicht angepasst. Hat jemand eine Idee?

Moin,

habe lange nichts mehr „nachgepflegt“ …

Unter 5.0 läuft es aber soweit bei mir …

<?

# ******************************************
# Wettervorhersage / Warnungen aus den Daten des DWD
#
# nach Anregungen aus dem Forum:
# https://www.symcon.de/forum/threads/18782-DWD-Unwetterwarnung-%28WFE-Mail-und-html%29?highlight=dwd+unwetterwarnung+wfe
# https://www.symcon.de/forum/threads/29674-DWD-Wetterwarnungen-JSON-Daten-auswerten
#
# Username: dzvo
# Stand: v0.35 - 11.03.2016
#
# 0.31
#  - Grosse Vorschaubilder des aktuellen Wetters eingefuegt (muss noch eventuell nachgearbeitet werden ;-) )
#  - Fix VariablenProfil
#
# 0.33
# 	- Es gibt zusaetzlich Variablen fuer die externe Benutzung:
#	- Warnlevel - die Zahl der hoechsten Warnstufe ueber alle Kreise
# 	- Warnevent - in kurzform zusammengefasste Infos zur Verarbeitung als Pushnachricht
# 	  beide Variablen werden nur auf Aendrung aktualisiert damit nicht jedesmal bei gleichem Inhalt eine Nachricht gesente wird.
#
# 0.35
#  - Ueber eine Variable ($warnbilder_anzeigen) definiert ob die Landkreis Warnbilder mit angezeigt werden sollen oder nicht.
#
# 0.36
#  - Fehlerbeseitigung, wenn keine Warnmeldungen vorlagen
#
# 0.37
#  - weitere Warnungen hinzugefügt
#
# 0.38
#  - weitere Warnungen hinzugefügt
#
# Installation
# ------------
# Einfach Ausfuehren, die benoetigten Variablen werden automatisch angelegt.
#
#
# Bekannte Fehler
# ---------------
# Da ich leider keine umfassende Uebersicht der einzelnen definitonen des aktuellen Wetters gefunden habe, kommt es vor das
# bei neuen Wettervorkommnissen ab Zeile 410 / das Array weiter gefuellt werden muss. Gerne pfelge ich diese nach.
# Unter Übersicht unter http://www.dwd.de/DE/wetter/warnungen_aktuell/objekt_einbindung/objekteinbindung.htm gibt es eine Uebersicht
# der von DWD zur Verfuegung gestellen Kreise.
#
# Konfiguration
# -------------
# Hier eine beliebige Anzahl von Warnkreisen eintragen
# Die passenden Regionsnamen findet man unter der Übersichtskarte nach dem ankicken der Region
# http://wettergefahren.de/warnungen/warnsituation.html
#

$region = array ("Hansestadt Hamburg",);


# Anzahl der Warnbilder in einer Zeile
$warnbilder_anzeigen = true;
$warnbilder_tabellenbreite = 715;
$warnbilder_anzahl_je_reihe = 6;

# Im Debug Modus das Script einfach 2 mal hintereinader ausfuehren.
# Dadurch das dass Script nicht über dem Timer ausgeführt wird werden alle Orte / Warnungen ausgewertet, ob z.B. alle Billder geladen werden.
# Wird das Script über den Timer ausgeführt werden nur die eigenen Orte geladen.

$debug = true;


# *** Script Code *******************************

// Datenquelle
$json = file_get_contents("http://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json");


// fals die Daten nicht geladen werden koennen
if( empty($json) || $json == "" ) { goto ende; }
// Erst einmal die Enden Abschneiden
$daten = json_decode(substr($json, 24, strlen($json) - 26 ),TRUE);


// Daten aufloesen
$daten_einzeln = array();
	if( !empty($daten['warnings']) ) {
		foreach($daten['warnings'] as $eintrag ) {
					for ( $i = 0; $i < count($eintrag); $i ++ ) {
						$daten_einzeln[] =
								array("state" => utf8_decode($eintrag[$i]['state']),
										"stateShort" => $eintrag[$i]['stateShort'],
										"regionName" => utf8_decode($eintrag[$i]['regionName']),
										"description" => utf8_decode($eintrag[$i]['description']),
										"startTime" => date("d.m.Y H:i:s", intval(substr($eintrag[$i]['start'], 0, 10))),
										"endTime" => date("d.m.Y H:i:s", intval(substr($eintrag[$i]['end'], 0, 10))),
										"startUnix" => substr($eintrag[$i]['start'], 0, 10),
										"endUnix" => substr($eintrag[$i]['end'], 0, 10),
										"headline" => utf8_decode($eintrag[$i]['headline']),
										"event" => utf8_decode($eintrag[$i]['event']),
										"instruction" => utf8_decode($eintrag[$i]['instruction']),
										"altitudeStart" => $eintrag[$i]['altitudeStart'],
										"altitudeEnd" => $eintrag[$i]['altitudeEnd'],
										"type" => utf8_decode($eintrag[$i]['type']),
										"level" => $eintrag[$i]['level']
										);
					}
		}
	}


if ($debug && $_IPS['SENDER'] == "Execute" ) {
	$region = array ("");

		if ($debug && GetValue(CreateVariableByIdent($_IPS['SELF'], "Orte", "Orte", 3)) != "" ) {
		$region = explode('"@"', GetValue(CreateVariableByIdent($_IPS['SELF'], "Orte", "Orte", 3)) );
		}
	}

// gesuchte Daten auslesen
	for ($i=0; $i<count($daten_einzeln); $i++) {

			// Nachschauen ob die gesuchten Kreise im JSON enthalten sind
			if( in_array( $daten_einzeln[$i]["regionName"] , $region) ) {
				// Region neu schreiben
				$kreise[] = $daten_einzeln[$i];
			}

		// Debug auf alle Regionen abfragen
		if ( $debug ) {
				// Region neu schreiben
				$orte_export[] = $daten_einzeln[$i]["regionName"];
			}
	}

	// Debug ... alle aktuellen Orte einzeln rausschreiben

		if ($debug && GetValue(CreateVariableByIdent($_IPS['SELF'], "Orte", "Orte", 3)) == ""  && !empty($daten['warnings']) ) {
			$export = "";
				$result = array_values(array_unique($orte_export));
					for ($x=0; $x< count($result) - 1; $x++) {
						$export .= $result[$x] . '"@"';
					}

				   SetValue(CreateVariableByIdent($_IPS['SELF'], "Orte", "Orte", 3),  $export );

				} else {
				// Variable nach Import loeschen
					IPS_DeleteVariable(CreateVariableByIdent($_IPS['SELF'], "Orte", "Orte", 3) );

				}


  // weiter gehts im Normalprogramm


// Array neu sortieren
if ( !empty($kreise) ) {
		$kreise = sortArrayByFields( $kreise, array( "level" => SORT_DESC, "type" => SORT_DESC, "event" => SORT_DESC  ) 	);
}

// Warnlevel & Warnevent definieren
$warnlevel0 = 0; $warnlevel1 = 0; $warnlevel2 = 0; $warnlevel3 = 0; $warnlevel4 = 0; $warnlevel5 = 0;
$warnevent = "";

	for ($i=0; (!empty($kreise) && $i<count($kreise)); $i++) {

					if ($kreise[$i]["level"] == 1 ) {
						$warnlevel1++;
							$warnevent .= $kreise[$i]["level"] . "." . $kreise[$i]["type"] . " - " . $kreise[$i]["event"] . " - " . $kreise[$i]["regionName"] . "
";
					}
					if ($kreise[$i]["level"] == 2 ) {
						$warnlevel2++;
							$warnevent .= $kreise[$i]["level"] . "." . $kreise[$i]["type"] . " - " . $kreise[$i]["event"] . " - " . $kreise[$i]["regionName"] . "
";
					}
					if ($kreise[$i]["level"] == 3 ) {
						$warnlevel3++;
							$warnevent .= $kreise[$i]["level"] . "." . $kreise[$i]["type"] . " - " . $kreise[$i]["event"] . " - " . $kreise[$i]["regionName"] . "
";
					}
					if ($kreise[$i]["level"] == 4 ) {
						$warnlevel4++;
							$warnevent .= $kreise[$i]["level"] . "." . $kreise[$i]["type"] . " - " . $kreise[$i]["event"] . " - " . $kreise[$i]["regionName"] . "
";
					}
					if ($kreise[$i]["level"] == 5 ) {
						$warnlevel5++;
							$warnevent .= $kreise[$i]["level"] . "." . $kreise[$i]["type"] . " - " . $kreise[$i]["event"] . " - " . $kreise[$i]["regionName"] . "
";
					}
			}



// Warnevent ausgeben.
if ( empty($warnevent) ) { $warnevent = "Es sind keine Warnmeldungen vorhanden."; }

// Warnlevelstufe generieren
if ( $warnlevel0 >= 0 ) { $level = 0; } if ( $warnlevel1 >= 1 ) { $level = 1; } if ( $warnlevel2 >= 1 ) { $level = 2; } if ( $warnlevel3 >= 1 ) { $level = 3; } if ( $warnlevel4 >= 1 ) { $level = 4; } if ( $warnlevel5 >= 1 ) { $level = 5; }

$inhaltkreis = "";
$hoehe = "";
$warnbilderlaender = "";

	if ( $warnlevel1 + $warnlevel2 + $warnlevel3 + $warnlevel4 + $warnlevel5  > 0 ) {
		for ($i=0; $i<count($kreise); $i++) {

					// eigene Zeile fuer die Hoehenangaben
			      if ( $kreise[$i]['altitudeStart'] != ""  ) {
						$hoehe =	"<tr><td style='padding-left: 5px;'>ab: " . $kreise[$i]['altitudeStart'] . "m Höhe</td></tr>";
			      }
			      if ( $kreise[$i]['altitudeEnd'] != ""  ) {
						$hoehe =	"<tr><td style='padding-left: 5px;'>bis zu einer Höhe von: " . $kreise[$i]['altitudeStart'] . "m </td></tr>";
			      }

			$inhaltkreis .= "
					<table border='0' width='650px'>
					<tr>
					<td rowspan='5' style='width: 15px; background-" . farbe($kreise[$i]["level"]) . " '> </td>

					<td style='padding-left: 5px; " . farbe($kreise[$i]["level"]) . " ' ><b>" . $kreise[$i]['headline'] . "";

					if ($debug && $_IPS['SENDER'] == "Execute" ) {
						$inhaltkreis .= " <br>(" . $kreise[$i]["event"] . " - " . $kreise[$i]["state"] . ")";

					}

		
					#<tr><td style='padding-left: 5px;' >" . $kreise[$i]["level"] . "<font size='4'>Meldung für " . $kreise[$i]["regionName"] . "</font></td></tr>
 
			$inhaltkreis .= "</b></td>
					</tr>

					<tr><td style='padding-left: 5px;' ><font size='4'>Meldung für " . $kreise[$i]["regionName"] . "</font></td></tr>

					<tr><td style='padding-left: 5px;'>Zeitraum von: " . $kreise[$i]['startTime'] . " bis: " . $kreise[$i]['endTime'] . "
																	" . $hoehe . "</td></tr>
					<tr><td style='padding-left: 5px;'><font size='3'>" . $kreise[$i]['description'] . " </font></td></tr>

					</table>

		      <div style='height: 5px;'> </div>
				";

			if ($warnbilder_anzeigen) {
		 		$warnbilderlaender .= warnuebersicht($kreise[$i]["state"], $kreise[$i]["event"] );
			}

		}
	} else {
		$inhaltkreis .= "
					<table border='0' width='650px' >
					<tr>
					<td rowspan='1' style='width: 15px; background-" . farbe(0) . " '> </td>

					<td style='padding-left: 5px; " . farbe(0) . " ' >" . $warnevent . "</td>
					</tr>
					<tr height='450px'>
					   <td>
					    
						</td>
					</tr>
					</table>
					";
	}






$output = "

<script type='text/javascript' >

function applyVisibility(obj_name, new_value) {
	   document.getElementById(obj_name).style.zindex=new_value;
	}
</script>

<style type='text/css'>
a.menue, a.menue:link, a.menue:visited, a.menue:active {
	position: relative;
	text-decoration: none;
	padding: 0px;
	margin: 0px;
}

a.menue:hover {
	z-index:1000;
	background: transparent;
	padding: 0px;
	margin: 0px;
}

a.menue span {
	display: none;
	text-decoration: none;
}

a.menue:hover span {
	z-index:1;
	display: block;
	position: absolute;
	width:300px; height:133px;

}

</style>



<table border='0' align='center' style='width: " . $warnbilder_tabellenbreite . "px;'>
	<tr>
	   <td>Stand: " . date("d.m.Y", substr($json, 32, 10 )) . " um " . date("H:i:s", substr($json, 32, 10 )) . "
			<span style='float: right; widht: 100%; '>Es sind " . ( $warnlevel1 + $warnlevel2 + $warnlevel3 + $warnlevel4 + $warnlevel5) . " Meldungen vorhanden.</span>
		</td>
	</tr>

	<tr>
	   <td>

				<table border='0' width='100%' align='center'>
				   <tr align='center' >
				      <td width=20%  style='color: #000000; background-" . farbe(1) . " '><b> " . $warnlevel1 . " </b></td>
				      <td width=20%  style='color: #000000; background-" . farbe(2) . " '><b> " . $warnlevel2 . " </b></td>
				      <td width=20%  style='color: #000000; background-" . farbe(3) . " '><b> " . $warnlevel3 . " </b></td>
				      <td width=20%  style='color: #000000; background-" . farbe(4) . " '><b> " . $warnlevel4 . " </b></td>
  				      <td width=20%  style='color: #000000; background-" . farbe(5) . " '><b> " . $warnlevel5 . " </b></td>
					</tr>
				</table>

		</td>
	</tr>
	<tr>
	   <td>

	      <!---
	      <div style='background-color: #aaaaaa; height: 200px; '>
	      http://www.wettergefahren.de/DWD/wetter/radar/Radarfilm_WEB_DL.gif
			//-->

			<a href='#' class='menue'><img src='http://www.niederschlagsradar.de/image.ashx?type=loop1stunde&jaar=&regio=homepage' width='216px' height='200px'>
			<span style='top: -100px; left: 70px;'><img src='http://www.niederschlagsradar.de/image.ashx?type=loop1stunde&jaar=&regio=homepage' id='bild' onmouseout='javascript: applyVisibility(\"bild\", \"-100\");'></span></a>
         <a href='#' class='menue'><img src='https://www.dwd.de/DE/wetter/wetter_weltweit/europa/bildgalerie/wetter_aktuell.jpg?view=nasImage' width='267px' height='200px'>
			<span style='top: -100px; left: -260px;'><img src='https://www.dwd.de/DE/wetter/wetter_weltweit/europa/bildgalerie/wetter_aktuell.jpg?view=nasImage'></span></a>
			<a href='#' class='menue'><img src='http://www.wettergefahren.de/DWD/wetter/wv_allg/deutschland/bilder/Deutschland.jpg' width='216px' height='200px'>
			<span style='top: -100px; left: -420px;'><img src='http://www.wettergefahren.de/DWD/wetter/wv_allg/deutschland/bilder/Deutschland.jpg'></span></a>

			<!--
			</div>
			//-->

		</td>
	</tr>

	<tr>
	   <td>
						" . $warnbilderlaender . "


		      <div style='height: 5px;'> </div>

	   </td>
	 </tr>

	<tr>
	   <td>
         $inhaltkreis
		</td>
	</tr>
</table>
</div>
";



// Varablen anlegen und Werte schreiben
// Aktualisierung
SetValue(CreateVariableByIdent($_IPS['SELF'], "Datenbestand", "Datenbestand", 3),  date("d.m.Y H:i:s", substr($json, 32, 10 )) );
// Webfront Output
SetValue(CreateVariableByIdent($_IPS['SELF'], "WFOutput", "WFOutput", 3),  $output );
IPS_SetVariableCustomProfile(CreateVariableByIdent($_IPS['SELF'], "WFOutput", "WFOutput", 3), "~HTMLBox");
// Level & Varablenprofil
$id_level = CreateVariableByIdent($_IPS['SELF'], "Warnlevel", "Warnlevel", 1);

// Profil anlegen
	if (IPS_VariableProfileExists("Script.WetterWarnstatus")) {
		//altes Pofil loeschen und neu anlegen
			IPS_DeleteVariableProfile("Script.WetterWarnstatus");
         variablenprofil("Script.WetterWarnstatus");
      	IPS_SetVariableCustomProfile( CreateVariableByIdent($_IPS['SELF'], "Warnlevel", "Warnlevel", 1) , "Script.WetterWarnstatus");
	} else {
          variablenprofil("Script.WetterWarnstatus");
      	IPS_SetVariableCustomProfile( CreateVariableByIdent($_IPS['SELF'], "Warnlevel", "Warnlevel", 1) , "Script.WetterWarnstatus");
	}

	if ( GetValue($id_level) != $level ) {
		SetValue(CreateVariableByIdent($_IPS['SELF'], "Warnlevel", "Warnlevel", 1),  $level );
	}

//Warnevent
$id_warnevent = CreateVariableByIdent($_IPS['SELF'], "Warnevent", "Warnevent", 3);
	if( GetValue($id_warnevent) != $warnevent) {
		SetValue(CreateVariableByIdent($_IPS['SELF'], "Warnevent", "Warnevent", 3),  $warnevent );
		IPS_SetVariableCustomProfile(CreateVariableByIdent($_IPS['SELF'], "Warnevent", "Warnevent", 3), "~TextBox");
	}






function farbe($warnlevel) {

	$warnfarbe = array("color: #C5E566; ", // Es ist keine amtliche Warnung aktiv (Grün)
							 "color: #E0E0E0; background-image: repeating-linear-gradient(135deg, transparent, transparent 5px, rgba(229,57,57,.8) 5px, rgba(229,57,57,.8) 8px); ", // Vorabinformation Unwetter (schraffiert)
							 "color: #FFFF00; ", // Amtliche Wetterwarnung (Gelb)
							 "color: #FA9600; ", // Amtliche Warnung vor markantem Wetter (Orange/Ocker)
							 "color: #E53935; ", // Amtliche Unwetterwarnung (Rot)
							 "color: #AF0064; ", // Amtliche Warnung vor extremem Unwetter (Dunkelrot)
							 "color: #FE68FE; ", // Hitze- oder UV-Warnung (Violett)
							 "",
							 "",
							 "",
							 "color: #cc99ff; ",
							 "",
							 "",
							 "",
							 "",
							 "",
							 "",
							 "",
							 "",
							 "",
							 // aus unerfindlichen Gründen ist der UV Index 20
							 "color: #fb66fc; ", // Hitze- oder UV-Warnung (Violett)
							 );

	return $warnfarbe[$warnlevel];

}



function warnuebersicht($bundesland, $warnevent ) {
	global $warnbilder_anzahl_je_reihe;
	global $warnbilder_tabellenbreite;

$bl = array ("Baden-Württemberg" => "baw", "Bayern" => "bay", "Berlin" => "bbb", "Brandenburg" => "bbb", "Bremen" => "nib", "Hamburg" => "shh", "Hessen" => "hes", "Mecklenburg-Vorpommern" => "mvp", "Niedersachsen" => "nib", "Nordrhein-Westfalen" => "nrw", "Rheinland-Pfalz" => "rps", "Saarland" => "rps", "Sachsen" => "sac", "Sachsen-Anhalt" => "saa", "Schleswig-Holstein" => "shh", "Thüringen" => "thu",
             "baden-w?rttemberg" => "baw", "bayern" => "bay", "berlin" => "bbb", "brandenburg" => "bbb", "bremen" => "nib", "hamburg" => "shh", "hessen" => "hes", "mecklenburg-vorpommern" => "mvp", "niedersachsen" => "nib", "nordrhein-westfalen" => "nrw", "rheinland-pfalz" => "rps", "saarland" => "rps", "sachsen" => "sac", "sachsen-anhalt" => "saa", "schleswig-holstein" => "shh", "th?ringen" => "thu");

$wk = array (

					// Darauf achten das alles klein geschrieben ist - gegebenen Fall ist die Liste zu ergaenzen
					// Übersicht unter http://www.dwd.de/DE/wetter/warnungen_aktuell/objekt_einbindung/objekteinbindung.htm

					"gewitter" => "gewitter",
					"starkregen" => "regen",
					"dauerregen" => "regen",
					"leichter schneefall" => "schnee",
					"schneefall" => "schnee",
					"schneeverwehung" => "schnee",
					"wind" => "sturm",
					"böen" => "sturm",
					   "b?en" => "sturm",
					"extreme orkanb?en" => "sturm",
					"windböen" => "sturm",
					   "windb?en" => "sturm",
					"starkwind" => "sturm",
					"sturm" => "sturm",
					"sturmböen" => "sturm",
					   "sturmb?en" => "sturm",
					"schwere sturmböen" => "sturm",
						"schwere sturmb?en" => "sturm",
					"orkanböen" => "sturm",
					   "orkanb?en" => "sturm",
					"orkan" => "sturm",
					"orkanartige böen" => "sturm",
					   "orkanartige b?en" => "sturm",
				"starkes gewitter" => "sturm",
				"starkes gewitter" => "gewitter",
				"ergiebiger dauerregen" => "regen",
				"STARKES GEWITTER" => "sturm",
				"schweres gewitter mit extrem heftigem starkregen und hagel" => "sturm",
				"schweres gewitter mit heftigem starkregen und hagel"  => "sturm",
				"SCHWERES GEWITTER mit HEFTIGEM STARKREGEN und HAGEL" => "sturm",
					"nebel" => "nebel",
					"frost" => "frost",
					"strenger frost" => "frost",
					"glätte" => "glatteis",
					   "gl?tte" => "glatteis",
					"glatteis" => "glatteis",
					"schneefall und schneeverwehung" => "schnee",
					"schneeverwehung" => "schnee",
					"schneefall" => "schnee",
					"leichter schneefall" => "schnee",
					"tauwetter" => "tauwetter",
					"hitze" => "hitze",
					"uv-index" => "uv");

$daten ="";
#$daten .= "<div><img src='http://www.dwd.de/DWD/warnungen/warnapp/json/warning_map_" . $bl[$bundesland] . "_" . $wk[mb_strtolower($warnevent)] . ".png'></div>
";

$daten .= "<img src='http://www.dwd.de/DWD/warnungen/warnapp/json/warning_map_" . $bl[strtolower_utf8($bundesland)] . "_" . $wk[strtolower_utf8($warnevent)] . ".png' width='" . ( ($warnbilder_tabellenbreite - 3) / $warnbilder_anzahl_je_reihe) . "px' height='". ((($warnbilder_tabellenbreite - 3) / $warnbilder_anzahl_je_reihe) * 1.25)  . "px' ></div>";


return $daten;


}

function strtolower_utf8($string) {

#setlocale(LC_CTYPE, 'de_DE@euro', 'de_DE', 'de', 'ge');

$result = utf8_decode($string);
$result = strtolower($result);
$result = utf8_encode($result);

return $result;

}



function toAscii($str) {
    $clean = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $str);
    $clean = strtolower(trim($clean, '-'));
    $clean = preg_replace("/[\/_|+ -]+/", '-', $clean);

    return $clean;
}

function CreateVariableByIdent($id, $ident, $name, $type)
{
     $vid = @IPS_GetObjectIDByIdent($ident, $id);
     if($vid === false)
     {
         $vid = IPS_CreateVariable($type);
         IPS_SetParent($vid, $id);
         IPS_SetName($vid, $name);
         IPS_SetIdent($vid, $ident);
     }
     return $vid;
}

function sortArrayByFields($arr, $fields)
{
    $sortFields = array();
    $args       = array();

    foreach ($arr as $key => $row) {
        foreach ($fields as $field => $order) {
            $sortFields[$field][$key] = $row[$field];
        }
    }

    foreach ($fields as $field => $order) {
        $args[] = $sortFields[$field];

        if (is_array($order)) {
            foreach ($order as $pt) {
                $args[$pt];
            }
        } else {
            $args[] = $order;
        }
    }

    $args[] = &$arr;
        call_user_func_array('array_multisort', $args);
    return $arr;
}


function variablenprofil ($profilname) {

    IPS_CreateVariableProfile($profilname, 1);
        IPS_SetVariableProfileValues($profilname, 0, 5, 1);
            IPS_SetVariableProfileAssociation($profilname, 0, "Level 0", "", 0xC5E566);
            IPS_SetVariableProfileAssociation($profilname, 1, "Level 1", "", 0xE0E0E0);
            IPS_SetVariableProfileAssociation($profilname, 2, "Level 2", "", 0xFFFF00);
            IPS_SetVariableProfileAssociation($profilname, 3, "Level 3", "", 0xFA9600);
            IPS_SetVariableProfileAssociation($profilname, 4, "Level 4", "", 0xE53935);
            IPS_SetVariableProfileAssociation($profilname, 5, "Level 5", "", 0xAF0064);
            IPS_SetVariableProfileAssociation($profilname, 5, "Level 6", "", 0xFE68FE);

}


// Script Timer installieren
IPS_SetScriptTimer($IPS_SELF, 600);


ende:


?>

Grüße
Thomas

Moin Thomas,

das ist relativ unwahrscheinlich, da du in Zeile 586 einen Fehler hast ;), deine ist die „Uralt“-Schreibweise.

IPS_SetScriptTimer($_IPS['SELF'], 600);

Hallo Thomas,

besten Dank. Habe das letzte Skript nochmals eingefügt, jetzt ist der Fehler weg :loveips:

Anbei noch vier Ergänzungen für den Schwarzwald :slight_smile: :

„schweresgewittermitorkanb?en“=>„sturm“,
"starkerschneefallundschneeverwehung=>„schnee“,
"starkeschneeverwehung=>„schnee“,
"starkestauwetter=>„tauwetter“,

Gruß Tobias