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

@ronny_b

so sieht der Code aktuell bei mir aus...

passt das?
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");
		}

so korrekt?!
 
Zuletzt bearbeitet:
Hallo,

die Abfrage bei "www.google.de" funktioniert momentan nicht.
"www.google.com" dagegen liefert Daten...

Also die URL ändern...

Tschau
Uwe
 
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:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.