Modul für Denon (Marantz) AV Receiver

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

Vorheriges Thema - Nächstes Thema

Damian

Zitat von: Jackie am 18 Dezember 2021, 15:47:07
Hallo,

ich habe ein merkwürdiges Problem mit meinem per Netzwerk verbundenen Denon AVR 1912. Ich habe einen sogenannten Aqara Cube, den man drehen kann, und ich wollte die Drehgeste des Cube verwenden, um die Lautststärke meine Denon AVR zu ändern. Das tut auch über folgendes DOIF:


defmod myTestDenon DOIF ([ZW.Rotate:"right"]) (set Denon volumeUp) DOELSEIF ([ZW.Rotate:"left"]) (set Denon volumeDown)
attr myTestDenon do always


Das ändert die Lautstärke aber immer nur in 0,5dB Schritten, was mir zu wenig ist.

Wenn ich nun das DOIF minimal verändere. nämlich so:


defmod myTestDenon DOIF ([ZW.Rotate:"right"]) (set Denon volumeUp 4) DOELSEIF ([ZW.Rotate:"left"]) (set Denon volumeDown 4)
attr myTestDenon do always


Dann tut das ganze nicht mehr, im Eventmonitor sehe ich dann zwar, dass mein Rotate-Event ankommt, aber vom Denon kommt keine Meldung mehr.

Das ist umso erstaunlicher, weil ich manuell den Befehl

set Denon volumeDown 4

Über die FHEM-UI absetzen kann, und dies dann auch ausgeführt wird.

Hat jemand eine Erklärung, warum es in Verbindung mit dem DOIF nicht funktioniert?

Im DOIF-Device kannst du an der Uhrzeit erkennen, ob der cmd_1 Zweig tatsächlich ausgeführt wurde. DOIF nutzt den gleichen set-Befehl, den man in der Kommandzeile aufruft, daher sollte es keine Unterschiede geben.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Jackie

Hallo Damian,

das DOIF wird definitiv ausgeführt, ich glaube eher dass die Funktion VolumeUp und VolumeDown im Denon-Modul irgendwie verhunzt sind. Hier mal meine ausgelösten Events, und zwar für folgende Fälle:

set Denon volumeDown 4 direkt aus der Fhem-Oberfläche:

021-12-21 08:23:12 DENON_AVR Denon volumeStraight: -47
2021-12-21 08:23:12 DENON_AVR Denon volume: 33
2021-12-21 08:23:12 DENON_AVR Denon volumeMax:  795

mit defmod myTestDenon DOIF ([ZW.Rotate:"right"]) (set Denon volumeUp) DOELSEIF ([ZW.Rotate:"left"]) (set Denon volumeDown)
2021-12-21 08:23:38 DOIF myTestDenon cmd_nr: 2
2021-12-21 08:23:38 DOIF myTestDenon cmd: 2
2021-12-21 08:23:38 DOIF myTestDenon cmd_event: ZW.Rotate
2021-12-21 08:23:38 DOIF myTestDenon cmd_2
2021-12-21 08:23:38 HUEDevice ZW.Rotate -2403
2021-12-21 08:23:38 HUEDevice ZW.Rotate gesture: 8
2021-12-21 08:23:38 HUEDevice ZW.Rotate rotate: left
2021-12-21 08:23:38 DENON_AVR Denon volumeStraight: -47.5
2021-12-21 08:23:38 DENON_AVR Denon volume: 32.5
2021-12-21 08:23:38 DENON_AVR Denon volumeMax:  795

mit defmod myTestDenon DOIF ([ZW.Rotate:"right"]) (set Denon volumeUp 4) DOELSEIF ([ZW.Rotate:"left"]) (set Denon volumeDown  4)
2021-12-21 08:25:22 DOIF myTestDenon cmd_nr: 2
2021-12-21 08:25:22 DOIF myTestDenon cmd: 2
2021-12-21 08:25:22 DOIF myTestDenon cmd_event: ZW.Rotate
2021-12-21 08:25:22 DOIF myTestDenon cmd_2
2021-12-21 08:25:22 HUEDevice ZW.Rotate gesture: 8
2021-12-21 08:25:22 HUEDevice ZW.Rotate -3911
2021-12-21 08:25:22 HUEDevice ZW.Rotate rotate: left


Also es scheint so als würde der Paramter 4 im DOIF-Fall, warum und wie auch immer, nicht richtig übergeben. Oder mache ich noch einen Fehler?
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...

olwaldi

Hast Du mal im Logfile nach Fehlermeldungen vom DENON-Modul gesucht? Bei mir ist's so, daß volumeUp/Down beim ersten Verwenden nach dem Booten falsche Werte hat. Ursache ist m. M. n., daß die ein oder andere Variable nicht initialisiert werden, insbesondere die Lautstärke (volume).

Ich nutze volumeUp/Down recht oft. Da ich aber FHEM fast nie neu starte, habe ich nur selten Probleme.

Grüßle, Michael

Jackie

In welchem Logfile müssten die Fehlermeldungen denn stehen? Ich starte FHEM quasi niemals neu, das läuft dauerhaft auf dem Raspi, dennoch vesrstehe ich nicht warum das im DOIF nicht tut.

Kann man den Volumeup irgendwie in eine Funktion auslagern? Ich bin leider nicht tief genug in der Syntax drin, aber mal testhalber in eine Funktion myVolumeUp, die ich aus dem DOIF aufrufe, und innerhalb der Funktion wird dann set Denon VolumeUp 4 aufgerufen...
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...

olwaldi

Ich meine das Standard-Logfile, das man sich in der GUI angucken kann. Und dort gibt's hin und wieder Fehlermeldungen von nicht initialisierten Variablen. Hier mal ein Beispiel
2021.12.15 20:16:33 1: PERL WARNING: Use of uninitialized value $status in string ne at ./FHEM/70_DENON_AVR.pm line 1764.
2021.12.15 20:16:33 1: PERL WARNING: Use of uninitialized value $status in string ne at ./FHEM/70_DENON_AVR.pm line 1765.
2021.12.15 20:16:33 1: PERL WARNING: Use of uninitialized value $status in string ne at ./FHEM/70_DENON_AVR.pm line 1766.
2021.12.15 20:16:33 1: PERL WARNING: Use of uninitialized value $return in concatenation (.) or string at ./FHEM/70_DENON_AVR.pm line 1531.

Aber u. U. tritt das bei mir nur auf, weil ich zur Kommunikation die serielle Schnittstelle nutze, was vermutlich kaum noch jemand macht.

Ich hab' auch mal etwas im Source-Code nachgeguckt. Aber da ich zu wenig über perl weiß', habe ich nix gefixt. Immerhin bin ich sicher, daß es nur sehr selten zu Fehlfunktionen kommt, so daß meine "Not" nicht so groß ist.

Im Prinzip kannst Du auch selber in den Code an den (ggf. bei Dir) gemeldeten Zeilennummern nachgucken, steht unter /opt/fhem/FHEM/70_DENON_AVR.pm


Grüßle, Michael

Grüßle, Michael

Jackie

#650
Ich habe das gerade ausprobiert, ich erhalte keine Fehlermeldung im FHEM Eventlog wenn ich im DOIF VolumeUp oder VolumeDown mit Paramter setze, es passiert einfach nichts.

Frage: ich würde es gerne mal über einen Umweg probieren, indem ich zum Beispiel sowas hier setze:

volumeStraight  = volumeStraight   - 4

Ich habe aber leider keine Idee wie ich das im DOIF syntaktisch unterbirngen muss, oder ob ich irgendwo Hilfsvariablen definieren kann um es auf diesem umweg zu setzen. Hat da jemand Ideen? Danke!

Edit: ich habe mir mal das Modul angesehen, und jetzt doch einen Untershied festgestellt: offenbar schlägt die Verbindung zum Receiver per IP-Adresse fehl, ich sehe nämölich im Fall des set VolumeDown 4 folgenden Fehler im Eventlog:

2021.12.22 16:29:35 1: Denon: Can't connect to 192.168.178.73:23: Operation now in progress
2021.12.22 16:29:35 1: Denon: Can't connect to 192.168.178.73:23: 192.168.178.73: Connection refused (111)

