Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Neues Plugin: Logitech Squeezebox - Anregungen?

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

    Zitat von Onkelandy Beitrag anzeigen
    Nicht integrierte Player ignorieren geht nicht so wirklich, da der Server ja trotzdem die Infos dazu versendet, diese also im Plugin ankommen. Wenn du sie nicht im Log haben willst, musst du Filter nutzen -> siehe Doku.
    Ich habe das neue sdp_plugin jetzt erst mal deaktiviert, nachdem ich wirklich Megabytes von Log-Dateien an einem Tag hatte. Wenn man Squeezebox allumfänglich umsetzt, hat man immer wieder (dynnamische) Player die dazu kommen oder verschwinden und selbst wenn es nur die Windows-PC ist, wo SqueezeLite-X läuft. Nur die festen Player will ich einbinden.

    Ich fände es sinnvoller, wenn man die Infos einfach auf ein anderes Levels setzt oder ganz weg lässt. Man braucht ja nicht den gesamten Netzwerktraffic auszuwerden, wenn die Plyer in SmartHomeNG gar nicht registriert sind.

    Kommentar


      Ich hab bei mir auch "dynamische" Player integriert und eigentlich keine Probleme. Hast du das Loglevel auf INFO? Mach doch bitte mal ein gist mit dem Log.

      Kommentar


        Ich habe zwar keine Ahnung, was dynamische Player sind, und außer einem testweisen SqueezeLite, der nur so la la funktioniert hat, kann ich das hier auch nicht testen, aber...

        Code:
        2022-09-29 22:31:02 WARNING plugins.sdp_squeezebox Command player.control.volume yielded value 53, not assigned to any item, discarding data
        2022-09-29 22:31:02 WARNING plugins.sdp_squeezebox Command player.control.volume yielded value 53, not assigned to any item, discarding data
        2022-09-29 22:34:10 WARNING plugins.sdp_squeezebox Command player.info.connected yielded value False, not assigned to any item, discarding data
        2022-09-29 22:39:09 WARNING plugins.sdp_squeezebox Command player.control.set_alarm yielded value _cmd, not assigned to any item, discarding data​
        Diese Meldungen weisen darauf hin, dass auf die genannten Commands eine Antwort kommt - er kann die Antwort aber nicht verwerten, weil es kein Item gibt (zugewiesen ist), in das er den Wert schreiben kann. Entweder ist die commands.py nicht sauber (vollständig) gestrickt, oder die Item-Definitionen / Structs sind nicht vollständig, weil für das jeweilige Command kein Item gesetzt ist.

        Ziel (und Begründung) der Meldung ist, dass das meistens ein Resultat von Fehlkonfiguration (meistens command.py) ist, und die sollte er nicht einfach verschlucken.

        Kommentar


          Zitat von Onkelandy Beitrag anzeigen
          Hast du das Loglevel auf INFO
          Log-Level ist auf WARNING bei allen undefinierten Plugins.

          Zitat von Morg Beitrag anzeigen
          Ich habe zwar keine Ahnung, was dynamische Player sind
          Ich meine damit Player, die nicht immer an sind, beispielsweise SqueezeLite-X in Windows, Spotify Connect usw.

          Zitat von Morg Beitrag anzeigen
          oder die Item-Definitionen / Structs sind nicht vollständig, weil für das jeweilige Command kein Item gesetzt ist.
          Das ist auch der Fall. Für bestimmte "Player" brauche ich keine Items und wenn die nicht gesetzt sind, brauchen die ja auch nicht asugewertet werden. Es macht aus meiner Sicht keinen Sinn Daten für Player in Items zu schreiben, die ich mit Items nicht ansprechen werde. Deshalb einfach unnütze Player-Daten verwerfen.

          Kommentar


            Zitat von Cannon Beitrag anzeigen
            Das ist auch der Fall. Für bestimmte "Player" brauche ich keine Items und wenn die nicht gesetzt sind, brauchen die ja auch nicht asugewertet werden. Es macht aus meiner Sicht keinen Sinn Daten für Player in Items zu schreiben, die ich mit Items nicht ansprechen werde. Deshalb einfach unnütze Player-Daten verwerfen.
            Das mag bei dir so der Fall sein, ist aber in Gesamtschau sicher eher die Ausnahme. Und wenn es nicht die Ausnahme sein soll, dann ist aus meiner Sicht "Warning" schon die richtige Stufe, um darauf hinzuweisen, dass hier Daten vom "Gerät" kommen, die einfach so verworfen werden.

            Achso, bitte dabei nicht vergessen, dass das alles in der smartdeviceplugin-Klasse passiert, nicht im sdp-squeezebox-Plugin. Das könnte (!) man ggf. konfigurierbar machen, aber nicht trivial abschalten.

            Wenn du die Items anlegst, ist die Warnung weg, und sonst hat das keine messbaren Konsequenzen

            Kommentar


              Zitat von Morg Beitrag anzeigen


              Wenn du die Items anlegst, ist die Warnung weg, und sonst hat das keine messbaren Konsequenzen
              Würde ich auch so empfehlen. Alternativ wie erwähnt mit Logfiltern arbeiten, das sollte doch auch klappen. Wäre schon gut, wenn das Plugin nicht nur von mir getestet wird

              Kommentar


                Zitat von Onkelandy Beitrag anzeigen
                Alternativ wie erwähnt mit Logfiltern arbeiten, das sollte doch auch klappen.
                Da smitd en Loggern klappt irgendwie nicht. Ich habe dazu auch schon einen separaten Thread ins Forum gestellt. Gefiltert wird irgendwie nichts.

                Kommentar


                  Ich habe jetzt mal alles installiert und die ganzen Fehler analysiert. Bei mir funktioniert das sdp-Plugin nicht so richtig. Folgendes Problem:

                  Entweder läuft das sdp-Plugin und sämtliche WebIF machen Probleme oder Plugins laufen nicht so recht oder umgekehrt. Das Problem scheint an der Datei model/smartplugin.py zu liegen. Diese ist in eurem Paket viel größer, verursacht aber Probleme. Möglicherweise habe ich auch die falschen Dateien kopiert:

                  installiert habe ich in:

                  lib\model:
                  - Ordner + Unterordner sdp
                  - smartdeviceplugin.py
                  - smartplugin.py -> siehe oben

                  plugins:
                  - Ordner + Unterordner sdp_squeezebox

                  Kommentar


                    Spezifiziere gerne "macht Probleme" und "laufen nicht recht".. Das smartplugin hat nur bedingt was mit smartdeviceplugin zu tun bzw. eigtl. nichts.

                    Bei mir gabs jetzt einen ziemlichen Lag im Admininterface generell... aber jetzt klappt wieder alles. Keine Ahnung, ob es solche Aussetzer davor auch mal gab oder nicht...

                    Die Dateien sind korrekt.

                    Kommentar


                      Das steht im Log, wenn ich das plugin sdp_squeezebox aktiviere:

                      Code:
                      2023-01-14  16:30:34 ERROR    lib.item.item       Item Zentral.squeezebox.rescan.start: problem creating: 'sdp_squeezebox' object has no attribute 'add_item'
                      > Traceback (most recent call last):
                      >   File "/usr/local/smarthome/lib/item/item.py", line 356, in __init__
                      >     child = Item(smarthome, self, child_path, value)
                      >   File "/usr/local/smarthome/lib/item/item.py", line 433, in __init__
                      >     update = plugin.parse_item(self)
                      >   File "/usr/local/smarthome/lib/model/smartdeviceplugin.py", line 408, in parse_item
                      >     self.add_item(item, device_command=command)
                      > AttributeError: 'sdp_squeezebox' object has no attribute 'add_item'
                      ​
                      Zuletzt geändert von Cannon; 15.01.2023, 23:05.

                      Kommentar


                        Kürze das Log bitte auf einen einzigen Eintrag. Ist ja immer das Gleiche..?!

                        Kommentar


                          Das sieht aus, als hättest du eine falsche Version der lib/model/smartplugin.py installiert. In der "neuen" Version (develop, oder in meinem Repo) hat diese eine Methode "add_item()".

                          Kommentar


                            Zitat von Morg Beitrag anzeigen
                            Das sieht aus, als hättest du eine falsche Version der lib/model/smartplugin.py installiert. In der "neuen" Version (develop, oder in meinem Repo) hat diese eine Methode "add_item()".
                            Das schrieb ich ja bereits oben. Behalte ich das smartplugin.py aus dem master von SmarteHomeNG bei, gibt es den Fehler mit add_item(). Ersetze ich das aus dem Repo funkionieren einige Plugins nicht richtig und das WebIF lädt bei keinem und der Log zeigt Fehler:

                            Code:
                            023-01-13 18:58:46 ERROR cherrypy.error.1699111336 [13/Jan/2023:18:58:46] HTTP
                            > Traceback (most recent call last):
                            > File "/home/smarthome/.local/lib/python3.9/site-packages/cherrypy/_cprequest.py", line 638, in respond
                            > self._do_respond(path_info)
                            > File "/home/smarthome/.local/lib/python3.9/site-packages/cherrypy/_cprequest.py", line 697, in _do_respond
                            > response.body = self.handler()
                            > File "/home/smarthome/.local/lib/python3.9/site-packages/cherrypy/lib/encoding.py", line 223, in __call__
                            > self.body = self.oldhandler(*args, **kwargs)
                            > File "/home/smarthome/.local/lib/python3.9/site-packages/cherrypy/_cpdispatch.py", line 54, in __call__
                            > return self.callable(*self.args, **self.kwargs)
                            > File "/usr/local/smarthome/plugins/alexarc4shng/__init__.py", line 1403, in index
                            > return self.render_template('index.html',
                            > File "/usr/local/smarthome/plugins/alexarc4shng/__init__.py", line 1358, in render_template
                            > return tmpl.render(plugin_shortname=self.plugin.get_shortname(), plugin_version=self.plugin.get_version(),
                            > File "/home/smarthome/.local/lib/python3.9/site-packages/jinja2/environment.py", line 1301, in render
                            > self.environment.handle_exception()
                            > File "/home/smarthome/.local/lib/python3.9/site-packages/jinja2/environment.py", line 936, in handle_exception
                            > raise rewrite_traceback_stack(source=source)
                            > File "/usr/local/smarthome/plugins/alexarc4shng/webif/templates/index.html", line 24, in top-level template code
                            > {% set tab5title = 'Communication-Protocol' %}
                            > File "/usr/local/smarthome/modules/http/webif/gtemplates/base_plugin.html", line 249, in top-level template code
                            > {% if scroll_heading is not defined %}
                            > File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 1, in top-level template code
                            > {% block doc -%}
                            > File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 4, in block 'doc'
                            > {%- block html %}
                            > File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 87, in block 'html'
                            > {% block body -%}
                            > File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 90, in block 'body'
                            > {% block content -%}
                            > File "/usr/local/smarthome/modules/http/webif/gtemplates/base_plugin.html", line 105, in block 'content'
                            > <h5>{{ _('Plugin') }} : <span id="webif_plugin_name"><strong>{{ p.get_shortname() }}</strong></span> v<span id="webif_plugin_version">{{ p.get_version() }}</span></h5>
                            > File "/usr/local/smarthome/lib/model/smartplugin.py", line 1019, in translate
                            > return lib_translate(txt, vars, plugin_translations='plugin/'+self.plugin.get_shortname(), module_translations='module/http')
                            > TypeError: translate() got an unexpected keyword argument 'plugin_translations'
                            ​

                            Kommentar


                              Dann braucht es offenbar noch das neueste translationsfile vom 28.11. https://github.com/Morg42/smarthome/...translation.py

                              Kommentar


                                Kann es sein, dass du sdp auf shng/master benutzt? Das kann nicht funktionieren... in develop sind die Innereien von smartplugin.py verändert worden, und die Plugins müssen ggf. erst angepasst werden.

                                SDP ist ja noch nichtmal im develop (basiert aber darauf).

                                Kommentar

                                Lädt...
                                X