Modul für Denon (Marantz) AV Receiver

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

Vorheriges Thema - Nächstes Thema

Gisbert

#855
Hallo Helmut,

nach etwas Abstand zum Mediaserver auf der Fritzbox bin ich darauf gekommen, dass die Fritzbox und meine Geräte (Laptops, Handys, IoT-Geräte usw.) sich in unterschiedlichen Netzen befinden. Ich komme von meinen Geräten auf die Fritzbox (nicht IoT) und auch ins Internet, natürlich auch von meinem Laptop auf das NAS der Fritzbox.

Wenn ich den Windows Mediaplayer auf meinem Laptop starte, dann sehe ich den in der HEOS App unter Mediaserver, nicht aber den NAS auf der Fritzbox. Auch im Windows Mediaplayer sehe ich nichts von dem NAS auf der Fritzbox. Offensichtlich geht es nicht so einfach einen Zugriff auf Mediaserver in unterschiedlichen LANs herzustellen, obwohl ich in beide Richtungen Zugriff habe. Anscheinend gilt das nicht für Mediaserver.

Ich versuche es jetzt erstmal mit einem USB-Stick an dem Denon AVR.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

isy

Hallo Gisbert,
das Ergebnis ist dann klar.
Wenn du das beibehalten willst, dann muss FHEM und die HEOS App dennoch den AVR erreichen können.
Ich nehme an, FHEM läuft im IoT Netz?

VG Helmut
Ein Weg wird erst zu einem Weg, wenn man ihn geht

rallye

Hallo zusammen!
Ich steige gerade von Docker auf bare Metal um. Mein Denon hat soweit immer wunschgemäß funktioniert, jetzt muss ich die Module wieder nachinstallieren. Welches ist nun das Aktuelle? Das 70_denon... das 71_denon... ? Ich hatte in der alten Installation 71_DenonAVR_zone.pm (oder ähnlich). Da sind ziemlich viele Module im Umlauf. Aber welches für mich???

Danke, Gruß Rallye
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

olwaldi

Beide: 70_DENON_AVR.pm & 71_DENON_AVR_ZONE.pm

Bzgl. Aktualität: Ich habe in beiden Modulen einige Minibugs gefixt und auch hier weiter oben gepostet.


Grüßle, Michael

Bartimaus

Zitat von: olwaldi am 21 Februar 2025, 15:24:53Beide: 70_DENON_AVR.pm & 71_DENON_AVR_ZONE.pm

Bzgl. Aktualität: Ich habe in beiden Modulen einige Minibugs gefixt und auch hier weiter oben gepostet.


Grüßle, Michael


Danke, aber leider sind die Änderungen in der DAB-Sektion etc. für neuere Receiver nicht gefixt.
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

olwaldi

Zitat von: Bartimaus am 22 Februar 2025, 09:35:06Danke, aber leider sind die Änderungen in der DAB-Sektion etc. für neuere Receiver nicht gefixt.
Stimmt. Habe einen Denon x6400h ohne DAB (aber immerhin noch mit UKW), kann somit leider nicht helfen.


Grüßle, Michael


olwaldi

Bei der Suche nach einem Fehler in 71_DENON_AVR_ZONE.pm bin ich auf ein anderes Problem gestoßen.

Der Reihe nach: Wenn ich in zone2 auf den mute-Knopf drücke, gibts die Fehlermeldung
2025.05.08 07:41:07 1: PERL WARNING: Use of uninitialized value $mute in string eq at ./FHEM/71_DENON_AVR_ZONE.pm line 764.
2025.05.08 07:41:07 1: stacktrace:
2025.05.08 07:41:07 1:     main::__ANON__                      called by ./FHEM/71_DENON_AVR_ZONE.pm (764)
2025.05.08 07:41:07 1:     main::DENON_AVR_ZONE_Set            called by fhem.pl (3983)
2025.05.08 07:41:07 1:     main::CallFn                        called by fhem.pl (1973)
2025.05.08 07:41:07 1:     main::DoSet                         called by fhem.pl (2005)
2025.05.08 07:41:07 1:     main::CommandSet                    called by fhem.pl (1285)
2025.05.08 07:41:07 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2869)
2025.05.08 07:41:07 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (987)
2025.05.08 07:41:07 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (610)
2025.05.08 07:41:07 1:     main::FW_Read                       called by fhem.pl (3988)
2025.05.08 07:41:07 1:     main::CallFn                        called by fhem.pl (789)
D.h. dort scheint $mute irgendwieso nicht gesetzt zu sein. Das kann ich "umschiffen", indem ich das originale
my $mute = @$a[2]
durch
my $mute = ReadingsVal( $name, "mute", "off");
ersetze. Warum allerdings $a[2] nicht gesetzt war, konnte ich nicht 'rausfinden.

Aber: Durch den Neustart von fhem ist bei mir ein altbekannter Hash-Fehler wieder aufgetreten:
PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 4779.jetzt mit Stacktrace (Danke für den Tip an's Forum):
2025.05.08 12:54:50 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 4779.
2025.05.08 12:54:50 1: stacktrace:
2025.05.08 12:54:50 1:     main::__ANON__                      called by fhem.pl (4779)
2025.05.08 12:54:50 1:     main::AttrVal                       called by ./FHEM/71_DENON_AVR_ZONE.pm (443)
2025.05.08 12:54:50 1:     main::DENON_AVR_ZONE_Parse          called by fhem.pl (4188)
2025.05.08 12:54:50 1:     main::Dispatch                      called by ./FHEM/70_DENON_AVR.pm (3561)
2025.05.08 12:54:50 1:     main::DENON_AVR_UpdateConfig        called by fhem.pl (3511)
2025.05.08 12:54:50 1:     main::HandleTimeout                 called by fhem.pl (710)
2025.05.08 12:54:50 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 4779.
2025.05.08 12:54:50 1: stacktrace:
2025.05.08 12:54:50 1:     main::__ANON__                      called by fhem.pl (4779)
2025.05.08 12:54:50 1:     main::AttrVal                       called by ./FHEM/71_DENON_AVR_ZONE.pm (444)
2025.05.08 12:54:50 1:     main::DENON_AVR_ZONE_Parse          called by fhem.pl (4188)
2025.05.08 12:54:50 1:     main::Dispatch                      called by ./FHEM/70_DENON_AVR.pm (3561)
2025.05.08 12:54:50 1:     main::DENON_AVR_UpdateConfig        called by fhem.pl (3511)
2025.05.08 12:54:50 1:     main::HandleTimeout                 called by fhem.pl (710)
Hier scheint ein gleichartiges Problem in 71_DENON_AVR_ZONE.pm 2x aufzutreten in
my $dezibel = AttrVal($zonename, "unit", "off") eq "on" ? " dB" : "";
my $percent = AttrVal($zonename, "unit", "off") eq "on" ? " %" : "";
Irgendwie scheint zone2 was dem Hauptmodul 70_DENON_AVR.pm mitteilen zu wollen. Aber das konnte ich nicht weiter klären.


Hinweise willkommen, Michael

Shadow3561

Moin,
Hast du mal versucht das mute_problem zu beheben in dem du den Bereich aus der DenonAVR.pm übernimmst?

elsif ($a[1] eq "mute" || $a[1] eq "muteT")
{
my $mute = defined($a[2]) ? $a[2] : "?";
if ($mute eq "toggle" || $a[1] eq "muteT")
{
    $a[1] = "mute";
my $newMuteState = DENON_ZONE_GetValue('SWITCH', ReadingsVal( $name, $a[1], "off"));
return DENON_AVR_ZONE_Command_SetMute($hash, $newMuteState);
}
else
{
return DENON_AVR_ZONE_Command_SetMute($hash, $mute);
}
}

Ich kann es leider nicht ausprobieren weil ich bei mir keine Zonen definiert habe.

olwaldi

Super Idee. Damit ist der mute-Fehler m.E. besser behoben als durch meinen Versuch.

Allerdings bleiben die 2 hash-Fehlermeldungen beim restart von fhem bestehen. Da hätte ich auch keine Verbesserung erwartet.


Erstmal Danke, Michael

olwaldi

Bin weiter bei meinem Hash-Problem. Ich deute die Fehlerrmeldung so, daß beim Aufruf von AttrVal in Zeilen 443 & 444 der $zonename immer noch auf undef steht. Warum ist mir nicht klar. Eigentlich sollte da zone2 bekannt sein. Letztendlich ist mir nicht klar, wie DENON_AVR_ZONE_Parse aufgerufen wird.

Als Workaround könnte ich vermutlich einfach $zonename auf zone2 setzen. Wäre aber nur ein Workaround.

70_DENON_AVR.pm sollte übrigens ein ähnliches Problem haben. Auch dort wird m.E. unit nicht richtig verarbeitet.


Grüßle, Michael


olwaldi

#865
Habe einen Workaround für das verrbleibende hash-Problem gefunden.

Das Problem wird wohl durch das
Dispatch( $hash, "presence present", undef);in Zeile 3561 von 70_DENON_AVR.pm getriggert. Dann werden in 71_DENON_AVR_ZONE.pm beide Variablen $zonehash und $zonename in Zeilen 421ff. NICHT gesetzt, da $msg wohl auf "presence present" steht. Der Code hofft aber auf ein "Z2":-(

Mein Workaround (löst das Problem für meine zone2) ist eben, beide Variablen NICHT auf undef zu setzen, sondern auf
my $return = "unknown";
my $zone = 2;
my $zonehash = $modules{DENON_AVR_ZONE}{defptr}{$name}{2}; #orig undef;
my $zonename = $zonehash->{NAME}; #orig undef;

Letzendlich ist mir unklar, wie der Programmautor die Zonennummer ermitteln will, wenn diese im Dispatch-Aufruf gar nicht auftaucht.

Unabhängig davon gibt es in beiden Denon-Modulen das Attribut unit, das man auf on oder off setzen kann. Einen Effekt davon habe ich nicht gesehen. Hätte etwa erhofft, daß bei "on" die Einheit dB an Lautstärkewerte in der WEBGUI angehängt würde. Passiert aber nicht.

Grüßle, Michael

PS: unit funktioniert doch wie erwarten und schreibt Einheiten hinter Lautstärken, allerdings nicht überall und vor Allem leider die falschen. Daher habe ich's wieder auf off gestellt.