Modul für Denon (Marantz) AV Receiver

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

Vorheriges Thema - Nächstes Thema

matze1999

ja, hab ich verstanden.

2022.10.20 21:36:30 3: MQTT2_DEVICE set MQTT2_DVES_15F0F8 on
2022.10.20 21:36:30 1: PERL WARNING: Argument "AUTO" isn't numeric in division (/) at ./FHEM/70_DENON_AVR.pm line 1805.
2022.10.20 21:36:30 1: stacktrace:
2022.10.20 21:36:30 1:     main::__ANON__                      called by ./FHEM/70_DENON_AVR.pm (1805)
2022.10.20 21:36:30 1:     main::DENON_AVR_Parse               called by ./FHEM/70_DENON_AVR.pm (1589)
2022.10.20 21:36:30 1:     main::DENON_AVR_Read                called by fhem.pl (3961)
2022.10.20 21:36:30 1:     main::CallFn                        called by fhem.pl (782)
2022.10.20 21:36:40 3: MQTT2_DEVICE set MQTT2_DVES_15F0F8 on
2022.10.20 21:36:40 1: PERL WARNING: Argument "AUTO" isn't numeric in division (/) at ./FHEM/70_DENON_AVR.pm line 1805.
2022.10.20 21:36:40 1: stacktrace:
2022.10.20 21:36:40 1:     main::__ANON__                      called by ./FHEM/70_DENON_AVR.pm (1805)
2022.10.20 21:36:40 1:     main::DENON_AVR_Parse               called by ./FHEM/70_DENON_AVR.pm (1589)
2022.10.20 21:36:40 1:     main::DENON_AVR_Read                called by fhem.pl (3961)
2022.10.20 21:36:40 1:     main::CallFn                        called by fhem.pl (782)


Es handelt sich um zwei AVR, interessant ist evtl. der Zusammenhang mit "MQTT2_DVES_15F0F8", das sind eine Rückwärtigen Lautsprecher, die nur angeschaltet werden, wenn es dolby usw. als Ausgabe gibt, aber nur bei einem der beiden AVR.

matze1999

MadMax-FHEM

Dass es MQTT2 ist ist nebensache (denke ich).
Ich denke auch, das mit den Lautsprechern generell...

Ich denke es ist eben der Mode des AVR (deshalb ja die Lautsprecher, die werden aber ja nicht vom AVR angeschaltet also nicht direkt, ist aber so denke ich unabhängig), der gemeldet/abgefragt wird und halt nicht korrekt "interpretiert" werden kann...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

matze1999

ja, das meinte ich, die Lautsprecher sind nur der Indikator, dass sich am Modus was geändert hat.

matze1999

matze1999

#753
Hallo, kann das mit diesem Reading zusammenhängen:

2022-10-21 12:38:50   sound_out       Multichannel Stereo
2022-10-21 14:26:32   sound_out       Dolby Surround


Weil es "Multichannel Stereo" und  "Dolby Surround" in 70_Denon_AVR.pm nicht gibt?

'MS-set_sound_out' => {                    #to set sound_out
'Pure_Direct' => 'PURE DIRECT',
'Stereo' => 'STEREO',
'Auto' => 'AUTO',
'Dolby_Digital' => 'DOLBY DIGITAL',
'DTS_Surround' => 'DTS SURROUND',
'Auro3D' => 'AURO3D',
'Auro2D_Surround' => 'AURO2DSURR',
'Multichannel_Stereo' => 'MCH STEREO',
'Wide_Screen' => 'WIDE SCREEN',
'Super_Stadium' => 'SUPER STADIUM',
'Rock_Arena' => 'ROCK ARENA',
'Jazz_Club' => 'JAZZ CLUB',
'Classic_Concert' => 'CLASSIC CONCERT',
'Mono_Movie' => 'MONO MOVIE',
'Matrix' => 'MATRIX',
'Video_Game' => 'VIDEO GAME',
'Dolby_Audio_Surround' => 'DOLBY AUDIO-DSUR',
'Dolby_Audio_Digital' => 'DOLBY AUDIO-DD',
'Dolby_Audio_Digital-Surround' => 'DOLBY AUDIO-DD+DSUR',
'Dolby_Audio_Digital-Neural:X' => 'DOLBY AUDIO-DD+NEURAL:X',
'Neural:X' => 'NEURAL:X',
'Virtual' => 'VIRTUAL',
},


matze1999

olwaldi

Glaube ich eher nicht, da Du ja "sinnvolle" Werte kriegst. Irgendwo wird der String Auto falsch verwendet, und die Zeilennummer nennt Dir fhem ja. Jetzt muß man irgendwie erraten, woher das Auto herkommt und wie das richtig verarbeitet werden sollte. Vielleicht fehlt irgendein elseif im Code vorher... Letztendlich darf man hier mutig sein und das 70_DENON_AVR.pm vorsichtig anpassen. Aber danach muß fhem z. B. rebootet werden.

Ich habe für mich z. B. noch das devstateicon umdefiniert, da ich lieber dB-Werte angezeigt haben möchte. Das geht sogar ganz ohne Änderung an 70_DENON_AVR.pm nur durch Anpassen dieses Attributs. fhem ist da schon ein tolles System.

Grüßle, Michael


MadMax-FHEM

Nicht vergessen bei global exclude_from_update für die 70_DENON_AVR.pm zu setzen, sonst ist die Änderung nach einem Update wieder weg ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

olwaldi

Stimmt, ist bei mir schon gesetzt und sollte natürlich nicht vergessen werden.

Grüßle, Michael



matze1999

Hallo,, hab es mal mit verbose 5 probiert, aber ich bin zu wenig in der Materie um irgendwas zu finden:

2022.10.24 09:38:33 4: DENON_AVR Denon: parsing <MVMAX 60> to <volumeMax  60>.
2022.10.24 09:38:33 4: DENON_AVR Denon: parsing <MSMCH STEREO> to <sound_out Multichannel Stereo>.
2022.10.24 09:38:33 5: DENON_AVR Denon: read.
2022.10.24 09:38:33 4: DENON_AVR Denon: parsing <SDAUTO> to <inputSound auto>.
2022.10.24 09:38:33 5: DENON_AVR Denon: read.
2022.10.24 09:38:33 1: PERL WARNING: Argument "AUTO" isn't numeric in division (/) at ./FHEM/70_DENON_AVR.pm line 1805.
2022.10.24 09:38:33 1: stacktrace:
2022.10.24 09:38:33 1:     main::__ANON__                      called by ./FHEM/70_DENON_AVR.pm (1805)
2022.10.24 09:38:33 1:     main::DENON_AVR_Parse               called by ./FHEM/70_DENON_AVR.pm (1589)
2022.10.24 09:38:33 1:     main::DENON_AVR_Read                called by fhem.pl (3961)
2022.10.24 09:38:33 1:     main::CallFn                        called by fhem.pl (782)
2022.10.24 09:38:33 4: DENON_AVR Denon: parsing <PSDRC AUTO> to <dynamicCompression -50>.
2022.10.24 09:38:33 5: DENON_AVR Denon: read.
2022.10.24 09:38:33 4: DENON_AVR Denon: parsing <DCAUTO> to <digitalInput auto>.
2022.10.24 09:38:33 5: DENON_AVR Denon: read.
2022.10.24 09:38:33 4: DENON_AVR Denon: parsing <PSMULTEQ:AUDYSSEY> to <multEQ reference>.
2022.10.24 09:38:33 5: DENON_AVR Denon: read.
2022.10.24 09:38:33 4: DENON_AVR Denon: parsing <PSDYNEQ ON> to <dynamicEQ on>.
2022.10.24 09:38:33 5: DENON_AVR Denon: read.
2022.10.24 09:38:33 4: DENON_AVR Denon: parsing <PSDYNVOL MED> to <dynamicVolume medium>.
2022.10.24 09:38:33 5: DENON_AVR Denon: read.
2022.10.24 09:38:33 4: DENON_AVR Denon: parsing <PSLFE 00> to <lowFrequencyEffects 0>.
2022.10.24 09:38:33 5: DENON_AVR Denon: read.
2022.10.24 09:38:33 4: DENON_AVR Denon: parsing <PSBAS 50> to <bass 0>.
2022.10.24 09:38:33 5: DENON_AVR Denon: read.
2022.10.24 09:38:33 4: DENON_AVR Denon: parsing <PSTRE 50> to <treble 0>.
2022.10.24 09:38:33 5: DENON_AVR Denon: read.
2022.10.24 09:38:33 4: DENON_AVR Denon: parsing <PSTONE CTRL OFF> to <toneControl off>.
2022.10.24 09:38:33 5: DENON_AVR Denon: read.


