InfoFrame: Digitaler Bilderrahmen (Anzeige von Anrufen, E-Mails, Termine, Wetter...)

habe ich auch schon mal geändert...hatr aber auch nicht funktioniert!
 
Hallo bolle,

bei mir funktioniert es mit der Änderung der URL.
(Zumindest momentan)

Tschau
Uwe
 
zeig mal bitte wie es bei dir aussieht...
 
Hallo bolle,

so wie weiter oben schon gepostet, nur mit geänderter URL.

Code:
	public function doUpdate() {
		$loop = 5;
		// download google weather XML into local file for caching
		while($loop--)
		{
  	  	  $city = urlencode( $this->config['city'] );
  		  $curl = curl_init();
  		  $file = fopen("cache/weather.xml", "w");
  		  if ($file)
  		  {
  			curl_setopt($curl, CURLOPT_URL, utf8_encode("http://www.google.com/ig/api?weather=$city&oe=UTF8&hl=DE"));
  			curl_setopt($curl, CURLOPT_FILE, $file);
  			curl_setopt($curl, CURLOPT_USERAGENT, utf8_encode("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"));
  			curl_exec($curl);
  			fclose($file);
  	  	  }
  	  	  curl_close($curl);
  	  	  if(filesize("cache/weather.xml") > 1000)
  	  	    break;
  	  	  sleep(5);
  	  	}
	}

Tschau
Uwe
 
Und damit hast du keine Aussetzer?
 
Hallo,

beim Updateintervall 60 min nicht.

Tschau
Uwe
 
also bei mir funzt es nicht!

