Wunderground paresy/SymconMisc

Moin!

Der Fehler mit dem auto-convert ist bekannt und ich werde bei Zeiten dem Modul noch eine komplette Überarbeitung geben.

Grüße
Pio

Hallo Pio,

hast du schon eine zeitliche Vorstellung?

neben der auto-convert Anpassung habe ich bei mir noch zwei weitere lokale Ergänzungen gemacht. Da bei meiner Station die stündlichen und die 12-stündlichen Vorhersagen nicht immer vorliegen habe ich noch eingefügt:


// Zeile 156:
           if (isset($WeatherNextHours->hourly_forecast[$i-1])) {

// Zeile 175:
           if (isset($WeatherNextHalfDays->forecast->simpleforecast->forecastday[$i-1])) {


Gruß

Burkhard

Wunderground bietet neben der Angabe einer Stadt auch die Möglichkeit, eine bestimmte „Personal Weatherstation“ anzugeben und verwendet dazu die sog. PWS-ID.

Diese PWS-ID wird vergeben, wenn man eine Wetterstation bei WU registriert. Man kann diese ID sehen, wenn man in den Karten von Wunderground nach seiner Stadt sucht und dann die angezeigeten Wetterstationen antippt.

Bei Angabe einer PES-ID werden dann die von dieser Wetterstation an WU geschickten Daten (u.B. Regen oder Wind) in die Ergebnise der Abfrage integriert.

Ich habe die Maske um ein Feld zur optionalen Angabe der PWS erweitert sowie die Scripte angepasst (die URL ist ein bisschen anders aufgebaut).

Wenn Interesse besteht, kann ich die Änderungen gerne weitergeben; ich habe auf GitHub einen Fork von dem Modul erstellt und die Änderungen hierin comittet.

Ich war gerade auf der Suche im Forum um heraus zu finden, wie ich „nur“ die Daten eines PWS von Wunderground einlesen kann. Selbst habe ich keine Wetterstation und daher das Modul auch noch nicht installiert. Ich habe aber eine PWS-ID aus der Nachbarschaft und würde die Daten gerne einlesen.
Deine Beschreibung hört sich so an, als könnte ich genau das realisieren.
Kannst Du bitte mal den Link posten? Ich würde das gerne mal ausprobieren. (Ich hoffe ich habe es auch richtig verstanden)

Hallo,

mir ist den der Halbtages-Vorhersage eine Inkonsistenz aufgefallen.

Es gibt ja die Möglichkeit, bis zu 8 Halbtages-Vorhersagen auszuwählen.

Die aktuelle Schnittstelle von Wundergrund liefert aber meiner Meinung nach etwas anderes.

In der Wunderground-API-Doku ist von einer 3 Tages-Vorhersage die Rede.
Wenn mann sich die JSON-Daten anschaut, werden 4 Periode des ‚simpleforcecast‘ geliefert

Das ist ein Teil der Nachricht (aus dem Debug-Fenster kopiert) von einem Aufruf gestern Abend (16.2. 21:37).

Diese enthält m.E. 4 Vorhersagen, die jeweils für einen Tag, jeweils beginnen um 19Uhr und zwar den 16. (also aktueller Tag), 17. / 18. / 19.


[forecast] => stdClass Object
    (
    ...
        [simpleforecast] => stdClass Object
            (
                [forecastday] => Array
                    (
                        [0] => stdClass Object
                            (
                                [date] => stdClass Object
                                    (
                                        [epoch] => 1518804000
                                        [pretty] => 07:00 PM CET am 16. Februar 2018
                                        ...
                                    )

                                [period] => 1
                                ...
                            )
                        [1] => stdClass Object
                            (
                                [date] => stdClass Object
                                    (
                                        [epoch] => 1518890400
                                        [pretty] => 07:00 PM CET am 17. Februar 2018
                                        ...
                                    )

                                [period] => 2
                                ...
                            )
                        [2] => stdClass Object
                            (
                                [date] => stdClass Object
                                    (
                                        [epoch] => 1518976800
                                        [pretty] => 07:00 PM CET am 18. Februar 2018
                                        ...
                                    )
                                [period] => 3
                                ...
                            )
                        [3] => stdClass Object
                            (
                                [date] => stdClass Object
                                    (
                                        [epoch] => 1519063200
                                        [pretty] => 07:00 PM CET am 19. Februar 2018
                                        ...
                                    )
                                [period] => 4
                                ...
                            )

                    )

            )

    )

Das ist der Teil, der die Daten ausliest, sind also auch genau diese Elemente in der JSON-Struktur.


                //12 stündliche Vorhersagen
                if ($this->ReadPropertyBoolean("FetchHalfDaily")) {
                        $WeatherNextHalfDays = $this->RequestAPI("/forecast/lang:DL/q/");

                        $this->SendDebug("WGW HalfDays", print_r($WeatherNextHalfDays, true), 0);

                        for ($i=1; $i <= $this->ReadPropertyInteger("FetchHalfDailyHalfDaysCount") ; $i++) {
                                SetValue($this->GetIDForIdent("HalfDailyHighTemp".(12*$i)."h"), $WeatherNextHalfDays->forecast->simpleforecast->forecastday[$i-1]->high->celsius);
                                SetValue($this->GetIDForIdent("HalfDailyLowTemp".(12*$i)."h"), $WeatherNextHalfDays->forecast->simpleforecast->forecastday[$i-1]->low->celsius);
                        }
                }

Unterliege ich hier einem Irrtum oder hat sich vielleicht die API geändert?

Der Link ist

…/q/pws:<pwd-id>.json anstelle von …/q/<country>/<location>.json

also z.B.

http://api.wunderground.com/api/xxxxxx/forecast/lang:DL/q/pws:IBOCHUM22.json

anstelle von

http://api.wunderground.com/api/xxxxxxxx/forecast/lang:DL/q/Germany/Bochum.json

Moin,

für die aktuellen Wetterbedingungen und für die 4 Tage Vorhersage nutze ich seit langer Zeit dies in meinem Skript:

file_get_contents("http://api.wunderground.com/api/$api/geolookup/conditions/lang:DL/q/DL/$ort.json");
file_get_contents("http://api.wunderground.com/api/$api/forecast/lang:DL/q/DL/$ort.json");

Gruß
Hans

Hallo Paresy,
bei mir werden im Bereich „aktuell“ die Werte für Sonnenstrahlung und UV Strahlung nicht gefüllt.
Habe ich etwas falsch gemacht oder leifert WU die Daten nicht?

Danke

Ich habe endlich das Problem mit den Invalid Values gelöst. Wenn keine Werte geliefert werden an eurer Station, wird der Wert 0 angezeigt.

paresy

Hallo, ich bekomme mit dem Modul ständig die Meldung Max execution time reached. Gibt es eine einfache Lösung? Sollte das Modul selbst ggf it ini_set die Laufzeit erhöhen. Das Fatale daran, viele Werte sind dann 0 anstatt wenigstens die alten Werte zu behalten.

Hallo Paresy,

ich wollte gerade dein Modul SymconMisc/WundergroundWeather/ verwenden. Dazu wollte ich mir einen API-Key besorgen und habe folgende Information auf wu gefunden:


To improve our services and enhance our relationship with our users, we will no longer provide free weather API keys as part of our program. If you have been directed to download our Weather Underground free API key by a third party provider, please contact your vendor for resolution.


wie kann ich Dein Modul nun verwenden?

vielen Dank
&
Beste Grüße

Ich befürchte es gibt dafür keine kostenlosen Keys mehr :frowning:

paresy

Ich kann euch da darksky.net empfehlen.
Auch kostenlos und das Modul muss m.M. nicht groß angepasst werden.
Grüße,
Peter

Gesendet von iPhone mit Tapatalk

Zum Thema Darksky habe ich hier mal meine ersten Gehversuche dokumentiert:

Baue Deinen eigenen Wetterdienst - Dark Sky API
Baue Deinen eigenen Wetterdienst - Dark Sky API

Ich hoffe der Link klappt…

@paresy,

ich würde dein Modul gerne etwas erweitern, weil bei der Vorhersage mehr Daten kommen als und Höchst- und Tiefsttemperatur, u.a. Regenwahrscheinlichkeit in % und mm.

Zudem würde ich eine Bug noch fixen: die 12h-Vorhersage gibt es nicht mehr, es sind immer 24h-Vorhersagen.
Ich würde gerne das so lösen, das es im Konfigurations-Dialog neben der bisherigen Auswahl für 12h-Vorhersage einen neuen 24h-Schalter gibt, der dann das feilhaltet.

Auch wenn Wunderground ärgerlicherweise keine neuen API-Keys mehr für lau vergibt, wer einen hat, der behält den. Insofern würde sich für mich die kleine Investition an Arbeitszeit lohnen

Hast du was dagegen?

gruß
demel

@demel42: Nein, das klingt soweit super. Schick uns gerne einen PR dafür und ich gebe dir dann gerne Feedback oder merge es!

paresy

Es wird sich wohl was ändern ab Jahresende:

Your subscriptions, and therefore access, will continue to work through 12/31/2018.
(…)
For developers who use WU API data for non-commercial purposes, you will have access to a new plan for a personal use, low call volume API. Stay tuned for more details as we build this out.

End of Service for the Weather Underground API | The WeatherAPI Community Customer Community

Ist ja schon eine merkwürdige Strategie. Ich schicke von meiner PWS Daten an Wunderground, ggfs. würde ich nach dieser Meldung auch weiterhin Forecast bekommen, aber insgesamt gefällt mir das Vorgehen nicht.

Ich bin dabei, diese API openweathermap.org zu prüfen.

gruß
demel

Ich hätte zwei uralte, „unprofessionelle“ Scripte als Basis, die laufen, müssten aber mal ordentlich überarbeitet und neu strukturiert werden ;).

Datenmenge und Qualität ist gut, aktuelle Werte und 3 Tage 3 Stunden Vorhersage.

Hört sich gut an. Ich habe noch zwei andere Sache laufen, die ich fertig machen will, aber dann mache ich mich da mal dran und baue ein Modul für die diversen API’S, beginnen würde ich mit

  • „Current weather data“ und „5 day / 3 hour forecast“ sowie „Weather stations“.

Wenn Du Lust hast, könntest Du ja dann die Daten von dem Modul mit deinen eigenen Daten vergleichen - wäre ja nicht schlecht, wenn das gleiche rauskäme :smiley:

demel