Ankündigung

Einklappen
Keine Ankündigung bisher.

Helios Plugin läuft nicht (mehr)

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

    Helios Plugin läuft nicht (mehr)

    Hallo Zusammen,
    ich steh hier gerade total auf dem Schlauch. Ich habe das Helios Plugin in einer alten Version schon lange am laufen gehabt. Nun habe ich die Smarthome Version auf
    1.4.2 gebracht.
    Dabei habe ich die plugin.conf zu einer plugin.yaml migriert. Der Eintrag für das Plugin sieht nun so aus
    Code:
    helios:
        plugin_name: helios
        tty: '/dev/ttyKWL'
        cycle: 60
    Ich habe schon probiert ob es mit Hochkomma, Anführungszeichen oder ohne eine Veränderung gibt, ist aber nicht der Fall.

    Im Log bekomme ich
    Code:
    2018-04-13  10:01:03 INFO     Main         Loading '/usr/local/smarthome/plugins/helios/plugin.yaml' to 'OrderedDict'
    2018-04-13  10:01:03 INFO     Main         plugin 'helios': No parameter definitions found in metadata
    2018-04-13  10:01:03 ERROR    Main         Plugin 'helios' from section 'helios' exception: __init__() got multiple values for argument 'tty'
    Traceback (most recent call last):
      File "/usr/local/smarthome/lib/plugin.py", line 111, in __init__
        plugin_thread = PluginWrapper(smarthome, plugin, classname, classpath, args, instance, self.meta)
      File "/usr/local/smarthome/lib/plugin.py", line 413, in __init__
        exec("self.plugin.__init__(smarthome{0}{1})".format("," if len(arglist) else "", argstring))
      File "<string>", line 1, in <module>
    TypeError: __init__() got multiple values for argument 'tty'
    Ich bin mir aber sicher, dass ich das Plugin nur einmal eingebunden habe?!?

    Gruß Felix

    #2
    Hmmm, mit der Umstellung auf 1.4.2 hatte ich keine Probleme. Was mir aufgefallen ist: Kannst Du bitte
    Code:
    class_path: plugins.helios
    in der plugin.yaml hinzufügen? Siehe hier.
    /tom

    Kommentar


      #3
      Hallo Tom,

      das hat noch keine Änderung gebracht:
      Code:
      helios:
          plugin_name: helios
          class_path: plugins.helios
          tty: '/dev/ttyKWL'
          cycle: 60
      Code:
      2018-04-13  11:43:46 INFO     Main         Loading '/usr/local/smarthome/plugins/helios/plugin.yaml' to 'OrderedDict'
      2018-04-13  11:43:46 INFO     Main         plugin 'helios': No parameter definitions found in metadata
      2018-04-13  11:43:46 ERROR    Main         Plugin 'helios' from section 'helios' exception: __init__() got multiple values for argument 'tty'
      Traceback (most recent call last):
        File "/usr/local/smarthome/lib/plugin.py", line 111, in __init__
          plugin_thread = PluginWrapper(smarthome, plugin, classname, classpath, args, instance, self.meta)
        File "/usr/local/smarthome/lib/plugin.py", line 413, in __init__
          exec("self.plugin.__init__(smarthome{0}{1})".format("," if len(arglist) else "", argstring))
        File "<string>", line 1, in <module>
      TypeError: __init__() got multiple values for argument 'tty'
      Gruß Felix

      Kommentar


        #4
        Wenn ich den Parameter tty weglasse, dann bleibt die Fehlermeldung aus. Dann wird ja der Standardwert aus der __init__.py genommen. Allerdings passt bei mir die Schnittstelle nicht.
        Ich habe die init editiert, aber irgendwie kommen trotzdem noch keine Werte.
        Ich finde auch keinen Scheduler zu dem Plugin
        Code:
        CLI > sl
        14 scheduler tasks:
        1w-disc (scheduled for 2018-04-13 13:54:39+0200)
        1w-sen (scheduled for 2018-04-13 13:54:40+0200)
        items.zentral.tag_nacht (scheduled for 2018-04-13 22:00:00+0200)
        logics.env_daily (scheduled for 2018-04-14 06:00:00+0200)
        logics.env_loc (scheduled for 2018-04-13 13:54:43+0200)
        logics.env_stat (scheduled for 2018-04-13 13:49:47+0200)
        logics.kwl (scheduled for 2018-04-13 13:50:49+0200)
        plugins.avm_fritzbox_7360.update (scheduled for 2018-04-13 13:54:40+0200)
        plugins.sqlite_visu2_8.SQLite Maintain (scheduled for 2018-04-14 03:02:00+0200)
        plugins.visu_websocket.series (scheduled for 2018-04-13 13:49:50+0200)
        sh.connections (scheduled for 2018-04-13 13:49:50+0200)
        sh.garbage_collection (scheduled for 2018-04-14 02:04:00+0200)
        uzsu_aussen.beleuchtung.wand.uzsu (scheduled for 2018-04-13 20:11:03+0200)
        uzsu_erdgeschoss.flur.steckdosen.deko.uzsu (scheduled for 2018-04-13 14:00:00+0200)
        Das Log beim Start sieht so aus
        Code:
        2018-04-13  11:54:34 INFO     Main         Loading '/usr/local/smarthome/plugins/helios/plugin.yaml' to 'OrderedDict'
        2018-04-13  11:54:34 INFO     Main         plugin 'helios': No parameter definitions found in metadata
        2018-04-13  11:54:34 INFO     Main         Initialized plugin 'helios' from from section 'helios'

        Kommentar


          #5
          Bin mittelprächtig ratlos - hast Du mal das plugin-Verzeichnis gelöscht und manuell neu angelegt/die Plugin-Dateien hineinkopiert?

          Vielleicht hat es ja beim Upgrade irgendetwas zerlegt, oder mit dem Caching des Plugins stimmt was nicht (das Cache-File liegt im Unterverzeichnis vom Plugin - nach Veränderungen an der __init__.py besser löschen).

          /tom

          Kommentar


            #6
            Zitat von Tom Bombadil Beitrag anzeigen
            Hmmm, mit der Umstellung auf 1.4.2 hatte ich keine Probleme. Was mir aufgefallen ist: Kannst Du bitte
            Code:
            class_path: plugins.helios
            in der plugin.yaml hinzufügen? Siehe hier.
            /tom
            Entweder class_path und class_name setzen oder plugin_name. plugin_name funktioniert nur bei Plugins mit gepflegter Metadaten Datei (plugin.yaml im Plugin Verzeichnis).
            Viele Grüße
            Martin

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

            Kommentar


              #7
              Ich habe keine Helios. Hast Du die Plugins auch aktualisiert? Also entweder über das update der submodule oder innerhalb des plugin Verzeichnisses mit git pull?

              Kommentar


                #8
                felix86 Was zeigt Dir den Das Backend Plugin an, wenn Du auf der Plugin Seite auf das helios Plugin klickst? (Dann geht ein Block auf, der Dir die Parameter des Plugins anzeigt, also das, was beim Einlesen der Konfigurationsdaten in shNG angekommen ist.)
                Viele Grüße
                Martin

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

                Kommentar


                  #9
                  Mich verwirrt immer noch der initiale Fehler - der kommt doch nicht aus dem Plugin, sondern aus dem Loader von shNG, oder?
                  Code:
                  TypeError: __init__() got multiple values for argument 'tty'
                  Wird das Plugin in der plugin.yaml vielleicht 2x eingebunden?
                  /tom

                  Edit: Gerade nochmal nachgesehen - hier 1.4.2.master (0dff024). Das Plugin läuft ohne Fehler. Im Backend wird unter Scheduler --> sonstige Scheduler ein Cycle von {60:none} gelistet (vermutlich wird bei Felix das Plugin gar nicht erst geladen, daher auch der fehlende Scheduler).
                  Zuletzt geändert von Tom Bombadil; 13.04.2018, 17:41. Grund: Nachtrag

                  Kommentar


                    #10
                    Backend -> Screenshot, aktuell übergebe ich den Parameter tty nicht
                    In der plugin.yaml steht nur einmal der o.g. Eintrag zu dem helios Plugin.
                    Ich verstehe es nicht.
                    You do not have permission to view this gallery.
                    This gallery has 1 photos.

                    Kommentar


                      #11
                      Bekommst Du denn jetzt Werte? Ich hab zwischenzeitlich mal nach der Fehlermeldung gegoogelt, die scheint recht verbreitet zu sein und von Python selbst zu kommen. Muss also am Plugin liegen - obwohl wir kurioserweise sogar Leute haben, die über völlig andere Schnittstellen Daten ziehen, da hätte es schon lange knallen müssen (z.B. RS485LAN-Adapter über virtuellen Port etc) ...
                      /tom

                      Kommentar


                        #12
                        So nun gehts (wieder)
                        Ich hatte in der plugin.yaml das Plugin mit "plugin_name: helios" eingebunden. Damit erhalte ich den Fehler, dass tty mehr als einen Eintrag enthält. Wenn ich das Plugin über class_name und class_path einbinde klappts. Eigentlch sollte plugin_name ja auch gehen, in dem helios Ordner ist ja eine plugin.yaml vorhanden. Eventuell ist ein Fehler in den Metadaten?

                        Kommentar

                        Lädt...
                        X