Seite 3 von 5

Re: Wetterdaten einbinden

BeitragVerfasst: 22. Februar 2015, 18:54
von Fonzo
lobito hat geschrieben:Wetterdaten sind bei mir auch noch eine Baustelle, da ich die nicht einfach zum Anzeigen benötige sondern per relativer Echtzeit darauf Aktionen abbilden will wird es kompliziert.

Mit Mediola alleine anhand der Daten Aktionen abzubilden wird zur Zeit kaum möglich sein.
Hier ist beschrieben wie die Daten in IP Symcon einzubinden sind. Die Daten können dann in Mediola visualisiert werden.
http://www.ip-symcon.de/forum/threads/1 ... agePro2%29

Re: Wetterdaten einbinden

BeitragVerfasst: 24. Februar 2015, 15:20
von phaun
Ich nutze die Daten von Wetter.com

Dort bekomme ich alles im xml Format, welches ich dann mit PHP zerflücke

So sieht mein Ergebnis aus.

Re: Wetterdaten einbinden

BeitragVerfasst: 24. Februar 2015, 15:26
von lobito
Schon mal chic, aber das trifft leider meinen Anwendungsfall nicht. Meine private Wetterseite von WsWin einzubinden ist schon passiert so quick and dirty. Ich glaube ich löse das Problem mit Geld ( = KS300 kaufen) damit ich die Aktionen auslösen kann.

Re: Wetterdaten einbinden

BeitragVerfasst: 24. Februar 2015, 20:03
von nicolas-eric
@ phaun:

Das sieht ja mal echt genial aus! :D

Kannst Du bitte mal genau beschreiben, wie Du das so hinbekommen hast?
Genau so stelle ich mir das bei mir auch vor.

Re: Wetterdaten einbinden

BeitragVerfasst: 25. Februar 2015, 09:28
von phaun
Zuerst muss man sich bei Wetter.com anmelden und dort über die OpenWeatherAPi ein Projekt erstellen, wo man dann seinen Ort hinterlegt.
Anschließend bekommt man eine Projekt ID, über diese fragt das PHP Skript die XML Datei ab.

Code: Alles auswählen
<?php
 
class Widget_WeatherCom
{
    private $_url = 'http://api.wetter.com';
    private $_projectName;
    private $_apiKey;
 
    public function __construct($projectName, $apiKey)
    {
        $this->_projectName = $projectName;
        $this->_apiKey = $apiKey;
    }
 
    // return first result if there are more than one
    public function search($search)
    {
        // if it's a number, it's a postcode
        if (is_numeric($search)) {
            $checksum = md5($this->_projectName.$this->_apiKey.$search);
            $url = $this->_url.'/location/plz/search/'.$search.'/project/'.$this->_projectName.'/cs/'.$checksum.'/output/json';
        } else {
            $checksum = md5($this->_projectName.$this->_apiKey.$search);
            $url = $this->_url.'/location/index/search/'.$search.'/project/'.$this->_projectName.'/cs/'.$checksum.'/output/json';
        }
        $api = json_decode(file_get_contents($url), true);
 
        return $api['search']['result'][0]['city_code'];
    }
 
    public function getForecast($cityCode)
    {
        $checksum = md5($this->_projectName.$this->_apiKey.$cityCode);
        $url = $this->_url.'/forecast/weather/city/'.$cityCode.'/project/'.$this->_projectName.'/cs/'.$checksum.'/output/json';
 
        $api = json_decode(file_get_contents($url), true);
 
        return $api['city'];
    }
}
$myWeather = new Widget_WeatherCom('PROJEKTNAME', 'PROJEKTID');
$searchResult = $myWeather->search(POSTLEITZAHL);
$weatherInformation = $myWeather->getForecast($searchResult);
$date = date('Y-m-d');
?>


Anschließend gibt die Variable $weatherInformation die XML mit allen Daten zurück welche du nur noch formatieren musst

Re: Wetterdaten einbinden

BeitragVerfasst: 25. Februar 2015, 12:05
von nicolas-eric
Danke! :)

Bei Wetter.com habe ich mich jetzt angemeldet.
Ein openweather Projekt habe ich auch erstellt.
Da kann ich den Ort aber irgendwie gar nicht eingeben, sondern nur Sucheinstellungen und Vorhersageeinstellungen.

Aus Deinem Code habe ich ein .php Dokument erstellt.
Eine Projekt ID habe ich gar nicht bekommen auf der Wetter.com Seite.
Es wird aber ein API Key angezeigt.
Den muss ich in dem Code sicherlich irgendwo eintragen, wo denn genau?
Muss ich die Zugangsdaten zu Wetter.com auch wo eintragen?

Du schreibst, dass die Variable $weatherInformation dann die Wetterdaten beinhaltet.
Wie bekomme ich dann daraus die Anzeige der Wetterdaten gebastelt?

Sorry was so etwas das angeht bin ich komplett ahnungslos... :?

Danke schonmal für Deine Hilfe! :)

Re: Wetterdaten einbinden

BeitragVerfasst: 25. Februar 2015, 12:47
von phaun
in den letzten Zeilen
Code: Alles auswählen
$myWeather = new Widget_WeatherCom('PROJEKTNAME', 'PROJEKTID');
$searchResult = $myWeather->search(POSTLEITZAHL)

musst du das Groß geschriebene durch deine Werte ersetzen PROJEKTID = APIKEY

Zur Darstellung habe ich dann diesen Code gebaut:

Code: Alles auswählen
<?php
include('wettercom.php');
$morgen = strtotime("+1 day");
$morgenist = date("Y-m-d", $morgen);
$uemorgen = strtotime("+2 day");
$uemorgenist = date("Y-m-d", $uemorgen);
//print_r($weatherInformation);
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body bgcolor=373736>
<center><br>
<table id=header width=500>
<tr><td colspan=4><center><b>Heute</td></tr>
<tr>
<td align=center bgcolor=4b4b4b>
<?php
echo "06:00<br>";
echo "<img src='wetter/".substr($weatherInformation['forecast'][$date]['06:00']['w'],0,1).".png' width=100>";
echo "<br><font size=4>";
echo $weatherInformation['forecast'][$date]['06:00']['tn'];
echo " / ";
echo $weatherInformation['forecast'][$date]['06:00']['tx'];
echo "°C </font><br>";
echo $weatherInformation['forecast'][$date]['06:00']['pc'];
echo "% Risiko <br> ";
echo $weatherInformation['forecast'][$date]['06:00']['ws'];
echo " km/h aus ";
echo $weatherInformation['forecast'][$date]['06:00']['wd_txt'];

?>
</td>
<td align=center bgcolor=4b4b4b>
<?php
echo "11:00<br>";
echo "<img src='wetter/".substr($weatherInformation['forecast'][$date]['11:00']['w'],0,1).".png' width=100>";
echo "<br><font size=4>";
echo $weatherInformation['forecast'][$date]['11:00']['tn'];
echo " / ";
echo $weatherInformation['forecast'][$date]['11:00']['tx'];
echo "°C </font><br>";
echo $weatherInformation['forecast'][$date]['11:00']['pc'];
echo "% Risiko <br> ";
echo $weatherInformation['forecast'][$date]['11:00']['ws'];
echo " km/h aus ";
echo $weatherInformation['forecast'][$date]['11:00']['wd_txt'];
?>
</td>
<td align=center bgcolor=4b4b4b>
<?php
echo "17:00<br>";
echo "<img src='wetter/".substr($weatherInformation['forecast'][$date]['17:00']['w'],0,1).".png' width=100>";
echo "<br><font size=4>";
echo $weatherInformation['forecast'][$date]['17:00']['tn'];
echo " / ";
echo $weatherInformation['forecast'][$date]['17:00']['tx'];
echo "°C </font><br>";
echo $weatherInformation['forecast'][$date]['17:00']['pc'];
echo "% Risiko <br> ";
echo $weatherInformation['forecast'][$date]['17:00']['ws'];
echo " km/h aus ";
echo $weatherInformation['forecast'][$date]['17:00']['wd_txt'];
?>
</td>
<td align=center bgcolor=4b4b4b>
<?php
echo "23:00<br>";
echo "<img src='wetter/".substr($weatherInformation['forecast'][$date]['23:00']['w'],0,1).".png' width=100>";
echo "<br><font size=4>";
echo $weatherInformation['forecast'][$date]['23:00']['tn'];
echo " / ";
echo $weatherInformation['forecast'][$date]['23:00']['tx'];
echo "°C </font><br>";
echo $weatherInformation['forecast'][$date]['23:00']['pc'];
echo "% Risiko <br> ";
echo $weatherInformation['forecast'][$date]['23:00']['ws'];
echo " km/h aus ";
echo $weatherInformation['forecast'][$date]['23:00']['wd_txt'];
echo "<br>";
?>
</td>
</tr>
<tr><td colspan=4><br><center><b>Morgen</td></tr>
<tr>
<td align=center bgcolor=4b4b4b>
<?php
echo "06:00<br>";
echo "<img src='wetter/".substr($weatherInformation['forecast'][$morgenist]['06:00']['w'],0,1).".png' width=100>";
echo "<br><font size=4>";
echo $weatherInformation['forecast'][$morgenist]['06:00']['tn'];
echo " / ";
echo $weatherInformation['forecast'][$morgenist]['06:00']['tx'];
echo "°C </font><br>";
echo $weatherInformation['forecast'][$morgenist]['06:00']['pc'];
echo "% Risiko <br> ";
echo $weatherInformation['forecast'][$morgenist]['06:00']['ws'];
echo " km/h aus ";
echo $weatherInformation['forecast'][$morgenist]['06:00']['wd_txt'];

