Ankündigung

Einklappen
Keine Ankündigung bisher.

wunderground Logik

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

    #31
    Bin kein Programmierer, behaupte aber, dass innerhalb des TRY-Blocks keine Fehlermeldung kommen dürfte. Ist der Code richtig kopiert, mit den richtigen Einrückungen, etc?

    Eigentlich musst sonst nichts machen, das was du gelistet hast, passt.

    Kommentar


      #32
      ich verstehs einfach nicht.
      Habe jetzt bereits die wunderground2.py datei aus dem Beitrag #23 heruntergeladen und direkt drauf kopiert damit ich nichts beim kopieren ändere, jedoch bekomme ich weiterhin fehler.

      Items habe ich aus Beitrag 12 genommen und den link geändert.

      Code:
      2014-12-16 18:01:01,746 DEBUG    Scheduler    Wunderground next time: 2014-12-16 18:01:31+01:00 -- scheduler.py:_next_time:289
      2014-12-16 18:01:01,897 DEBUG    Wunderground [Wunderground] xml heruntergeladen b'<?xml version="1.0" encoding="utf-8" ?>\n\t<current_observation>\n\t\t<credit>Weather Underground Personal Weather Station</credit>\n\t\t<credit_URL>http://wunderground.com/weatherstation/</credit_URL>\n\t\t<image>\n\t\t<url>http://icons.wunderground.com/graphics/bh-wui_logo.gif</url>\n\t\t<title>Weather Underground</title>\n\t\t<link>http://wunderground.com/weatherstation/</link>\n\t\t</image>\n\t\t<location>\n\t\t<full>Hans-Olden Street, Nu\xc3\x83\xc2\x9fdorf Ob Der Traisen, </full>\n\t\t<neighborhood>Hans-Olden Street</neighborhood>\n\t\t<city>Nu\xc3\x83\xc2\x9fdorf Ob Der Traisen</city>\n\t\t<state></state>\n\t\t<zip></zip>\n\t\t<latitude>48.347851</latitude>\n\t\t<longitude>15.707188</longitude>\n\t\t<elevation>679 ft</elevation>\n\t\t</location>\n\t\t<station_id>INUDORFO2</station_id>\n\t\t<station_type>Netatmo</station_type>\n\t\t<observation_time>Last Updated on December 16, 5:57 PM CET</observation_time>\n\t\t<observation_time_rfc822>Tue, 16 Dec 2014 16:57:04 GMT</observation_time_rfc822>\n\t\t<weather></weather>\n\t\t<temperature_string>39.0 F (3.9 C)</temperature_string>\n\t\t<temp_f>39.0</temp_f>\n\t\t<temp_c>3.9</temp_c>\n\t\t<relative_humidity>97</relative_humidity>\n\t\t<wind_string>Calm</wind_string>\n\t\t<wind_dir>North</wind_dir>\n\t\t<wind_degrees>-999</wind_degrees>\n\t\t<wind_mph>-999.0</wind_mph>\n\t\t<wind_gust_mph>-999.0</wind_gust_mph>\n\t\t<pressure_string>29.70" (1005.6 mb)</pressure_string>\n\t\t<pressure_mb>1005.6</pressure_mb>\n\t\t<pressure_in>29.70</pressure_in>\n\t\t<dewpoint_string>38.2 F (3.4 C)</dewpoint_string>\n\t\t<dewpoint_f>38.2</dewpoint_f>\n\t\t<dewpoint_c>3.4</dewpoint_c>\n\t\t\n\t\t<heat_index_string></heat_index_string>\n\t\t<heat_index_f></heat_index_f>\n\t\t<heat_index_c></heat_index_c>\n\t\t\n\t\t\n\t\t<windchill_string></windchill_string>\n\t\t<windchill_f></windchill_f>\n\t\t<windchill_c></windchill_c>\n\t\t\n\t\t<solar_radiation></solar_radiation>\n\t\t<UV></UV>\n\t\t<precip_1hr_string>-999.00 in (-2537.5 mm)</precip_1hr_string>\n\t\t<precip_1hr_in>-999.00</precip_1hr_in>\n\t\t<precip_1hr_metric>-2537.5</precip_1hr_metric>\n\t\t<precip_today_string>-999.00 in (-2537.5 cm)</precip_today_string>\n\t\t<precip_today_in>-999.00</precip_today_in>\n\t\t<precip_today_metric>-2537.5 cm</precip_today_metric>\n\t\t<history_url>http://www.wunderground.com/weatherstation/WXDailyHistory.asp?ID=INUDORFO2</history_url>\n\t\t<ob_url>http://www.wunderground.com/cgi-bin/findweather/getForecast?query=48.347851,15.707188</ob_url>\n\t</current_observation>\n\n' -- wunderground2.py:<module>:33
      2014-12-16 18:01:01,907 DEBUG    Wunderground [Wunderground] Behandle jetzt Item Wetter.Windrichtung mit xmlstring wind_degrees -- wunderground2.py:<module>:39
      2014-12-16 18:01:01,922 DEBUG    Wunderground [Wunderground] Wert -999 in xml gefunden -- wunderground2.py:<module>:45
      2014-12-16 18:01:01,927 DEBUG    Wunderground [Wunderground] Wert 999.0ins item geschrieben -- wunderground2.py:<module>:49
      2014-12-16 18:01:01,933 DEBUG    Wunderground [Wunderground] Behandle jetzt Item Wetter.Luftdruck mit xmlstring pressure_mb -- wunderground2.py:<module>:39
      2014-12-16 18:01:01,940 DEBUG    Wunderground [Wunderground] Wert 1005.6 in xml gefunden -- wunderground2.py:<module>:45
      2014-12-16 18:01:01,946 DEBUG    Wunderground [Wunderground] Wert 1005.6ins item geschrieben -- wunderground2.py:<module>:49
      2014-12-16 18:01:01,950 DEBUG    Wunderground [Wunderground] Behandle jetzt Item Wetter.Taupunkt mit xmlstring dewpoint_c -- wunderground2.py:<module>:39
      2014-12-16 18:01:01,958 DEBUG    Wunderground [Wunderground] Wert 3.4 in xml gefunden -- wunderground2.py:<module>:45
      2014-12-16 18:01:01,966 DEBUG    Wunderground [Wunderground] Wert 3.4ins item geschrieben -- wunderground2.py:<module>:49
      2014-12-16 18:01:01,972 DEBUG    Wunderground [Wunderground] Behandle jetzt Item Wetter.Windchill mit xmlstring windchill_c -- wunderground2.py:<module>:39
      2014-12-16 18:01:01,980 ERROR    Wunderground Logic: Wunderground, File: /usr/smarthome/logics/wunderground2.py, Line: 45, Method: <module>, Exception: Can't convert 'NoneType' object to str implicitly -- 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/wunderground2.py", line 45, in <module>
          logger.debug('[Wunderground] Wert '+val+ ' in xml gefunden')
      TypeError: Can't convert 'NoneType' object to str implicitly
      2014-12-16 18:01:02,914 DEBUG    Main         knx: 1.1.13 set 3/3/0 to 0000 -- __init__.py:parse_telegram:181

      Kommentar


        #33
        Hallo,

        das ist kein Copy&Paste Fehler.

        In Zeile 45 der logics/wunderground2.py steht:
        Code:
        logger.debug('[Wunderground] Wert '+val+ ' in xml gefunden')
        Im Fehlerfall ist val = None. Da gab es weiter oben wohl ein Problem.
        Nun wird in Zeile 45 versucht einen String mit dem None zu Verknüpfen.
        Und das geht in die Hose.

        Am besten den Fehler weiter oben fixen und
        Code:
        logger.debug('[Wunderground] Wert {0} in xml gefunden').format(val))
        schreiben.

        Bis bald

        Marcus

        Kommentar


          #34
          Hallo,

          schau doch mal ins Log.
          Code:
          2014-12-16 18:01:01,950 DEBUG    Wunderground [Wunderground] Behandle jetzt Item Wetter.Taupunkt mit xmlstring dewpoint_c -- wunderground2.py:<module>:39
          2014-12-16 18:01:01,958 DEBUG    Wunderground [Wunderground] Wert 3.4 in xml gefunden -- wunderground2.py:<module>:45
          2014-12-16 18:01:01,966 DEBUG    Wunderground [Wunderground] Wert 3.4ins item geschrieben -- wunderground2.py:<module>:49
          2014-12-16 18:01:01,972 DEBUG    Wunderground [Wunderground] Behandle jetzt Item Wetter.Windchill mit xmlstring windchill_c -- wunderground2.py:<module>:39
          2014-12-16 18:01:01,980 ERROR    Wunderground Logic: Wunderground, File: /usr/smarthome/logics/wunderground2.py, Line: 45, Method: <module>, Exception: Can't convert 'NoneType' object to str implicitly -- scheduler.py:_task:334
          Wir sehen, dass alles funktioniert, bis zum windchill_c.
          Jetzt würde ich vorschlagen mal die URL der XML-Datei im Browser zu öffnen und gucken, was da zum Thema windchill_c steht.

          Anbei eine Version, die aber bei dem Fehler nicht mehr crashen sollte.

          Gruß,
          Hendrik
          Angehängte Dateien

          Kommentar


            #35
            perfekt danke, jetzt funkionierts.
            Ich hätte jedoch noch 2 fragen:
            1) möchte ich gerne die windgeschwindigkeit in m/s statt mph. Ich habe folgendes im Forum gefunden jedoch bekomme ich immer nur 0 als Wert auf die Visu. Sollte das prinzipiell funktionieren? (beide zeigen 0 an):
            Code:
                [[Windgeschwindigkeit]]
                    [[[wind_mph]]]
                        type = num
                        xmlstring = wind_mph
                    enforce_update = yes
                     sqlite = yes
                    [[[wind_kmh]]]
                        type = num
                        knx_dpt = 9
                        eval = sh.Wetter.Windgeschwindigkeit.wind_mph()/0.44704
                     eval_trigger = sh.Wetter.Windgeschwindigkeit.wind_mph
                    enforce_updates = yes
                    [[[wind_kmh2]]]
                        type = num
                        knx_dpt = 9
                        eval = Wetter.Windgeschwindigkeit.wind_mph()/0.44704
                     eval_trigger = Wetter.Windgeschwindigkeit.wind_mph
                    enforce_updates = yes
            und 2 würde ich gerne die Windrichtung nach Himmelsrichtung haben. In der XML gibt es das Feld wind_dir welches diesen Wert beinhaltet. Ich habe nun folgenden Item hinzugefügt und bekomme tzdm keine Windrichtung. Muss ich da dass wunderground2.py auch anpassen?
            Code:
                [[Windrichtung_dir]]
                    type = str
                    xmlstring = wind_dir
                 sqlite = yes

            Kommentar


              #36
              Hallo,

              hast du meinen Post verstanden und gemacht, was ich geschrieben habe?

              Zur Windrichtung: momentan gehen nur Zahlen. Die Himmelsrichtung ist ein String. Da musst du in der wunderground2.py eine Fallunterscheidung machen hinsichtlich des Typs des Items (zwischen Sting/nicht String).

              Wenn nicht-String dann darf die 'clean()' Funktion nicht benutzt werden, da sie alles was keine Zahl ist entfernt.

              Gruß,
              Hendrik

              Kommentar


                #37
                ja, funktioniert nun einwandfrei.

                Herzlichen Dank dafür.

                Kommentar


                  #38
                  ?
                  Auch die Variante mit String?
                  Magst du deine Änderungen teilen?

                  Kommentar


                    #39
                    nein, das noch nix. werd ich mir am wochenende anschauen und auf jeden fall teilen wenn ich es zum laufen bringe :-)

                    Kommentar


                      #40
                      Leider klappt bei mir die Umrechnung nicht, wenn ich eval und eval_trigger verwende.

                      Ich hab mal versucht ohne Umrechnung einfach wind_mph in wind_kmh zu kopieren. Leider ist wind_km immer 0. Ich hab das in cli geprüft und die Logik auch manuell ausgelöst aber wind_kmh ist immer 0. Wäre toll, wenn noch jemand eine Idee hätte.

                      [[Windgeschwindigkeit]]
                      [[[wind_mph]]]
                      type = num
                      visu_acl = yes
                      xmlstring = wind_mph
                      enforce_updates = true
                      [[[wind_kmh]]]
                      type = num
                      visu_acl = yes
                      knx_dpt = 9
                      sqlite = true
                      eval = sh.Wetter.Windgeschwindigkeit.wind_mph()
                      eval_trigger = sh.Wetter.Windgeschwindigkeit.wind_mph
                      enforce_updates = true

                      Kommentar


                        #41
                        Beim trigger das sh. weglassen.

                        Kommentar


                          #42
                          Super das war es. Vielen Dank und frohe Weihnachten.

                          Kommentar


                            #43
                            Vorzeichen der Temperatur wird nicht ins Item geschrieben

                            Hallo zusammen,

                            mittlerweile befindet sich die Temperatur in unserem Land mal wieder unter dem Gefrierpunkt. Dabei musste ich feststellen, dass das wunderground-Plugin das negative Vorzeichen der Temperatur ignoriert und nicht ins Item schreibt:


                            2014-12-28 00:05:56,060 DEBUG 97_Wundergrd [Wunderground] Behandle jetzt Item wunderground.Temperatur mit xmlstring temp_c -- 97_Wunderground.py:<module>:28
                            2014-12-28 00:05:56,066 DEBUG 97_Wundergrd [Wunderground] Wert -5.6 in xml gefunden -- 97_Wunderground.py:<module>:34
                            2014-12-28 00:05:56,070 INFO 97_Wundergrd Item wunderground.Temperatur = 5.6 via Logic None None -- item.py:__update:363
                            2014-12-28 00:05:56,080 DEBUG 97_Wundergrd [Wunderground] Wert 5.6ins item geschrieben -- 97_Wunderground.py:<module>:38


                            Leider wird es dadurch nur im Item wärmer, draußen aber nicht! ;-)

                            MfG
                            Maik

                            Kommentar


                              #44
                              Hab zwar keine direkte Lösung, aber man könnte wohl den Fahrenheit-Wert nehmen und mit eval arbeiten.

                              Code:
                              [Wetter]
                                  [[TemperaturC]]
                                      type = num
                                      eval = ((sh.Wetter.TemperaturF()-32)/1.8)
                                      eval_trigger = Wetter.TemperaturF
                                  [[TemperaturF]]
                                      type = num
                                      xmlstring = temp_f

                              Kommentar


                                #45
                                Da muss jemand die clean() Funktion anpassen, dass das - nicht rausgeworfen wird. Kann ich vom Handy mit 3kb/s nicht.

                                Kommentar

                                Lädt...
                                X