das
<SDAUTO> to <inputSound auto>.

sollte meiner Meinung nach in Zeile 1805 von 70_DENON_AVR.pm keine Rolle spielen:

elsif($1 eq "DRC")
{
my $status = DENON_GetValue('PS', $1, $1);
my $value = DENON_GetValue('PS', $1, $2);
readingsBulkUpdate($hash, $status, $value) if($status ne "unknown" || $value ne "unknown");
$return = $status." ".$value;
}


aber evtl. kann jemand anderes damit etwas anfangen.

matze1999

olwaldi

Der DRC-Part ist von mir und scheint auch bei Dir zu tun. Trotzdem würde ich Deinen Log so interpretieren, daß irgendwieso das PSDRC AUTO nicht richtig erkannt wird:
2022.10.24 09:38:33 5: DENON_AVR Denon: read.
2022.10.24 09:38:33 1: PERL WARNING: Argument "AUTO" isn't numeric in division (/) at ./FHEM/70_DENON_AVR.pm line 1805.
2022.10.24 09:38:33 1: stacktrace:
2022.10.24 09:38:33 1:     main::__ANON__                      called by ./FHEM/70_DENON_AVR.pm (1805)
2022.10.24 09:38:33 1:     main::DENON_AVR_Parse               called by ./FHEM/70_DENON_AVR.pm (1589)
2022.10.24 09:38:33 1:     main::DENON_AVR_Read                called by fhem.pl (3961)
2022.10.24 09:38:33 1:     main::CallFn                        called by fhem.pl (782)
2022.10.24 09:38:33 4: DENON_AVR Denon: parsing <PSDRC AUTO> to <dynamicCompression -50>.

Die read-Meldung kommt aus Zeile 1568, danach wird in Zeile 1605 DENON_AVR_Parse aufgerufen (dort kommt es vermutlich zum Fehler), trotzdem wird erfolgreich geparset, was die Meldung aus Zeile 1606 bedeutet.

Bei mir tut derselbe Code ohne diese Fehlermeldung, und ich sehe auch das Reading dynamicCompression auf auto im DENON Device.

Mein fhem läuft auf einem Rasperry pi3 unter Bullseye.

Grüßle, Michael

matze1999

#759
Hallo,
ich hab mal alle Möglichkeiten durchprobiert (Gering, mittel,hoch, automatisch):

