mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
YAMAHA_AVR: more robust volume set commands - part 2
git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@15364 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
715b0d5b5f
commit
a6c6f1bad4
@ -457,19 +457,19 @@ YAMAHA_AVR_Set($@)
|
||||
{
|
||||
my $target_volume;
|
||||
|
||||
if($what eq "volume" and defined($a[2]) and $a[2] =~ /^\d{1,3}(?:\.\d)?$/ and $a[2] >= 0 && $a[2] <= 100)
|
||||
if($what eq "volume" and defined($a[2]) and $a[2] =~ /^\d{1,3}(?:\.\d+)?$/ and $a[2] >= 0 && $a[2] <= 100)
|
||||
{
|
||||
$target_volume = YAMAHA_AVR_volume_rel2abs(int($a[2]));
|
||||
}
|
||||
elsif($what eq "volumeDown" and defined(ReadingsVal($name, "volume", undef)))
|
||||
{
|
||||
$target_volume = YAMAHA_AVR_volume_rel2abs(ReadingsVal($name, "volume", -45) - ((defined($a[2]) and $a[2] =~ /^\d+(?:\.\d)?$/) ? int($a[2]) : AttrVal($hash->{NAME}, "volumeSteps",5)));
|
||||
$target_volume = YAMAHA_AVR_volume_rel2abs(ReadingsVal($name, "volume", -45) - ((defined($a[2]) and $a[2] =~ /^\d+(?:\.\d+)?$/) ? int($a[2]) : AttrVal($hash->{NAME}, "volumeSteps",5)));
|
||||
}
|
||||
elsif($what eq "volumeUp" and defined(ReadingsVal($name, "volume", undef)))
|
||||
{
|
||||
$target_volume = YAMAHA_AVR_volume_rel2abs(ReadingsVal($name, "volume", -45) + ((defined($a[2]) and $a[2] =~ /^\d+(?:\.\d)?$/) ? int($a[2]) : AttrVal($hash->{NAME}, "volumeSteps",5)));
|
||||
$target_volume = YAMAHA_AVR_volume_rel2abs(ReadingsVal($name, "volume", -45) + ((defined($a[2]) and $a[2] =~ /^\d+(?:\.\d+)?$/) ? int($a[2]) : AttrVal($hash->{NAME}, "volumeSteps",5)));
|
||||
}
|
||||
elsif($what eq "volumeStraight" and defined($a[2]) and $a[2] =~ /^-?\d+(?:\.\d)?$/)
|
||||
elsif($what eq "volumeStraight" and defined($a[2]) and $a[2] =~ /^-?\d+(?:\.\d+)?$/)
|
||||
{
|
||||
$target_volume = $a[2];
|
||||
}
|
||||
@ -487,6 +487,9 @@ YAMAHA_AVR_Set($@)
|
||||
$target_volume = -80.5 if(defined($target_volume) and $target_volume < -80.5);
|
||||
$target_volume = 16.5 if(defined($target_volume) and $target_volume > 16.5);
|
||||
|
||||
# ensure $target_volume mod 0.5 == 0
|
||||
$target_volume = int($target_volume / 0.5) * 0.5;
|
||||
|
||||
Log3 $name, 4, "YAMAHA_AVR ($name) - new target volume: $target_volume";
|
||||
|
||||
if(defined($target_volume))
|
||||
|
Loading…
x
Reference in New Issue
Block a user