Wetterdaten einbinden

Re: Wetterdaten einbinden

Beitragvon Fonzo » 22. Februar 2015, 18:54

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
Denon AVR 4311, Dreambox 8000, Xtreamer Prodigy, Samsung LE40C750, Epson EH TW 3600, DVBViewer, IP-Symcon 4, IT Stecker, FS20 Aktoren, Dual-Mask Tension Multiformat Leinwand, RedEye, Homematic CCU2, Wetter OC3, Philips HUE, FireTV, AppleTV 3, Plex
Fonzo
 
Beiträge: 1177
Registriert: 8. Oktober 2010, 08:59

Re: Wetterdaten einbinden

Beitragvon phaun » 24. Februar 2015, 15:20

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.
phaun
 
Beiträge: 27
Registriert: 22. Januar 2015, 07:29

Re: Wetterdaten einbinden

Beitragvon lobito » 24. Februar 2015, 15:26

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.
lobito
 
Beiträge: 21
Registriert: 22. Februar 2015, 17:50

Re: Wetterdaten einbinden

Beitragvon nicolas-eric » 24. Februar 2015, 20:03

@ 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.
nicolas-eric
 
Beiträge: 312
Registriert: 30. Dezember 2014, 21:00

Re: Wetterdaten einbinden

Beitragvon phaun » 25. Februar 2015, 09:28

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
phaun
 
Beiträge: 27
Registriert: 22. Januar 2015, 07:29

Re: Wetterdaten einbinden

Beitragvon nicolas-eric » 25. Februar 2015, 12:05

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! :)
nicolas-eric
 
Beiträge: 312
Registriert: 30. Dezember 2014, 21:00

Re: Wetterdaten einbinden

Beitragvon phaun » 25. Februar 2015, 12:47

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
phaun
 
Beiträge: 27
Registriert: 22. Januar 2015, 07:29

Re: Wetterdaten einbinden

Beitragvon nicolas-eric » 25. Februar 2015, 13:04

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
nicolas-eric
 
Beiträge: 312
Registriert: 30. Dezember 2014, 21:00

Re: Wetterdaten einbinden

Beitragvon nicolas-eric » 25. Februar 2015, 13:32

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.
nicolas-eric
 
Beiträge: 312
Registriert: 30. Dezember 2014, 21:00

Re: Wetterdaten einbinden

Beitragvon phaun » 25. Februar 2015, 15:53

Hier sind die Grafiken im Anhang
Einfach einen Unterordner "wetter" erstellen und darin die Bilder
phaun
 
Beiträge: 27
Registriert: 22. Januar 2015, 07:29

VorherigeNächste

Zurück zu mediola a.i.o. creator

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste