aschwith
Hallo,
ich habe das Item Handling im Plugin auf die Methoden des smartplugin umgestellt und einen PR erstellt.
Gerne testen und ins develop mergen.
Danke.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Sonos Anbindung
Einklappen
X
-
Wie ich oben schrieb, sollten Plugins nicht mit item.conf rumspielen. Zu dem was da alles passieren und schiefgehen kann, wenn man in undokumentierte Strukturen des Core rein grätscht, möchte ich mich nicht weiter auslassen.
Es gab bereits bevor ich mich mit der Entwicklung des Cores von SmartHomeNG beschäftigte Ansätze das item.conf dict abzulösen (was sinnvoll ist und auch bei mir im Backlog steht).
Bis SmartHomeNG v1.2 wurde item.conf in Plugins LESEND genutzt, um die Attribute des Plugins zu bestimmen. Darüber hinaus ist die Nutzung von item.conf dem Core vorbehalten. Seit SmartHomeNG v1.3 gibt es Methoden um die Informationen aus Plugins heraus abzufragen im Item Objekt. Plugins sollten KEINESFALLS eigene Informationen dort ablegen.
Einen Kommentar schreiben:
-
Zitat von Msinn Beitrag anzeigenDie von Die angezeigte Meldung kommt normalerweise, wenn Du im Tree ein Item wählst und die Initialisierung von SmartHomeNG noch nicht abgeschlossen ist.
Meine Frage war, ob es Probleme gibt, wenn in der item.conf
Code:{'sonos_attrib': 'vol_dpt3', 'sonos_dpt3_step': 2, 'sonos_dpt3_time': 1,[MARKIEREN] 'volume_parent': Item: sonos.badonos.volume, 'helper': Item: sonos.badonos.volume.volume_dpt3.helper[/MARKIEREN]}
Einen Kommentar schreiben:
-
Auch wenn in der item.conf nachträglich Einträge geändert werden (was mann nicht tun sollte),sollten die Details das anzeigen.
Die von Die angezeigte Meldung kommt normalerweise, wenn Du im Tree ein Item wählst und die Initialisierung von SmartHomeNG noch nicht abgeschlossen ist.
Den Type eines Items darfst Du NICHT verändern und schon GAR NICHT Types verwenden, die SmartHome NG nicht kennt (die in der Doku nicht beschrieben sind)Zuletzt geändert von Msinn; 10.11.2024, 17:48.
Einen Kommentar schreiben:
-
Zitat von Msinn Beitrag anzeigenoder was meinst Du?
image.pngMeine Vermutung ist, da in der item.conf Einträge (durch das Plugin nachträglich zugefügt) den Type Item haben und das AdminIF dies nicht "kann", die ItemInformationen rechts leer bleiben und eine Exception geworfen wird.
Einen Kommentar schreiben:
-
Hallo,
ich habe die Ursache gefunden.
Das Attribute 'sonos_attrib') == 'vol_dpt3' ermöglicht das EInstellen der Lautstärke am Sonos mittels relativem Dimmen aus KNX. Das mit das funktioniert, müssen 2 weitere Items, nämlich das eigentlichen Lautstärke-Item und ein weiteres Hilfsitem vorhanden sein.
Werden die Items im Plugin geparsed, wird geprüft, dass diese beiden Items vorhanden sind und -und das führt zum Problem im Admin-Interface- als Type Item in der item.conf ergänzt..
Code-Auszug aus dem Plugin:
Code:# check, if a volume parent item exists parent_item = item.return_parent() if parent_item is not None: if self.has_iattr(parent_item.conf, 'sonos_recv'): if self.get_iattr_value(parent_item.conf, 'sonos_recv').lower() != 'volume': self.logger.warning("volume_dpt3 item has no volume parent item. Ignoring!") else: self.logger.warning("volume_dpt3 item has no volume parent item. Ignoring!") return item.conf['sonos_volume_parent'] = parent_item
Code:{'sonos_attrib': 'vol_dpt3', 'sonos_dpt3_step': 2, 'sonos_dpt3_time': 1, 'volume_parent': Item: sonos.badonos.volume, 'helper': Item: sonos.badonos.volume.volume_dpt3.helper}
Msinn
Ist meine Annahme, dass das Admin-Interface keine Informationen vom Type Item darstellen kann, richtig?
aschwith
Man könnte zur Speicherung von Information zu Items im Plugin auch die aktuellen Methoden aus der Klasse SmartPlugin nutzen und das Plugin entsprechend umstellen.
Was meint ihr?
Beste Grüße
Michael
Einen Kommentar schreiben:
-
aschwith
Hallo,
ich möchte über die SONOS Integration von shNG die Lautstärke via KNX steuern. Ich bin auch der aktuellen develop für smarthomeNG und Plugins
Dazu gibt es das sonos_attrib: vol_dpt3.
Code:volume_dpt3: type: foo sonos_attrib: vol_dpt3 sonos_dpt3_step: 2 sonos_dpt3_time: 1 knx_dpt: 3 knx_listen: 30/2/8 helper: sonos_attrib: dpt3_helper type: num sonos_send: volume
Bei der Nutzung der mitgelieferten structs, tritt das Problem auf, dass das Item "volume_dpt3" im Backend nicht angezeigt wird
Es wird eine Warning ausgegeben:
Code:2024-11-05 10:35:36 ERROR cherrypy.error.136151886323456 [05/Nov/2024:10:35:36] HTTP Traceback (most recent call last): File "/usr/local/smarthome/venvs/py_shng/lib/python3.10/site-packages/cherrypy/_cprequest.py", line 659, in respond self._do_respond(path_info) File "/usr/local/smarthome/venvs/py_shng/lib/python3.10/site-packages/cherrypy/_cprequest.py", line 718, in _do_respond response.body = self.handler() File "/usr/local/smarthome/venvs/py_shng/lib/python3.10/site-packages/cherrypy/lib/encoding.py", line 223, in __call__ self.body = self.oldhandler(*args, **kwargs) File "/usr/local/smarthome/venvs/py_shng/lib/python3.10/site-packages/cherrypy/_cpdispatch.py", line 54, in __call__ return self.callable(*self.args, **self.kwargs) File "/usr/local/smarthome/modules/admin/itemdata.py", line 320, in item_detail_json_html return json.dumps(item_data) File "/usr/local/lib/python3.10/json/__init__.py", line 231, in dumps return _default_encoder.encode(obj) File "/usr/local/lib/python3.10/json/encoder.py", line 199, in encode chunks = self.iterencode(o, _one_shot=True) File "/usr/local/lib/python3.10/json/encoder.py", line 257, in iterencode return _iterencode(o, 0) File "/usr/local/lib/python3.10/json/encoder.py", line 179, in default raise TypeError(f'Object of type {o.__class__.__name__} ' TypeError: Object of type Item is not JSON serializable
Besten Dank
Einen Kommentar schreiben:
-
Habe es gerade getestet - perfekt!
Vielen Dank! Das Plugin ist wirklich genial!!!!
Einen Kommentar schreiben:
-
Habe das Notice-Level... Es geht um warnings im Zusammenhang mit tts mit dem Titel 'DEBUG loop 2'. Glaube aber mittlerweile, dass ich da noch einen Bug in meiner Konfiguration habe...
Einen Kommentar schreiben:
-
Welches Loglevel hast du denn bei Dir für das Sonos Plugin eingestellt?
Einen Kommentar schreiben:
-
Noch eine Kleinigkeit: Lässt sich das DEBUG-Level reduzieren? Im Log stehen sämtliche DEBUG-Meldungen...
Sorry, kenne mich mit der dev-Version nicht wirklich gut aus...
Vielen Dank!
Einen Kommentar schreiben:
-
Habe es gerade getestet: funktioniert perfekt!
Vielen Dank für die schnelle Unterstützung!!!
- Likes 1
Einen Kommentar schreiben:
Einen Kommentar schreiben: