Modul für Denon (Marantz) AV Receiver

Begonnen von raman, 03 Oktober 2016, 18:08:58

Vorheriges Thema - Nächstes Thema

raman

Hallo,

da ich mit den bisher verfügbaren Modulen (71_DENON_AVR, 71_DENONX_AVR) und dem Funktionsumfang nicht zufrieden war, habe ich mir mal die Mühe gemacht
ein neues Modul mit Zonenunterstützung zu schreiben.
Das Modul bietet jetzt Readings für diverse Audio- und Videoeinstellungen wie Kanalpegel der Lautsprecher, Bass, Höhen, Eingangssignale und Soundmodi.
Außerdem gibt es Readings für Tuner und z.B. Onlinemusic/iRadio (Album, Artist, Title,...).
Auch die Liste an Set-Befehlen habe ich erweitert. Neben den Befehlen der Fernbedienung lassen sich die Kanalpegel der aktiven Lautsprecher setzen oder
diverse Soundeinstellungen machen (Loudness, LFE,...). Angelehnt ans Onkyo-Modul ist jetzt auch eine Einknopf-Bedienung möglich.
Ich hoffe, dass Probleme mit dem Reconnect, die beim Neustart von FHEM oder beim Trennen des Recievers vom Stromnetz mit dem Modul 71_DENON_AVR
aufgetreten sind, mit der Umstellung auf DevIo behoben sind.

Eine Dokumentation ist in beiden Modul enthalten, die aber noch nicht vollständig ist (vor allem die deutsche Version).

Getestet habe ich mit einem Denon AVR-X4100W.

Die angehängte zip-Datei enthält folgende Dateien:
70_DENON_AVR.pm
71_DENON_AVR_ZONE.pm


Außerdem ist ein Ordner mit spezifischen Buttons für remotecontrol enthalten, dessen Inhalt nach www/images/default/remotecontrol kopiert werden muss.

Wer das Modul 71_DENON_AVR verwendet, sollte es vor Nutzung von 70_DENON_AVR löschen oder die Dateiendung .pm ändern, damit es nicht mehr geladen wird.
Am besten löscht man vor dem Umstieg auch das entsprechende Device.

An der Definition hat sich nichts geändert:

define <name> DENON_AVR <ip-address-or-hostname[:PORT]>

Bsp:

define avr DENON_AVR 192.168.100.10


Zur Einrichtung:

Als Set-Befehl gibt es usedInputs. Dort kan man die Eingänge (Inputs), die der eigene Reciever unterstützt, aus einer Liste auswählen und setzen.
Nicht gewählte Eingänge werden anschließend nicht mehr unter Inputs angezeigt.

Für Nutzer eines Marantz AV Recievers:
Ein Unterschied zwischen Denon und Marantz sind die Quick Select- bzw. Smart Select-Tasten auf der Fernbedienung
Die Funktion ist gleich, nur die Bezeichnung anders!
Mit dem Attribut brand kann auf  Smart Select umgestellt werden, indem als brand Marantz gesetzt wird.
Der Set-Befehl wird dann entsprechend umbenannt. (Ob die Befehle richtig abgesetzt werden, kann ich nicht testen, da ich keinen Marantz AV Reciever habe.)

Zonen (2-3) können mit dem Get-Befehl zone erstellt werden.

Eine Fernbedienung für das jeweilige Device (Reciver, Zone2 Zone3) kann mit dem Get-Befehl remotecontrol erstellt werden.
Das entsprechende Notify für remotecontrol sollte ebenfalls erzeugt werden.

Ach ja, die Werte für das Reading signal (Eingangssignal für Sound wie PCM, DTS, DolbyDigital,..) habe ich durch Ausprobieren ermittelt,
da diese nicht dokumentiert sind. Ich hab aber noch nicht alle Werte rausfinden können.

Wenn also im logfile von FHEM folgendes autaucht (verbose muss mindestens auf 2 gesetzt werden):
DENON_AVR <name>: unknown input signal <07>, sound <SOUND>.
dann die entsprechende Zeile hier posten!


Ich hoffe, das sich möglichst viele Tester finden und auch Feedback geben, da ich selbst nicht alles
ausführlich testen kann. Vor allem bei den Zonen weiß ich nicht, ob noch Fehler enthalten sind,
da ich diese selbst nicht nutze.


Gruß
raman

---------------------------------------------------------
Update 07.10.16:

- Tuner-Readings für Sendernamen und Verkehrsfunkstatus ergänzt
- Tuner: Fehler behoben - KHz statt MHz bei FM-Sendern
- Code angepasst, dmit keine"Experimental" Warnungen mehr angezeigt werden
- Verzögerung für Current Readings, damit diese richtig angezeigt werden

Update 12.10.16:
- neuer Set-Befehl, um Favoriten indirekt aus der Liste zu wählen
- remotecontrol-Layout: Play-, Pause-, Stop-Buttons ergänzt
- kleinere Fixes

Update 12.10.16:
- Unterstützung für 4. Zone

Update 19.10.16:
- Reconnect-Verhalten geändert (hilft evtl. bei regelmäßigen Disconnects?!)
- Zonen-Stati sollten jetzt korrekt angezeigt werden
- neues Reading für "aktuelles Cover"
- einige Readings für AVR-4520 ergänzt
- kleinere Fixes

Update 20.10.16:
- Set-Befehl on/off für Hauptzone
- stateAV angepasst

Update 23.10.16:
- kleinere Fixes

Update 26.10.16:
- Fehlerbehebung

Update 18.02.17:
- Fehlerbehebung
- neues Attribut "type" (AVR oder Ceol, um die Schrittweite des Volumesliders anzupassen - 0.5 oder 1)
- neues Attribut "unit", um Einheiten für Readings zu de-/aktivieren (z.B. % oder dB bei volume)
- neuer set-Befehl "stream", um mit Hilfe des Moduls DLNARenderer Streams aus DENON_AVR aufzurufen
   (Einrichtung siehe Commandref des Moduls)

Update 27.02.17:
- favoriteList wieder hinzugefügt
- Lautsprecher für channelVolume ergänzt
- Commandref angepasst und ergänzt

Update 28.02.17:
- Einschaltverhalten für mainZone geändert

Update 03.03.17:
- Fehlerbehebung

Update 17.03.17:
- Fehlerbehebung Ceol (Lautstärke und devStateIcon)
- usedInputs werden jetzt als Attribut inputs gespeichert
- Angabe für Schritte bei den Befehlen volumeUp/volumeDown jetzt möglich (z.B. set <denon>  volumeDown 3)

Update 18.03.17:
- Set-Befehl favorite für Ceol angepasst
- Einstellungen für UsedInputs in Main-Zone werden  jetzt für die anderen Zonen übernommen
- in UsedInputs stehen jetzt AuxA - AuxD zur Verfügung (nur für Ceol)

Update 18.03.18:
- Fehlerbehebung
- Cbl/Sat umbenannt zu Sat/Cbl
- Set-Befehl presetCall und presetMemory hinzugefügt
- in UsedInputs stehen jetzt DOCK, DVR, NET/USB, V.AUX

Update 21.03.18:
- Fehlerbehebung

Amenophis86

Ja geil. Werde ich morgen mal testen. Danke :)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

akamia

Hallo raman,

super Arbeit. Die vielen Readings und Steuermöglichkeiten sind ein Augenweide. Habe bisher immer das X-Modul genommen. Läuft gut. Also ohne Telnet.

Im Main-Modul (70_DENON_AVR.pm) habe ich bisher nur beim Tuner KHz statt MHz gefunden.

Das Telnet beim DENON - habe den X4000 - kann ja nur eine Verbindung offen halten. Wie installiere ich dann 71_DENON_AVR_ZONE.pm - gleiche IP und Port?

akamia
FHEM 5.8 auf CubieTruck, HomeMatic, 1-wire, KM200, FBH, DENON X4000, Solo4k, Arduinos, Milight, 7580, ioBroker, etc.

thorschtn

Das ist ja mal ein immenser Schritt nach vorne! Tolle Arbeit. Danke.

Auf den ersten Blick läuft das Modul aber noch nicht ganz sauber mit meinem Denon AVR X1200W.

Ich höre viel Online Radio und steuere die Sender dabei über die Favoriten an. Folgendes ist mir dabei bei einem ersten kurzen Test aufgefallen (ich hoffe, dass ich mich am Wochenende ein bisschen ausgiebiger mit dem Modul beschäftigen kann):

Favoriten lassen sich nicht umschalten, keine Reaktion: set avr favorite 2

Die Readings sind - automatisch aktualisiert - nicht immer korrekt befüllt:
CurrentStation - manchmal leer, manchmal die vorherige Station
CurrentTitle - manchmal Titel falsch, manchmal ok
CurrentArtist - enthält manchmal die vorherige Station

nach einem get avr mediainfo sieht dann aber alles gut aus!

Weiteres Feedback folgt sicher am Wochenende.

Viele Grüße

thorschtn
NUC - FHEM & HA
MapleCUN, Homematic, 433MHz, AB440, 1-Wire Bewässerung & Pool, Jarolift (Signalduino), Signal Messenger, Denon AVR, LG WebOS, AmazonEcho, Jura S90 (ESP8266), Sonoff, Xiaomi Mii Sauger, Worx SO500i

Amenophis86

Folgende Fehler werden mir angezeigt, wobei diese natürlich nicht schwer, sondern eher nervend sind:


2016.10.06 14:15:26 1: PERL WARNING: keys on reference is experimental at ./FHEM/70_DENON_AVR.pm line 757.
2016.10.06 14:15:26 1: PERL WARNING: values on reference is experimental at ./FHEM/70_DENON_AVR.pm line 758.
2016.10.06 14:15:26 1: PERL WARNING: keys on reference is experimental at ./FHEM/70_DENON_AVR.pm line 770.
2016.10.06 14:15:26 1: PERL WARNING: values on reference is experimental at ./FHEM/70_DENON_AVR.pm line 771.
2016.10.06 14:15:26 1: PERL WARNING: keys on reference is experimental at ./FHEM/70_DENON_AVR.pm line 1560.
2016.10.06 14:15:26 1: PERL WARNING: keys on reference is experimental at ./FHEM/70_DENON_AVR.pm line 1865.
2016.10.06 14:15:26 1: PERL WARNING: keys on reference is experimental at ./FHEM/70_DENON_AVR.pm line 1894.
2016.10.06 14:15:26 1: PERL WARNING: keys on reference is experimental at ./FHEM/70_DENON_AVR.pm line 1899.
2016.10.06 14:15:26 1: PERL WARNING: keys on reference is experimental at ./FHEM/70_DENON_AVR.pm line 1903.
2016.10.06 14:15:26 1: PERL WARNING: keys on reference is experimental at ./FHEM/70_DENON_AVR.pm line 1917.
2016.10.06 14:15:26 1: PERL WARNING: keys on reference is experimental at ./FHEM/70_DENON_AVR.pm line 1921.
2016.10.06 14:15:26 1: PERL WARNING: keys on reference is experimental at ./FHEM/70_DENON_AVR.pm line 1926.
2016.10.06 14:15:26 1: PERL WARNING: keys on reference is experimental at ./FHEM/70_DENON_AVR.pm line 1950.
2016.10.06 14:15:26 1: PERL WARNING: keys on reference is experimental at ./FHEM/70_DENON_AVR.pm line 2714.
2016.10.06 14:16:38 1: PERL WARNING: Use of uninitialized value in numeric eq (==) at ./FHEM/70_DENON_AVR.pm line 1040.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

CoolTux

Die Experimental Warnungen bekommt man damit weg


no warnings => 'experimental';
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

dev0

no warnings ist nicht die feine Art ;)

Neuere Perl Versionen beschweren sich über:

@keys = keys $foo->{$bla};


kann man so vermeiden:

@keys = keys %{$foo->{$bla}};

raman