Der kommt im anderen Fall nicht. Wie behebe ich diesen Fehler? Muss ich irgendwo was aktivieren?
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...

delMar

Hallo,

das Operation now in progress ist sehr seltsam. Als ob parallel eine zweite Verbindung aufgebaut werden würde...

Mit DOIF mach ich selber garnix, deshalb hab ich da auch überhaupt keine Erfahrung mit Nebenwirkungen, etc.

Hast du alternativ schon mal ein notify anstatt eines DOIF versucht?
So könnte man gleich mal feststellen, ob DOIF etwas mit dem Problem zu tun hat, oder nicht.

schöne Grüße
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

kroonen

Hi,

I'm using the module for my Marantz receiver and works fine. I;m using also homeassistant with the denon module, and I renamed in the receiver the names of the input, and in homeassistant I get the changed names, within fhem I still get the original names.

Is this also possible in denon module of fhem?

delMar

Zitat von: kroonen am 15 Januar 2022, 22:13:29
Is this also possible in denon module of fhem?

The only constraint is to find someone who does it. ;-)
With all my side-projects, I currently lack the time.
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

All-Ex

#654
Einige Sound-Formate fehlten für meinen Denon AVR-X4500H und daher hatte das sound_out Reading manchmal keinen Wert und zeigte HASHxxx an. Außerdem hat das Reading sound_signal_in teilweise nicht gepasst.

Im angehängten Patch habe ich das angepasst. Die Readings sound_signal_in und sound_out stimmen jetzt mit dem überein, was der Receiver anzeigt. Ich konnte es allerdings nur mit dem Denon 4500 testen.

Den Patch könnt ihr so einspielen (ggf. mit sudo):
patch /opt/fhem/FHEM/70_DENON_AVR.pm path/to/denon.patch

delMar

Zitat von: All-Ex am 16 Januar 2022, 15:41:58
Einige Sound-Formate fehlten für meinen Denon AVR-X4500H und daher hatte das sound_out Reading manchmal keinen Wert und zeigte HASHxxx an. Außerdem hat das Reading sound_signal_in teilweise nicht gepasst.

Im angehängten Patch habe ich das angepasst. Die Readings sound_signal_in und sound_out stimmen jetzt mit dem überein, was der Receiver anzeigt. Ich konnte es allerdings nur mit dem Denon 4500 testen.

Den Patch könnt ihr so einspielen (ggf. mit sudo):
patch /opt/fhem/FHEM/70_DENON_AVR.pm path/to/denon.patch

Danke, ich werd das heute Abend ins SVN geben, dann ist es ab morgen im Update mit drin

LG
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

All-Ex

Hi Martin,

super, dass du den Patch in die offizielle Version integrierst.

Hier habe ich noch einen 2. Patch, der zwei neue Befehle bei sound_out hinzufügt: Left und Right. Damit kann der vorherige bzw. nachfolgende Sourround-Modus ausgewählt werden, siehe auch hier: https://www.denon.com/-/media/files/documentmaster/denonna/avr-x3700hfy21avr_denon_protocol_v02_04062020.xlsx (Zeilen 356/357).
Und es sind noch zwei weitere Sound-Modi hinzugekommen, die bei mir als HASHxxx angezeigt wurden.

Alex

delMar

Danke Alex, der erste Patch ist jetzt drin.
Den zweiten konnte ich allerdings nicht anbringen, da fehlt wohl was im Header.

Wenn du mir da nochmal ein patch file hier reinstellen könntest, werd ich das morgen einchecken

Danke!
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

All-Ex

Hier nochmal der 2. Patch, der gegen die aktuell per FHEM verteilte Version ist...

okebaja

Please allow me to write in English.. apologies. Just discovered the Denon_AVR module and got it working. But, I cannot set the presetMode to alphanumeric:

define Denon presetMode alphanumeric
Unknown argument presetMode

What am I doing wrong?
Viele Grüße aus Rotterdam, NL
Eltako Funk 14-series EnOcean home automation managed by FHEM @ DietPi @ RaspberryPi 3B+