Wetterdaten einer Fremdstation

Hallo Zusammen,
ganz in meiner Nähe (ca. 1km) von mir befindet sich eine professionelle Wetterstation und ich Frage mich ob man die Daten irgendwie auslesen bzw. verwenden/in IPS verwerten kann.
Der Link zu den Daten ist: http://aprs.fi/#!call=a%2FDO5NE-1&timerange=900&tail=900
unter anderem gibt es auf der Seite dann noch einen Link zu sogenannten Rohpaketen: http://aprs.fi/?c=raw&call=DO5NE-1

Hat jemand eine Idee wie ich die Daten verwerten kann und in IPS importieren und darstellen lassen kann?

1000- Dank im Voraus,
Gruß
Dirk

aprs bietet eine api, da kannst du dir die daten von dem kollegen in kaarst direkt holen, dafür gibts nen api-key, den du aber nur als reg. user bekommst http://api.aprs.fi/api/get?name=xxxxx&what=loc&apikey=xxxxxxxxxxxxxxxxxxxxxxx&format=json

notfalls kannst du die seite http://aprs.fi/weather/DO5NE-1 auch parsen

Das ist ja super, hatte ich gar nicht gesehen. Habe mich mal angemeldet. Leider bin ich kein Programmierer. Jemand eine Idee wie ich die Daten in IPS bekomme? Mir kommt es vor allem auf Windstärke, luftfeuchte und Temperatur an um später mal Markisen und Gartenbewässerung steuern zu können…
Gruß Dirk

<?

$temp = file("http://aprs.fi/weather/a/HB9AGA-20");
$temp = utf8_decode($temp[203]);
print_r ($temp);

?>

ich habe dir oben den api-json string reingeschrieben, den musst du nur mit deinem api-key ergänzen, als ergebnis
bekommst du das hier:

{"command":"get","result":"ok","what":"loc","found":1,"entries":[{"class":"a","name":"DO5NE-1","type":"w","time":"1357051203","lasttime":"1359117613","lat":"51.19133","lng":"6.61133","symbol":"\/_","srccall":"DO5NE-1","dstcall":"","comment":".PCWS2.96.3E60","path":"TCPIP*,qAC,CORE-2"}]}

und parst du dir mit dem textparser deine relevanten daten raus
der apikey steht unter mein konto

perfekt, ich habs mit dem PHP Script gelöst. Jetzt müsste ich nur noch wissen wie ich statt „Temperature“ Temperatur auf deutsch davor schreiben lassen kann…

also ich habe es jetzt mit dem PHP Code von jbu gemacht. Habe im Webfront die Kategorie Umwelt und darunter jetzt 2 Punkte mit Scripten (einmal Temperatur, einmal Luftfeuchtigkeit). Im Webfront muss ich jetzt auf Umwelt und dann auf einen der Unterpunkte klicken, damit eine Art schwarzer Popup öffnet wo dann in Mini Schrift steht zum Beispiel: Temperature: 6 °C. (Die Scripte haben ein Ereigniss zugeordnet welches alle 15 Minuten den Status abfragt). Wie mache ich das, dass wenn ich auf Umwelt klicke, direkt eine Übersicht kommt mit Temperature, Humidity und die entsprechenden Werte daneben?

Vielen Dank und Gruß
Der Newbie

du nimmst $temp und schreibst den in eine variable zb mit setvalue(12345,$temp) diese vari mit richtigen profil versehen und schon steht der temp-wert im webfront. lass es regelmässig triggern (ereignis) zb alle 30min

