Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Plugin Wetter.com

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

    Problem mit Plugin Wetter.com

    Hallo zusammen,

    zuerst muss ich zu meiner Entschuldigung sagen, dass ich "blutiger" SmartHomeNG Anfänger bin und nach dem Tod meines Wiregates auf SmartHomeNG umsteigen will.

    Ich benötige die Wettervorhersage für einige meiner (noch zu erstellenden) Logiken.
    Nachdem Darksky und Underground keine neuen API User mehr annehmen, habe ich es mit dem Wetter.Com Plugin versucht.
    Wetter.Com hatte ich auch auf dem Wiregate angebunden und daher noch einen API Key. Die API Url liefert auch sauber Werte zurück.

    In dem SmartHomeNG log steht folgender Fehler:
    Code:
    2020-07-08 13:58:07 ERROR logics.WetterCom Logic: logics.WetterCom, File: /usr/local/smarthome/logics/wettercom.py, Line: 5, Method: <module>, Exception: 'SmartHome' object has no attribute 'wettercom'
    > Traceback (most recent call last):
    > File "/usr/local/smarthome/lib/scheduler.py", line 527, in _task
    > exec(obj.bytecode)
    > File "/usr/local/smarthome/logics/wettercom.py", line 5, in <module>
    > forecast = sh.wettercom.forecast('93128')
    Die Logik Datei sieht folgendermaßen aus:
    Code:
    #!/usr/bin/env python
    # parse weather data
    # -*- coding: iso-8859-15 -*-
    
    forecast = sh.wettercom.forecast('93128')
    
    d0 = sh.now().date()
    d1 = (sh.now() + dateutil.relativedelta.relativedelta(days=1)).date ()
    d2 = (sh.now() + dateutil.relativedelta.relativedelta(days=2)).date ()
    
    items = { d0: sh.wetter.vorhersage.heute, d1: sh.wetter.vorhersage.morgen, d2: sh.wetter.vorhersage.uebermorgen}
    try:
    for date in forecast:
    if date.date() in items:
    base = items[date.date()]
    if date.hour == 5 or date.hour == 6:
    frame = base.frueh
    elif date.hour == 11:
    frame = base.mittag
    elif date.hour == 23:
    frame = base.nacht
    else: # hour == 18
    frame = base.spaet
    frame.temperatur.min(forecast[date][0])
    frame.temperatur.max(forecast[date][1])
    frame.text(forecast[date][2])
    frame.niederschlag(forecast[date][3])
    frame.wind.geschwindigkeit(forecast[date][4])
    frame.wind.richtung(forecast[date][5])
    frame.wind.richtung.text(forecast[date][6])
    frame.code(forecast[date][7])
    except TypeError as e:
    logger.debug("Problems fetching wetter.com forecast. TypeError: {}".format(e))
    
    except AttributeError as e:
    logger.debug("Problems fetching wetter.com forecast. AttributeError: {}".format(e))
    
    except:
    e = sys.exc_info()[0]
    logger.debug("Problems fetching wetter.com forecast: {}".format(e))
    
    logger.debug(forecast)
    Also Standard für das Plugin.

    Da ich "blutiger" Anfänger bin, kann ich die Fehlermeldung (noch) nicht deuten.
    Kann mir jemand auf die Sprünge helfen?

    Danke
    Sascha

    #2
    Ok, 3 Sachen:

    Richtiges einfügen ist für Python Code essentiell, schau mal hier

    Hast Du Dir mal die Readme vom Plugin angeschaut und das Plugin entweder über das Admin Interface oder aber manuell in der plugin.yaml angemeldet? (Und auch neu gestartet?)

    Hast Du auch eine Datei mit den im Readme beschriebenen Items angelegt?
    Zuletzt geändert von bmx; 08.07.2020, 15:23.

    Kommentar


      #3
      Hallo, Danke für die Antwort!

      Zitat von bmx Beitrag anzeigen
      Ok, 3 Sachen:
      Richtiges einfügen ist für Python Code essentiell, schau mal hier
      Hast Du Dir mal die Readme vom Plugin angeschaut und das Plugin entweder über das Admin Interface oder aber manuell in der plugin.yaml angemeldet? (Und auch neu gestartet?)
      Ja habe ich das gelesen und nach besten Wissen ausgeführt.
      Die Dateien sehen folgendermaßen aus:

      Plugin.yaml
      Code:
      WetterCom:
      plugin_name: wettercom
      project: knxbus
      apikey: 4d6650c1fb7a78ed8dc83e29d34c5186
      Soweit ich sehen kann passt das.

      Logic.yaml
      Code:
      WetterCom:
      filename: wettercom.py
      cycle: 900
      crontab:
      - init
      visu_acl: rw
      Das hat das Admin Interface selbst angelegt.

      Gestartet hab ich natürlich!

      Zitat von bmx Beitrag anzeigen
      Ok, 3 Sachen:
      Hast Du auch eine Datei mit den im Readme beschriebenen Items angelegt?
      Klar alles 1:1 ohne jede Korrektur übernommen und vorhanden.

      Woran kann das denn legen?

      Danke
      Sascha

      Kommentar


        #4
        Ok, 2 Sachen:

        Hast Du vermutlich übersehen: Richtiges einfügen ist für Python Code essentiell, schau mal hier

        Du hast in der plugin.yaml "WetterCom" geschrieben aber in der Logik "wettercom" drin: forecast = sh.wettercom.forecast('93128')
        Da würde ich das in der plugin.yaml ändern. und Neustarten

        Kommentar


          #5
          Danke für die schnelle Antwort!

          Zitat von bmx Beitrag anzeigen
          Du hast in der plugin.yaml "WetterCom" geschrieben aber in der Logik "wettercom" drin: forecast = sh.wettercom.forecast('93128')
          Da würde ich das in der plugin.yaml ändern. und Neustarten
          Das war es! Dass sh.wettercom der Name der Logik ist, wusste ich bis jetzt nicht...

          Die Fehlermeldungen im Log sind jetzt weg.
          Aber leider habe ich auf den Items (1:1 ohne Änderung kopiert) keine Werte.

          Was kann das jetzt sein?

          Danke
          Sascha

          Kommentar


            #6
            Das kann ich Dir auch nicht sagen, da ich keinen Api Key habe und das somit nicht nachvollziehen kann...

            Kommentar

            Lädt...
            X