Fragen zur Eigenen Wetterseite

Hi Rainer,

Schön dich hier mal wieder zu sehen:D

Also in Zeile 110 der WetterIndex.php ist das hier zu finden:

$imgWarnLinie = Sys_GetURLContent('http://www.wettergefahren.de/dyn/app/ws/maps/'.$landkreis.'_timeline.png');

Die Seite ist nun aber komplett anders aufgebaut als vorher und daher wird das so nicht mehr funktionieren. Kein Plan ob die Grafik auch per FTP abgeholt werden kann … Die Region geht auch per FTP, aber nicht die Landkreise (auf den ersten Blick)

Hab mich jetzt auch mal dran versucht. Hauptproblem sind die Daten von Wettergefahren.de. Und da besonders die xxTimeline.png
Hab das alles jetzt mal entfernt und das wichtigste für mich läuft erst mal. Warnungen funktionieren leider nicht!
In der WetterIndex.php alles zwischen „Warnlinie“ und „Ende Warnlinie“ enfernen.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml' xml:lang="de' lang="de">
<head>

<meta http-equiv="Content-Type' content="text/html; charset=UTF-8">
<meta http-equiv="Cache-Control' content="no-store, no-cache, must-revalidate">
<meta http-equiv="Pragma' content="no-cache">
<meta http-equiv="Expires' content="0">

<link rel="stylesheet" type="text/css" href="wetterUser.css" />

</head><body>

<?php
require_once IPS_GetKernelDir()."scripts\\konfigurationWetter.ips.php";

$api = simplexml_load_string(utf8_decode(file_get_contents(IPS_GetKernelDir()."webfront\\user\\WetterFtpDWD\\Vorhersage\\vorhersage.xml")));
print_r($api);

$wetter = array();

$i = 0;
foreach($api->data as $weather)
{
   $wetter[$i]['wochentag'] = $weather->day;
	$suchArr = array('Mon','Tue','Wed','Thu','Fri','Sat','Sun');
   $ersetzArr = array('Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag');
   $wetter[$i]['wochentag'] = str_replace($suchArr, $ersetzArr, $wetter[$i]['wochentag']);
   $wetter[$i]['zustandf'] = $weather->conditionf;
	$wetter[$i]['zustands'] = $weather->conditions;
   $wetter[$i]['tiefsttemperatur'] = $weather->tempmin;
   $wetter[$i]['hoechsttemperatur'] = $weather->tempmax;
	$wetter[$i]['iconf'] = $weather->iconf;
	$wetter[$i]['icons'] = $weather->icons;
	$i++;
}

$containerOben = '<table border="0" width="100%" cellspacing="0" cellpadding="2"><tr>';

$containerOben .= '<td><table width="100%" border="0" cellspacing="0" cellpadding="0">';
$containerOben .= '<tr><td><b>Aktuell:</b></td></tr>';
$containerOben .= '<tr><td>'.$api->aktuell->condition.'</td></tr>';
if(isset($temp) && $temp !=0) $containerOben .= '<tr><td>Temperatur: '.GetValue($temp).' °C</td></tr>';
if(isset($tempMin) && $tempMin !=0) $containerOben .= '<tr><td>Temp-min: '.GetValue($tempMin).' °C</td></tr>';
if(isset($tempMax) && $tempMax !=0) $containerOben .= '<tr><td>Temp-max: '.GetValue($tempMax).' °C</td></tr>';
if(isset($feuchte) && $feuchte !=0) $containerOben .= '<tr><td>rel. Luftfeuchte: '.GetValueFormatted($feuchte).'</td></tr>';
if(isset($wind) && $wind !=0) $containerOben .= '<tr><td>Wind: '.GetValueFormatted($wind).'</td></tr>';
if(isset($luftdruck) && $luftdruck !=0) $containerOben .= '<tr><td>Luftdruck: '.GetValueFormatted($luftdruck).'</td></tr>';
if(isset($niederschlag) && $niederschlag !=0) $containerOben .= '<tr><td>Niederschlag: '.GetValueFormatted($niederschlag).'</td></tr>';
if(isset($Sonnenaufgang) && $Sonnenaufgang !=0 && isset($Sonnenuntergang) && $Sonnenuntergang !=0) $containerOben .= '<tr><td>SA: '.GetValue($Sonnenaufgang).' / SU: '.GetValue($Sonnenuntergang).'</td></tr>';
if(isset($hoeheNN) && $hoeheNN !=0) $containerOben .= '<tr><td>H&oumlhe &uuml. NN: '.$hoeheNN.' m</td></tr>';
$containerOben .= '</table></td>';
##################################################################################################################################
$containerOben .= '<td><table width="100%" border="0" cellspacing="0" cellpadding="0">';
$containerOben .= '<tr><td><img src='.$api->aktuell->icon.'></td></tr>';
$containerOben .= '</table></td>';
$containerOben .= '<td style="width:1px; background-color:#454545;"></td>';
##################################################################################################################################
$containerOben .= '<td><table width="100%" border="0" cellspacing="0" cellpadding="2">';
$containerOben .= '<tr><td colspan="2" align="center"><b>'.$wetter[0]['wochentag'].'</b></td></tr>';
$containerOben .= '<tr><td>Fr&uumlh: </td>';
$containerOben .= '<td>Sp&aumlt:</td></tr>';
$containerOben .= '<tr><td>'.$wetter[0]['zustandf'].'</td>';
$containerOben .= '<td>'.$wetter[0]['zustands'].'</td></tr>';
$containerOben .= '<tr><td>min. '.$wetter[0]['tiefsttemperatur'].' °C</td>';
$containerOben .= '<td>max. '.$wetter[0]['hoechsttemperatur'].' °C</td></tr>';
$containerOben .= '<tr><td><img src='.$wetter[0]['iconf'].' alt='.$wetter[0]['zustandf'].'></td>';
$containerOben .= '<td><img src='.$wetter[0]['icons'].' alt='.$wetter[0]['zustands'].'></td></tr>';
$containerOben .= '</table></td>';

$containerOben .= '<td style="width:1px; background-color:#454545;"></td>';
#####################################################################################################################
$containerOben .= '<td><table width="100%" border="0" cellspacing="0" cellpadding="2">';
$containerOben .= '<tr><td colspan="2" align="center"><b>'.$wetter[1]['wochentag'].'</td></tr>';
$containerOben .= '<tr><td>Fr&uumlh: </td>';
$containerOben .= '<td>Sp&aumlt:</td></tr>';
$containerOben .= '<tr><td>'.$wetter[1]['zustandf'].'</td>';
$containerOben .= '<td>'.$wetter[1]['zustands'].'</td></tr>';
$containerOben .= '<tr><td>min. '.$wetter[1]['tiefsttemperatur'].' °C</td>';
$containerOben .= '<td>max. '.$wetter[1]['hoechsttemperatur'].' °C</td></tr>';
$containerOben .= '<tr><td><img src='.$wetter[1]['iconf'].' alt='.$wetter[1]['zustandf'].'></td>';
$containerOben .= '<td><img src='.$wetter[1]['icons'].' alt='.$wetter[1]['zustands'].'></td></tr>';
$containerOben .= '</table></td>';

$containerOben .= '<td style="width:1px; background-color:#454545;"></td>';
####################################################################################################################
$containerOben .= '<td><table width="100%" border="0" cellspacing="0" cellpadding="2">';
$containerOben .= '<tr><td colspan="2" align="center"><b>'.$wetter[2]['wochentag'].'</td></tr>';
$containerOben .= '<tr><td>Fr&uumlh: </td>';
$containerOben .= '<td>Sp&aumlt:</td></tr>';
$containerOben .= '<tr><td>'.$wetter[2]['zustandf'].'</td>';
$containerOben .= '<td>'.$wetter[2]['zustands'].'</td></tr>';
$containerOben .= '<tr><td>min. '.$wetter[2]['tiefsttemperatur'].' °C</td>';
$containerOben .= '<td>max. '.$wetter[2]['hoechsttemperatur'].' °C</td></tr>';
$containerOben .= '<tr><td><img src='.$wetter[2]['iconf'].' alt='.$wetter[2]['zustandf'].'></td>';
$containerOben .= '<td><img src='.$wetter[2]['icons'].' alt='.$wetter[2]['zustands'].'></td></tr>';
$containerOben .= '</table></td>';

$containerOben .= '</tr>';
$containerOben .= '</table>';

############################### Warnlinie #############################################

##################################Ende Warnlinie ############################################################################
$containerLinks = '<table><tr>';
$containerLinks .= '<td><table width="100%" border="0" cellspacing="0" cellpadding="0">';
//####### $containerLinks .= "<tr><td><img src=\"/user/WetterFtpDWD/warnungen/".$warnung."_x_x_".$warnIndex.".gif"."\" /></td></tr>";
$containerLinks .= "<tr><td><img src=\"/user/WetterFtpDWD/warnungen/SchilderLZ.jpg"."\" /></td></tr>";
$containerLinks .= '</table></td>';
$containerLinks .= '<td class="legende"><table  width="100%" border="0" cellspacing="10" cellpadding="0">';
$containerLinks .= "<tr><td><img src=\"/user/WetterFtpDWD/warnungen/vorwarnung.png\" /> Vorwarnung</td></tr>";
$containerLinks .= "<tr><td><img src=\"/user/WetterFtpDWD/warnungen/lila.png\" /> Warnung vor extremen Unwetter</td></tr>";
$containerLinks .= "<tr><td><img src=\"/user/WetterFtpDWD/warnungen/rot.png\" /> Unwetterwarnung</td></tr>";
$containerLinks .= "<tr><td><img src=\"/user/WetterFtpDWD/warnungen/orange.png\" /> Warnung vor markantem Wetter</td></tr>";
$containerLinks .= "<tr><td><img src=\"/user/WetterFtpDWD/warnungen/gelb.png\" /> Wetterwarnung</td></tr>";
if(isset($warnIndex) && $warnIndex !=0) $containerLinks .= "<tr><td><img src=\"/user/WetterFtpDWD/warnungen/violett.png\" /> Hitzewarnung</td></tr>";
$containerLinks .= "<tr><td><img src=\"/user/WetterFtpDWD/warnungen/hellblau.png\" /> Keine Warnung</td></tr>";
$containerLinks .= '<tr><td></br>Meldungen Aktuell:</td></tr>';
if(isset($varIDWarnmeldung) && $varIDWarnmeldung !=0) $containerLinks .= '<tr><td>'.utf8_encode(GetValue($varIDWarnmeldung)).'</td></tr>';
$containerLinks .= '</table></td>';
$containerLinks .= '</tr></table>';

$berichtHeute = file_get_contents("../WetterFtpDWD/berichte/berichtHeute.txt");
$berichtHeute = preg_replace('/\b[A-Z]{1}+[a-z]{4,}\b.*([:].*)/', "", $berichtHeute);
//$berichtHeute = preg_replace('/Letzte Aktualisierung: ([\d]{2}.[\d]{2}.[\d]{4}, [\d]{2}.[\d]{2} Uhr)/', "", $berichtHeute);
$berichtMorgen = file_get_contents("../WetterFtpDWD/berichte/berichtMorgen.txt");
$berichtMorgen = preg_replace('/\b[A-Z]{1}+[a-z]{4,}\b.*([:].*)/', "", $berichtMorgen);
$berichtUebermorgen = file_get_contents("../WetterFtpDWD/berichte/berichtUebermorgen.txt");
$berichtUebermorgen = preg_replace('/\b[A-Z]{1}+[a-z]{4,}\b.*([:].*)/', "", $berichtUebermorgen);
$berichtTag4 = file_get_contents("../WetterFtpDWD/berichte/berichtTag4.txt");
$berichtTag4 = preg_replace('/\b[A-Z]{1}+[a-z]{4,}\b.*([:].*)/', "", $berichtTag4);

$berichtGesamt = $berichtHeute;
if($berichtanzahl == 2) $berichtGesamt = $berichtHeute . $berichtMorgen;
if($berichtanzahl == 3) $berichtGesamt = $berichtHeute . $berichtMorgen . $berichtUebermorgen;
if($berichtanzahl == 4) $berichtGesamt = $berichtHeute . $berichtMorgen . $berichtUebermorgen . $berichtTag4;

if($berichtGesamt == "") 
{
	$berichtGesamt = "Der Wetterbericht steht momentan nicht zur Verfügung!";
}

?>

<div id="containerTop">
	<div class="pos"><?php echo $ort;?></div>
	<div class="containerBorderAktuell">
		<div class="containerVorhersage"><?php echo $containerOben;?></div>
	</div>
</div>
<div id="containerBottomLeft">
	<div class="pos"><?php echo $ueberschriftKarte;?></div>
	<div class="containerWarnung">
		<div class="containerGif"><?php echo $containerLinks;?></div>
	</div>
</div>
<div id="containerBottomRight">
	<div class="pos">Wetterbericht</div>
	<div class="containerBericht">
		<div class="berichtText"><?php echo $berichtGesamt;?></div>
	</div>
</div>

<?php require "barBottom.php"; ?>


</body></html>

Hallo zusammen,

gibt es bezüglich dieses tollen Projektes neue Infos? Leider funktioniert die Seite ja seit der Umstellung der Quelle nicht mehr.

Hallo,

wer noch das Problem hat, dass der Wetterbericht nicht mehr funktioniert, sollte in der Datei ftpServerDWD.ips.php zwischen
Zeile 51 und Zeile 57 die Variablen $file[0] durch $file[1] ersetzen.

