-
Notifications
You must be signed in to change notification settings - Fork 103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sonos Plugin: improve dpt3 handling, make plugin restartable #975
base: develop
Are you sure you want to change the base?
Conversation
sisamiwe
commented
Nov 24, 2024
- bump to 1.8.9
- improve _handle_dpt3
- make plugin restartable
- bump to 1.8.9 - improve _handle_dpt3
- make plugin restartable
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Eine Kleinigkeit ist mir aufgefallen (in update_item), ansonsten sieht das soweit gut aus. Testen kann ich es mangels Hardware nicht.
Die Implementierung ist aktuell nicht abwärtskompatibel. D.h. ohne das definierte pause_item Attribut startet das Plugin nicht mehr. |
Hab jetzt mal versucht, das Plugin "stumpf", also ohne jegliche Konfiguration zu starten - es startet ("run method called") und startet die discovery, die natürlich erfolglos bleibt. Ich sehe auch im Code keine strukturellen Probleme "gegen" das Pause-Item. Hast du das mit dem aktuellen develop-Core probiert? Es braucht die letzten Änderungen im smartplugin von vor 4-5 Monaten. Es sollte die min_shngversion angepasst werden... (1.5.1) |
sonos/plugin.yaml
Outdated
@@ -12,11 +12,11 @@ plugin: | |||
documentation: https://github.com/smarthomeNG/plugins/blob/master/sonos/README.md | |||
support: https://knx-user-forum.de/forum/supportforen/smarthome-py/25151-sonos-anbindung | |||
|
|||
version: 1.8.8 # Plugin version | |||
version: 1.8.9 # Plugin version | |||
sh_minversion: '1.5.1' # minimum shNG version to use this plugin |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hier mindestens 1.10.0 angeben :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ich habe nun 1.10.3 eingetragen
local_webservice_path = self.get_parameter_value("local_webservice_path") | ||
local_webservice_path_snippet = self.get_parameter_value("local_webservice_path_snippet") | ||
webservice_ip = self.get_parameter_value("webservice_ip") | ||
webservice_port = self.get_parameter_value("webservice_port") | ||
speaker_ips = self.get_parameter_value("speaker_ips") | ||
self._pause_item_path = self.get_parameter_value('pause_item') | ||
except KeyError as e: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ist keine deiner Änderungen, aber wenn die Parameter in plugin.yaml definiert sind, sind sie immer vorhanden, wenn sie required oder defaults vorgegeben sind.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so ist die aktuelle Definition:
pause_item:
type: str
default: ''
description:
de: 'Item, um die Ausführung des Plugins zu steuern'
en: 'item for controlling plugin execution'
Somit muss das Plugin auch laufen, wenn der parameter nicht gesetzt ist.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Morg42
Schau mal in Zeile 3059. Ich glaube da liegt der Fehler.
Es muss dort sicher heißen:
if self._pause_item_path:
oder man muss in der init noch den self._pause_item = None
setzen.
Nach der Methode init wird doch parse_item abgearbeitet. Nur wenn self._pause_item_path gesetzt ist, wir auch self._pause_item gesetzt, wenn nicht gibt es diese Variable nicht. Somit kann die auch bei, ausführen von run nicht gefunden werden und das plugin hängt, oder?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nee. Die Variable gibt es schon, die kommt direkt aus dem SmartPlugin.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Und zu "muss auch laufen" - die Korrekturen in SmartPlugin sind erst im 1.10er branch vorhanden, mit 1.9.x gibt es Fehler.
- make plugin restartable
- make plugin restartable