Hier mein Script zur Auswertung der Wetterwarnung beim DWD:
<?
$id_warn = 54321 /*[.Wetter\Unwetterzentrale\UnwetterWarnungHannover\UnwetterWarnungAktiv]*/; // BoolVar
$id_text = 12345 /*[.Wetter\Unwetterzentrale\UnwetterWarnungHannover\UnwetterWarnungHannover]*/; // StringVar
// URL zeigt auf die detailierte Warnung des gewünschten Ortes (anklicken in der Warnkarte
$s = file_get_contents( "http://www.dwd.de/dyn/app/ws/html/reports/HAN_warning_de.html#WS_ANCHOR_0" );
$warnung = "";
if( empty($s) )
{ IPS_LogMessage( IPS_GetName($IPS_SELF), "can't get url content"); return; }
$a = explode( "
", $s);
$w = preg_grep( '#</p>#', $a);
while ( list ( $key, $val ) = each ( $w ) )
{
$current = formatText( str_replace("</p>","",$val) );
if ( substr_count( $current, "Amtliche " )) {
$current = '<strong>' . $current . '</strong>';
}
if ( substr_count( $current, "am:" )) {
$current .= '<br />';
}
// Um Platz zu sparen, die Ausgabe einiger Zeilen unterdrücken
switch ($current) {
case "für die Region Hannover ":
break;
case "DWD / RZ Hamburg ":
$warnung .= '---<br />';
break;
default:
$warnung .= $current . '<br />';
break;
}
}
if (empty($warnung)) {
$warnung = "Es sind keine Warnungen für Hannover vorhanden.";
SetValueBoolean($id_warn, false);
} else {
SetValueBoolean($id_warn, true);
}
$browser='
<html>
<head>
<style type="text/css" media="screen">
body { background-color:#D4D0C8;
font-family: Arial;
font-size:14px;
margin:0;
padding:10px 5px 0px 5px;
}
div { margin:0;
padding:0px 0px 0px 0px;
}
</style>
</head>
<body scroll="no"><div>'
.$warnung.
'</div>
</body>
</html>';
SetValueString($id_text, $browser);
// Textformatierung
function formatText($text)
{
$text = html_entity_decode($text);
$text = str_replace("ö", "ö", $text);
$text = str_replace("Ü", "Ü", $text);
$text = str_replace("ü", "ü", $text);
$text = str_replace("ä", "ä", $text);
$text = str_replace("ß", "ß", $text);
$text = str_replace("–", "-", $text);
$text = str_replace(''', "`", $text);
$text = str_replace("&", "&", $text);
$text = str_replace("Ö", "Ö", $text);
$text = str_replace("„", "\"", $text);
$text = str_replace("“", "\"", $text);
$text = str_replace("–", "-", $text);
$text = str_replace("„", "\"", $text);
$text = str_replace("“", "\"", $text);
$text = str_replace("„", "\"", $text);
$text = str_replace("–", "-", $text);
$text = str_replace("–", "-", $text);
$text = str_replace("Ä", "Ä", $text);
return $text;
}
?>
Es müssen die IDs und eventuelle Filterzeilen angepasst werden. Außerdem muss die korrekte URL für den gewünschten Ort eingetragen werden.