Ankündigung

Einklappen
Keine Ankündigung bisher.

Luftfeuchte vom DWD?

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

    Luftfeuchte vom DWD?

    Hallo,

    ist es richtig, dass ich vom DWD-Plugin die Luftfeuchte nicht bekomme?

    Gruß,
    Hendrik

    #2
    Hallo Hendrik,

    ich habe gerade noch mal nachgesehen. Der DWD liefert anscheinend die Luftfeuchte nicht mit aus. => das Plugin liefert sie nicht.

    sorry

    Bis bald

    Marcus

    Kommentar


      #3
      Hallo,

      nicht so schlimm, ich habe mal eine Logik angefangen:

      Code:
      #!/usr/bin/python
      
      from xml.dom import minidom
      import urllib2
      
      
      def get_current_weather_data(xml, name):
         for node in xml.getElementsByTagName(name): 
            return node.childNodes[0].nodeValue
      
      response= urllib2.urlopen('http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=INIEDERS60')
      
      xml=response.read()
      xml=minidom.parseString(xml)
      #xml=minidom.parse("wetter.xml")
      
       
      
       
      
      for item in sh.aktuelles_wetter:
         #print item.name
         item(get_current_weather_data(xml,item.name))
      
        
      #relative_humidity=get_current_weather_data(xml,'relative_humidity')
      #print(relative_humidity)
      Die Idee ist alle Items die Children von aktuelles_wetter in der XML nachzuschlagen.

      Macht das Sinn so, oder bin ich auf dem Holzweg?

      Und: Sollte das lieber ein Plugin, oder eine Logik werden.

      Gruß,
      Hendrik

      Kommentar


        #4
        Wenn ich das jetzt richtig durchdringe, willst du ein "WUnderground-Plugin" schreiben? Falls ja, gibt der Name schon vor was das sein sollte... ;-)

        Wenn das funktioniert wäre ich auch noch ein dankbarer Abnehmer. Ich benutze zwar schon das WUnderground-Widget der smartVISU, aber manche Daten könnte man aus Spaß auch auf den Bus schicken.

        Grüße
        Robert

        Kommentar


          #5
          Hallo Robert,

          ich hoffe, das wundert dich nicht. Du warst es doch, der mir nahe gelegt hat, python zu lernen ;-)

          Das, was ich momentan vor habe, ist die Wetterstation von einem Wunderground-Nutzer hier ganz in der Nähe anzuzapfen, für Niederschlag etc.
          (konkret diese: wunderground.com/weatherstation/WXDailyHistory.asp?ID=INIEDERS60)

          Diese "Nutzer-Wetterstationen" bieten keine Vorhersage, wie z.B.
          Bremen, Germany Weather Forecast from Weather Underground

          Die xml ist aber ähnlich:
          Weather Underground

          vs.

          Weather Underground

          Current Observation ist gleich.

          Forecast gibt es bei der User-Wetterstation nicht.

          Ich schau mal, wie ich es flexibel halte.

          Gruß,
          Hendrik

          Kommentar


            #6
            Hallo,

            zwei Fragen:
            1) benutzt ihr einfach einen Text-Editor zum Programmieren, oder eine IDE?
            Ich würde das Plugin gerne standalone testen, aber ich kann auf Dinge wie sh.aktuelles_wetter.temp ja so nicht zugreifen... Wie macht ihr das?

            2) Warum geht dies nicht?
            Code:
            /usr/local/smarthome/items# cat wetter.conf
            [aktuelles_wetter]
              [[windrichtung]]
                type=num
                name=wind_degrees
              [[temperatur]]
                type=num
                name=temp_c
            Code:
            for item in sh.aktuelles_wetter:
               print item.name
            (Fehlermeldung:
            Method: <module>, Exception: Item instance has no attribute 'name' -- scheduler.py:_task:281
            )

            Gruß,
            Hendrik

            Kommentar


              #7
              Hallo Hendrik,

              1) ich benutze Vim: https://knx-user-forum.de/smarthome-...g-mit-vim.html
              Ist für einen Windowsnutzer aber warhscheinlich etwas ungewohnt.

              2) name ist kein Attribute das direkt an den Items hängt. Probier mal print item.id()

              Bis bald

              Marcus

              Kommentar


                #8
                Hallo,

                zum Editor:
                Ich finde halt das Debuggen echt anstrengend. Man muss sich für alles einen Log-Output schreiben. Ich kenne es von Matlab und VBA so, dass ich mir Breakpoints setzen kann, den Inhalt von Variabeln ansehen kann etc. Hast du das alles ohne programmiert?!

                zum item.name:
                So sieht es hier jetzt aus:
                Code:
                for item in sh.aktuelles_wetter:
                   logger.debug(item.id)
                   item(get_current_weather_data(xml,item.id))
                   logger.debug(get_current_weather_data(xml,item.id))
                Das gibt zwar keinen Fehler mehr, aber es funktionier auch nicht:
                Code:
                2013-08-01 22:33:01,293 wunderground DEBUG    <bound method Item.id of Item: 0> -- wunderground.py:<module>:23
                2013-08-01 22:33:01,296 wunderground DEBUG    None -- wunderground.py:<module>:25
                2013-08-01 22:33:01,297 wunderground DEBUG    <bound method Item.id of Item: 0> -- wunderground.py:<module>:23
                2013-08-01 22:33:01,300 wunderground DEBUG    None -- wunderground.py:<module>:25
                2013-08-01 22:33:01,300 wunderground DEBUG    <bound method Item.id of Item: 0> -- wunderground.py:<module>:23
                2013-08-01 22:33:01,303 wunderground DEBUG    None -- wunderground.py:<module>:25
                2013-08-01 22:33:01,303 wunderground DEBUG    <bound method Item.id of Item: 0> -- wunderground.py:<module>:23
                2013-08-01 22:33:01,306 wunderground DEBUG    None -- wunderground.py:<module>:25
                2013-08-01 22:33:01,307 wunderground DEBUG    <bound method Item.id of Item: 0> -- wunderground.py:<module>:23
                2013-08-01 22:33:01,310 wunderground DEBUG    None -- wunderground.py:<module>:25
                Nur dass wir uns nicht missverstehen:
                Was ich benötige ist aus:
                Code:
                  [[Niederschlag_Heute]]
                    type=num
                    name=percip_today_metric
                    knx_send=7/7/17
                    knx_dpt=9
                den String "percip_today_metric".

                Gruß,
                Hendrik

                Kommentar


                  #9
                  Hallo Hendrik,

                  Zitat von henfri Beitrag anzeigen
                  Hast du das alles ohne programmiert?!
                  Ja.

                  Zu dem anderen Problem. Korrekt wäre item.id().

                  Aber Du möchtest ja eigentlich etwas anderes.

                  Code:
                  [test]
                     type = num
                     wg = percip_today_metric  # oder wunderground = percip_today_metric
                  Das kannst Du dann mit
                  Code:
                  sh.test.conf['wg']
                  auslesen. Die Plugins machen das mit ihren Keywords ebenso.

                  hth

                  Marcus

                  Kommentar


                    #10
                    Hi Marcus,

                    Ja, das klappt. Sorry, das hatte ich so nicht verstanden.
                    Wofür ist denn "name" gedacht. Prinzipiell ist der doch redundant zu dem, was in den eckigen Klammern steht, oder?

                    So sieht es jetzt aus:
                    Code:
                    2013-08-02 22:53:01,266 wunderground DEBUG    wind_degrees -- wunderground.py:<module>:23
                    2013-08-02 22:53:01,267 wunderground DEBUG    aktuelles_wetter.windrichtung = 110 via Logic None -- item.py:_update:219
                    2013-08-02 22:53:01,274 wunderground ERROR    Item 'aktuelles_wetter.relative_luftfeuchte': value (39%) does not match type (num). Via Logic None -- item.py:__call__:197
                    Wie sollte ich Prozent-Werte behandeln? Sollte ich den Wert in 0.39 umwandeln?

                    Gruß,
                    Hendrik

                    Kommentar


                      #11
                      Hallo Hendrik,

                      Zitat von henfri Beitrag anzeigen
                      Wofür ist denn "name" gedacht. Prinzipiell ist der doch redundant zu dem, was in den eckigen Klammern steht, oder?
                      An manchen Stellen, z.B. der Autogeneration wird der name verwendet.
                      Anstelle von eg.kueche steht dann dort Küche.

                      Zitat von henfri Beitrag anzeigen
                      Wie sollte ich Prozent-Werte behandeln? Sollte ich den Wert in 0.39 umwandeln?
                      Ja, ich würde ihn in 0.39 wandeln.

                      Bis bald

                      Marcus

                      Kommentar


                        #12
                        Hallo,

                        nochmal zum Prozentwert:

                        Wie werden Datentypen zwischen sh.py und SV denn allgemein gehandhabt?
                        Die SV zeigt nämlich 0.92% an und ich bin sicher, dass 92% näher an der Wahrheit liegt...

                        Code:
                          [[relative_luftfeuchte_perc]]
                            type=num
                            xmlstring=relative_humidity
                          [[relative_luftfeuchte]]
                            type=num
                                rrd=1
                                visu=yes
                                eval=sh.aktuelles_wetter.relative_luftfeuchte_perc() * 0.01
                                eval_trigger=aktuelles_wetter.relative_luftfeuchte_perc
                                sv_widget="{{ plot.period('item', 'item', 'avg', 24h) }}"
                            knx_send=7/7/251
                            knx_listen=7/7/251
                            knx_dpt=5
                        relative_luftfeuchte_prec hat den Wert 92.

                        relative_luftreuchte dann 0.01*92=0.92.

                        Woher weiß die Smartvisu, wie die Werte zu Handhaben sind? In KNX gibt es dafür ja den DPT..

                        Gruß,
                        Hendrik

                        Kommentar


                          #13
                          Hi Hendrik,

                          in welchem Widget zeigt die smartVISU denn den falschen Prozentwert an?
                          In dem Beispiel wohl nicht. Und welchen Wert schickst Du denn hin?

                          Die Kommunikation SH.py und SV erfolgt momentan ohne Einheiten. Einfach nur Werte.

                          Jetzt muss man entweder dem sV-Widget die Einheit mitgeben, oder man muss den Wert in SH.py entsprechend aufbereiten.

                          Bis bald

                          Marcus

                          Kommentar

                          Lädt...
                          X