da es mit dem PHP Script nicht so gut funktioniert möchte ich es jetzt doch mit dem API Key machen.
Irgendwie hänge ich. Folgendes habe ich gemacht:
In der Kategorie Umwelt habe ich ein „Instanz“ hinzugefügt )Sonstiges-Text Parser.
Hier habe ich gesagt: Hole dir Text zwischen:
{„command“:„get“,„result“:„ok“,„found“:1,„what“:„wx“,„entries“:[{„name“:„DO5NE-1“,„time“:„1359885612“,„temp“:"
und
",„pressure“:„1017.8“,„humidity“:„83“,„wind_direction“:„180“,„wind_speed“:„0.9“,„wind_gust“:„0.9“,„rain_1h“:„0.0“,„rain_24h“:„0.0“,„rain_mn“:„0.0“}]}

das wäre dann die Temperatur.
Als übergeordnete Instanz habe ich ausgewählt: WWW Reader und hier die URL inkl. API Key angegeben:
http://api.aprs.fi/api/get?name=DO5NE-1&what=wx&apikey=49960.b8sJkuWQTaGDzb&format=json

Diese übergeordnete Instanz habe ich „Hole Temperatur“ genannt.

Wenn ich jetzt im Webfront auf den Reiter Umwelt klicke, erscheint da zwar Temperatur, aber daneben steht kein Wert…
Was mache ich falsch?

Moin Dirk,
such mal nach „WONDERGROUND“ im FORUM und schau Dir das Skript an. Was Du da per TextParser ausliest kannst Du viel einfacher per PHP-Skript auswerten, da es eine Rückgabe in JSON ist. Ein weiteres Beispiel findest Du hier:

http://www.ip-symcon.de/forum/threads/20704-API-in-IPS-nutzen?p=187524#post187524

Das ist auch eine JSON-Rückgabe und dort kannst Du sehen wie die einzelnen Werte ausgewertet werden können.
Solltest Du es nicht alleine schaffen sag bescheid.

Gruß,
Peter

<?

$wetter = file("http://aprs.fi/weather/a/HB9AGA-20");
$atemp = utf8_decode($wetter[203]);
$humid = utf8_decode($wetter[204]);
$hpa = utf8_decode($wetter[205]);
$wind = utf8_decode($wetter[206]);
$regen = utf8_decode($wetter[207]);
echo $ausgabe = "$atemp
 $humid
 $hpa
 $wind
 $regen";

?>

gibt folgende ausgabe

Temperature: 0.0*°C

Humidity: 81 %

Pressure: 1013.6 mbar

Wind: West 274° 3.6m/s (Gusts 3.6m/s)

Rain: 0.0mm during last 1 hour, 1.0mm during last 24 hours

hi jbu,
das stimmt, aber das problem ist, wenn ich alle 30 Minuten abfrage bekomme ich nach ein paar Stunden die Meldung:
Too many connection on the website. aprs.fi scheint mich dann quasi zu blockieren…deswegen dachte ich man kann es mit der API Lösung umgehen. einen API Schlüssel habe ich ja.

Bei Wunderground ist die nächste Wetterstation Willich, das ist ca. 10km von hier und die andere Station DO5NE-1 von aprs ist kaum 1 km entfernt…
Mit dem anderen Script von Peter komme ich alleine leider nicht klar. Weiss nicht wie ich es für meine API URL anpassen muss…sorry, totaler Newbie:-)

Gruß
Dirk

du kannst auch diese seiteparsen

<?
$api = "49966.1KhEa8y3xxxxxxxx";

$json_string = file_get_contents("http://api.aprs.fi/api/get?name=OH2TI&what=wx&apikey=$api&format=json");
$wetter = json_decode($json_string);
print_r($wetter);
$name = ($wetter->{'entries'}[0]->{'name'});

?>

anstelle von „Name“ stehen dir noch folgende Felder zur Verfügung

[name] => OH2TI
[time] => 1359896294
[temp] => -1.1
[pressure] => 997.0
[humidity] => 71
[wind_direction] => 308
[wind_speed] => 0.4
[wind_gust] => 0.9
[rain_1h] => 0.3
[rain_24h] => 2.3

hey jbu,
1000-Dank, das werde ich mal probieren!!! ICh werde berichten…

Gruß Dirk

Hallo jbu,
sorry, ich wenn ich nerve…ich habe jetzt ein Script angelegt:

<?
$api = "49960.b8sJkuWQTaGDzb";

$json_string = file_get_contents("http://api.aprs.fi/api/get?name=DO5NE-1&what=wx&apikey=$api&format=json");
$wetter = json_decode($json_string);
print_r($wetter);
$name = ($wetter->{'entries'}[0]->{'name'});

?>

Wenn ich es ausführe erhalte ich:

stdClass Object
(
    [command] => get
    [result] => ok
    [found] => 1
    [what] => wx
    [entries] => Array
        (
            [0] => stdClass Object
                (
                    [name] => DO5NE-1
                    [time] => 1359912017
                    [temp] => 4.4
                    [pressure] => 1011.7
                    [humidity] => 82
                    [wind_direction] => 337
                    [wind_speed] => 0.9
                    [wind_gust] => 0.9
                    [rain_1h] => 0.5
                    [rain_24h] => 0.5
                    [rain_mn] => 0.5
                )

        )

Wie kann ich mir jetzt die Temperatur und Luftfeuchtigkeit im Webfront unter Umwelt tabellarisch darstellen lassen.
Ich glaube ich habe das alles noch nicht so gerafft und mir fehlt irgendwie noch ein Schritt.
Ich würde jetzt ein Ereignis anlegen, damit das Script zyklisch ausgeführt wird und ich schätze mal das ich jetzt eine Variable in der Kategorie Umwelt anlegen muss die das ausgibt, aber da stoppts bei mir…was muss ich auswählen und was gehört da rein? oder bin ich total auf dem falschen Dampfer?

Gruß und 1000-Dank im Voraus
Dirk

das „print_r($wetter)“ zeigt dir alles an, was abgeholt wird.
mach // vor das print_r und ein echo vor die Variable $name, dann wird dir nur diese angezeigt.

$name gibt dir den Namen der Station.
jetzt kannst du mit zb.

$temp = ($wetter->{'entries'}[0]->{'temp'});

die Temperatur auslesen usw.

Beispiele für Tabellen gibts genug im Forum.

hallo jbu,
das klappt wunderbar. aber noch mal zu den Tabellen. Ich suche keine Tabellen, ich weiss derzeit nicht wie ich es einfach nur dargestellt bekomme.
Ich will die Temp schlicht und einfach auslesen und im Webfront anzeigen wenn ich auf die Kategorie Umwelt klicke. Derzeit muss ich noch auf „Temperatur“ klicken (das ist das Script) und es öffnet sich das schwarze Feld mit der reinen Zahl, z.b 4,4 und düber steht „Wetter“. Ich würde aber gerne einfach darstellen in Umwelt:
Temperatur: 4,4 °C
also mit Präfix und Suffix, aber ich weiss nicht wie es geht…mit einer Variable?
Was dann?.. Wenn ich Integer auswähle und ein paar Angaben mache und bei „Eigene Aktion“ wähle ich das Script Temperatur an zeigt es im Webfront: Visualisierung nicht möglich…

Viele Grüße
Dirk

String-Variable anlegen

SetValue(123456, "Temperatur: $temp°");

Eigenes Profil probierst du aus was passiert, wenn du das veränderst.

Dem Script weist du ein Ereignis zu für die Aktualisierung (zB. alle x Minuten).

nicht steinigen: String Variable habe ich angelegt, aber wo kann ich da „SetValue(123456, „Temperatur: $temp°“);“ hinterlegen?