Ankündigung

Einklappen
Keine Ankündigung bisher.

DWD Wettervorhersage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    DWD Wettervorhersage

    Wie von ThorstenGehrig angeregt, habe ich einen ersten Baustein für das Abrufen der 7 Tagevorhersage vom Portal des Deutschen Wetterdienstes (DWD) online gestellt. Es ist eine erste rudimentäre Version, in die noch weitere Wünsche und Ideen einfließen sollen. Sie ist auch noch nicht umfassend getestet.

    Hier mal ein Auszug aus der Hilfe:

    This LBS retrieves the forecast data for a local weather station from the Open Data Server
    of Deutscher Wetterdienst DWD. Details can be found here: http://www.dwd.de/DE/leistungen/opendata/opendata.html.

    Currently only data from the following directory is used: https://opendata.dwd.de/weather/local_forecasts/poi/.
    Each of the weather stations has its own station ID which translates into a responding filename: -MOSMIX.csv,
    eg. 01001-MOSMIX.csv for data from "JAN MAYEN (1001-0)" in Norway.

    Für deutsche Stationen gibt es hier eine Liste: http://www.dwd.de/DE/leistungen/open...cationFile&v=1
    Alle Stationen kann man hier suchen: https://www.wmo.int/cpdb.
    Eine Liste von 1999 gibt es hier: http://www.weathergraphics.com/ident...aslib_1999.txt

    Weitere Informationen finden sich hier: http://www.dwd.de/DE/leistungen/opendata/hilfe.html


    Reference


    Parameter Einheit Inhalt
    TT Grad C dry bulb temperature at 2 meter above ground
    Td Grad C dew point temperature at 2 meter above ground
    Tx Grad C maximum of temperature for previous day
    Tn Grad C minimum of temperature for previous day
    Tm Grad C daily mean of temperature previous day
    Tg Grad C minimum temperature at 5 cm above ground last 12h
    dd Grad mean wind direction during last 10 min. at 10 meters above ground
    ff km/h mean wind speed during last 10 min. at 10 meters above ground
    fx km/h maximum wind speed last hour
    fx6 Prozent chance of maximum wind speed last 12 hours more than 45km/h
    fx9 Prozent chance of maximum wind speed last 12 hours more than 75km/h
    fx11 Prozent chance of maximum wind speed last 12 hours more than 100km/h
    RR1 mm precipitation amount last hour
    RR3 mm precipitation amount last 3 hours
    RR6 mm precipitation amount last 6 hours
    RR12 mm precipitation amount last 12 hours
    RR24 mm precipitation amount last 24 hours
    RR%6 Prozent chance of rain past last 6 hours
    RR%12 Prozent chance of rain past last 12 hours
    RR%24 Prozent chance of rain past last 24 hours
    ev kg/qm potential evapotranspiration last day
    ww WW Code present weather
    W WW Code past weather 1
    VV m horizontal visibility
    N Achtel cloud cover total
    Nf Achtel effective cloud cover
    NL Achtel cloud cover of low level clouds
    NM Achtel cloud cover of medium level clouds
    NH Achtel cloud cover of high level clouds
    PPPP hPa pressure reduced to mean sea level
    SS1 Stunden total time of sunshine during last hour
    SS24 Stunden total time of sunshine past day
    GSS1 kJ/qm global radiation last hour


    E1: Triggert den Baustein
    E2: StationID (WMO Station ID. see above)
    E3: DayOffset (Select forecast day, ie. number of day relative to today. Max 7 days. 0=today
    E4: TimeOffset (Selection of the time: 0-7 selecting of 00:00 to 21:00 in 3h steps

    E9: Log-Level

    E10..E19: Selector 1 .. Selector19: Selection of the desired parameter (see list above)


    A1: Return Value Success = 1 / 0 = sonst
    A2: Date used
    A3: Time used

    A10 .. A19: Data retrieved from the station file for the date and time selected.
    If date/time combination is not in the file, n/a will be returned.
    Viel Spass damit und ich nehme Vorschläge gerne auf.

    Grüße
    Frank

    #2
    Hallo Frank,

    vielen Dank für deinen Baustein.

    Ich finde es sehr gut, zukünftig eine Alternative zu den "semiprofessionellen" Wetterstationen von WU zu haben.

    Leider kann ich bisher jedoch keinen Abruf zu Stande bringen- der Stationsname ist Korrekt.

    Log-Protokoll habe ich beigefügt.

    Danke
    Andreas

    2017_07_29_11_40_06_10.10.1.35_data_log_CUSTOMLOG_LBS19000773.htm_20170729112629_Opera.png2017_07_29_11_37_27_EDOMI_Administration_Opera.png

    Kommentar


      #3
      Zitat von ak68 Beitrag anzeigen
      der Stationsname ist Korrekt.
      ..... Leider nur fast- die alleinige Zahl (ohne "-MOSMIX.csv") reicht aus !!!!!

      Hiermit ist zumindest ein Abruf möglich- die Ergebnisse sind jedoch leer, unabhängig von E4 und E3 (Cave: Heute = 0 !!!)

      Geht es Euch genauso ? Wer hat korrekte Ergebnisse ?


      2017_07_29_12_26_50_EDOMI_Administration_Opera.png
      Zuletzt geändert von ak68; 29.07.2017, 11:32.

      Kommentar


        #4
        Zitat von ak68 Beitrag anzeigen

        ..... Leider nur fast- die alleinige Zahl (ohne "-MOSMIX.csv") reicht aus !!!!!

        Hiermit ist zumindest ein Abruf möglich- die Ergebnisse sind jedoch leer, unabhängig von E4 und E3 (Cave: Heute = 0 !!!)
        Ich muss wohl die Hilfe und Debugausgaben noch ein wenig erweitern.
        Angeben muss nur die StationsID in 5 Stellen, so wie in den Listen definiert.
        Es kann sein, dass für das heutige Datum (DayOffset = 0) nicht alle Zeitpunkte angegeben sind (so sind für Deine Station, z.B. heute (29.07.2017) diese erst ab 06:00 verfügbar, wie ich gerade geprüft habe).
        Außerdem hast Du in Deiner Konfiguration den Zeitoffset leer gelassen. Dort sollte eigentlich ein ganzzahliger Wert im Intervall [0, 7} stehen. Das habe ich noch nicht abgefangen. -> das sollte der Fehler sein, wie gerade nachvollzogen. Ich fange das noch ab.

        Bei mir funktioniert es einwandfrei.

        Grüße
        Frank

        Kommentar


          #5
          Hallo Frank,

          habe jetzt [0, 7} und alle "Klammernvarianten [],{},{] erfolglos versucht- Kein Abruf möglich.

          Mit welchen Einträgen hast Du das getestet ?

          Meine Einträge sind:
          E2: 10776
          E3: 0
          E4: [0, 7}

          Vielen Dank
          Andreas
          Zuletzt geändert von ak68; 29.07.2017, 12:32.

          Kommentar


            #6
            Ich arbeite mich gerade durch die Dokumentation des DWD. Das ist nicht so einfach. Wenn man sich die CSV Datei direkt vom Server holt, sieht man, dass hier je nach Modelllauf (COSMO-DE (LMK) etc.) unterschiedliche Daten eingetragen sind.

            Wie gesagt, ich befinde mich noch im Beta-Status.

            Ich lade gleich eine modifizierte Version des Bausteins, die einige der Fehler abfängt und mehr protokolliert.
            Grüße
            Frank

            Kommentar


              #7
              Zitat von mywap Beitrag anzeigen
              Wie gesagt, ich befinde mich noch im Beta-Status.
              Hallo Frank,

              Das soll auch keine Kritik sein, nur "konstruktive Rückmeldung".

              Wir alle sind Dir sehr dankbar für Deine Zeit + Arbeit

              Viele Grüße
              Andreas

              Kommentar


                #8
                Aktualisierter Baustein v0.2 hochgeladen. Erweitertes Error Handling und Debugging-Ausgaben.

                Grüße
                Frank

                Kommentar


                  #9
                  Zitat von ak68 Beitrag anzeigen

                  Hallo Frank,

                  Das soll auch keine Kritik sein, nur "konstruktive Rückmeldung".

                  Wir alle sind Dir sehr dankbar für Deine Zeit + Arbeit

                  Viele Grüße
                  Andreas
                  Alles gut. Danke für die konstruktive Rückmeldung, die hatte ich ja auch erbeten.

                  Kommentar


                    #10
                    Hallo Frank,

                    wenn ich E4 = 2 setze (6 Uhr), kann ich die Minimaltemp abfragen, bei E4 = 6 (18 Uhr) die Maximaltemp. dies scheint schon einmal korrekt zu sein.

                    Aber auch z.N. bei E4= 2 und E3 = 1 (morgen) werden nicht alle der in der Datei sichtbar vorhandenen Werte ausgelesen (es fehlen z.B. rr24 oder nf)

                    Außerdem: Wie frage ich ein Intervall von z.B. 24h ab ? Mit [0, 7} funktioniert dies leider nicht .

                    Danke
                    Andreas

                    Kommentar


                      #11
                      Zitat von ak68 Beitrag anzeigen
                      Hallo Frank,

                      wenn ich E4 = 2 setze (6 Uhr), kann ich die Minimaltemp abfragen, bei E4 = 6 (18 Uhr) die Maximaltemp. dies scheint schon einmal korrekt zu sein.

                      Aber auch z.N. bei E4= 2 und E3 = 1 (morgen) werden nicht alle der in der Datei sichtbar vorhandenen Werte ausgelesen (es fehlen z.B. rr24 oder nf)

                      Außerdem: Wie frage ich ein Intervall von z.B. 24h ab ? Mit [0, 7} funktioniert dies leider nicht .

                      Danke
                      Andreas
                      Das ist wohl hiermit erklärt:
                      2017-07-29 15:18:36 377202 ? 17918 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000773.php | Fehlercode: 8 | Zeile: 82 | Undefined index: GGS1 ERROR
                      2017-07-29 15:18:36 380983 ? 17918 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000773.php | Fehlercode: 8 | Zeile: 82 | Undefined index: rr24 ERROR
                      2017-07-29 15:18:36 382566 ? 17918 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000773.php | Fehlercode: 8 | Zeile: 82 | Undefined index: rr%24 ERROR
                      2017-07-29 15:18:36 384126 ? 17918 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000773.php | Fehlercode: 8 | Zeile: 82 | Undefined index: nf ERROR

                      ... mit der Bitte um Ergänzung

                      Kommentar


                        #12
                        Danke für den Baustein und deine Arbeit - vor allem bei dem schönen Wetter :-)
                        Frage: könnte man nicht die ausgaben aller 10 Tage mit | getrennt am ausgang übergeben - anstatt immer nur einen Wert?

                        Gruß
                        Thorsten

                        Nachtrag: bei mir funktioniert er derzeit nicht.
                        Im Log steht:

                        2017-07-29 18:11:23 506109 27852 6 (ID4101) Debug: Day Key: 31.07.17 Time Key: 03:00
                        2017-07-29 18:11:23 506680 27852 6 (ID4101) Debug: Parameter: 1 Result:
                        2017-07-29 18:11:23 508496 27852 6 (ID4101) Debug: Parameter: 1 Result:
                        2017-07-29 18:11:23 510056 27852 6 (ID4101) Debug: Parameter: 1 Result:
                        2017-07-29 18:11:23 511375 27852 6 (ID4101) Debug: Parameter: 1 Result:
                        2017-07-29 18:11:23 512907 27852 6 (ID4101) Debug: Parameter: 1 Result:
                        2017-07-29 18:11:23 514517 27852 6 (ID4101) Debug: Parameter: 1 Result:
                        2017-07-29 18:11:23 516184 27852 6 (ID4101) Debug: Parameter: 1 Result:
                        2017-07-29 18:11:23 517692 27852 6 (ID4101) Debug: Parameter: 1 Result:
                        2017-07-29 18:11:23 519251 27852 6 (ID4101) Debug: Parameter: 1 Result:
                        2017-07-29 18:11:23 520812 27852 6 (ID4101) Debug: Parameter: 1 Result:
                        2017-07-29 18:11:23 524815 27852 5 (ID4101) Notice: LBS terminated at 18:11:23


                        Werte habe ich
                        E2=10641
                        E3=2
                        E4=1
                        E10-E19=1
                        A1=1
                        A2=31.07.17
                        A3=12:00
                        A10-19=n/a
                        Zuletzt geändert von ThorstenGehrig; 29.07.2017, 17:13.
                        Meine Inst.: 73 KNX-Geräte, 18 Rolläden, 36 Schaltkanäle, 22 Dimm-Kanäle, 12 Heizungskanäle, 16 PM, 18 Gruppentaster
                        Wiregate: >50 x Temperaturfühler, 2 x Luftfeuchte, Transponderleser || Gira Homeserver: Visu: 98%, Logiken 98% || Heizung: Dimplex WP mit KNX || Sonstiges: 3xSqueezebox, Mobotix T24, Asterisk

                        Kommentar


                          #13
                          Zitat von ThorstenGehrig Beitrag anzeigen
                          Danke für den Baustein und deine Arbeit - vor allem bei dem schönen Wetter :-)
                          Frage: könnte man nicht die ausgaben aller 10 Tage mit | getrennt am ausgang übergeben - anstatt immer nur einen Wert?

                          Gruß
                          Thorsten

                          Nachtrag: bei mir funktioniert er derzeit nicht.
                          Im Log steht:

                          ...


                          Werte habe ich
                          E2=10641
                          E3=2
                          E4=1
                          E10-E19=1
                          A1=1
                          A2=31.07.17
                          A3=12:00
                          A10-19=n/a
                          Thorsten, Du musst wie in der Hilfe beschrieben
                          E10..E19: Selector 1 .. Selector10: Selection of the desired parameter (see list above)
                          die Eingabefelder mit den Parametern, z.B. TT, Td oder Tx belegen. Dann kommt der entsprechende zugehörige Wert auf A10 ... an.

                          Die Ausgabe als separierte Liste habe ich schon auf meiner To-Do-Liste. Ich muss aber noch etwas besser verstehen, wie die Logik der Daten ist.

                          Grüße
                          Frank

                          Kommentar


                            #14
                            Zitat von ak68 Beitrag anzeigen

                            Das ist wohl hiermit erklärt:
                            2017-07-29 15:18:36 377202 ? 17918 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000773.php | Fehlercode: 8 | Zeile: 82 | Undefined index: GGS1 ERROR
                            2017-07-29 15:18:36 380983 ? 17918 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000773.php | Fehlercode: 8 | Zeile: 82 | Undefined index: rr24 ERROR
                            2017-07-29 15:18:36 382566 ? 17918 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000773.php | Fehlercode: 8 | Zeile: 82 | Undefined index: rr%24 ERROR
                            2017-07-29 15:18:36 384126 ? 17918 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000773.php | Fehlercode: 8 | Zeile: 82 | Undefined index: nf ERROR

                            ... mit der Bitte um Ergänzung
                            Muss ich mir anschauen. Habe ich keine spontane Erklärung.

                            Kommentar


                              #15
                              ak68 Hallo Andreas, das von Dir geschilderte Problem kann ich mit der Station 10776 nicht nachvollziehen. Die csv Datei enthält für RR24 um 06:00 am 30.07. keine Daten. Allerdings wird das leere Feld als 0,0 interpretiert. Falls ein Index nicht vorkommt, wird das abgefangen.
                              Code:
                                              $output = $forecast[$dayKey][$timeKey][$E[$i]['value']];
                                              $DEBUG && debug($id,"Parameter: ".$E[$i]['value'] ."  Result: ". $output);
                                              if ($output !== NULL) { 
                                                  logic_setOutput($id, $i, $output); 
                                              } else {
                                                  logic_setOutput($id, $i, 'n/a');
                                              }
                              Die Parameter sind im Moment noch case-sensitiv, evtl. ist das nicht notwendig und ich kann alles toUpperCase konvertieren und vergleichen.

                              Im moment wird genau eine Zeile zu einer Tag x Zeit Kombination ausgewertet.

                              Kannst Du bitte nochmal schauen, ob der Fehler mit den Indices woanders her kommen kann?
                              Grüße
                              Frank

                              Kommentar

                              Lädt...
                              X