Denon Modul [Testversion]

Achtung: Vereinzelt wird bei manchen AVR Modellen davon berichtet, dass es zu Problemen mit der Socket Verbindung und Abbrüchen zum Denon kommen kann, wenn ein Amazon Echo / Dot im gleichen Netzwerk verwendet wird. Zur Zeit gibt es dazu noch keine abschließende Lösung von Amazon, außer als Workarround den Amazon Echo in ein separates WLAN (z.b. Gast WLAN bei Fritzbox) zu packen.

Hallo Zusammen,

ich selber besitze einen Denon AVR 4311 und da ja auf der Wunschliste der PHP Module auch Denon enthalten war hier mal eine Version zum ausprobieren.

Das Denon/Marantz Modul besteht aus zwei unabhängigen Teilen. Ein HTTP Denon/Marantz Modul und ein Telnet Denon/Marantz Modul. Der Unterschied liegt in der Art und Weise wie mit dem Denon/Marantz AVR kommuniziert wird.

Denon/Marantz HTTP Modul

Das Modul kommuniziert über HTTP und liest den Status aus, indem dieser vom AVR abgeholt wird. Die Anzahl der Befehle für die ein Status vorliegt ist begrenzt. Es können aber alle bekannten Befehle an den AVR geschickt werden.
Sobald ein Befehl über den Webfront abgeschickt wird aktualisiert sich auch der Status, ansonsten wird der Status alle 10 Sekunden ausgelesen.

Denon/Marantz Telnet Modul

Das Modul kommuniziert mit dem AVR über das Denon Control Protocol auf Port 23. Es kann nur ein einziger Client über Port 23 mit dem AVR verbunden sein. Sollte also z.B. irgendeine App z.B. Port 23 benutzten muss diese auf HTTP umgestellt werden damit IP-Symcon eine Verbindung zum AVR aufbauen kann. Das Modul unterstützt alle dokumentierten Befehle und kann einen Status anzeigen. Sobald ein Befehl versendet wird oder das Gerät von einer anderen Quelle geschaltet wird wird der Status in IP-Symcon aktualisiert.

Installation
Voraussetzung:

  • IP-Symcon 4.1
  • Denon/Marantz AVR im gleichen Netzwerk wie IP-Symcon

Wir wechseln zu IP-Symcon (Ver. 4.1) und fügen unter Kerninstanzen über Modules -> Hinzufügen das Modul hinzu mit der URL


https://github.com/Wolbolar/IPSymconDenon.git

hinzu.

In IP-Symcon wird von jede Zone des AV Receivers den wir nutzen wollen eine separate Instanz angelegt. Der Denon IO und Denon Splitter wird automatisch mit angelegt. Um die Instanz zu erstellen wechseln wir in die Kategorie, unter der wir die Instanz platzieren wollen und erstellen mit CTRL+1 eine neue Instanz.

instanz-anlegen.png

Über Denon finden wir die Instanz und mit weiter und Ok wird diese angelegt.

install1.png

Zur Auswahl stehen in IP-Symcon Denon/Marantz AV Receiver HTTP Control oder Denon/Marantz AV Receiver Telnet Control. Die Denon/Marantz AV Receiver Telnet Control verfügt über den deutlich größeren Funktionsumfang und sollte nach Möglichkeit genutzt werden. Es kann aber jeweils nur ein Gerät auf diese Weise mit dem AV Receiver verbunden sein. Sollte also bereits ein anderes Gerät oder Remote diese Verbindung nutzen kann auch alternativ Denon/Marantz AV Receiver HTTP Control genutzt werden. Bei dem entsprechenden Denon Splitter ist die IP Adresse des Denon AVR einzutragen.

Bei dem Denon / Marantz Device ist zunächst der Hersteller auszuwählen und dann mit Übernehmen zu bestätigen.

config1.png

Herstellerauswahl

Anschließend das AV Receiver Modell auszuwählen und wieder mit Übernehmen bestätigen.

config2.png

AVRAuswahl

Jetzt noch die Zone selektieren die benutzt werden soll und mit Übernehmen bestätigen.

config3.png

ZoneAuswahl

Jetzt wird abhängig von dem AV Receiver Modell und der Zone Befehle zum selektieren angezeigt. Das Konfigurationsformular passt sich ab IP-Symcon 4.1 je nach Auswahl des Modells an. Die Befehle die im Webfront genutzt werden sollen können nun ausgewählt werden oder auch wieder bei Bedarf abgewählt werden. Beim HTTP Modul wird der Status automatisch regelmäßig alle 10 Sekunden aktualisiert. Wenn ein Befehl über das Denon HTTP Modul versendet wird aktualisiert sich der Status unmittelbar nach dem Absetzten des Befehls. Beim Telnet Modul erfolgt ein Update des Status für die entsprechende Variable immer dann wenn ein Request angefordert wurde oder ein Befehl gesendet wurde. Um nach dem ersten Einrichten beim Telnet Modul einen aktuellen Status zu erhalten steht in der Testumgebung des Konfigurationsformulars (ganz unten) ein Button Status Initialisieren zu Verfügung.