#7
@akamia
Die ganze Kommunikation läuft über das Hauptmodul (70_DENON_AVR.pm). Die Zonen kannst du dort mit dem Get-Befehl zone direkt erzeugen lassen.
Einen Port oder IP-Adresse muss man dazu nich angeben, da sie als IODevice den definierten Reciever aus dem Hauptmodul nutzen.
Den Schreibfehler habe ich angepasst, bin grad drüber noch den Sendernamen und Verkehrsfunkstatus zu integrieren und lad die überarbeitete Version dann hoch,
wenn ich fertig bin.

@thorschtn
Dein Denon AVR X1200W unterstützt laut Denon-Steuerungsprotokoll wie auch mein X4100W die favorite-Funktion nicht. Das können glaub ich nur die Reciever vor Baujahr 2014.
Auch das direkte Anwählen über preset ist mit den neueren Modellen nicht mehr möglich (eventuell spielt die verwendete Firmware auch eine Rolle).

Das Problem mit den currentReadings kenne ich. Der Reciever sendet die Informationen schon, bevor alles aktualisiert wurde, deshalb stehen dann oft die Infos vom alten Sender bzw. Titel drin.
Manche Sender senden die Information für Titel und Interpret in einem. In dem Fall bleibt dann glaub ich currentArtist leer.

Ich habe eine automatische Aktualisierung der Informationen eingebaut, ist aber noch experimentell und ich weiß nicht, ob es zuverlässig funktioniert.
Lässt sich über das Attribut playTime einschalten, indem man die Zeit für den Refresh in Sekunden angibt. Standardmäßig ist die Funktion aus.
Wenn sie aktiviert wird, wird dann auch currentPlaytime regelmäßig aktualisiert.

Danke für die anderen Verbesserungsvorschläge, werde sie mit einpflegen.

Jotoc

Hallo Raman,

vielen Dank das du dich um dieses Modul Denon gekümmert bzw. ein neues eigenes erstellt hast.
Mein Gerät ist ein Denon AVR 2113 das jetzt schon 3-4 Jahre alt sein dürfte.
Ich habe nur dein neues Modul reinkopiert und das alte vorher umbenannt. Nach einem Neustart von Fhem wurden alle Einstellungen vom bisherigen Device übernommen.
Ich hatte beim alten Modul immer das Problem das ich nicht unter 10 Volume die Lautstärke regeln konnte. Das funktioniert jetzt.
Toll finde ich die vielen set Möglichkeiten. Jetzt bin ich nur noch neugierig ob es wieder zu den Disconnects kommt.

Danke nochmal
Jotoc

xusader

Super Arbeit!
Gerade mit meinem Denon X-1000 auspropiert, läuft!

LookAndFeel

Moin,
super!!!
Ich habe das Modul mit meinem Marantz 1602 grundsätzlich. am laufen.
Werde mich jetzt weiter damit vertraut machen und testen.
DANKE
LookAndFeel

lewej

#11
Hallo,

wenn ich die Hilfe aufrufe bekomme ich im WEBINTERFACE von FHEM folgende Meldung:

No help found for module: denon_avr


Ich versuche den BASS zu verändern, wie müsste der Befehl lauten?



Gruss
lewej

Amenophis86

Zitat von: lewej am 08 Oktober 2016, 14:55:47
wenn ich die Hilfe aufrufe bekomme ich im WEBINTERFACE von FHEM folgende Meldung:

No help found for module: denon_avr

Macht Sinn, weil es kein offizielles Modul ist und daher es noch keine Commandref dazu gibt.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

raman

Der Bass lässt sich mit set bass <wert> einstellen. Werte von -6 bis 6 sind möglich.
Oder halt im Webinterface bei set den Eintrag bass auswählen und mit dem Slider den Wert setzen.

Wenn die Commandref nicht angezeigt wird und ein Neustart auch nix bringt, könnte man versuchen ein
Update zu machen. Dabei wird glaub ich auch (meistens) die Commandref aller Module im FHEM-Ordner
neu eingelesen und gebaut.

Amenophis86

Das Modul ist noch nicht offiziell eingecheckt und daher kann es sich keine Daten aus der Commandref ziehen bzw. die Daten müssen im Modul vom Maintainer angelegt werden, was er sicher noch nicht gemacht hat :)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...