2022.10.25 10:22:49 1: PERL WARNING: Argument "LOW" isn't numeric in division (/) at ./FHEM/70_DENON_AVR.pm line 1805.
2022.10.25 10:22:49 1: stacktrace:
2022.10.25 10:22:49 1:     main::__ANON__                      called by ./FHEM/70_DENON_AVR.pm (1805)
2022.10.25 10:22:49 1:     main::DENON_AVR_Parse               called by ./FHEM/70_DENON_AVR.pm (1589)
2022.10.25 10:22:49 1:     main::DENON_AVR_Read                called by fhem.pl (3961)
2022.10.25 10:22:49 1:     main::CallFn                        called by fhem.pl (782)
2022.10.25 10:24:18 1: PERL WARNING: Argument "MID" isn't numeric in division (/) at ./FHEM/70_DENON_AVR.pm line 1805.
2022.10.25 10:24:18 1: stacktrace:
2022.10.25 10:24:18 1:     main::__ANON__                      called by ./FHEM/70_DENON_AVR.pm (1805)
2022.10.25 10:24:18 1:     main::DENON_AVR_Parse               called by ./FHEM/70_DENON_AVR.pm (1589)
2022.10.25 10:24:18 1:     main::DENON_AVR_Read                called by fhem.pl (3961)
2022.10.25 10:24:18 1:     main::CallFn                        called by fhem.pl (782)
2022.10.25 10:25:15 1: PERL WARNING: Argument "HI0" isn't numeric in division (/) at ./FHEM/70_DENON_AVR.pm line 1805.
2022.10.25 10:25:15 1: stacktrace:
2022.10.25 10:25:15 1:     main::__ANON__                      called by ./FHEM/70_DENON_AVR.pm (1805)
2022.10.25 10:25:15 1:     main::DENON_AVR_Parse               called by ./FHEM/70_DENON_AVR.pm (1589)
2022.10.25 10:25:15 1:     main::DENON_AVR_Read                called by fhem.pl (3961)
2022.10.25 10:25:15 1:     main::CallFn                        called by fhem.pl (782)
2022.10.25 10:26:10 1: PERL WARNING: Argument "AUTO" isn't numeric in division (/) at ./FHEM/70_DENON_AVR.pm line 1805.
2022.10.25 10:26:10 1: stacktrace:
2022.10.25 10:26:10 1:     main::__ANON__                      called by ./FHEM/70_DENON_AVR.pm (1805)
2022.10.25 10:26:10 1:     main::DENON_AVR_Parse               called by ./FHEM/70_DENON_AVR.pm (1589)
2022.10.25 10:26:10 1:     main::DENON_AVR_Read                called by fhem.pl (3961)
2022.10.25 10:26:10 1:     main::CallFn                        called by fhem.pl (782)


Ich denke das funktioniert, was nicht stimmt, dass dieser Wert in einer Formel auftaucht isn't numeric in division (/)

Mir ist noch aufgefallen, dass das immer gleich ist "<dynamicCompression -50", egal was ich einstelle:

2022.10.25 10:36:03 4: DENON_AVR Denon: parsing <PSDRC AUTO> to <dynamicCompression -50>.
2022.10.25 10:36:48 4: DENON_AVR Denon: parsing <PSDRC LOW> to <dynamicCompression -50>.
2022.10.25 10:37:09 4: DENON_AVR Denon: parsing <PSDRC MID> to <dynamicCompression -50>.
2022.10.25 10:37:20 4: DENON_AVR Denon: parsing <PSDRC HI> to <dynamicCompression -50>.

ausser bei "Aus"

DENON_AVR Denon: parsing <PSDRC OFF> to <dynamicCompression off>

Da kommt auch die Warnung nicht.


Mein fhem läuft ebenfalls unter bullseye, aber auf einen pi4.

matze1999

olwaldi

Das sieht dann aber so aus, als wenn Du den DRC-Teil für die Denon-Tabelle nicht mit übernommen hättest:
'PS' => {                     #Sound-Parameter
'TONE CTRL' => 'toneControl',
'DRC'       => {
'DRC' => 'dynamicCompression',
'AUTO' => 'auto',
'LOW' => 'low',
'MID' => 'mid',
'HI' => 'high',
'OFF' => 'off'
},

Warum Du HI0 erhälst statt HI ist mir allerdings unklar, aber vielleicht stimmt die Denon-Doku hier nicht. Ausprobiert habe ich hier nix, nur AUTO. Bei mir ist der AVR ein Denon X6400H, vielleicht melden andere Denons andere Werte?

BTW, ein
{ReadingsVal("Denon", "dynamicCompression", "unknown")}
meines Denon devices liefert bei mir den richtigen Wert auto (kleingeschrieben).


Grüßle, Michael

matze1999

das sieht bei mir ganz anders aus, obwohl ich ein update
70_DENON_AVR.pm        25787 2022-03-06 17:06:35Z delmar

gemacht hatte:

'PS' => {                     #Sound-Parameter
                'TONE CTRL' => 'toneControl',
                'DRC'       => 'dynamicCompression',
                'LFC'       => 'audysseyLFC',
                'CNTAMT'        => {
                        'CNTAMT' => 'audysseyLFCAmount',
                        '1' => '1',
                        '2' => '2',
                        '3' => '3',
                        '4' => '4',
                        '5' => '5',
                        '6' => '6',
                        '7' => '7',
                },


wo kann man denn die aktuelle 70_DENON_AVR.pm herunterladen?

matze1999

olwaldi

Ich bin nicht der Maintainer von 70_DENON_AVR.pm und poste meine Änderungen nur hier. Ein paar Posts weiter oben habe ich "meine" Version hochgeladen. Ich hoffe, daß die irgendwann ins Repository gemerget werden wird.

Grüßle, Michael

matze1999

Zitat von: olwaldi am 25 Oktober 2022, 12:35:59
Ich bin nicht der Maintainer

alles klar, Danke trotrzdem für deine Hilfe, ich hab mal die Zeilen in "meine" übernommen, und das ist das Ergebns:

2022.10.25 12:46:16 5: DENON_AVR Denon: read.
2022.10.25 12:46:16 1: PERL WARNING: Argument "MID" isn't numeric in division (/) at ./FHEM/70_DENON_AVR.pm line 1812.
2022.10.25 12:46:16 1: stacktrace:
2022.10.25 12:46:16 1:     main::__ANON__                      called by ./FHEM/70_DENON_AVR.pm (1812)
2022.10.25 12:46:16 1:     main::DENON_AVR_Parse               called by ./FHEM/70_DENON_AVR.pm (1596)
2022.10.25 12:46:16 1:     main::DENON_AVR_Read                called by fhem.pl (3961)
2022.10.25 12:46:16 1:     main::CallFn                        called by fhem.pl (782)
2022.10.25 12:46:16 4: DENON_AVR Denon: parsing <PSDRC MID> to <HASH(0x5570f19eb8) -50>.
2022.10.25 12:46:17 5: DENON_AVR Denon: read.
2022.10.25 12:46:17 1: PERL WARNING: Argument "HI0" isn't numeric in division (/) at ./FHEM/70_DENON_AVR.pm line 1812.
2022.10.25 12:46:17 1: stacktrace:
2022.10.25 12:46:17 1:     main::__ANON__                      called by ./FHEM/70_DENON_AVR.pm (1812)
2022.10.25 12:46:17 1:     main::DENON_AVR_Parse               called by ./FHEM/70_DENON_AVR.pm (1596)
2022.10.25 12:46:17 1:     main::DENON_AVR_Read                called by fhem.pl (3961)
2022.10.25 12:46:17 1:     main::CallFn                        called by fhem.pl (782)
2022.10.25 12:46:17 4: DENON_AVR Denon: parsing <PSDRC HI> to <HASH(0x5570f19eb8) -50>.
2022.10.25 12:46:18 5: DENON_AVR Denon: read.
2022.10.25 12:46:18 1: PERL WARNING: Argument "MID" isn't numeric in division (/) at ./FHEM/70_DENON_AVR.pm line 1812.
2022.10.25 12:46:18 1: stacktrace:
2022.10.25 12:46:18 1:     main::__ANON__                      called by ./FHEM/70_DENON_AVR.pm (1812)
2022.10.25 12:46:18 1:     main::DENON_AVR_Parse               called by ./FHEM/70_DENON_AVR.pm (1596)
2022.10.25 12:46:18 1:     main::DENON_AVR_Read                called by fhem.pl (3961)
2022.10.25 12:46:18 1:     main::CallFn                        called by fhem.pl (782)
2022.10.25 12:46:18 4: DENON_AVR Denon: parsing <PSDRC MID> to <HASH(0x5570f19eb8) -50>.


matze1999

olwaldi

Daß HI0 bei Dir nicht funktioniert, ist verständlich, schließlich mappe ich nur HI. Aber wieso MID nicht tut, ist mir schleierhaft. Ich habe den Code allerdings nur per "Patternmatching" analog zu z.B. DYNVOL geschrieben auf Basis der Denon-Doku (siehe angehängten Screenshot) und nur mit AUTO getestet.

Grüßle, Michael