Viele Grüße

Gerd

Hey Super, das war es!

Ah Kommando zurück.
Ich bekomme immer noch die Meldung:

[ul]
[li]Warning: ftp_fget() expects parameter 1 to be resource, boolean given
[/li][li]Warning: ftp_pwd() expects parameter 1 to be resource, boolean given
[/li][/ul]Im Skript Vorhersage.ips.php

Hallo mws,

bei mir kommt keine Fehlermeldung mehr.

Gerd

Also bei mir hat das geholfen:
in ca. Zeile 59 (Datei ftpServerDWD.ips.php)

$time = substr($file[0], -6);

ersetzt durch:

$time = substr($file[0], -11, 6);

Ah mit dem Code von jnicke funktioniert es hier scheinbar jetzt auch!

Hmm,

ich bekomm das Projekt einfach nicht zum Laufen. Hab sämtliche o.g. Änderungen durchgeführt, geht aber trotzdem nicht.

Könnte jemand bitte sein funktionierendes Script hier posten.

Gruß Proxima

Da beim DWD so gut wie alles geändert wurde, funktioniert es ohne Fehlermeldungen nicht mehr. Ob ich überhaupt noch Änderungen daran vornehmen werde, weiß ich noch nicht.
Ich bin auch noch mit der 3.0 unterwegs…never change a running System.

Ich kann mir gerne einzelne Teile davon ansehen und fixen…ob es dann unter 4.0 läuft kann ich allerdings nicht sagen.

Der Aufwand auf die 4.0 umzusteigen, ist mir im Moment zu groß da es doch einen ganzen Rattenschwanz hinter sich herzieht.

Hallo Rainer, schön dich hier wieder ein mal zu sehen.

Ich bin hier schon lange nicht mehr unterwegs gewesen … ich kann daher nicht ausschliessen, dass mir die ein oder andere Info durchgegangen ist. Backlog hat keine Hilfe gebracht.
Ich bekommen seit heute (es ist mir auf jeden Fall heute das erste Mal aufgefallen) folgende Fehlermeldungen:

Warning: ftp_fget(): VHDL50_DWEH_DWEG_1: No such file or directory in C:\IP-Symcon\scripts\ftpServerDWD.ips.php on line 71

Warning: ftp_fget(): VHDL51_DWEH_DWEG_1: No such file or directory in C:\IP-Symcon\scripts\ftpServerDWD.ips.php on line 71

Warning: ftp_fget(): VHDL52_DWEH_DWEG_1: No such file or directory in C:\IP-Symcon\scripts\ftpServerDWD.ips.php on line 71

Warning: ftp_fget(): VHDL53_DWEH_DWEG_1: No such file or directory in C:\IP-Symcon\scripts\ftpServerDWD.ips.php on line 71

Fatal error: Maximum execution time of 90 seconds exceeded in C:\IP-Symcon\scripts\ftpServerDWD.ips.php on line 111

Quellcode (Zeile 63 bis 71):

$tage = array("VHDL50_".$kennung, "VHDL51_".$kennung, "VHDL52_".$kennung, "VHDL53_".$kennung);
// Dateien local
$berichte = array("berichtHeute.txt", "berichtMorgen.txt", "berichtUebermorgen.txt", "berichtTag4.txt");
for($i = 0; $i < count($tage); $i++)
{
   	$localFile = IPS_GetKernelDir()."webfront\\user\\WetterFtpDWD\\berichte\\".$berichte[$i];
   	$handleBerichte = fopen($localFile, 'wb+');
	if (ftp_fget($conn_id, $handleBerichte, $tage[$i].$time, FTP_ASCII))

Jemand eine Idee?
EDIT: das hat sich erledigt … der Fehler kam auf, seit ich diese https://www.symcon.de/forum/threads/10114-Fragen-zur-Eigenen-Wetterseite?p=290131#post290131 Änderung gemacht hatte.

Hallo,

ich habe die 2 zip Dateien nach Anleitung entpackt. Bekomme es aber nicht zum laufen da der Login nicht mehr geht bzw. die Adresse ftp-outgoing2.dwd.de nicht mehr erreichbar ist.

Hat jemand die Wetterseite am Laufen?

Muss dazusagen bin php Anfänger.

Gruß Markus

DWD hat seine Serverstruktur stark geändert. Daher läuft RWNs ‚Eigene Wetterseite‘ nicht mehr. Somit musst du dich hier im Forum nach einer anderen Möglichkeit umsehen. Es gibt mehrere Möglichkeiten.

Was ist denn „eine echte Alternative“ hierzu?
Was benutzt Du?