Ankündigung

Einklappen
Keine Ankündigung bisher.

Plugin Denon ohne Telnet Interface / mit UPNP Support

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

    Plugin Denon ohne Telnet Interface / mit UPNP Support

    Hallo,

    ich bin beim nächsten Plugin angekommen. Es ist der Versuch meinen Denon Receiver (X3000) zu steuern und zwar ohne die Nutzung des störungsanfälligen Telnet Interfaces. Serge (Foxi352) hat ja bereits eine ersten Schritt dafür unternommen. Das war dann auch mein Startpunkt. Das Plugin selbst ist aber komplett neu entstanden. es besteht noch aus 2 Teilen (Plugin) und die Erweiterung für UPNP. Bei dem UPNP Teil: es gibt keine Service Discovery. Die werde ich wahrscheinlich auch nicht bauen. Ich gehe davon aus, dass man die URI für den Denon kennt und konfiguriert. Bei mir klappt es mit der einfach Lösung, mal schauen.....

    Anbei der Link auf die v0.1 auf https://github.com/mworion/denon.git.

    Was geht:
    - 2 Zonen mit Power / Mute / Volume / Now Playing / SurroundMode / Input Select
    - Status Meldungen (noch wenige)
    - Wrapper für das Telnetinterface. Fast alle Kommandos inkl. Parameter können in den items definiert und genutzt werden.
    - erster Schritt mit UPNP: man kann dem Denon eine Audio URI senden, die er dann automatisch abspielt (Beispiel : http://streams.br.de/bayern3_2.m3u)

    Ich habe allerdings nur die Testmöglichkeit auf dem Denon X3000, wie es bei anderen aussieht ??? Ich gehe davon aus, dass andere Receive evt. leicht geänderte XML Queries liefern, vor allem bei der Abfrage ! Bitte auch in die Readme schauen.

    Vielen Dank an Serge (Foxi352) für den Austausch und viel Spaß beim ausprobieren. Es ist alles Beta und auf eigenes Risiko.

    Michel

    PS. Ich habe noch einen Block für die Integration in die smartVisu im Git
    Angehängte Dateien

    #2
    Hi Michel,

    Danke für die Umsetzung, läuft bei mir bisher mit einem Marantz NR1603, nachdem ich nach einer Fehlermeldung beim Host-Header jetzt die Portnummer von INT in STR konvertiere.

    Zone 2 werde ich die nächsten Tage mal testen.

    Zitat von Orion Beitrag anzeigen
    Hallo,

    ich bin beim nächsten Plugin angekommen. Es ist der Versuch meinen Denon Receiver (X3000) zu steuern und zwar ohne die Nutzung des störungsanfälligen Telnet Interfaces. Serge (Foxi352) hat ja bereits eine ersten Schritt dafür unternommen. Das war dann auch mein Startpunkt. Das Plugin selbst ist aber komplett neu entstanden. es besteht noch aus 2 Teilen (Plugin) und die Erweiterung für UPNP. Bei dem UPNP Teil: es gibt keine Service Discovery. Die werde ich wahrscheinlich auch nicht bauen. Ich gehe davon aus, dass man die URI für den Denon kennt und konfiguriert. Bei mir klappt es mit der einfach Lösung, mal schauen.....

    Anbei der Link auf die v0.1 auf https://github.com/mworion/denon.git.

    Was geht:
    - 2 Zonen mit Power / Mute / Volume / Now Playing / SurroundMode / Input Select
    - Status Meldungen (noch wenige)
    - Wrapper für das Telnetinterface. Fast alle Kommandos inkl. Parameter können in den items definiert und genutzt werden.
    - erster Schritt mit UPNP: man kann dem Denon eine Audio URI senden, die er dann automatisch abspielt (Beispiel : http://streams.br.de/bayern3_2.m3u)

    Ich habe allerdings nur die Testmöglichkeit auf dem Denon X3000, wie es bei anderen aussieht ??? Ich gehe davon aus, dass andere Receive evt. leicht geänderte XML Queries liefern, vor allem bei der Abfrage ! Bitte auch in die Readme schauen.

    Vielen Dank an Serge (Foxi352) für den Austausch und viel Spaß beim ausprobieren. Es ist alles Beta und auf eigenes Risiko.

    Michel

    PS. Ich habe noch einen Block für die Integration in die smartVisu im Git
    Greetings, Torsten

    Kommentar


      #3
      Hallo Thorsten,

      vielen Dank fürs Testen. Bitte am besten mit dem Log dazu, da brauche ich dann weniger zu suchen. Im Moment ist sowieso viel Veränderung im Code angesagt, da brauche ich die Referenz (ich kann mir nicht alles im Kopf merken) :-)

      Michel

      Kommentar


        #4
        Hallo,

        die Version 0.2 ist draussen.
        changelog:
        - refactoring: include upnp.py inside plugin
        - error fixes
        - replace xml library with element tree
        - adding some status / device messages
        - adding errorstatus item for monitoring connections

        Viel Spass beim Testen !

        Michel

        Kommentar


          #5
          Hallo,

          Läuft bei mirmit einem Denon 3312.
          Grundfunktionen,wie Lautstärke, power und mute gehen perfekt.
          Den Rest werde ich bei Gelegenheit mal testen.

          Einzig, wenn der AVR komplett aus, also stromlos und über Netzwerk nich erreichbar ist, passiert folgendes:

          2015-01-31 07:55:09,781 DEBUG Scheduler denon-status-update next time: 2015-01-31 07:55:12+01:00 -- scheduler.py:_next_time:289

          2015-01-31 07:55:12,813 ERROR Scheduler Needing more worker threads than the specified maximum of 20! -- scheduler.py:run:104

          2015-01-31 07:55:12,829 INFO Scheduler Threads: Main: 1, Scheduler: 1, denon-status-update: 323 -- scheduler.py:run:108

          2015-01-31 07:55:12,835 INFO Scheduler Adding worker thread. Total: 324 -- scheduler.py:_add_worker:301

          2015-01-31 07:55:12,850 INFO Scheduler Threads: Main: 1, Thread-324: 1, Scheduler: 1, denon-status-update: 323 -- scheduler.py:_add_worker:305

          Irgendwie geht dann gar nichts mehr.
          Ist der AVR über Netzwerk erreichbar, passiert das nicht.


          Hat evtl. Jemand eine Idee, wie man das beheben kann.

          Bin für jede Hilfe dankbar.

          Gruß

          Axl

          Kommentar


            #6
            Hallo Axel,

            werde ich versuchen mal nachzustellen.

            Michel

            Kommentar


              #7
              Hallo,

              Axl, Dein Thema soweit verstanden und behoben. Wenn Du kannst bitte mal nachvollziehen, ob es noch passieren kann.

              Gelöst in v0.3

              # v 0.3
              # changelog:
              # - exception handling for text in now playing
              # - change scheduler for polling data
              # - adding timeout for connection handling
              # - adding lower value for update cycles

              Grüße

              Michel

              Kommentar


                #8
                Hi Michel,

                vorab mal mein dickes Lob und Dank für die schnelle Reaktion.
                ...denke mal es muss mit dem scheduler zu haben. (meine waage laienhafte Vermutung)

                So, habe es mal kurz angetestet und es sieht ganz ok aus, aber genaueres kann ich erst morgen sagen.
                Scheduler bringt momentan keine Logger.info...
                Ich behalte das im Auge und gebe kurz Rückinfo.

                ...nochmals Danke für das Plugin

                Gruss

                Axl

                kleiner Nachtrag, beim Schalten über das Smarthome item, kommt folgende Debugmeldung:

                2015-01-31 15:24:54,370 ERROR Main Item denon.main.power: problem running <bound method Denon.update_send_item of <plugins.denon.Denon object at 0xd0cc90>>: timed out -- item.py:__update:371
                Traceback (most recent call last):
                File "/usr/smarthome/lib/item.py", line 369, in __update
                method(self, caller, source, dest)
                File "/usr/smarthome/plugins/denon/__init__.py", line 198, in update_send_item
                self._request(self._denonIp, self._denonPort, 'GET', '/goform/formiPhoneAppPower.xml?' + zone + '+PowerON')
                File "/usr/smarthome/plugins/denon/__init__.py", line 242, in _request
                responseRaw = connection.getresponse()
                File "/usr/lib/python3.2/http/client.py", line 1052, in getresponse
                response.begin()
                File "/usr/lib/python3.2/http/client.py", line 346, in begin
                version, status, reason = self._read_status()
                File "/usr/lib/python3.2/http/client.py", line 308, in _read_status
                line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
                File "/usr/lib/python3.2/socket.py", line 287, in readinto
                return self._sock.recv_into(b)
                socket.timeout: timed out

                Kommentar


                  #9
                  Hallo Axl,

                  ja, war der Scheduler und wie ich damit gearbeitet hatte (siehe Thread schedule_add()).

                  Wegen Deinem Fehler: wenn viel los ist, reicht der timeout nicht, ich habe ihn etwas hochgesetzt.

                  -> jetzt v0.31 verwenden !

                  Grüße

                  Michel

                  Kommentar


                    #10
                    V0.4 mit Performance und Stabilitätsmaßnahmen

                    Hallo,

                    der Denon ist echt knifflig. Ich versuche gerade alle Fehler, die vor allem unter Last von dort kommen abzufangen und die Performance zu verbessern. Die aktuelle Version 0.4 hat da ein ganzes Paket drinnen.

                    # v 0.4
                    # changelog:
                    # - exception handling for text in now playing
                    # - performance optimization, move to lite version of status
                    # - performance optimization: only configured zones will be processed
                    # - exception handling for receiver faults under heavy load

                    Viel Spaß beim Testen und ausprobieren !

                    Michel

                    Kommentar


                      #11
                      Hallo Michel,

                      ich werde es mal testen, kann Dir aber erst nächste Woche Rückmeldung geben.
                      Aber schonmal dickes Lob und Danke für die Zeit und Mühe.

                      Gruß

                      Axl

                      Kommentar


                        #12
                        Hallo Michel,

                        ich teste gerade das Plugin an einem X1000.

                        An/Aus/laut/leise/uri funktionieren. Bei der Quellenwahl scheitere ich gerade. Das Plugin liest die Quelle sauber ein und so habe ich einen Button erstellt der eine Quelle setzen soll. In der Visu funktioniert es aber der Receiver reagiert nicht. Leider bin ich durch das Plugin nicht durchgestiegen. Der Sourround-Mode wird auch nicht angezeigt - hast Du die url für die Abfrage parat damit man das evtl. anpassen kann?

                        Weiter ist mir aufgefallen dass es einen Haufen Error im Log gibt wenn der Receiver nicht erreichbar ist. Lässt sich da was machen?

                        Grüße
                        Umgezogen? Ja! ... Fertig? Nein!
                        Baustelle 2.0 !

                        Kommentar


                          #13
                          Hallo JuMi2006,

                          Du kannst Die Themen mal unter
                          Code:
                          http://blue-pc.net/2013/12/28/denon-av-reciever-ueber-http-steuern/
                          nachsehen und ausprobieren, was davon bei Dir geht.


                          Wegen den Log Meldungen, die werden im nächste Release zugunsten des konfigurierbaren Errorstatus entfallen. Surround Mode ist dort auch gefixt.

                          Grüße Michel

                          Kommentar


                            #14
                            Hallo,

                            aktuelle Version v0.5 im Github

                            changelog:
                            - Bugfixes
                            - Surround Mode geht (wieder)
                            - Error Logs reduziert
                            - Vorbereitung UPNP ssdp (Pfade für UPNP Interface sollte künftig automatisch erkannt werden)
                            - refactoring.

                            Viel Spaß beim Ausprobieren und Testen.

                            Michel

                            Kommentar


                              #15
                              Super, einige Sachen mehr die funktionieren. Weiter so .
                              Umgezogen? Ja! ... Fertig? Nein!
                              Baustelle 2.0 !

                              Kommentar

                              Lädt...
                              X