Ankündigung

Einklappen
Keine Ankündigung bisher.

wunderground Logik

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

    #46
    keine negativen Temperaturen

    Hallo,

    habe das gleiche Problem.
    Gruß Will

    Code:
     2014-12-28 18:42:50,178 DEBUG Wetter [Wunderground] Behandle jetzt Item Wetter.Taupunkt mit xmlstring dewpoint_c -- wunderground2.py:<module>:40
     2014-12-28 18:42:50,186 DEBUG Wetter [Wunderground] Wert -7.1 in xml gefunden -- wunderground2.py:<module>:46
     2014-12-28 18:42:50,193 DEBUG Wetter Item Wetter.Taupunkt = 7.1 via Logic None None -- item.py:__update:363
     2014-12-28 18:42:50,198 DEBUG Wetter [Wunderground] Wert 7.1ins item geschrieben -- wunderground2.py:<module>:50
     2014-12-28 18:42:50,202 DEBUG Wetter [Wunderground] Behandle jetzt Item Wetter.Temperatur.Web mit xmlstring temp_c -- wunderground2.py:<module>:40
     2014-12-28 18:42:50,210 DEBUG Wetter [Wunderground] Wert -5.7 in xml gefunden -- wunderground2.py:<module>:46
     2014-12-28 18:42:50,219 DEBUG Wetter Item Wetter.Temperatur.Web = 5.7 via Logic None None -- item.py:__update:363
     2014-12-28 18:42:50,232 DEBUG Main knx: 0.0.0 set 3/6/6 to 0.05 -- __init__.py:parse_telegram:190
     2014-12-28 18:42:50,240 DEBUG Main Item Dach.Wetter.Temperatur = 0.05 via KNX 0.0.0 3/6/6 -- item.py:__update:363
     2014-12-28 18:42:50,235 DEBUG Wetter [Wunderground] Wert 5.7ins item geschrieben -- wunderground2.py:<module>:50

    Kommentar


      #47
      Versucht mal den Anhang. Sollte auch mit Strings funktionieren.

      Gruß,
      Hendrik
      Angehängte Dateien

      Kommentar


        #48
        Hallo Hendrik,

        habs soeben mal versucht:

        2014-12-28 21:09:21,227 ERROR Main Exception: expected an indented block (97_Wunderground.py, line 50) -- logic.py:generate_bytecode:121
        Traceback (most recent call last):
        File "/usr/smarthome/lib/logic.py", line 119, in generate_bytecode
        self.bytecode = compile(code, self.filename, 'exec')
        File "/usr/smarthome/logics/97_Wunderground.py", line 50
        val=clean(val)
        ^
        IndentationError: expected an indented block


        Die Zeile (und die folgenden?) müssen wahrscheinlich eingerückt werden.

        MfG
        Maik

        Kommentar


          #49
          Danke für den Hinweis.

          So besser?

          Gruß,
          Hendrik
          Angehängte Dateien

          Kommentar


            #50
            Guten Morgen zusammen,

            das Ganze erweist sich schwieriger als erwartet:

            2014-12-29 10:04:19,990 DEBUG 97_Wundergrd [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>Hauptbahnhof, Leipzig, SACHSEN</full>\n\t\t<neighborhood>Hauptbahnhof</neighborhood>\n\t\t<city>Leipzig</city>\n\t\t<state>SACHSEN</state>\n\t\t<zip></zip>\n\t\t<latitude>51.342873</latitude>\n\t\t<longitude>12.383821</longitude>\n\t\t<elevation>650 ft</elevation>\n\t\t</location>\n\t\t<station_id>ISACHSEN106</station_id>\n\t\t<station_type>WH 2080</station_type>\n\t\t<observation_time>Last Updated on December 29, 9:59 AM CET</observation_time>\n\t\t<observation_time_rfc822>Mo n, 29 Dec 2014 08:59:53 GMT</observation_time_rfc822>\n\t\t<weather></weather>\n\t\t<temperature_string>30.6 F (-0.8 C)</temperature_string>\n\t\t<temp_f>30.6</temp_f>\n\t\t<temp_c>-0.8</temp_c>\n\t\t<relative_humidity>96</relative_humidity>\n\t\t<wind_string>From the SW at 1.6 MPH Gusting to 2.2 MPH</wind_string>\n\t\t<wind_dir>SW</wind_dir>\n\t\t<wind_degrees>225</wind_degrees>\n\t\t<wind_mph>1.6</wind_mph>\n\t\t<wind_gust_mph>2.2</wind_gust_mph>\n\t\t<pressure_string>30.32" (1026.6 mb)</pressure_string>\n\t\t<pressure_mb>1026.6</pressure_mb>\n\t\t<pressure_in>30.32</pressure_in>\n\t\t<dewpoint_string>29.6 F (-1.3 C)</dewpoint_string>\n\t\t<dewpoint_f>29.6</dewpoint_f>\n\t\t<dewpoint_c>-1.3</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>0.00 in (0.0 mm)</precip_1hr_string>\n\t\t<precip_1hr_in>0.00</precip_1hr_in>\n\t\t<precip_1hr_metric>0.0</precip_1hr_metric>\n\t\t<precip_today_string>0.00 in (0.0 cm)</precip_today_string>\n\t\t<precip_today_in>0.00</precip_today_in>\n\t\t<precip_today_metric>0.0 cm</precip_today_metric>\n\t\t<history_url>http://www.wunderground.com/weatherstation/WXDailyHistory.asp?ID=ISACHSEN106</history_url>\n\t\t<ob_url>http://www.wunderground.com/cgi-bin/findweather/getForecast?query=51.342873,12.383821</ob_url>\n\t</current_observation>\n\n' -- 97_Wunderground.py:<module>:36
            2014-12-29 10:04:20,111 DEBUG 97_Wundergrd [Wunderground] Behandle jetzt Item wunderground.Windrichtung mit xmlstring wind_degrees -- 97_Wunderground.py:<module>:42
            2014-12-29 10:04:20,120 DEBUG 97_Wundergrd [Wunderground] Wert 225 in xml gefunden -- 97_Wunderground.py:<module>:48
            2014-12-29 10:04:20,141 ERROR 97_Wundergrd Logic: 97_Wundergrd, File: /usr/smarthome/logics/97_Wunderground.py, Line: 49, Method: <module>, Exception: 'Item' object has no attribute 'type' -- 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_Wunderground.py", line 49, in <module>
            if not item.type()=='str':
            AttributeError: 'Item' object has no attribute 'type'


            Kann es sein, dass "item.type()" nicht funktioniert?

            Definiert habe ich type in der item.conf allerdings:

            Code:
            [wunderground]
                [[Windrichtung]]
                    type = num
                    xmlstring = wind_degrees
                    nw_udp_send = 192.168.178.104:33333=wunderground.Windrichtung: itemvalue
            MfG
            Maik

            Kommentar


              #51
              Hallo,

              das ist komisch.
              Kannst du bitte mal smarthome.py im interaktiven Modus starten und dann
              Code:
              sh.x.y.z.windrichtung.type()
              sh.x.y.z.windrichtung.conf['xmlstring']
              aufrufen und hier posten?

              Gruß&Danke,
              Hendrik

              Kommentar


                #52
                Hallo Hendrik,

                hier die Ausgabe:
                Code:
                >>> sh.wunderground.Windrichtung.type()
                Traceback (most recent call last):
                  File "<console>", line 1, in <module>
                AttributeError: 'Item' object has no attribute 'type'
                >>> sh.wunderground.Windrichtung.conf['xmlstring']
                'wind_degrees'
                >>>
                PS: momentan hab ich Zeilen 49 und 50 auskommentiert und die Logik läuft damit erst einmal.

                Hier noch alle wunderground-Items:

                Code:
                [wunderground]
                    type = str
                    [[wunderground_url]]
                        type = str
                        value = http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=ISACHSEN106
                    [[Last_Check]]
                        type = foo
                        eval = (sh.now())
                        eval_trigger = wunderground.Temperatur
                        nw_udp_send = 192.168.178.104:33333=wunderground.Last_Check: itemvalue  
                    [[Windrichtung]]
                        type = num
                        xmlstring = wind_degrees
                        nw_udp_send = 192.168.178.104:33333=wunderground.Windrichtung: itemvalue  
                    [[Luftdruck]]
                        type = num
                        xmlstring = pressure_mb
                        nw_udp_send = 192.168.178.104:33333=wunderground.Luftdruck: itemvalue  
                    [[Taupunkt]]
                        type = num
                        xmlstring = dewpoint_c
                        nw_udp_send = 192.168.178.104:33333=wunderground.Taupunkt: itemvalue  
                    [[Wind_mph]]
                        type = num
                        xmlstring = wind_mph
                        nw_udp_send = 192.168.178.104:33333=wunderground.Wind_mph: itemvalue  
                    [[Wind_kmh]]
                        type = num
                        eval = (round(sh.wunderground.Wind_mph()/0.44704, 1))
                        eval_trigger = wunderground.Wind_mph
                        nw_udp_send = 192.168.178.104:33333=wunderground.Wind_kmh: itemvalue  
                    [[Windboen_mph]]
                        type = num
                        xmlstring = wind_gust_mph
                        nw_udp_send = 192.168.178.104:33333=wunderground.Windboen_mph: itemvalue  
                    [[Windboen_kmh]]
                        type = num
                        eval = (round(sh.wunderground.Windboen_mph()/0.44704, 1))
                        eval_trigger = wunderground.Windboen_mph
                        nw_udp_send = 192.168.178.104:33333=wunderground.Windboen_kmh: itemvalue  
                    [[Temperatur]]
                        type = num
                        xmlstring = temp_c    
                        nw_udp_send = 192.168.178.104:33333=wunderground.Temperatur: itemvalue  
                    [[Niederschlag_Heute]]
                        type = num
                        xmlstring = precip_today_metric
                        nw_udp_send = 192.168.178.104:33333=wunderground.Niederschlag_Heute: itemvalue  
                    [[Niederschlag_letzte_stunde]]
                        type = num
                        xmlstring = precip_1hr_metric
                        knx_dpt = 7
                        knx_send = 0/3/102
                        nw_udp_send = 192.168.178.104:33333=wunderground.Niederschlag_letzte_stunde: itemvalue  
                    [[relative_luftfeuchte_perc]]
                        type = num
                        xmlstring = relative_humidity
                        knx_dpt = 5
                        knx_send = 0/3/105
                        nw_udp_send = 192.168.178.104:33333=wunderground.relative_luftfeuchte_perc: itemvalue  
                    [[relative_luftfeuchte]]
                        type = num
                        nw_udp_send = 192.168.178.104:33333=wunderground.relative_luftfeuchte: itemvalue  
                        eval = (sh.wunderground.relative_luftfeuchte_perc()*0.01)
                        eval_trigger = wunderground.relative_luftfeuchte_perc
                Gruß
                Maik

                Kommentar


                  #53
                  Ich fürchte, da muss ich passen.
                  Bei mir sieht es so aus:
                  Code:
                  >>> sh.Wetter.wunderground_url()
                  'http://api.wunderground.com/api/13f6a0e88a00bfa5/conditions/forecast/astronomy/lang:DL/q/Germany/Bremen.xml'
                  >>> sh.Wetter.wunderground_url.type()
                  'str'
                  >>> sh.Wetter.Temperatur.Web.type()=="str"
                  False
                  >>> sh.Wetter.Temperatur.Web.type()
                  'num'
                  Code:
                      [[wunderground_url]]
                          type = str
                          value = http://api.wunderground.com/api/13f6a0e88a00bfa5/conditions/forecast/astronomy/lang:DL/q/Germany/Bremen.xml
                      [[Temperatur]]
                          [[[Web]]]
                              type = num
                              xmlstring = temp_c
                              knx_send = 7/7/16
                              knx_dpt = 9
                              sqlite = cache

                  Gruß,
                  Hendrik

                  Kommentar


                    #54
                    ich habe die 2 Zeilen auskommentiert, dann geht es.
                    wieso kriegt das denn keiner hin ?
                    Code:
                     if len(val)>0:
                     val=val[0].text
                     logger.debug('[Wunderground] Wert {0} in xml gefunden'.format(val))
                     # if not item.type()=='str':
                     # val=clean(val)
                     if val!=-99999:
                     item(val)
                     logger.debug('[Wunderground] Wert {0} ins item geschrieben'.format(val))
                     else:

                    Kommentar


                      #55
                      damit funktioniert es nicht mehr mit Strings

                      Kommentar


                        #56
                        Zitat von henfri Beitrag anzeigen
                        damit funktioniert es nicht mehr mit Strings
                        Ich hab die beiden Zeilen ja momentan auch auskommentiert. In welchen Fällen muss es dann überhaupt mit Strings funktionieren? Alle Wetter-Items sind doch vom Typ "num" - oder hast Du andere, Hendrik?

                        Gruß
                        Maik

                        Kommentar


                          #57
                          Windrichtung

                          Kommentar


                            #58
                            Also ich hab nun die letzte Version verwendet und auch die beiden Zeilen auskommentiert.
                            String geht aber trotzdem, zumindest habe ich nur die Windrichtung getestet.

                            Danke

                            Kommentar


                              #59
                              string geht

                              ich habe auch die Windrichtung als String in meiner VISU.
                              funktioniert einwandfrei ( mit den beiden auskommentierten Zeilen ).

                              Wil

                              Kommentar


                                #60
                                Welchen Wert hat die Windrichtung denn bei euch?

                                Bei wem außer Max hat das Skript vorher (ohne das Auskommentieren) nicht funktioniert?

                                Gruß,
                                Hendrik

                                Kommentar

                                Lädt...
                                X