Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. [Aufruf] DENON & Marantz Adapter

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Aufruf] DENON & Marantz Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • foxriver76
      foxriver76 Developer last edited by

      @Mic:

      super, endlich ein Denon-Adapter 8-) Ich habe einen Denon AVR-X1200W und teste sehr gerne. Bislang steuere ich diesen über ein eigenes Script (mit einigen Anregungen von hier aus dem Forum), mit dem ich auch den Status auslese in Datenpunkten etc. `

      Da du ja bereits ein eigenes Skript nutzt, wäre es für mich interessant zu wissen, welche Funktionalitäten du über ioBroker (mit deinem Skript) bereits nutzt/gerne nutzen möchtest.

      Da es mir etwas schwer fällt abzuschätzen, in wie weit manche Funktionen Priorität haben. Ich selbst nutze mein AVR nur sehr oberflächlich würde ich sagen. 😛

      beste Grüße

      fox

      P.S.: falls dein Skript über den Port 23 mit deinem AVR kommuniziert, muss das Skript die Verbindung schließen, damit der Adapter eine aufbauen kann. (habe ich auch mal in der README vermerkt)

      1 Reply Last reply Reply Quote 0
      • Mic
        Mic Developer last edited by

        @foxriver76:

        Bitte das Leerzeichen nach der URL weg machen 😉 `
        Oh mein Gott, sorry, shame on me 🙂

        @foxriver76:

        Da du ja bereits ein eigenes Skript nutzt, wäre es für mich interessant zu wissen, welche Funktionalitäten du über ioBroker (mit deinem Skript) bereits nutzt/gerne nutzen möchtest.

        Da es mir etwas schwer fällt abzuschätzen, in wie weit manche Funktionen Priorität haben. Ich selbst nutze mein AVR nur sehr oberflächlich würde ich sagen. 😛 `

        Ich nutze auch nur ein paar Sachen: ein, aus, Kanalwechsel, dabei lauter/leiser: z.B. Kanal zum Fernsehen auf 50%, für Hintergrund-Musik 40%.

        Unten folgt eine Funktion, der ich den gewünschten Kanal und die Lautstärke übergebe. Sie schaltet den Denon dann auch an, falls dieser noch aus ist.

        Wie Du siehst, ist es ein ziemliches "Gebastle" mit Zeitverzögerung usw., aber es läuft.

        Ich werde mir morgen mal Deinen Adapter dann näher ansehen, danke auch für Deinen Hinweis wegen dem Port 23.

        /**
         * @desc Denon Receiver: Bestimmten Kanal setzen und die Lautstärke in %
         * @opt strTargetInputSel: z.B: "MPLAY" oder "TUNER"
         * @opt intVolumeLevelPercent - Lautstärke in %
        */ 
        function global_m_Denon_SetInput(strTargetInputSel, intTargetVolumeInPercent) { 
        
            // Update status first.
            global_m_Denon_UpdateStatus();
        
            // Then, check status 250ms later.
            // Führen wir 250ms später aus, einfach um sicherzustellen, dass der aktuelle Status in den Datenpunkten steht.
            setTimeout(function() {
                // Get Status
                var denonStatus = {
                    InpSel:     getState('javascript.0.me.denon-status.InputSelection').val,
                    isMute:     getState('javascript.0.me.denon-status.isMuteOn').val,
                    isPwrOn:    getState('javascript.0.me.denon-status.isPowerOn').val,
                    VolPerc:    getState('javascript.0.me.denon-status.VolumeLevel').val + 80
                };
        
                // Commands
                if(denonStatus.isPwrOn === true) {
                    // ==== Denon ist bereits an. ====
                    /* Falls die aktuelle Lautstärke leiser ist als die gewünschte, so wechseln wir erst den Kanal. Damit vermeiden wir, 
                       dass es kurzfristig lauter wird :-) */
                    if (denonStatus.VolPerc < intTargetVolumeInPercent) {
                        // Weg 1 - aktuelle Lautstärke ist leiser, also erst Kanal wechseln
                        if(strTargetInputSel !== denonStatus.InpSel) global_m_Denon_Command ('PutZone_InputFunction/' + strTargetInputSel, 0);
                        global_m_Denon_Volume (intTargetVolumeInPercent, 2000); // 2000 echt nötig, sonst schaltet er nicht
                    } else if (denonStatus.VolPerc > intTargetVolumeInPercent) {
                        // Weg 2 - aktuelle Lautstärke ist lauter, also erst leiser machen vor Kanalwechsel
                        global_m_Denon_Volume (intTargetVolumeInPercent, 0);
                        if(strTargetInputSel !== denonStatus.InpSel) global_m_Denon_Command ('PutZone_InputFunction/' + strTargetInputSel, 250);
                    } else {
                        // Weg 3 -  Lautstärke bleibt unverändert
                        if(strTargetInputSel !== denonStatus.InpSel) global_m_Denon_Command ('PutZone_InputFunction/' + strTargetInputSel, 0);
                    }
                } else {
                    // ==== Denon ist noch aus. Anderes Timing hier ;-) ====
                    global_m_Denon_Command ('PutZone_OnOff/ON', 0);
                    if(strTargetInputSel !== denonStatus.InpSel)            global_m_Denon_Command ('PutZone_InputFunction/' + strTargetInputSel, 1000);
                    if (denonStatus.VolPerc !== intTargetVolumeInPercent)   global_m_Denon_Volume (intTargetVolumeInPercent, 2000);
                }
        
            }, 250);
        
        }
        

        Hier nur zum Verständnis noch die anderen beiden Functions, die ich verwende:

        /**
         * @desc Denon Receiver: Kommando übergeben
         * @opt strCommand - Kommando, z.B. 'PutZone_OnOff/ON'
         * @opt intDelayInMilliseconds - Verzögerung in Millisekunden, falls gewünscht
        */ 
        function global_m_Denon_Command (strCommand, intDelayInMilliseconds) {
        
            var denon_url = getState('javascript.0.me.preset.denon_URL').val;
            setTimeout(function() {
                require("request")(denon_url + strCommand);
                g_myLog('Denon-Kommando: ' + strCommand);        
            }, intDelayInMilliseconds);
        
        }
        
        /**
         * @desc Denon Receiver: Lautstärke setzen in %. Wird dann automatisch umgewandelt.
         * @opt intVolumeLevelPercent - Lautstärke in %
         * @opt intDelayInMilliseconds - Verzögerung in Millisekunden, falls gewünscht
        */ 
        function global_m_Denon_Volume (intVolumeLevelPercent, intDelayInMilliseconds) {
        
             // Volume wird so berechnet: XX-80, d.h. eine Lautstärke von 45: 45-80=-35
            var intVolumeCalculated = (intVolumeLevelPercent - 80); 
        
            // Sicherheit: Lautstärke nicht über 60% (= -20)!
            if (intVolumeCalculated > -20) intVolumeCalculated = -20;
        
            // Set Volume finally:
            global_m_Denon_Command ("PutMasterVolumeSet/" + intVolumeCalculated, intDelayInMilliseconds);
        
            // Falls Receiver auf "Mute": würde man über Kommando "PutVolumeMute/off" aussschalten. Irrelevant, da sowohl bei Kanalwechsel als auch Lautstärkeänderung Mute abgeschalten wird.
        }
        
        1 Reply Last reply Reply Quote 0
        • D
          daniel_2k last edited by

          Hallo fox,

          sehr gut. Ich war ja kurz davor auch einen Denon-Adapter zu schreiben, nach dem es ja einen angefangenen Adapter gibt und ein ein ziemlich umfangreiches https://forum.iobroker.net/viewtopic.php?f=21&t=3032&start=40#p82336 .

          Ich habe den Adapter mal kurz angetestet. Bisher sieht es gut aus, aber ein ausführlichen Test werde ich die Tage noch machen.

          Was ich vermisse: Zonen-Steuerung. Zone 2 ein/aus (am Besten noch Lautstärke direkt setzen) wäre gut (nutze ich für Alexa-Steuerung, um im Esszimmer die Musik einzuschalten. Das Steuerungsprotokoll gibt ja alles her.

          Ich hab dazu auch schon mal ein Issue aufgemacht.

          Grüße

          Daniel

          1 Reply Last reply Reply Quote 0
          • foxriver76
            foxriver76 Developer last edited by

            Das setzen der Lautstärke für die MZ geht auch über den State (s. readme).

            Danke fürs erste Feedback. 🙂 Die Zonensteuerung neben der Main werde ich zeitnah implementieren.

            beste Grüße

            fox

            1 Reply Last reply Reply Quote 0
            • Mic
              Mic Developer last edited by

              So, ich hab den Adapter auch mal angetestet und er macht alles was er soll 🙂

              Weiß nicht, ob es hier noch Leute gibt, die über FM Radio hören, aber dann wäre wohl gut, wenn man da über einen State die voreingestellten Sender auswählen kann. (ich selbst brauch das aber nicht)

              1 Reply Last reply Reply Quote 0
              • M
                mctom last edited by

                Hi,

                danke das du hier einen Adapater baust.

                Leider schlägt die Installation bei mir fehl:

                $ ./iobroker url "https://github.com/foxriver76/ioBroker.denon/tarball/master " --debug
                install "https://github.com/foxriver76/ioBroker.denon/tarball/master
                npm install "https://github.com/foxriver76/ioBroker.denon/tarball/master --production --save --prefix "/opt/iobroker" (System call)
                /bin/sh: 1: 
                Syntax error: Unterminated quoted string
                
                ERROR: host.ioBrokerBETRIEB Cannot install "https://github.com/foxriver76/ioBroker.denon/tarball/master: 2
                ERROR: process exited with code 25
                

                Woran kann dies liegen ?

                Gruß

                Michael


                Okay mein Fehler habe den Beitrag oben übersehen. Wenn das Leerzeichen rauskommt klappt alles.

                1 Reply Last reply Reply Quote 0
                • foxriver76
                  foxriver76 Developer last edited by

                  Selbes Problem wie oben –> Bitte kein Leerzeichen nach der URL machen. Habe ich irgendwo einen blöden Link gepostet, wo ein Leerzeichen am Ende ist? Da es schon zum zweiten mal auftritt.

                  1 Reply Last reply Reply Quote 0
                  • apollon77
                    apollon77 last edited by

                    URL https://github.com/foxriver76/ioBroker.denon geht übrigens auch

                    1 Reply Last reply Reply Quote 0
                    • foxriver76
                      foxriver76 Developer last edited by

                      @daniel_2k:

                      Was ich vermisse: Zonen-Steuerung. Zone 2 ein/aus (am Besten noch Lautstärke direkt setzen) wäre gut (nutze ich für Alexa-Steuerung, um im Esszimmer die Musik einzuschalten. Das Steuerungsprotokoll gibt ja alles her.

                      Ich hab dazu auch schon mal ein Issue aufgemacht. `

                      Hi Daniel,

                      ich habe versucht die Zone2 zu integrieren (3. Zone ist derzeit nicht integriert, falls dein AVR diese unterstützt), wenn der Adapter Zwei-Zonen fähig ist, werden automatisch entsprechende States angelegt. Leider kann ich relativ wenig damit testen. Wäre super, wenn du die aktuelle Version ausprobieren könntest.

                      beste Grüße

                      fox

                      1 Reply Last reply Reply Quote 0
                      • D
                        daniel_2k last edited by

                        Hallo Fox,

                        habe die Zone 2 angetestet. Du hast es so gebaut, dass der Adapter erst einen Z2-Befehl empfangen muss und die States für ZONE2 dann erst erzeugt.

                        Ist im Prinzip OK für mich, hat zumindest prima funktioniert.

                        ZONE2-Power, Volume-Up/Down, Volume (Wert setzen), Input und Mute funktionieren prima (Werte setzen Status abfragen).

                        Quickselects nutze ich nicht bzw. wüsste ich auch nicht, dass die für die Zone 2 überhaupt funktionieren.

                        Eine Zone 3 hat mein AVR nicht.

                        Sonst prima, Danke!

                        Weitere Tests folgen in den nächsten Tagen.

                        Grüße

                        Daniel

                        1 Reply Last reply Reply Quote 0
                        • D
                          daniel_2k last edited by

                          Hallo Fox,

                          eine Sache ist mir grad aufgefallen:

                          bei zone2.powerState = false, kommt kein Acknowledge, d.H. es wird kein entsprechender Wert zurückgelesen.

                          M.E. liegt das daran, dass bei der Zone 2 die Status-Werte "Z2ON" und "Z2OFF" sind und nicht wie beim globalem Powerstate "PWON" und "PWSTANDBY".

                          Edit:

                          Hab grad gesehen, ist ja so drin mit Z2OFF bei handleResponse. Aber es will nicht, wenn ich über ioBroker den State auf false setze. Der Wert bleibt rot.

                          2323_z2pwr.png

                          Edit2:

                          sehr merkwürdig, manchmal geht es, manchmal nicht. Beim Ausschalten wird jedenfalls über Telnet immer "PWSTANDBY" und "Z2OFF" gesendet, sofern die Zone 2 alleine eingeschaltet war (Main-Zone off).

                          Ist Main-Zone und Zone 2 on, dann geht es ohne Probleme, da wird dann beim ausschalten von Zone 2 natürlich auch nur Z2OFF gesendet.

                          Hier mal ein Auszug aus meinem Telnet mitschnitt (das sind nur die gelesenen Werte, gesteuert habe ich über ioBroker, mitgeschnitten über einen anderen PC).

                          -- nur ZONE 2 eingeschaltet
                          PWON
                          Z2ON
                          -- ZONE 2 wieder aus
                          PWSTANDBY
                          Z2OFF
                          -- alles eingeschaltet
                          PWON
                          ZMON
                          MV29
                          MVMAX 98
                          MV11
                          MVMAX 98
                          PWON
                          SSINFAISFSV 441
                          Z2ON
                          -- hier nur Zone 2 abgeschaltet
                          Z2OFF
                          -- Zone 2 wieder dazugeschaltet
                          Z2ON
                          -- Zone 2 wieder aus
                          Z2OFF
                          
                          1 Reply Last reply Reply Quote 0
                          • foxriver76
                            foxriver76 Developer last edited by

                            @daniel_2k:

                            Edit2:

                            sehr merkwürdig, manchmal geht es, manchmal nicht. Beim Ausschalten wird jedenfalls über Telnet immer "PWSTANDBY" und "Z2OFF" gesendet, sofern die Zone 2 alleine eingeschaltet war (Main-Zone off).

                            Ist Main-Zone und Zone 2 on, dann geht es ohne Probleme, da wird dann beim ausschalten von Zone 2 natürlich auch nur Z2OFF gesendet. `
                            Hi Daniel,

                            Kannst du den Adapter mal auf debug stellen?

                            Ich denke du weißt wie, ansonsten: Unter dem Tab Instanzen auf das runde Icon mit dem Männchen das beim hovern Expertenmodus anzeigt und dann auf Log Stufe hinter dem Denon Adapter klicken und debug selektieren.

                            Dann loggt der Adapter z.B. Incoming data: Z2OFF

                            Hier wäre interessant, was da steht in den Fällen in denen es nicht klappt.

                            beste Grüße und danke fürs testen

                            fox

                            1 Reply Last reply Reply Quote 0
                            • D
                              daniel_2k last edited by

                              Ja, Debug ist klar ;).

                              Ich wollte es jetzt mitloggen, aber jetzt krieg ichs nicht mehr hin :). Vorführeffekt.

                              Naja, sollte ich es noch mal beobachten, werde ich es noch mal probieren.

                              Es funktioniert ja sonst.

                              1 Reply Last reply Reply Quote 0
                              • foxriver76
                                foxriver76 Developer last edited by

                                Danke. Falls es auftritt wäre es super, wenn du Bescheid gibst.

                                Noch eine kurze Rückfrage: Den Input Channel von Zone2 erkennt er korrekt? Da war am ehsten meine Befürchtung, dass was nicht läuft.

                                1 Reply Last reply Reply Quote 0
                                • D
                                  daniel_2k last edited by

                                  @foxriver76:

                                  Noch eine kurze Rückfrage: Den Input Channel von Zone2 erkennt er korrekt? Da war am ehsten meine Befürchtung, dass was nicht läuft. `

                                  Also steuern geht auf jeden Fall normal.

                                  Hier habe ich mir jetzt auch noch mal das "Lesen" angeschaut, d.h. Steuerung über z.B. Denon-App / HEOS-App bzw. Fernbedienung.

                                  Prinzipiell wird auch selectInput korrekt aktualisiert.

                                  Was auf jeden Fall nicht geht, ist der Input AUX1 (mehrfach hintereinander getestet, geht definitiv nicht). Ich kann ihn setzen (wird auch ausgeführt), aber egal ob ich per FB, App oder ioBroker auf AUX1 schalte, der State wird nicht bestätigt.

                                  Im Log kommt es aber korrekt an:

                                  denon.0	2018-06-03 17:32:07.852	debug	Command to handle is SVOFF
                                  denon.0	2018-06-03 17:32:07.852	debug	Incoming data: SVOFF
                                  denon.0	2018-06-03 17:32:07.678	debug	Command to handle is Z2AUX
                                  denon.0	2018-06-03 17:32:07.677	debug	Incoming data: Z2AUX1
                                  denon.0	2018-06-03 17:31:54.946	debug	Command to handle is SVOFF
                                  denon.0	2018-06-03 17:31:54.943	debug	Incoming data: SVOFF
                                  denon.0	2018-06-03 17:31:54.907	debug	Command to handle is Z2NET
                                  denon.0	2018-06-03 17:31:54.906	debug	Incoming data: Z2NET
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    daniel_2k last edited by

                                    Bei der Main-Zone ist das bei mir auch. AUX1 kann ich zwar steuern, aber wird nie angezeigt.

                                    Manchmal zeigt er nur "AUX" (mit Ack) an.

                                    denon.0	2018-06-03 17:38:57.080	debug	Command to handle is SI
                                    denon.0	2018-06-03 17:38:57.080	debug	Incoming data: SIAUX1
                                    denon.0	2018-06-03 17:38:57.053	debug	Command to handle is SSSMGMUS
                                    denon.0	2018-06-03 17:38:57.052	debug	Incoming data: SSSMG MUS
                                    denon.0	2018-06-03 17:38:56.002	debug	Message sent: SIAUX1
                                    denon.0	2018-06-03 17:38:55.998	debug	State Change - ID: selectInput; State: 15
                                    

                                    Da wird die Zummer weggeschnitten bei Command to Handle (Z2AUX statt Z2AUX1). Und bei der Main-Zone steht nur "SI" bei Command to handle.

                                    1 Reply Last reply Reply Quote 0
                                    • foxriver76
                                      foxriver76 Developer last edited by

                                      @daniel_2k:

                                      Bei der Main-Zone ist das bei mir auch. AUX1 kann ich zwar steuern, aber wird nie angezeigt.

                                      Manchmal zeigt er nur "AUX" (mit Ack) an.

                                      denon.0	2018-06-03 17:38:57.080	debug	Command to handle is SI
                                      denon.0	2018-06-03 17:38:57.080	debug	Incoming data: SIAUX1
                                      denon.0	2018-06-03 17:38:57.053	debug	Command to handle is SSSMGMUS
                                      denon.0	2018-06-03 17:38:57.052	debug	Incoming data: SSSMG MUS
                                      denon.0	2018-06-03 17:38:56.002	debug	Message sent: SIAUX1
                                      denon.0	2018-06-03 17:38:55.998	debug	State Change - ID: selectInput; State: 15
                                      

                                      Da wird die Zummer weggeschnitten bei Command to Handle (Z2AUX statt Z2AUX1). Und bei der Main-Zone steht nur "SI" bei Command to handle. `

                                      Also ist bei mir bediengt nachstellbar (Wenn ich AUX1 setze steht nur AUX drin), in dem Fall kenne ich auch das Problem. Werde ich fixen, dass er mit der korrekten Zahl drinnen steht.

                                      Bezüglich steuern: Die Frage ist, hat dein Receiver überhaupt mehr Eingänge als AUX1? Ich habe einen Denon AVR X1200W und der hat nur AUX1.

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        daniel_2k last edited by

                                        @foxriver76:

                                        Bezüglich steuern: Die Frage ist, hat dein Receiver überhaupt mehr Eingänge als AUX1? Ich habe einen Denon AVR X1200W und der hat nur AUX1. `

                                        Ja, er hat 2: AUX1 und AUX2.

                                        Der AUX1 ist auch aktiv (also anwählbar und wird nicht versteckt).

                                        Einer ist default-mäßig hinten und der andere für den HDMI-Front-Anschluss.

                                        Ich habe übrigens den AVR-X2400H (2016-Generation).

                                        1 Reply Last reply Reply Quote 0
                                        • foxriver76
                                          foxriver76 Developer last edited by

                                          @daniel_2k:

                                          Ja, er hat sogar 2: AUX1 und AUX2.

                                          Der AUX1 ist auch aktiv (also anwählbar und wird nicht versteckt).

                                          Einer ist default-mäßig hinten und der andere für den HDMI-Front-Anschluss.

                                          Ich habe übrigens den AVR-X2400H (2016-Generation). `

                                          Kannst du auf der Main Zone AUX2 setzen?

                                          1 Reply Last reply Reply Quote 0
                                          • foxriver76
                                            foxriver76 Developer last edited by

                                            Die Detection sollte jetzt (mit der neusten Version) funktionieren (also richtige AUX Nummern zuordnen).

                                            ->Die Display-States sind noch nicht sonderlich funktional (werden derzeit nur beim Startup aktualisiert).

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            919
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            denon
                                            28
                                            335
                                            51612
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo