"Ösi" Wetterseite

Sorry, ich kapier jetz bei diesem Script hier nicht genau was ich wo ändern soll bzw. finde ich es nicht :confused:

… ich poste heute Abend mal eine Version mit meinen derzeitigen Änderungen …
lg
Andreas

Ich hab gehofft das du das sagst :wink:

… meine angepasstes Refresh Script …


<?
	include_once "IPSWeather_Configuration.ips.php";
	include_once "IPSWeather_Constants.ips.php";
	include_once "IPSLogger.ips.php";
	define ("c_LogId", "WeatherRefresh");

	if (Sys_Ping(c_Value_IPExternal, 100)) {
		IPSLogger_Dbg(c_LogId, "Refresh Weather Data");
   	$api = simplexml_load_string(utf8_encode(@Sys_GetURLContent($urlGoogle)));
		echo $urlGoogle."
";

		SetValue (c_ID_LastRefreshDateTime, date("Y-m-j H:i:s"));
		SetValue (c_ID_LastRefreshTime, date("H:i"));

	   echo $api->weather->current_conditions->icon->attributes()->data."
";
		foreach($api->weather->forecast_conditions as $weather) {
	   	echo $weather->icon->attributes()->data."
";
		}
		echo print_r($api);

		// Aktuelles Wetter
		SetValue(c_ID_TodayForecastShort, (string)$api->weather->current_conditions->condition->attributes()->data);
		SetValue(c_ID_TodayTempCurrent,   (string)$api->weather->current_conditions->temp_c->attributes()->data);
		SetValue(c_ID_AirHumidity,        str_replace("Feuchtigkeit", "rel.Luftfeuchte", $api->weather->current_conditions->humidity->attributes()->data));
		SetValue(c_ID_Wind,               (string)$api->weather->current_conditions->wind_condition->attributes()->data);
		set_WeatherIcon($api->weather->current_conditions->icon->attributes()->data, $pathIconsLarge, c_ID_TodayIcon);

		// Wettervorhersage heute, morgen, in zwei und in drei Tagen ($wetter[1] bis $wetter[4])
		$i = 0;
		foreach($api->weather->forecast_conditions as $weather)
		{
			if ($i==0) {
				SetValue(c_ID_TodayDay,           str_replace($DaySourceArray, $DayDisplayArray, $weather->day_of_week->attributes()->data));
				SetValue(c_ID_TodayForecastShort, (string)$weather->condition->attributes()->data);
				SetValue(c_ID_TodayTempMin,       (string)$weather->low->attributes()->data);
				SetValue(c_ID_TodayTempMax,       (string)$weather->high->attributes()->data);
				set_WeatherIcon ($weather->icon->attributes()->data, $pathIconsLarge, c_ID_TodayIcon);
			} else if ($i==1) {
				SetValue(c_ID_TomorrowDay,            str_replace($DaySourceArray, $DayDisplayArray, $weather->day_of_week->attributes()->data));
				SetValue(c_ID_TomorrowForecastShort,  (string)$weather->condition->attributes()->data);
				SetValue(c_ID_TomorrowTempMin,        (string)$weather->low->attributes()->data);
				SetValue(c_ID_TomorrowTempMax,        (string)$weather->high->attributes()->data);
				set_WeatherIcon ($weather->icon->attributes()->data, $pathIconsSmall, c_ID_TomorrowIcon);
			} else if ($i==2) {
				SetValue(c_ID_Tomorrow1Day,           str_replace($DaySourceArray, $DayDisplayArray, $weather->day_of_week->attributes()->data));
				SetValue(c_ID_Tomorrow1ForecastShort, (string)$weather->condition->attributes()->data);
				SetValue(c_ID_Tomorrow1TempMin,       (string)$weather->low->attributes()->data);
				SetValue(c_ID_Tomorrow1TempMax,       (string)$weather->high->attributes()->data);
				set_WeatherIcon ($weather->icon->attributes()->data, $pathIconsSmall, c_ID_Tomorrow1Icon);
			} else if ($i==3) {
				SetValue(c_ID_Tomorrow2Day,           str_replace($DaySourceArray, $DayDisplayArray, $weather->day_of_week->attributes()->data));
				SetValue(c_ID_Tomorrow2ForecastShort, (string)$weather->condition->attributes()->data);
				SetValue(c_ID_Tomorrow2TempMin,       (string)$weather->low->attributes()->data);
				SetValue(c_ID_Tomorrow2TempMax,       (string)$weather->high->attributes()->data);
				set_WeatherIcon ($weather->icon->attributes()->data, $pathIconsSmall, c_ID_Tomorrow2Icon);
			} else  {
				IPSLogger_Err(c_LogId, "Receive unknown Weather Forecast Condition");
			}
			$i++;
		}

		$lHTML=file_get_contents($orfUrl);
		$orfData=explode($orfSearchStart, $lHTML);

		$aSearch   = array($orfSearchDelimiter, $orfSearchEnd, "<table border=0 cellspacing=0 cellpadding=0>
<tr>
<td width=315 valign=top nowrap><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=3 color=003366></font>
<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=-1 color=000033>");
		$aReplace  = array("</h2>", "", "");

		SetValue (c_ID_TodayForecastLong, "<h2>".str_replace($aSearch,$aReplace,$orfData[1]));
		SetValue (c_ID_TomorrowForecastLong, "<h2>".str_replace($aSearch,$aReplace,$orfData[2]));
		SetValue (c_ID_Tomorrow1ForecastLong, "<h2>".str_replace($aSearch,$aReplace,$orfData[3]));
		SetValue (c_ID_Tomorrow2ForecastLong, "<h2>".str_replace($aSearch,$aReplace,$orfData[4]));
	} else {
		IPSLogger_Trc(c_LogId, "No Connection - Refresh of Weather Data NOT possible");

	}


	function set_WeatherIcon ($Icon, $IconPath, $IconId) {
		$Icon = str_replace("/ig/images/weather/", $IconPath, $Icon);
		$Icon = str_replace("http://g0.gstatic.com/images/icons/onebox/", $IconPath, $Icon);
		$Icon = str_replace(".gif", ".png",  $Icon);
		$Icon = str_replace("weather_", "",  $Icon);
		$Icon = str_replace("-40", "",  $Icon);
		$Icon = str_replace("partlycloudy", "partly_cloudy",  $Icon);
		$Icon = str_replace("scatteredthunderstorms", "chance_of_tstorm",  $Icon);
		$Icon = str_replace("scatteredshowers", "chance_of_rain",  $Icon);
		$Icon = str_replace("mostlycloudy", "mostly_cloudy",  $Icon);
		$Icon = str_replace("mostlysunny", "mostly_sunny",  $Icon);
		SetValue($IconId, $Icon);
	}
?>

Das führt bei mir beim ausführen des aktualisierten Refresh Scripts zum Stillstand…

Edit: Ich nehms zurück, nach Neustart klappt alles wunderbar.

Danke!

Funktioniert super!!!

Dank dir!!!

Nochmal ne Frage zu diesem Thema. Ist euch schon mal aufgefallen das die Wettermeldung „vereinzelt stürmisch“ gar sehr gerne benutzt wird. Bei mir zum Beispeil steht das Icon grad auf Gewitter und daneben „vereinzelt stürmisch“. Gehört das so? Ist das so gewollt oder passts einfach manchmal nicht?

Im speziellen meinst Du wohl das Icon für „chance_of_tstorm.png“.
Mach mal Vorschläge, was Du ändern würdest. Die Icons findest Du unter …/WebFront/user/weather/icons/.

Ich muss mir mal anschauen wie die Scripts genau ablaufen, um sie vielleicht zu verstehen. Aber im Grunde stört mich das die vorhersage für den nächsten Tag meist nicht stimmt. Heute zum Beispiel ist es bewölkt und es regnet zeitweise. Gestern wurde aber für heute Teils sonnig vorhergesagt.

Gestern war ein wunderschöner Tag, vorhergesagt wurde „teils stürmisch“. Wind ging aber kaum welcher. Ja, ich hab den richtigen Ort eingestellt :smiley:

na, an falsche Wettervorhersagen bin ich irgendwie schon gewohnt :rolleyes:
aber Scherz beiseite, unter Umständen ist ja die Auswertung der Google Daten wirklich nicht ganz korrekt, werde das auch selbst noch etwas beobachten…

Alles klar!! Ich beobachte dann auch mal weiter…

Hallo
Ich hatte die Scripte auch mal laufen und mich ebenfalls über auffallend falsche Vorhersagen gewundert. Paßte meißt nicht mal im entferntesten.
Ort ebenfalls richtig.

Habs dann aber nicht weiterverfolgt da es mir nicht so sonderlich wichtig war.

Gruß
Bb

Naja, der Vorhersagetext passt ja ganz gut. Aber wenn das Icon Gewitter zeigt und drunter steht „Vereinzelt stürmisch“, dann passt das für mich nicht. Da gehört „Gewittrig“ drunter. Aber bei uns ist es jeden zweiten Tag stürmisch :smiley:

Kann ich bei mir auch bestätigen. Aber da sind wohl die Wetterfrösche von google schuld. Wenn man sich das original-XML im Browser abruft steht da für morgen:

<forecast_conditions>
<day_of_week data=„Fr.“/>
<low data=„19“/>
<high data=„25“/>
<icon data=„http://g0.gstatic.com/images/icons/onebox/weather_scatteredthunderstorms-40.gif“/>
<condition data=„Vereinzelt stürmisch“/>
</forecast_conditions>

Hab extra nachgeschlagen: scattered thunderstorms sind vereinzelte Gewitter.

Unsere Gewitter sind für amerikanische Verhältnisse wahrscheinlich nur ein leichtes Stürmchen:D

Gruß
Rubberduck

Guten Morgen!

Habe vor ein paar Tagen auf 2.5 upgedatet und nun ist mir hier folgendes aufgefallen:

beim Scriptaufruf von IPSWeather_Refresh kommt folgende Fehlermeldung:

Fatal error:  Call to a member function attributes() on a non-object in [Program\Weather\Scripts\IPSWeather_Refresh] on line 15

mir ist jetzt aufgefallen, dass ‚Sys_GetURLContent($urlGoogle)‘ leer ist, habe dazu auch versucht die URL direkt einzugeben → ‚Sys_GetURLContent(„http://www.google.com/ig/api?weather=Voecklabruck-Austria&hl=de“)‘ aber immer noch nichts drinnen…

echo Sys_GetURLContent("http://www.google.at");

allerdings liefert mir ein Ergebnis.
Funktionierts bei den anderen?

Gruß,
Christian.

Abfrage mit Deiner URL funktioniert prinzipiell:


	$url = "http://www.google.com/ig/api?weather=Voecklabruck-Austria&hl=de";
	$xml = utf8_encode(Sys_GetURLContent($url));
   $api = simplexml_load_string($xml);
	echo print_r($api);

Schick mir mal eine PM mit Deinem aktuelle Code, Zeile 15 bei mir ein Kommentar

Hallo,

Wie´s aussieht, verträgt Sys_GetURLContent seit dem Update keine Umlaute in der URL, habe jetzt statt Vöcklabruck mal Voecklabruck genommen, und siehe da, jetzt funktionierts :slight_smile:

Gruß,
Christian.

Habt ihr schon gesehen das der ORF seine Wetterseite umgebaut hat, sehe ich deswegen jetzt keinen Text mehr in meiner Wetterseite :frowning: die Url hat sich auf alle Fälle geändert…mal gucken, vielleicht bring ich es selbst hin bzw. kann uns Brownson mit einem Update versorgen :smiley:

Also ich bring das nicht hin! Gibts den keinen mehr unter euch der dies nutzt und uns unwissenden mal helfen kann??

Klar nutz ich es noch, hab gehofft Brownson kümmert sich drum :wink: