Ankündigung

Einklappen
Keine Ankündigung bisher.

DWD Plugin

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

    #16
    Hmm, das ist nicht schön...

    Wenn man das auf ein Leerzeichen reduziert, werden die mehrteiligen Werte geteilt.

    Wie kann man solche Zeilen eleganter parsen???

    Entscheidend ist die Zeile für Münster: hinter Flh. ist EIN Leerzeichen, der Split Befehl macht dann aber aus "leichter Regen" auch zwei Werte.

    Könnte man auch nach X Zeichen ausschneiden?

    Auschnitt

    Code:
    SXDL99 DWAV 081814
    
    Wetterbeobachtungen von Freitag, 08.08.2014, 20 Uhr
    
    -----------------------------------------------------------------------------------------------------------------------------
    
    Station            Höhe   Luftd.     TT   Tn12   Tx12    RR1   RR12  SSS  DD   FF   FX  Wetter/Wolken                 Böen
    
    -----------------------------------------------------------------------------------------------------------------------------
    
    Münster/Osnabr.-Flh. 48   1009.3   20.6   16.4   26.4    0.0     0     0  SW   14  ---  leichter Regen                ---
    
    Hannover-Flh.        59   1010.6   23.4   14.8   25.9    0.0     0     0   O   11  ---  heiter                        ---
    Gruß
    Lapheus

    Kommentar


      #17
      Polenvorhersage eingefügt

      Hallo zusammen,

      habe ins Wiki noch die Pollenvorhersage eingefügt.

      @mknx:

      dafür wäre nett wenn in der __init__.py folgendes ergänzt wird (bei mir Zeile 237):

      Code:
                                  elif day.tag == 'tomorrow':
                                      forecast[day1][kind.tag] = value
      +                            elif day.tag == 'dayafter_to': # einfügen
      +                               forecast[day2][kind.tag] = value # einfügen
                                  else:
                                      logger.debug("unknown day: {0}".format(day.tag))
      Dann klappt es auch mit dem Wert "Übermorgen".
      So funktionierte es für mich, habe nur mal Gräser und Roggen eingebaut, aber die anderen sollten leicht zu ergänzen sein.
      Beachtet die angepassten Items und die wetter.py.
      Gruß
      Lapheus

      Kommentar


        #18
        Hallo,

        Zitat von Lapheus Beitrag anzeigen
        dafür wäre nett wenn in der __init__.py folgendes ergänzt wird (bei mir Zeile 237):
        habe ich gemacht.
        Die Zeile 160 ist aber noch die Alte.

        Bis bald

        Marcus

        Kommentar


          #19
          Zitat von mknx Beitrag anzeigen
          habe ich gemacht.
          Danke!

          Zitat von mknx Beitrag anzeigen
          Die Zeile 160 ist aber noch die Alte.
          Ja, ist Ok.

          Dafür habe ich aktuell noch keine Lösung.
          Münster/Osnabr.-Flh. funnktioniert dann aktuell nicht.
          Gruß
          Lapheus

          Kommentar


            #20
            Hallo zusammen,

            ich bekomme beim Abruf der Pollen folgende Fehlermeldung:

            Code:
             Traceback (most recent call last):
              File "/usr/smarthome/lib/scheduler.py", line 327, in _task
                exec(obj.bytecode)
              File "/usr/smarthome/logics/wetter.py", line 140, in <module>
                base.pollen.graeser(pollen[date]['Graeser'])
            KeyError: 'Graeser'
            Hat dazu jemand eine Idee?

            Grüße,

            Mark

            Kommentar


              #21
              Hatte ich zum Schluss auch.
              Habe den Fehler nicht gefunden.
              Derzeit ist Familienurlaub angesagt.
              Hoffe das ich ab nächster Woche dazu komme...
              Gruß
              Lapheus

              Kommentar


                #22
                Hi,

                hab den Fehler gefunden!

                bei Key Zugriffen auf das Dictionary mit dict['key'] gibt es eine Fehlermeldung wenn der Key nicht vorhanden ist. Das Dictionary enthält drei Zeiten, wobei die letzte Zeit nur Nullwerte enthält. Dabei fliegt dann der Fehler.

                Wenn man nun die Methode dict.get('key') benutzt gibt es keinen Fehler.

                Des weiteren gibt es Wanwerte von "0-1".
                Das ist natürlich kein num-Type sondern ein str-Type.

                Damit sollte es funktionieren.
                Hab das Wiki entsprechend angepaßt.
                Gruß
                Lapheus

                Kommentar


                  #23
                  Fehler beim Auswerten der Wetterwarnungen

                  Hallo zusammen,

                  ich hab momentan ein Problem mit der Auswertung der Wetterwarnungen. Folgendes erscheint in der smarthome.log:


                  2014-12-28 00:40:52,778 ERROR 97_DWD_Warn Logic: 97_DWD_Warn, File: /usr/smarthome/plugins/dwd/__init__.py, Line: 139, Method: warnings, Exception: 22 -- scheduler.py:_task:334
                  Traceback (most recent call last):
                  File "/usr/smarthome/lib/scheduler.py", line 327, in _task
                  exec(obj.bytecode)
                  File "/usr/smarthome/logics/97_Wetterwarnungen.py", line 9, in <module>
                  warnings = sh.dwd.warnings('LZ', 'LXXX')
                  File "/usr/smarthome/plugins/dwd/__init__.py", line 139, in warnings
                  kind = self._warning_cat[code]['kind']
                  KeyError: 22


                  Hier meine Logik:
                  Code:
                  #!/usr/bin/env python
                  # vim: set encoding=utf-8 tabstop=4 softtabstop=4 shiftwidth=4 expandtab
                  #########################################################################
                  #
                  # logics/97_Wetterwarnungen.py
                  #
                  # import unicodedata
                  import dateutil.relativedelta
                  warnings = sh.dwd.warnings('LZ', 'LXXX')
                  sh.dwd.ftp_quit()
                  
                  # Wetterwarnungen
                  types = {'Glätte': {'flag': False, 'item': sh.wetter.warnungen.glaette},
                      'Schnee': {'flag': False, 'item': sh.wetter.warnungen.schnee},
                      'Frost': {'flag': False, 'item': sh.wetter.warnungen.frost},
                      'Hitze': {'flag': False, 'item': sh.wetter.warnungen.hitze},
                      'UV': {'flag': False, 'item': sh.wetter.warnungen.uv},
                      'Nebel': {'flag': False, 'item': sh.wetter.warnungen.nebel},
                      'Regen': {'flag': False, 'item': sh.wetter.warnungen.regen},
                      'Sturm': {'flag': False, 'item': sh.wetter.warnungen.sturm},
                      'Wind': {'flag': False, 'item': sh.wetter.warnungen.wind}
                      }
                  warnungen = []
                  for warning in warnings:
                      if warning['kind'] in types:
                          types[warning['kind']]['flag'] = True
                      warnungen.append('<li><p style="font-weight:bold;">{2}</p><p>{3}</p><p class="ui-li-aside">{0:%a %H:%M}<br />{1:%a %H:%M}</p></li>'.format(warning['start'], warning['end'], warning['kind'], warning['desc']))
                  sh.wetter.warnungen(warnungen)
                  for typ in types:
                      types[typ]['item'](types[typ]['flag'])
                  
                  # letzten Durchlauf setzen
                  sh.wetter.warnungen.last_check(sh.now())
                  
                  # ist eine Warnung "high" ?
                  if sh.wetter.warnungen.glaette() or sh.wetter.warnungen.schnee() or sh.wetter.warnungen.frost() or sh.wetter.warnungen.hitze() or sh.wetter.warnungen.uv() or sh.wetter.warnungen.nebel() or sh.wetter.warnungen.regen() or sh.wetter.warnungen.sturm() or sh.wetter.warnungen.wind():
                      sh.wetter.warnungen.warnung(1)
                  else:
                      sh.wetter.warnungen.warnung(0)
                  Habt ihr eine Idee, was da schief läuft?

                  MfG
                  Maik

                  Kommentar


                    #24
                    gelöst

                    Zitat von MaxPfromLE Beitrag anzeigen

                    KeyError: 22
                    Ursache war die Meldung #22 vom DWD, welche Frost bedeutet, aber in der warnings.csv des DWD-Plugins fehlt.

                    Ich habe ein paar Zeilen aus der legend_warnings.pdf des DWD meiner warnings.csv hinzugefügt und die Auswertung läuft wieder! Hier der Inhalt der neuen warnings.csv:
                    Code:
                    21;Frost in Bodennähe;Frost;ganzjährig, spezielle Wetterwarnung, keine Grundversorgung
                    22;Frost;Frost;ganzjährig, spezielle Wetterwarnung, keine Weiterverbreitung über Plattformen wie dwd.de, Basis für WW..81 (u.a. in dwd.de)
                    23;derzeit nicht vergeben;;
                    24;Glätte;Glätte;spezielle Warnung vor leichter Glätte durch Reif, überfrierende Nässe, Schneematsch, ganzjährig, keine Weiterverbreitung über Plattformen wie u.a. in dwd.de
                    25;derzeit nicht vergeben;;
                    26;;;
                    27;;;
                    28;;;
                    29;;;
                    30;Gewitter;Sturm;nur elektr. Entladung
                    31;Gewitter;Sturm;mit Windböen
                    32;Gewitter;Sturm;mit Sturmböen
                    33;Gewitter;Sturm;mit schweren Sturmböen
                    34;Gewitter;Sturm;mit Starkregen
                    35;Gewitter;Sturm;mit Sturmböen und Starkregen
                    36;Gewitter;Sturm;mit schweren Sturmböen und Starkregen
                    37;Gewitter;Sturm;mit Sturmböen, Starkregen und Hagel
                    38;Gewitter;Sturm;mit schweren Sturmböen, Starkregen und Hagel
                    39;schweres Gewitter;Sturm;mit orkanartigen Böen
                    40;schweres Gewitter;Sturm;mit Orkanböen
                    41;schweres Gewitter;Sturm;mit extremen Orkanböen
                    42;schweres Gewitter;Sturm;mit schweren Sturmböen und heftigem Starkregen
                    43;schweres Gewitter;Sturm;mit orkanartigen Böen und heftigem Starkregen
                    44;schweres Gewitter;Sturm;mit Orkanböen und heftigem Starkregen
                    45;schweres Gewitter;Sturm;mit extremen Orkanböen und heftigem Starkregen
                    46;schweres Gewitter;Sturm;mit schweren Sturmböen, heftigem Starkregen und Hagel
                    47;schweres Gewitter;Sturm;mit orkanartigen Böen, heftigem Starkregen und Hagel
                    48;schweres Gewitter;Sturm;mit Orkanböen, heftigem Starkregen und Hagel
                    49;schweres Gewitter;Sturm;mit extremen Orkanböen, heftigem Starkregen und Hagel
                    45;Hoher UV-Index;UV;nicht belegt
                    46;Hoher UV-Index;UV;UV-Warnungen KU3 0.FT
                    47;Hitzewarnung;Hitze;Hitzewarnung KU3 0.FT
                    48;Hitzewarnung;Hitze;Hitzevorwarninformation
                    49;Hitzewarnung;Hitze;Hitzewarnung KU3 0.+1.FT
                    50;Starkwind;Wind;See- und Küstenwarnungen für Nord- und Ostsee aus Hamburg
                    51;Windböen;Wind;
                    52;Sturmböen;Wind;
                    53;schwere Sturmböen;Wind;
                    54;orkanartige Böen;Wind;
                    55;Orkanböen;Wind;
                    56;Orkanböen ab 140 km/h ;Wind;für extremes Unwetterereignis
                    57;Starkwindwarnung;Wind;für Bodensee und Bayerische Binnenseen
                    58;Sturmwarnung;Sturm;für Bodensee und Bayerische Binnenseen
                    59;Nebel;Nebel;
                    60;derzeit nicht vergeben;;frei
                    61;Starkregen;Regen;
                    62;heftiger Starkregen;Regen;
                    63;Dauerregen;Regen;
                    64;ergiebiger Dauerregen;Regen;
                    65;ergiebiger Dauerregen;Regen;für extremes Unwetterereignis
                    66;derzeit nicht vergeben;;frei
                    67;derzeit nicht vergeben;;frei
                    68;derzeit nicht vergeben;;frei
                    69;derzeit nicht vergeben;;frei
                    70;Schneefall;Schnee;für leichten Schneefall
                    71;Schneefall;Schnee;
                    72;starker Schneefall;Schnee;
                    73;starker Schneefall;Schnee;für extremes Unwetterereignis
                    74;Schneeverwehung;Schnee;
                    75;starke Schneeverwehung;Schnee;
                    76;Schneefall und Schneeverwehung;Schnee;als Kombiwarnung
                    77;starker Schneefall und Schneeverwehung;Schnee;als Kombiwarnung für Unwetterwarnung
                    78;extrem starker Schneefall und Schneeverwehung;Schnee;als Kombiwarnung für extremes Unwetterereignis
                    79;Leiterseilschwingung;;spezielle Wetterwarnung, keine Grundversorgung
                    80;derzeit nicht vergeben;;frei
                    81;Frost;Frost;vom 01.04. bis 31.10.
                    82;strenger Frost;Frost;ganzjährig
                    83;Frost/Glätte;Glätte;als Kombiwarnung mit Glätte gemäß ww84, vom 01.04. bis 31.10.
                    84;Glätte;Glätte;durch überfrierende Nässe, Schneeregen, durch sehr starke Reifablagerungen
                    85;Glatteis;Glätte;"verbreitet Glatteis am Boden oder an Gegenständen bei gefrierendem Regen, im Einzelfall auch bei verbreitetem Auftreten von überfrierender Nässe; erhebliche Verkehrsbehinderungen"
                    86;Glätte;Schnee;bei frischer vorhandener Schneedecke (bis max. 18h nach einem Schneefallereignis)
                    87;Glätte;Glätte;kurzzeitig oder kleinräumig durch gefrierenden Regen oder Sprühregen, auch bei überfrierender Nässe nach Regen
                    88;Tauwetter;;Abflussmengen durch Niederschlag und Schneeschmelze wie bei Dauerregen
                    89;starkes Tauwetter;;
                    90;derzeit nicht vergeben;;frei
                    91;derzeit nicht vergeben;;frei
                    92;derzeit nicht vergeben;;frei
                    93;schweres Gewitter;Sturm;mit heftigem Starkregen und Windböen
                    94;schweres Gewitter;Sturm;mit heftigem Starkregen und Sturmböen
                    95;derzeit nicht vergeben;;frei
                    96;derzeit nicht vergeben;;frei
                    97;derzeit nicht vergeben;;frei
                    98;Testwarnung;;für Testzwecke, bitte Weiterverbreitung an Dritte unterbinden
                    99;Testwarnung;;für Testzwecke, bitte Weiterverbreitung an Dritte unterbinden
                    MfG
                    Maik

                    Kommentar


                      #25
                      Hi Leute, bei mir will das auch nicht so recht:
                      ich bekomm im Log folgenden Fehler:
                      2015-03-13 09:05:56 ERROR Main Plugin dwd exception: 'ascii' codec can't decode byte 0xc3 in position 68: ordinal not in range(128)

                      sagt euch das was ??
                      Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                      Kommentar


                        #26
                        Hallo,

                        ne sagt mir nix. Da fehlt aber auch der Kontext.

                        Bis bald

                        Marcus

                        Kommentar


                          #27
                          Ok sorry.. hab jetzt erst gesehen, das da noch mehr im Log steht.. vielleicht hilft das:
                          2015-03-13 08:57:54 ERROR Main Plugin dwd exception: 'ascii' codec can't decode byte 0xc3 in position 68: ordinal not in range(128)
                          Traceback (most recent call last):
                          File "/usr/local/smarthome/lib/plugin.py", line 53, in __init__
                          plugin_thread = Plugin(smarthome, plugin, classname, classpath, args)
                          File "/usr/local/smarthome/lib/plugin.py", line 80, in __init__
                          exec("self.plugin = {0}.{1}(smarthome{2})".format(classpath, classname, args))
                          File "<string>", line 1, in <module>
                          File "/usr/local/smarthome/plugins/dwd/__init__.py", line 52, in __init__
                          for row in warnings:
                          File "/usr/lib/python3.4/encodings/ascii.py", line 26, in decode
                          return codecs.ascii_decode(input, self.errors)[0]
                          UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 68: ordinal not in range(128)

                          scheint jedenfalls was mit dem DWD Plugin zu tun zu haben..

                          das geht übringes nicht bei mir:

                          folgendes ist passiert:
                          - Angemeldet bei DWD

                          Plugin.conf
                          [dwd]
                          class_name = DWD
                          class_path = plugins.dwd
                          username = gdxxxx
                          password = Ifxxxx


                          wetter.py und wetter_warungen.py angelegt und mit den richtigen Werten versehen
                          in der logic.conf folgendes eingetragen:

                          ################################################## #
                          [Logic_Wetter]
                          filename = wetter.py
                          cycle = 300
                          ################################################## #
                          [Logic_Wetter2]
                          filename = wetter_warnungen.py
                          cycle = 300

                          leider zieht er sich bei mir keine Werte.. das Log hab ich ja hier am Anfang gepostet..

                          Gruß Martin





                          Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                          Kommentar


                            #28
                            Hi Martin,

                            Du bist doch auf develop? Oder?

                            Dann update mal.

                            Bis bald

                            Marcus

                            Kommentar


                              #29
                              nein bin ich ned.. sorry...
                              Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                              Kommentar


                                #30
                                ok, dann update mal. Ich habe auch in Master den Fix eingespielt.

                                Kommentar

                                Lädt...
                                X