?>
</td>
<td align=center bgcolor=4b4b4b>
<?php
echo "11:00<br>";
echo "<img src='wetter/".substr($weatherInformation['forecast'][$morgenist]['11:00']['w'],0,1).".png' width=100>";
echo "<br><font size=4>";
echo $weatherInformation['forecast'][$morgenist]['11:00']['tn'];
echo " / ";
echo $weatherInformation['forecast'][$morgenist]['11:00']['tx'];
echo "°C </font><br>";
echo $weatherInformation['forecast'][$morgenist]['11:00']['pc'];
echo "% Risiko <br> ";
echo $weatherInformation['forecast'][$morgenist]['11:00']['ws'];
echo " km/h aus ";
echo $weatherInformation['forecast'][$morgenist]['11:00']['wd_txt'];

?>
</td>
<td align=center bgcolor=4b4b4b>
<?php
echo "17:00<br>";
echo "<img src='wetter/".substr($weatherInformation['forecast'][$morgenist]['17:00']['w'],0,1).".png' width=100>";
echo "<br><font size=4>";
echo $weatherInformation['forecast'][$morgenist]['17:00']['tn'];
echo " / ";
echo $weatherInformation['forecast'][$morgenist]['17:00']['tx'];
echo "°C </font><br>";
echo $weatherInformation['forecast'][$morgenist]['17:00']['pc'];
echo "% Risiko <br> ";
echo $weatherInformation['forecast'][$morgenist]['17:00']['ws'];
echo " km/h aus ";
echo $weatherInformation['forecast'][$morgenist]['17:00']['wd_txt'];

?>
</td>
<td align=center bgcolor=4b4b4b>
<?php
echo "23:00<br>";
echo "<img src='wetter/".substr($weatherInformation['forecast'][$morgenist]['23:00']['w'],0,1).".png' width=100>";
echo "<br><font size=4>";
echo $weatherInformation['forecast'][$morgenist]['23:00']['tn'];
echo " / ";
echo $weatherInformation['forecast'][$morgenist]['23:00']['tx'];
echo "°C </font><br>";
echo $weatherInformation['forecast'][$morgenist]['23:00']['pc'];
echo "% Risiko <br> ";
echo $weatherInformation['forecast'][$morgenist]['23:00']['ws'];
echo " km/h aus ";
echo $weatherInformation['forecast'][$morgenist]['23:00']['wd_txt'];
echo "<br>";
?>
</td>
</tr>
<tr><td colspan=4><br><center><b>Übermorgen</td></tr>
<tr>
<td align=center bgcolor=4b4b4b>
<?php
echo "06:00<br>";
echo "<img src='wetter/".substr($weatherInformation['forecast'][$uemorgenist]['06:00']['w'],0,1).".png' width=100>";
echo "<br><font size=4>";
echo $weatherInformation['forecast'][$uemorgenist]['06:00']['tn'];
echo " / ";
echo $weatherInformation['forecast'][$uemorgenist]['06:00']['tx'];
echo "°C </font><br>";
echo $weatherInformation['forecast'][$uemorgenist]['06:00']['pc'];
echo "% Risiko <br> ";
echo $weatherInformation['forecast'][$uemorgenist]['06:00']['ws'];
echo " km/h aus ";
echo $weatherInformation['forecast'][$uemorgenist]['06:00']['wd_txt'];

