Ankündigung

Einklappen

Hinweis

Die Forenregeln wurden überarbeitet (Stand 7.11.22). Sie sind ab sofort verbindlich. Wir bitten um Beachtung.
Mehr anzeigen
Weniger anzeigen

Support Thread zum Prowl Plugin

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

    Support Thread zum Prowl Plugin

    Der Name sagts schon ...


    #2
    Hi,
    komisch, dass hier noch niemand geschrieben hat, oder vielleicht mach' ich mal wieder was falsch.
    Habe das Plugin aktiviert und einen API Key eigegeben.
    Wenn ich die Funktion sh.notify(...) aufrufen möchte, gibt es diese jedoch nicht uns es erscheint folgende Fehlermeldung:

    Code:
    2021-01-08 21:08:39 ERROR logics.test Logic: logics.test, File: /usr/local/smarthome/plugins/prowl/__init__.py, Line: 65, Method: notify, Exception: __call__() takes from 1 to 7 positional arguments but 8 were given
    > Traceback (most recent call last):
    > File "/usr/local/smarthome/lib/scheduler.py", line 590, in _task
    > exec(obj.bytecode)
    > File "/usr/local/smarthome/logics/test.py", line 5, in <module>
    > sh.notify('Intrusion', 'Living room window broken')
    > File "/usr/local/smarthome/plugins/prowl/__init__.py", line 65, in notify
    > self.__call__(self, event, description, priority, url, apikey, application)
    > TypeError: __call__() takes from 1 to 7 positional arguments but 8 were given
    In der Logik test.py steht nicht viel drinnen:
    Code:
    #!/usr/bin/env python3
    # test.py
    
    #sh.Prowl.notify(event:str= '', description:str= '', priority:int=None*, url:str=None, apikey:str=None, application:str= 'SmartHomeNG')
    sh.notify('Intrusion', 'Living room window broken')
    Im Logik-Editor sehe ich, dass es die Funktion sh.Prowl.notify(...) gibt (der Autofill ergibt den auskommentierten Befehl im Logik Code, siehe oben), daher ist meine Vermutung, dass ich das Plugin falsch integriert habe oder irgendein Pfad nicht stimmen könnte?
    Meine plugin.yaml sieht wie folgt aus (auch völlig unspektakulär):

    Code:
    Prowl:
        plugin_name: prowl
        apikey: xxx
    Die Version von SmarthomeNG sowie der Plugins sollte recht aktuell sein (1.7.2.master).
    In der Anwenderdoku konnte ich leider nichts finden.

    Hat jemand eine Idee, woran das liegt?

    Viele Grüße und schon mal Danke,
    Chris

    Kommentar


      #3
      Wenn du deinen Testcode nutzt: du rufst sh.notify auf, was auch immer das für eine Funktion ist. Im auskommentierten Beispiel steht doch, wie es aufgerufen wird: sh.Prowl.notify(...), wenn dein Plugin in der plugin.yaml "Prowl" heißt.

      Wenn ich deine Konfig so ansehe, müsstest du also

      sh.prowl.notify(...)

      aufrufen

      Kommentar


        #4
        Das hatte ich auch schon probiert und erhalte dann folgende Fehlermeldung:
        Code:
        2021-01-09 10:29:30 ERROR logics.test Logic: logics.test, File: /usr/local/smarthome/plugins/prowl/__init__.py, Line: 65, Method: notify, Exception: __call__() takes from 1 to 7 positional arguments but 8 were given
        > Traceback (most recent call last):
        > File "/usr/local/smarthome/lib/scheduler.py", line 590, in _task
        > exec(obj.bytecode)
        > File "/usr/local/smarthome/logics/test.py", line 5, in <module>
        > sh.Prowl.notify('Intrusion', 'Living room window broken')
        > File "/usr/local/smarthome/plugins/prowl/__init__.py", line 65, in notify
        > self.__call__(self, event, description, priority, url, apikey, application)
        > TypeError: __call__() takes from 1 to 7 positional arguments but 8 were given
        Ich bin aber noch auf ein weiteres Plugin Telegram gestoßen, das mir evtl. weiterhelfen könnte (ich möchte lediglich Benachrichtigungen vom Smarthome auf mein Handy verschicken).
        Das möchte ich heute mal testen.

        Vielen Dank für die RM und Grüße
        Chris

        Kommentar


          #5
          Oh, jetzt sehe ich das. Ich glaube, da ist ein Fehler im Plugin. Ich poste mal einen Fix auf github.

          self.__call__() ist ein Aufruf innerhalb der Klasse, da darf bei den Argumenten self nicht nochmal übergeben werden.

          Kommentar


            #6
            Falls das noch jemand nutzt:

            ich habe mal die Möglichkeit eingebaut, Items so zu konfigurieren, dass bei Item-Änderung eine Prowl-Nachricht gesendet wird.

            Die Texte für Ereignis (event) und Beschreibung (description) können im Item vorgegeben werden und ersetzen den Teilstring 'VAR' durch den aktuellen Item-Wert.

            Außerdem ist es möglich, für einzelne Werte spezielle Texte zu senden (z.B. bei bool-Items für true/false unterschiedliche Texte).

            Wenn man das kombiniert, kann man auch einstellen, dass nur für einen bestimmten Wert etwas gesendet wird, und ansonsten gar nicht.

            Die Dokumentation in der user_doc.rst sollte aktuell und - hoffentlich - verständlich sein

            Kommentar


              #7
              Zitat von Morg Beitrag anzeigen
              Oh, jetzt sehe ich das. Ich glaube, da ist ein Fehler im Plugin. Ich poste mal einen Fix auf github.
              Ist das jetzt im master oder dev?

              Grüße und Danke fürs umsetzen!

              Kommentar


                #8
                Das ist erstmal im dev Master ist ja gerade erst neu.

                Kannst du bei Bedarf aber kopieren - nimm den Ordner plugins/prowl aus dem develop-Zweig und kopiere ihn als plugins/priv_prowl in deine shng-Installation.
                Zuletzt geändert von Morg; 19.01.2021, 19:01.

                Kommentar


                  #9
                  Der Fix ist erstmal im develop. Für den master werden keine PR angenommen. Veränderungen am master gibt es nur mit Releases. Da wirst Du das also erst mit dem kommenden Bugfix Release sehen.
                  Viele Grüße
                  Martin

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

                  Kommentar

                  Lädt...
                  X