und mit dem vom ronny_b
Code:
public function doUpdate() {
		// download google weather XML into local file for caching
		$city = urlencode( $this->config['city'] );
		$curl = curl_init();
		$file = fopen("cache/weather.tmp", "w");
		if ($file)
		{
			curl_setopt($curl, CURLOPT_URL, utf8_encode("http://www.google.de/ig/api?weather=$city&oe=UTF8"));
			curl_setopt($curl, CURLOPT_FILE, $file);
			curl_exec($curl);
			curl_close($curl);
			fclose($file);
		}
	if(filesize("cache/weather.tmp") > 1000) {
		copy ("cache/weather.tmp", "cache/weather.xml");
		}

erneuert sich keiner miener Feeds, noch das Wetter im Cache....

Was läuft da schief?
 
So, jetzt habe ich die zwei Code-Lösungen für das Google-Weather-API-Problem von uweklatt und ronny_b zusammengefasst und zusätzlich noch den Vorschlag von bolle (Warum Weather-Update jede Minute?) eingearbeitet. Seit heute Nachmittag läuft das Weather-Plugin ohne Aussetzer.

Was habe ich gemacht:
Im Weather-Plugin schaut die doUpdate-Funktion so aus:
Code:
  public function doUpdate() {
        $loop = 5;
        // download google weather XML into local file for caching
        while($loop--)
        {
            $city = urlencode( $this->config['city'] );
            $curl = curl_init();
            $file = fopen("cache/weathertmp.xml", "w");
            if ($file)
            {
              curl_setopt($curl, CURLOPT_URL, utf8_encode("http://www.google.de/ig/api?weather=$city&oe=UTF8&hl=DE"));
              curl_setopt($curl, CURLOPT_FILE, $file);
              curl_setopt($curl, CURLOPT_USERAGENT, utf8_encode("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"));
              curl_exec($curl);
              // curl_close($curl); // Entfernen !
              fclose($file);
            }
            curl_close($curl);
            if(filesize("cache/weathertmp.xml") > 1000)
              copy ("cache/weathertmp.xml", "cache/weather.xml");
              break;
            sleep(5);
        }
  }

Außerdem habe ich folgenden Code im Weather-Plugin
Code:
if ($updateData || !file_exists($filename))
			$this->doUpdate();
durch diesen ersetzt
Code:
$diff_seconds_weather = (time() - filectime($filename));
    if (!file_exists($filename) || ($diff_seconds_weather > ($this->config['update_weather']*60))){  
      $this->doUpdate();
    }

Außerdem habe ich in der config.ini folgende Zeile im Abschnitt des Weather-Plugins ergänzt:
Code:
update_weather = 30
Dies bedeutet, dass die doUpdate-Funktion des Weather-Plugins alle 30 Minuten ausgeführt wird.

Somit dürfte dieses Problem erstmal umfangreich behoben sein. Vielen Dank für die glänzenden Vorlagen :cool:.

Gruß
Hoobert
 
Wenn das funktioniert haben wir/ ich zu danken....
Versuche es morgen mal!

Thx
 
Hallo Hoobert,

Code:
            if(filesize("cache/weathertmp.xml") > 1000)
              copy ("cache/weathertmp.xml", "cache/weather.xml");
              break;
Da fehlt noch eine Klammer!
Code:
            if(filesize("cache/weathertmp.xml") > 1000)
           [COLOR="#FF0000"] {[/COLOR]
                copy ("cache/weathertmp.xml", "cache/weather.xml");
                break;
           [COLOR="#FF0000"] }[/COLOR]
Tschau
Uwe
 
Ups. Sehr aufmerksam, vielen Dank!

Gruß
Hoobert
 
Bei mir geht es auch ohne die vergessenen Klammern....oder trügt der Schein?
@hoobert eventuell deinen Beitrag editieren und die zwei Klammern hinzufügen, sollten diese doch von Nöten sein. Danke!!
 
also nach der Änderuing von hoobert, passiert bei mir nichts mehr! Es wird auch die Zeit nicht mehr aktualisiert!
 
vielleicht bin ich nur zu doof das zu ändern und ich mach irgendwo ein Fehler...eventuell könnt ihr ja das veränderte WeatherPlugin hier hochladen...
 
also bei mir funktioniert es seit heute mit dem Wetter überhaupt nicht mehr. Wenn ich die API aus dem Browser abfrage erhalte ich folgende Rückmeldung
Code:
XML-Verarbeitungsfehler: Syntax-Fehler
Adresse: http://www.google.com/ig/api?weather=frankfurt
Zeile Nr. 1, Spalte 1:Unsupported API
^

Gruß Olli
 
Tja, liebe Leute, schaut so aus als ob wir uns die Mühe umsonst gemacht hätten:
http://stackoverflow.com/questions/12139565/google-weather-api-returning-strange-new-error

...und uns nach einer neuen Möglichkeit der Wettervorhersage umsehen müssten. Hat hier jemand Infos und Ideen bzgl. anderer freier Wetter-APIs, die wir anzapfen könnten. Bei einer kurzen googelei habe ich MSN, yahoo oder wunderground gefunden. Weiß jemand welche am geeignetsten ist? Gibt's weitere?

Gruß
Hoobert
 
Wäre klasse wenn man z.B. Wetter24.de parsen könnte. Die bieten zwar auch eine Api an, jedoch nur gegen Bezahlung. Wetter24.de hat ja auch noch mehr Werte als nur Temperaturvorhersage. Einfach mal reinschauen
 
Zuletzt bearbeitet:
... Die müsste allerdings noch jemand parsen, dazu fehlt mir der Background
... Dein Wunsch ist mir Befehl.

Ich hab mich gestern Abend schonmal drangemacht und habe das WeatherPlugin auf die Struktur der .xml-Datei von wunderground.com umgebaut. Allerdings muss man sich bei wunderground anmelden um einen API-Key zu bekommen, den man in die URL einbauen muss. Die Anmeldung ist kostenlos und damit kann man 500-mal am Tag aktualisieren, was bei einer Aktualisierungszeit von einer halben Stunde locker reicht.

Mein WeatherPlugin habe ich angehängt und folgende Schritte führen zum Erfolg:
  • ihr benötigt die Stelle von Beginn der doOutput-Funktion bis zum Kommentar "ENDE XML-Datei auslesen"
  • die Funktion getLocalWeatherImage()
  • die Funktion doUpdate()
  • der Eintrag "update_weather = 30" im Abschnitt des WeatherPlugin in der config.ini (entspricht der Aktualisierungszeit 30 Minuten)
  • der Eintrag "api_key = "Euer_API_Key"" im Abschnitt des WeatherPlugin in der config.ini
  • die Namen der Icons an die neuen Bezeichnungen anpassen, oder meine nehmen

In der WeatherPlugin.php habe ich im Vergleich zu der Originalversion von PacmanII einige Dinge angepasst, abgeändert und hinzugefügt, da müsstet ihr bitte schauen was ihr nicht bzw. anderst braucht.
Anhang anzeigen WeatherPluginUpdate.zip

Dann wünsch ich allen gutes Gelingen!
Gruß
Hoobert

P.S.: Falls jemand noch eine bessere Alternative zu wundergound hat, nur her damit.
 
Hi Hoobert,

hab mal eben schnell dein Plugin auf meinen Server geladen. Klasse Arbeit von dir! ;)
Du zeigst ja innerhalb des Wetter-Plugins noch einiges mehr an.
Würde es dir etwas aus machen wenn du zusätzlich nochmal deinen icon-Ordner hochladen könntest?

Grüße Olli
 
Kostenlos!

Statistik des Forums

Themen
248,888
Beiträge
2,304,093
Mitglieder
378,571
Neuestes Mitglied
Heiko2026