?>
</td>
<td align=center bgcolor=4b4b4b>
<?php
echo "11:00<br>";
echo "<img src='wetter/".substr($weatherInformation['forecast'][$uemorgenist]['11:00']['w'],0,1).".png' width=100>";
echo "<br><font size=4>";
echo $weatherInformation['forecast'][$uemorgenist]['11:00']['tn'];
echo " / ";
echo $weatherInformation['forecast'][$uemorgenist]['11:00']['tx'];
echo "°C </font><br>";
echo $weatherInformation['forecast'][$uemorgenist]['11:00']['pc'];
echo "% Risiko <br> ";
echo $weatherInformation['forecast'][$uemorgenist]['11:00']['ws'];
echo " km/h aus ";
echo $weatherInformation['forecast'][$uemorgenist]['11:00']['wd_txt'];
?>
</td>
<td align=center bgcolor=4b4b4b>
<?php
echo "17:00<br>";
echo "<img src='wetter/".substr($weatherInformation['forecast'][$uemorgenist]['17:00']['w'],0,1).".png' width=100>";
echo "<br><font size=4>";
echo $weatherInformation['forecast'][$uemorgenist]['17:00']['tn'];
echo " / ";
echo $weatherInformation['forecast'][$uemorgenist]['17:00']['tx'];
echo "°C </font><br>";
echo $weatherInformation['forecast'][$uemorgenist]['17:00']['pc'];
echo "% Risiko <br> ";
echo $weatherInformation['forecast'][$uemorgenist]['17:00']['ws'];
echo " km/h aus ";
echo $weatherInformation['forecast'][$uemorgenist]['17:00']['wd_txt'];
?>
</td>
<td align=center bgcolor=4b4b4b>
<?php
echo "23:00<br>";
echo "<img src='wetter/".substr($weatherInformation['forecast'][$uemorgenist]['23:00']['w'],0,1).".png' width=100>";
echo "<br><font size=4>";
echo $weatherInformation['forecast'][$uemorgenist]['23:00']['tn'];
echo " / ";
echo $weatherInformation['forecast'][$uemorgenist]['23:00']['tx'];
echo "°C </font><br>";
echo $weatherInformation['forecast'][$uemorgenist]['23:00']['pc'];
echo "% Risiko <br> ";
echo $weatherInformation['forecast'][$uemorgenist]['23:00']['ws'];
echo " km/h aus ";
echo $weatherInformation['forecast'][$uemorgenist]['23:00']['wd_txt'];

?>
</td>
</tr>
</table>
</body>
</html>


Unten den Vorhersageeinstellungen bei deinem Projekt musst du noch auf 3 Tage stellen und w,tn,tx,pc,ws als Felder auswählen

Re: Wetterdaten einbinden

BeitragVerfasst: 25. Februar 2015, 13:04
von nicolas-eric
Cool danke für Deine Hilfe! :D
Das hätte ich so niemals selber hinbekommen. :?

Das scheint soweit schonmal ganz gut zu funktionieren.

Nur habe ich hinter den Gradzahlen so ein komisches Â, wie bekomme ich das weg?
Es werden auch keine Bilder angezeigt.
Wenn ich ein Bild öffnen will in einem neuen Fenster, dann kommt:
"Not Found
The requested URL /wetter/2.png was not found on this server."

Muss ich die entsprechenden Bilddateien selber bei mir auf den Server legen?
Wenn ja, welcher Wetterzustand bekommt welche Nummer?

Hier mal ein Screenshot:
Bildschirmfoto 2015-02-25 um 13.00.10.png

Re: Wetterdaten einbinden

BeitragVerfasst: 25. Februar 2015, 13:32
von nicolas-eric
Das mit dem komischen A und Ü hab ich hinbekommen, indem ich in Deinen Code anstatt "°" und "Ü" den HTMl Code für die Zeichen eigegeben habe.
Aber die Bilder wollen leider irgendwie nicht.

Re: Wetterdaten einbinden

BeitragVerfasst: 25. Februar 2015, 15:53
von phaun
Hier sind die Grafiken im Anhang
Einfach einen Unterordner "wetter" erstellen und darin die Bilder