2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-21 01:46:08 +00:00

70_DENON_AVR: improved soundMode readings (thx Shadow3561)

git-svn-id: https://svn.fhem.de/fhem/trunk@21295 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
delmar 2020-02-27 20:34:11 +00:00
parent 54155b71aa
commit 6c2c966054
2 changed files with 48 additions and 18 deletions

View File

@ -1,5 +1,6 @@
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
# Do not insert empty lines here, update check depends on it.
- change: 70_DENON_AVR: improved soundMode readings (thx Shadow3561)
- bugfix: 21_HEOSMaster: fix rename passwordstore bug
- bugfix: 73_GardenaSmartBridge: fix rename passwordstore bug
- feature: 73_WaterCalculator: New Attribute DecimalPlace

View File

@ -458,7 +458,8 @@ my $DENON_db = {
'SUP03' => 'resolution3',
'SUP04' => 'resolution4',
},
'FRM' => 'firmware',
'FRMAVR' => 'firmware_AVR',
'FRMDTS' => 'firmware_DTS',
'AIS' => {
'FSV' => 'samplingRate',
'FOR' => 'audioFormat',
@ -1544,8 +1545,31 @@ DENON_AVR_Parse(@)
#Einschaltlautstärke
elsif ($msg =~ /^SSVCTZMAPON (.+)/)
{
readingsBulkUpdate($hash, "Volume-Startup", $1);
$return = "Volume-Startup ".$1;
my $mutelevel = $1;
if($1 eq 'LAS')
{
readingsBulkUpdate($hash, "Volume-Startup", "last") if($mutelevel ne "unknown");
$return = "Volume-Startup"."$1";
}
elsif($1 eq 'MUT')
{
readingsBulkUpdate($hash, "Volume-Startup", "mute") if($mutelevel ne "unknown");
$return = "Volume-Startup"."$1";
}
else
{
if (length($mutelevel) == 2)
{
$mutelevel = $mutelevel."";
readingsBulkUpdate($hash, "Volume-Startup", $mutelevel) if($mutelevel ne "unknown");
$return = "Volume-Startup".$mutelevel;
}
}
}
#Volume
elsif ($msg =~ /^MV(.+)/)
@ -1732,8 +1756,8 @@ DENON_AVR_Parse(@)
}
if ($sound ne "unknown")
{
readingsBulkUpdate($hash, "sound", $sound);
$return = "sound ".$sound;
readingsBulkUpdate($hash, "sound_out", $sound);
$return = "sound_out ".$sound;
}
}
#tuner band
@ -2055,8 +2079,13 @@ DENON_AVR_Parse(@)
# }
elsif ($1 eq 'INF') # SSINFFRM 0000-0000-0000-00
{
#Firmware
if ($2 eq "FRM") { # SSINFFRM 0000-0000-0000-00
#Firmware_AVR
if ($2 eq "FRMAVR") { # SSINFFRMAVR 0000-0000-0000-00
my $status = DENON_GetValue('SS', $1, $2);
readingsBulkUpdate($hash, $status, $3) if($status ne "unknown");
$return = $status." ".$3;
}
if ($2 eq "FRMDTS") { # SSINFFRMDTS 0.00.00.00
my $status = DENON_GetValue('SS', $1, $2);
readingsBulkUpdate($hash, $status, $3) if($status ne "unknown");
$return = $status." ".$3;
@ -2074,12 +2103,12 @@ DENON_AVR_Parse(@)
if ($2 eq 'SIG')
{
my $signal = DENON_GetValue('SS', $cmd1, $1, $2, $value);
readingsBulkUpdate($hash, "signal", $signal) if($signal ne "unknown");
$return = "signal ".$signal;
readingsBulkUpdate($hash, "sound_signal_in", $signal) if($signal ne "unknown");
$return = "sound_signal_in ".$signal;
if($signal =~ /^na (.+)/)
{
my $sound = ReadingsVal( $name, "sound", "?" );
Log3 $name, 2, "DENON_AVR $name: unknown input signal <$1>, sound <$sound>.";
my $sound = ReadingsVal( $name, "sound_out", "?" );
Log3 $name, 2, "DENON_AVR $name: unknown input signal <$1>, sound_out <$sound>.";
}
}
# samplingRate, audioFormat
@ -2219,7 +2248,7 @@ DENON_AVR_Get($@)
return "argument is missing" if (int(@a) < 2 && int(@a) > 3);
if ($a[1] =~ /^(power|volumeStraight|volume|mute|eco|display|input|disconnect|reconnect|remotecontrol|autoStandby|sound|statusRequest|mediaInfo|surroundMode|zone)$/)
if ($a[1] =~ /^(power|volumeStraight|volume|mute|eco|display|input|disconnect|reconnect|remotecontrol|autoStandby|sound_out|statusRequest|mediaInfo|surroundMode|zone)$/)
{
if ($a[1] eq "statusRequest")
{
@ -2288,7 +2317,7 @@ DENON_AVR_Get($@)
push(@inputs, $key);
}
}
return "Unknown argument $a[1], choose one of power volumeStraight volume mute eco display input disconnect reconnect remotecontrol autoStandby sound statusRequest mediaInfo surroundMode zone:2,3,4";
return "Unknown argument $a[1], choose one of power volumeStraight volume mute eco display input disconnect reconnect remotecontrol autoStandby sound_out statusRequest mediaInfo surroundMode zone:2,3,4";
}
}