Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonos Anbindung

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

    Habe es gerade getestet: funktioniert perfekt!

    Vielen Dank für die schnelle Unterstützung!!!

    Kommentar


      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!

      Kommentar


        Welches Loglevel hast du denn bei Dir für das Sonos Plugin eingestellt?

        Kommentar


          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...

          Kommentar


            In der Tat gab es hier noch einige Reste von Debug Logs. Habe ich entfernt und ins Develop geschoben. Plugin Version hat sich nicht geändert. VG
            Zuletzt geändert von aschwith; 27.05.2024, 20:56.

            Kommentar


              Habe es gerade getestet - perfekt!
              Vielen Dank! Das Plugin ist wirklich genial!!!!

              Kommentar


                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​
                Ist das bei Euch auch der Fall?
                Besten Dank

                Kommentar


                  Hallo Sisamiwe,
                  ich nutzte das Sonos Struct nicht und auch kein Item mit Attribut volume_dpt3. Mir sagt der Fehler spontan nichts.
                  VG

                  Kommentar


                    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
                    Die item.conf sieht zur Laufzeit so aus:
                    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}
                    Die item.conf bildet auch die Grundlage für die Anzeige der Item-Informationen im Admin-Interface. Das Admin-Interface kann keine Informationen von Type Item darstellen.

                    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

                    Kommentar


                      Sisamiwe Informationen (Details) zu Items können nur im Item Tree angezeigt werden, oder was meinst Du?
                      Viele Grüße
                      Martin

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

                      Kommentar


                        Zitat von Msinn Beitrag anzeigen
                        oder was meinst Du?
                        Ich meine im AdminIF die rechte Seite des Item-Trees, in der die Details zu dem jeweilig markierten Item angezeigt werden:

                        image.png​Meine 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.

                        Kommentar


                          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.
                          Viele Grüße
                          Martin

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

                          Kommentar


                            Zitat von Msinn Beitrag 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.
                            Das Sonos Plugin ist aktuell so aufgebaut, dass bei Aufruf der Methode "parse_item" die jeweilge item.conf um Einträge ergänzt wird und u.a. um ein "Parent Item". Der Eintrag in die item.conf erfolgt als Type Item. Damit scheint es Probleme zu geben, das Item wird nicht vollständig initialisiert; Fehlermeldung im Log gibt es keine, und im Admin-IF kann das Item nicht mit seinen Details dargestellt werden.

                            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]}
                            Einträge vom Type Item gibt?

                            Kommentar


                              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.
                              Viele Grüße
                              Martin

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

                              Kommentar


                                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.

                                Kommentar

                                Lädt...
                                X