Indem sich öffnenden Fenster zunächst bei Erstinstallation oben auf
Eine übergeordnete Konfiguration scheint fehlerhaft zu sein. Klicken Sie hier um die Konfiguration zu öffnen.
klicken.

Es öffnet sich der Splitter. Hier die IP Adresse des Denon AV Receiver einzutragen Öffnen anklicken und Übernehmen drücken.
Jetzt wieder in der Denon Instanz den AV Receiver Typ auswählen. Sollte das Modell noch nicht in der Liste vorhanden sein dann kann dies noch in Zukunft ergänzt werden.

Nachdem die Zone auswählt wurde stehn dann die Befehle zur Auswahl… Für jede Zone ist eine neue Instanz zu erstellen. Die Befehle die verfügbar sein sollen können einzeln angeklickt werden. Grundsätzlich wird Power, Input, Mute angelegt.

Die Inputs werden vom AV Receiver ausgelesen, es werden nur die als aktiv markierten Inputs verwendet. Daher sollte zunächst am AV Receiver geprüft werden, ob alle Inputs die passende Beschriftung haben und ob nur die Inputs als aktiv gewählt sind die benötigt werden. Sollten Inputs am Receiver umbenannt worden sein können die Inputs über öffnen der Instanz in der Testumgebung (unten) mit Update Inputs neu eingelesen werden.

Webfront Ansicht:

Falls jemand NEO zum gestalten einer Fernbedienungsoberfläche nutzten sollte gibt es noch einen Haken der optional gesetzt werden kann.

neo-denon-skripte.png

Dies ist als Workaround weil NEO keine Boolean Variablen togglen kann. Deshalb wird für jede Boolean Variable ein Hilfsskript angelegt das sich dann von NEO aus triggern lässt. Dazu ist dann eine Kategorie anzulegen unter der die Skripte angelegt werden sollen. Im Modul ist dann diese Kategorie auszuwählen und der Haken zu setzten, es werden dann automatisch Scripte abgelegt die zum Togglen aus NEO herraus benutzt werden können.

Moin,

wollte gerade dein Modul testen … leider ist mein Receiver nicht aufgeführt :0(
Meinst geht der DENON DRA-N4 auch ?! Wenn ja hast ne Idee welchen ich dann am besten auswählen?!

Danke !

Andreas

PS: So lange teste ich mal rum ;0)

Ich habe zu dem Modell keine Dokumention aber eventuell sollte das funktionieren. Selbst Marantz nutzt weitestgehend die gleichen Befehle. Wichtig ist das die Inputs vom AV Receiver ausgelesen werden können ansonsten müste man für das Modell einen Sonderweg gehen. Um die Inputs auslesen zu können müssen Infos für das Modul verfügbar sein.

Du kannst mal schauen ob folgende XML per erreichbar sind und den Inhalt mir zuschicken oder posten, dann kann ich das Modell noch mit aufnehmen.


$DenonIP = "192.168.X.X"; //IP des Denon AVR

$xmlMainZone = new SimpleXMLElement(file_get_contents("http://".$DenonIP."/goform/formMainZone_MainZoneXml.xml"));
		var_dump($xmlMainZone);
$xmlZone2 = new SimpleXMLElement(file_get_contents("http://".$DenonIP."/goform/formMainZone_MainZoneXml.xml?_=&ZoneName=ZONE2"));
var_dump($xmlZone2);
$xmlMainZone1 = new SimpleXMLElement(file_get_contents("http://".$DenonIP."/goform/formMainZone_MainZoneXmlStatus.xml"));
var_dump($xmlMainZone1);
$xmlNetAudioStatus = @new SimpleXMLElement(file_get_contents("http://".$DenonIP."/goform/formMainZone_NetAudioStatusXml.xml"));
var_dump($xmlNetAudioStatus);
$xmlDeviceinfo = @new SimpleXMLElement(file_get_contents("http://".$DenonIP."/goform/formMainZone_Deviceinfo.xml"));
var_dump($xmlDeviceinfo);
$xmlDeviceSearch = @new SimpleXMLElement(file_get_contents("http://".$DenonIP."/goform/formiPhoneAppDeviceSearch.xml"));
var_dump($xmlDeviceSearch);

Hallo Fonzo,

wieder ein tolles Modul. Ich habe den 4100W, unter HTTP geht bis auf die Eingangswahl (die macht etwas Probleme) alles ohne Probs.
Im Telnet Modus gehen leider nur die Befehle die im HTTP Modus auch gehen, alle anderen nicht.

Gruß
Olaf

Ich muss mir das Modell noch mal näher anschauen. Was hast Du momentan als AVR Typ gewählt? Kannst Du mal die Denon I/O Instanz öffnen und das Debug Fenster öffnen und dann mal über den Webfront was absenden und schauen was im Debug Fenster erscheint. Dazu musst du unten links im Debug Fenster den Haken bei HEX Ansicht entfernen um die Befehle die versendet und empfangen werden im Klartext zu sehen. Was steht denn so im Meldungsfenster wenn Du versuchst etwas mit dem Telnet Modul zu senden?

Habe den 4100 eingegeben.
Beim schalten des Befehls CBL/SAT kommt folgende Meldung „Transmit SICBL/SAT<CR> 10“

Ah ok dann ist das inkonsistent bei dem Modell, da muss ich noch eine Korrektur einbauen. Der Befehl der gesendet werden muss ist SAT/CBL anscheinend gibt aber die Weboberfläche des Denon 4100W wie auch vom Denon 2100W CBL/SAT an deshalb der Fehler.

Du kannst mal folgendes probieren und dann Rückmeldung geben ob der AVR schaltet und was für eine Rückmeldung kommt.


$DenonTelnetAVRObjektID = 12345; //ObjektID der Denon AVR Telnet Instanz

$payload = "SISAT/CBL";
DAVRT_SendCommand($DenonTelnetAVRObjektID, $payload);

Mit dem Befehl geht es. Die Meldung ist „Transmit SISAT/CBL<CR> 10“
Jetzt müssten nur noch die anderen Sachen , wie z.B die db Zahl bei den Lautsprechern gehen.
Ebenso habe ich bei diesen Receiver Auro 3D und Dolby Atmos als Soundmodi integriert, könntest Du so etwas einbinden?

Ja das kann ich machen dauert aber ein wenig, da ich gerade viel unterwegs bin. Ich sehe gerade die Befehle haben sich ab dem AVR-X3100W teilweise geändert. Das ist dann auch der Grund warum es gerade nicht geht. Ich muss dann noch eine Abfrage für die neueren Modelle einbauen.

Das wäre echt Super.
Gruß
Olaf

Ich habe noch auf die Schnelle eine kleine Änderung eingebaut (Update). Es kommt nicht bei allen gesendeten Befehlen automatisch ein Response vom AVR. Bei den Befehlen bei den ich bisher weis das keine Antwort kommt frage ich dann nach dem Senden des Befehls den Response ab.

Laut Liste sind die Befehle für den AVR-X4100W z.B. Front Left die gleichen wie im Modul. Die neueren AVR Typen unterstützten noch mehr Lautsprecher, die werden dann noch in Zukunft ergänzt.

@karo2000 Kannst Du mal im Debug Fenster schauen was passiert wenn Du etwas z.B. bei Front Left im Webfront etwas verstellst?

Wenn ich höher stelle kommt
„Transmit CVFL 545<CR> 9“
„Received CVFL 545<CR> 9“
„Received CVFR 50<CR>CVC 50<CR>CVSW 50<CR>CVSL 50<CR>CVSR 50<CR>CVFHL 50<CR>CVFHR 50<CR>CVSHL 50<CR>CVSHR 50<CR> 75“
„Received CVEND<CR> 6“
„Received MVMAX 98<CR> 9“
„Received DCAUTO<CR> 7“

kannst Du noch bitte den Befehl von Sat/Cbl einfügen?

Wenn im Debug Fenster nur TRANSMIT steht und nicht RECEIVED dann sendet der AVR anscheinend komischerweise keinen Response was merkwürdig ist.

Bei mir kommt bei meinem AVR auf TRANSMIT SISAT/CBL<CR> ein RECEIVED SISAT/CBL<CR>.

Nur so aus Interesse willst Du die Level der Lautsprecher manuell verstellen? Ich lasse mir das nur Interessehalber anzeigen und lasse da die Finger von. Jeder moderne AVR hat ja eine Einmessautomatik mit Mikrofon, das würde ich persönlich vorziehen anstatt zu versuchen die Lautsprecher manuell einzustellen. Insbesondere wenn Du so was wie AURO-3D nutzten willst.

Dann sollte es doch aber eigentlich gehen oder wenn was gesendet wird und der Receiver auch antwortet oder was funktioniert denn genau nicht?

Nein, verstellen will ich die Lautsprecher nicht unbedingt, obwohl es geht habe ich gerade festgestellt. Es stehen nur alle LS auf 0db und das hat mich gewundert, da die Einstellung anders ist.

So kleines Bugfix das CBL/SAT vom Web in SAT/CBL ändern. Vielleicht geht es ja jetzt.

Sind die Variablen denn schon mal aktualisiert worden oder steht bei Aktualisiert nie?