Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
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.
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.
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.
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.
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
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
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:
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...
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 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'
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).
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar