2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-22 08:11:44 +00:00

70_ONKYO_AVR: fix channels for zones

git-svn-id: https://svn.fhem.de/fhem/trunk@14168 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
jpawlowski 2017-05-02 15:55:55 +00:00
parent eeaf2479ef
commit 3faf8b1e48
2 changed files with 69 additions and 40 deletions

View File

@ -460,11 +460,13 @@ sub ONKYO_AVR_Set($$$) {
else { else {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 5;set $name channel " . @$a[2]; my $ret = fhem "sleep 5;set $name channel " . @$a[2];
$return .= $ret if ($ret);
} }
elsif ( $hash->{INPUT} ne "2B" ) { elsif ( $hash->{INPUT} ne "2B" ) {
$return = ONKYO_AVR_SendCommand( $hash, "input", "2B" ); $return = ONKYO_AVR_SendCommand( $hash, "input", "2B" );
$return .= fhem "sleep 1;set $name channel " . @$a[2]; my $ret = fhem "sleep 1;set $name channel " . @$a[2];
$return .= $ret if ($ret);
} }
elsif ( ReadingsVal( $name, "channel", "" ) ne @$a[2] elsif ( ReadingsVal( $name, "channel", "" ) ne @$a[2]
|| ( defined( @$a[3] ) && defined( @$a[4] ) ) ) || ( defined( @$a[3] ) && defined( @$a[4] ) ) )
@ -541,11 +543,13 @@ sub ONKYO_AVR_Set($$$) {
elsif ( lc( @$a[1] ) eq "channeldown" ) { elsif ( lc( @$a[1] ) eq "channeldown" ) {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 5;set $name channelDown"; my $ret = fhem "sleep 5;set $name channelDown";
$return .= $ret if ($ret);
} }
elsif ( $hash->{INPUT} ne "2B" ) { elsif ( $hash->{INPUT} ne "2B" ) {
$return = ONKYO_AVR_SendCommand( $hash, "input", "2B" ); $return = ONKYO_AVR_SendCommand( $hash, "input", "2B" );
$return .= fhem "sleep 1;set $name channelDown"; my $ret = fhem "sleep 1;set $name channelDown";
$return .= $ret if ($ret);
} }
else { else {
Log3 $name, 3, "ONKYO_AVR set $name " . @$a[1]; Log3 $name, 3, "ONKYO_AVR set $name " . @$a[1];
@ -557,11 +561,13 @@ sub ONKYO_AVR_Set($$$) {
elsif ( lc( @$a[1] ) eq "channelup" ) { elsif ( lc( @$a[1] ) eq "channelup" ) {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 5;set $name channelUp"; my $ret = fhem "sleep 5;set $name channelUp";
$return .= $ret if ($ret);
} }
elsif ( $hash->{INPUT} ne "2B" ) { elsif ( $hash->{INPUT} ne "2B" ) {
$return = ONKYO_AVR_SendCommand( $hash, "input", "2B" ); $return = ONKYO_AVR_SendCommand( $hash, "input", "2B" );
$return .= fhem "sleep 1;set $name channelUp"; my $ret = fhem "sleep 1;set $name channelUp";
$return .= $ret if ($ret);
} }
else { else {
Log3 $name, 3, "ONKYO_AVR set $name " . @$a[1]; Log3 $name, 3, "ONKYO_AVR set $name " . @$a[1];
@ -597,11 +603,13 @@ sub ONKYO_AVR_Set($$$) {
else { else {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 5;set $name " . @$a[1] . " " . @$a[2]; my $ret = fhem "sleep 5;set $name " . @$a[1] . " " . @$a[2];
$return .= $ret if ($ret);
} }
elsif ( $hash->{INPUT} ne "2B" ) { elsif ( $hash->{INPUT} ne "2B" ) {
$return = ONKYO_AVR_SendCommand( $hash, "input", "2B" ); $return = ONKYO_AVR_SendCommand( $hash, "input", "2B" );
$return .= fhem "sleep 5;set $name " . @$a[1] . " " . @$a[2]; my $ret = fhem "sleep 5;set $name " . @$a[1] . " " . @$a[2];
$return .= $ret if ($ret);
} }
elsif ( @$a[2] =~ /^\d*$/ ) { elsif ( @$a[2] =~ /^\d*$/ ) {
Log3 $name, 3, "ONKYO_AVR set $name " . @$a[1] . " " . @$a[2]; Log3 $name, 3, "ONKYO_AVR set $name " . @$a[1] . " " . @$a[2];
@ -625,11 +633,13 @@ sub ONKYO_AVR_Set($$$) {
else { else {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 5;set $name preset " . @$a[2]; my $ret = fhem "sleep 5;set $name preset " . @$a[2];
$return .= $ret if ($ret);
} }
elsif ( $hash->{INPUT} ne "24" && $hash->{INPUT} ne "25" ) { elsif ( $hash->{INPUT} ne "24" && $hash->{INPUT} ne "25" ) {
$return = ONKYO_AVR_SendCommand( $hash, "input", "24" ); $return = ONKYO_AVR_SendCommand( $hash, "input", "24" );
$return .= fhem "sleep 1;set $name preset " . @$a[2]; my $ret = fhem "sleep 1;set $name preset " . @$a[2];
$return .= $ret if ($ret);
} }
elsif ( lc( @$a[2] ) eq "up" ) { elsif ( lc( @$a[2] ) eq "up" ) {
Log3 $name, 3, "ONKYO_AVR set $name " . @$a[1] . " " . @$a[2]; Log3 $name, 3, "ONKYO_AVR set $name " . @$a[1] . " " . @$a[2];
@ -677,11 +687,13 @@ sub ONKYO_AVR_Set($$$) {
elsif ( lc( @$a[1] ) eq "presetdown" ) { elsif ( lc( @$a[1] ) eq "presetdown" ) {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 5;set $name presetDown"; my $ret = fhem "sleep 5;set $name presetDown";
$return .= $ret if ($ret);
} }
elsif ( $hash->{INPUT} ne "24" && $hash->{INPUT} ne "25" ) { elsif ( $hash->{INPUT} ne "24" && $hash->{INPUT} ne "25" ) {
$return = ONKYO_AVR_SendCommand( $hash, "input", "24" ); $return = ONKYO_AVR_SendCommand( $hash, "input", "24" );
$return .= fhem "sleep 1;set $name presetDown"; my $ret = fhem "sleep 1;set $name presetDown";
$return .= $ret if ($ret);
} }
else { else {
Log3 $name, 3, "ONKYO_AVR set $name " . @$a[1]; Log3 $name, 3, "ONKYO_AVR set $name " . @$a[1];
@ -693,11 +705,13 @@ sub ONKYO_AVR_Set($$$) {
elsif ( lc( @$a[1] ) eq "presetup" ) { elsif ( lc( @$a[1] ) eq "presetup" ) {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 5;set $name presetUp"; my $ret = fhem "sleep 5;set $name presetUp";
$return .= $ret if ($ret);
} }
elsif ( $hash->{INPUT} ne "24" && $hash->{INPUT} ne "25" ) { elsif ( $hash->{INPUT} ne "24" && $hash->{INPUT} ne "25" ) {
$return = ONKYO_AVR_SendCommand( $hash, "input", "24" ); $return = ONKYO_AVR_SendCommand( $hash, "input", "24" );
$return .= fhem "sleep 1;set $name presetUp"; my $ret = fhem "sleep 1;set $name presetUp";
$return .= $ret if ($ret);
} }
else { else {
Log3 $name, 3, "ONKYO_AVR set $name " . @$a[1]; Log3 $name, 3, "ONKYO_AVR set $name " . @$a[1];

View File

@ -431,11 +431,13 @@ sub ONKYO_AVR_ZONE_Set($$$) {
else { else {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 5;set $name channel " . @$a[2]; my $ret = fhem "sleep 5;set $name channel " . @$a[2];
$return .= $ret if ($ret);
} }
elsif ( $hash->{INPUT} ne "2B" ) { elsif ( $hash->{INPUT} ne "2B" ) {
$return = ONKYO_AVR_ZONE_SendCommand( $hash, "input", "2B" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "input", "2B" );
$return .= fhem "sleep 1;set $name channel " . @$a[2]; my $ret = fhem "sleep 1;set $name channel " . @$a[2];
$return .= $ret if ($ret);
} }
elsif ( ReadingsVal( $name, "channel", "" ) ne @$a[2] elsif ( ReadingsVal( $name, "channel", "" ) ne @$a[2]
|| ( defined( @$a[3] ) && defined( @$a[4] ) ) ) || ( defined( @$a[3] ) && defined( @$a[4] ) ) )
@ -445,8 +447,8 @@ sub ONKYO_AVR_ZONE_Set($$$) {
my $channelname = @$a[2]; my $channelname = @$a[2];
if ( if (
defined( $hash->{helper}{receiver} ) defined( $IOhash->{helper}{receiver} )
&& ref( $hash->{helper}{receiver} ) eq "HASH" && ref( $IOhash->{helper}{receiver} ) eq "HASH"
&& defined( && defined(
$IOhash->{helper}{receiver}{device}{netservicelist} $IOhash->{helper}{receiver}{device}{netservicelist}
{count} {count}
@ -489,7 +491,6 @@ sub ONKYO_AVR_ZONE_Set($$$) {
"1", "net-service" "1", "net-service"
) )
); );
$servicename = $channels->{$channelname} $servicename = $channels->{$channelname}
if ( defined( $channels->{$channelname} ) ); if ( defined( $channels->{$channelname} ) );
} }
@ -503,10 +504,9 @@ sub ONKYO_AVR_ZONE_Set($$$) {
$servicename .= "0" if ( !defined( @$a[3] ) ); $servicename .= "0" if ( !defined( @$a[3] ) );
$servicename .= "1" . @$a[3] if ( defined( @$a[3] ) ); $servicename .= "1" . @$a[3] if ( defined( @$a[3] ) );
$servicename .= @$a[4] if ( defined( @$a[4] ) ); $servicename .= @$a[4] if ( defined( @$a[4] ) );
Debug "net-service $servicename";
$return = $return =
ONKYO_AVR_ZONE_SendCommand( $hash, "net-service", ONKYO_AVR_SendCommand( $IOhash, "net-service", $servicename );
$servicename );
} }
} }
} }
@ -515,11 +515,13 @@ sub ONKYO_AVR_ZONE_Set($$$) {
elsif ( lc( @$a[1] ) eq "channeldown" ) { elsif ( lc( @$a[1] ) eq "channeldown" ) {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 5;set $name channelDown"; my $ret = fhem "sleep 5;set $name channelDown";
$return .= $ret if ($ret);
} }
elsif ( $hash->{INPUT} ne "2B" ) { elsif ( $hash->{INPUT} ne "2B" ) {
$return = ONKYO_AVR_ZONE_SendCommand( $hash, "input", "2B" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "input", "2B" );
$return .= fhem "sleep 1;set $name channelDown"; my $ret = fhem "sleep 1;set $name channelDown";
$return .= $ret if ($ret);
} }
else { else {
Log3 $name, 3, "ONKYO_AVR_ZONE set $name " . @$a[1]; Log3 $name, 3, "ONKYO_AVR_ZONE set $name " . @$a[1];
@ -531,11 +533,13 @@ sub ONKYO_AVR_ZONE_Set($$$) {
elsif ( lc( @$a[1] ) eq "channelup" ) { elsif ( lc( @$a[1] ) eq "channelup" ) {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 5;set $name channelUp"; my $ret = fhem "sleep 5;set $name channelUp";
$return .= $ret if ($ret);
} }
elsif ( $hash->{INPUT} ne "2B" ) { elsif ( $hash->{INPUT} ne "2B" ) {
$return = ONKYO_AVR_ZONE_SendCommand( $hash, "input", "2B" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "input", "2B" );
$return .= fhem "sleep 1;set $name channelUp"; my $ret = fhem "sleep 1;set $name channelUp";
$return .= $ret if ($ret);
} }
else { else {
Log3 $name, 3, "ONKYO_AVR_ZONE set $name " . @$a[1]; Log3 $name, 3, "ONKYO_AVR_ZONE set $name " . @$a[1];
@ -570,16 +574,18 @@ sub ONKYO_AVR_ZONE_Set($$$) {
} }
else { else {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 5;set $name " . @$a[1] . " " . @$a[2]; my $ret = fhem "sleep 5;set $name " . @$a[1] . " " . @$a[2];
$return .= $ret if ($ret);
} }
elsif ( $hash->{INPUT} ne "2B" ) { elsif ( $hash->{INPUT} ne "2B" ) {
$return = ONKYO_AVR_SendCommand( $hash, "input", "2B" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "input", "2B" );
$return .= fhem "sleep 5;set $name " . @$a[1] . " " . @$a[2]; my $ret = fhem "sleep 5;set $name " . @$a[1] . " " . @$a[2];
$return .= $ret if ($ret);
} }
elsif ( @$a[2] =~ /^\d*$/ ) { elsif ( @$a[2] =~ /^\d*$/ ) {
Log3 $name, 3, "ONKYO_AVR set $name " . @$a[1] . " " . @$a[2]; Log3 $name, 3, "ONKYO_AVR set $name " . @$a[1] . " " . @$a[2];
$return = ONKYO_AVR_SendCommand( $return = ONKYO_AVR_ZONE_SendCommand(
$hash, $hash,
lc( @$a[1] ), lc( @$a[1] ),
ONKYO_AVR_dec2hex( @$a[2] ) ONKYO_AVR_dec2hex( @$a[2] )
@ -599,11 +605,13 @@ sub ONKYO_AVR_ZONE_Set($$$) {
else { else {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 5;set $name preset " . @$a[2]; my $ret = fhem "sleep 5;set $name preset " . @$a[2];
$return .= $ret if ($ret);
} }
elsif ( $hash->{INPUT} ne "24" && $hash->{INPUT} ne "25" ) { elsif ( $hash->{INPUT} ne "24" && $hash->{INPUT} ne "25" ) {
$return = ONKYO_AVR_ZONE_SendCommand( $hash, "input", "24" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "input", "24" );
$return .= fhem "sleep 1;set $name preset " . @$a[2]; my $ret = fhem "sleep 1;set $name preset " . @$a[2];
$return .= $ret if ($ret);
} }
elsif ( lc( @$a[2] ) eq "up" ) { elsif ( lc( @$a[2] ) eq "up" ) {
Log3 $name, 3, Log3 $name, 3,
@ -656,11 +664,13 @@ sub ONKYO_AVR_ZONE_Set($$$) {
elsif ( lc( @$a[1] ) eq "presetdown" ) { elsif ( lc( @$a[1] ) eq "presetdown" ) {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 5;set $name presetDown"; my $ret = fhem "sleep 5;set $name presetDown";
$return .= $ret if ($ret);
} }
elsif ( $hash->{INPUT} ne "24" && $hash->{INPUT} ne "25" ) { elsif ( $hash->{INPUT} ne "24" && $hash->{INPUT} ne "25" ) {
$return = ONKYO_AVR_ZONE_SendCommand( $hash, "input", "24" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "input", "24" );
$return .= fhem "sleep 1;set $name presetDown"; my $ret = fhem "sleep 1;set $name presetDown";
$return .= $ret if ($ret);
} }
else { else {
Log3 $name, 3, "ONKYO_AVR_ZONE set $name " . @$a[1]; Log3 $name, 3, "ONKYO_AVR_ZONE set $name " . @$a[1];
@ -672,11 +682,13 @@ sub ONKYO_AVR_ZONE_Set($$$) {
elsif ( lc( @$a[1] ) eq "presetup" ) { elsif ( lc( @$a[1] ) eq "presetup" ) {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 5;set $name presetUp"; my $ret = fhem "sleep 5;set $name presetUp";
$return .= $ret if ($ret);
} }
elsif ( $hash->{INPUT} ne "24" && $hash->{INPUT} ne "25" ) { elsif ( $hash->{INPUT} ne "24" && $hash->{INPUT} ne "25" ) {
$return = ONKYO_AVR_ZONE_SendCommand( $hash, "input", "24" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "input", "24" );
$return .= fhem "sleep 1;set $name presetUp"; my $ret = fhem "sleep 1;set $name presetUp";
$return .= $ret if ($ret);
} }
else { else {
Log3 $name, 3, "ONKYO_AVR_ZONE set $name " . @$a[1]; Log3 $name, 3, "ONKYO_AVR_ZONE set $name " . @$a[1];
@ -1049,7 +1061,8 @@ sub ONKYO_AVR_ZONE_Set($$$) {
else { else {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 2;set $name input " . @$a[2]; my $ret = fhem "sleep 2;set $name input " . @$a[2];
$return .= $ret if ($ret);
} }
else { else {
Log3 $name, 3, Log3 $name, 3,
@ -1063,7 +1076,8 @@ sub ONKYO_AVR_ZONE_Set($$$) {
elsif ( lc( @$a[1] ) eq "inputup" ) { elsif ( lc( @$a[1] ) eq "inputup" ) {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 2;set $name inputUp"; my $ret = fhem "sleep 2;set $name inputUp";
$return .= $ret if ($ret);
} }
else { else {
Log3 $name, 3, "ONKYO_AVR_ZONE set $name " . @$a[1]; Log3 $name, 3, "ONKYO_AVR_ZONE set $name " . @$a[1];
@ -1075,7 +1089,8 @@ sub ONKYO_AVR_ZONE_Set($$$) {
elsif ( lc( @$a[1] ) eq "inputdown" ) { elsif ( lc( @$a[1] ) eq "inputdown" ) {
if ( $state eq "off" ) { if ( $state eq "off" ) {
$return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" ); $return = ONKYO_AVR_ZONE_SendCommand( $hash, "power", "on" );
$return .= fhem "sleep 2;set $name inputDown"; my $ret = fhem "sleep 2;set $name inputDown";
$return .= $ret if ($ret);
} }
else { else {
Log3 $name, 3, "ONKYO_AVR_ZONE set $name " . @$a[1]; Log3 $name, 3, "ONKYO_AVR_ZONE set $name " . @$a[1];