Ankündigung

Einklappen
Keine Ankündigung bisher.

Mail Plugin Error bei neuem SmarthomeNG

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

    Mail Plugin Error bei neuem SmarthomeNG

    Hi zusammen!

    Bin etwas verwundert, dass ich hierzu im Forum noch nichts finden konnte.. Wenn ich das neueste smarthomeNG über git pull aktualisiere, gibt es immer ein Problem mit dem Mail Plugin:
    Code:
    2016-07-13  09:33:48 ERROR    IMAP         Method IMAP exception: 'IMAP' object has no attribute 'alive'
    Traceback (most recent call last):
      File "/usr/smarthome/lib/scheduler.py", line 371, in _task
        obj()
      File "/usr/smarthome/plugins/mail/__init__.py", line 80, in _cycle
        if not self.alive:
    AttributeError: 'IMAP' object has no attribute 'alive'
    Ein einfaches Einfügen von self.alive = False im Init-Bereich löst das Problem, aber offenbar ist das im offiziellen Plugin nicht drin...?

    Ab und an bekomme ich auch folgende Fehlermeldung:
    Code:
    IMAP: problem parsing message b'3428': 'NoneType' object is not subscriptable
    Zuletzt geändert von Onkelandy; 13.07.2016, 10:25.

    #2
    Die run Methode setzt es aber doch:
    Code:
    [COLOR=#000080][B]def [/B][/COLOR]run([COLOR=#94558d]self[/COLOR]):    
    [COLOR=#94558d]     self[/COLOR].alive = [COLOR=#000080][B]True[/B][/COLOR]

    Kommentar


      #3
      Komisch ja.. Bei mir muss aber definitiv im Init-Teil drin stehen, dann funktioniert's. psilo , hast du das Plugin erfolgreich laufen bei dir?

      Kommentar


        #4
        Onkelandy nur mit SMTP zum Versand. Der Abruf hat bei mir sowieso gegen meinen vollen IMAP Server Chaos ausgelöst.. mit SMTP ist kein Problem bei mir.
        Ich kann auch net ausschliessen, dass das Plugin schon immer recht buggy war.. Am besten mal nen Issue auf GitHUB machen damit wirs tracken und retesten können.

        Kommentar


          #5
          Ich habe eben mal in das Plugin reingeschaut. Es enthält einen Fehler: Das Statemant

          Code:
                  self._sh.scheduler.add('IMAP', self._cycle, cycle=int(cycle))
          wird bereits in der Init Methode der Klasse aufgerufen. Normalerweise passiert das erst in der Run Methode.
          Viele Grüße
          Martin

          There is no cloud. It's only someone else's computer.

          Kommentar


            #6
            msinn: magst du das fixen ;-) 1.2er und dev branch

            Kommentar


              #7
              Yup!
              Viele Grüße
              Martin

              There is no cloud. It's only someone else's computer.

              Kommentar


                #8
                Scheint nun im dev Branch zu funzen, danke.
                Wegen der Exception hab ich eh schon hier und im git die Lösung hingeschrieben.. Wenn ich das except "alleine" stehen lasse, wird der TypeError auch abgefangen, sonst nicht.

                Kommentar


                  #9
                  Wie ich schon auf github schrieb, war es eine Design Entscheidung der Autors eine Exception zu werfen. Deshalb hat er logger.exception() aufgerufen und nicht logger.error() oder logger.warning().

                  Viele Grüße
                  Martin

                  There is no cloud. It's only someone else's computer.

                  Kommentar


                    #10
                    Jup, alles klar. Danke für die Info und das Update!

                    Kommentar


                      #11
                      Msinn tut mir echt Leid, aber mein gestriger Test war nicht so aussagekräftig. Das Plugin startet zwar brav und bringt keine Fehlermeldung mehr, macht aber auch nichts mehr...

                      Vor dem Fix habe ich einfach ein "mail.alive = False" in die init Funktion gesteckt und dann funktioniert alles - per IMAP werden Mails aufgerufen und laut meiner Logik auch verarbeitet und gelöscht. Nach dem Fix werden die Mails leider nicht mehr verarbeitet bzw. die Logik scheint nicht mehr anzuspringen.

                      Hoffe, das war irgendwie verständlich

                      Kommentar


                        #12
                        Hi,

                        ich habe einen Bugfix gepushed. Bitte testen.

                        Dein "mail.alive = False" ist eine quick und dirty Lösung, die nicht zum Design von Plugins passt. Es müsste übrigens self.alive heissen. Dieses zu setzen hilft aber nur einen anderen Fehler zu verbergen, nämlich den Scheduler bereits in der init Methode zu starten.

                        Viele Grüße
                        Martin

                        There is no cloud. It's only someone else's computer.

                        Kommentar


                          #13
                          Super, jetzt scheint es wirklich zu klappen. Habe es mit diversen Mails probiert, sie werden erkannt und die Logik wird sauber getriggert.

                          Kommentar

                          Lädt...
                          X