mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-02-01 01:09:47 +00:00
YAMAHA_AVR: allow some requests to run fail (Forum #33209)
git-svn-id: https://svn.fhem.de/fhem/trunk@8124 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
e75a3e3386
commit
3fefb162c5
@ -790,18 +790,16 @@ YAMAHA_AVR_Undefine($$)
|
|||||||
sub
|
sub
|
||||||
YAMAHA_AVR_SendCommand($@)
|
YAMAHA_AVR_SendCommand($@)
|
||||||
{
|
{
|
||||||
my ($hash, $data,$cmd,$arg,$blocking) = @_;
|
my ($hash, $data,$cmd,$arg,$can_fail) = @_;
|
||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
my $address = $hash->{helper}{ADDRESS};
|
my $address = $hash->{helper}{ADDRESS};
|
||||||
|
my $blocking = 0;
|
||||||
if(not defined($blocking) and $cmd ne "statusRequest" and $hash->{helper}{AVAILABLE} == 1)
|
|
||||||
|
if($cmd ne "statusRequest" and $hash->{helper}{AVAILABLE} == 1)
|
||||||
{
|
{
|
||||||
$blocking = 1;
|
$blocking = 1;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
$blocking = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
# In case any URL changes must be made, this part is separated in this function".
|
# In case any URL changes must be made, this part is separated in this function".
|
||||||
|
|
||||||
@ -816,7 +814,8 @@ YAMAHA_AVR_SendCommand($@)
|
|||||||
loglevel => ($hash->{helper}{AVAILABLE} ? undef : 5),
|
loglevel => ($hash->{helper}{AVAILABLE} ? undef : 5),
|
||||||
hash => $hash,
|
hash => $hash,
|
||||||
cmd => $cmd,
|
cmd => $cmd,
|
||||||
arg => $arg
|
arg => $arg,
|
||||||
|
can_fail => $can_fail
|
||||||
};
|
};
|
||||||
|
|
||||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||||
@ -835,6 +834,7 @@ YAMAHA_AVR_SendCommand($@)
|
|||||||
hash => $hash,
|
hash => $hash,
|
||||||
cmd => $cmd,
|
cmd => $cmd,
|
||||||
arg => $arg,
|
arg => $arg,
|
||||||
|
can_fail => $can_fail,
|
||||||
callback => \&YAMAHA_AVR_ParseResponse
|
callback => \&YAMAHA_AVR_ParseResponse
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -852,6 +852,7 @@ YAMAHA_AVR_ParseResponse ($$$)
|
|||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
my $cmd = $param->{cmd};
|
my $cmd = $param->{cmd};
|
||||||
my $arg = $param->{arg};
|
my $arg = $param->{arg};
|
||||||
|
my $can_fail = $param->{can_fail};
|
||||||
|
|
||||||
if(exists($param->{code}))
|
if(exists($param->{code}))
|
||||||
{
|
{
|
||||||
@ -863,7 +864,7 @@ YAMAHA_AVR_ParseResponse ($$$)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if($err ne "")
|
if($err ne "" and not $can_fail)
|
||||||
{
|
{
|
||||||
Log3 $name, 5, "YAMAHA_AVR ($name) - could not execute command \"$cmd".(defined($arg) ? " ".(split("\\|", $arg))[0] : "")."\": $err";
|
Log3 $name, 5, "YAMAHA_AVR ($name) - could not execute command \"$cmd".(defined($arg) ? " ".(split("\\|", $arg))[0] : "")."\": $err";
|
||||||
|
|
||||||
@ -888,10 +889,10 @@ YAMAHA_AVR_ParseResponse ($$$)
|
|||||||
|
|
||||||
$hash->{helper}{AVAILABLE} = 1;
|
$hash->{helper}{AVAILABLE} = 1;
|
||||||
|
|
||||||
if(not $data =~ /RC="0"/)
|
if(not $data =~ / RC="0"/ and $data =~ / RC="(\d+)"/)
|
||||||
{
|
{
|
||||||
# if the returncode isn't 0, than the command was not successful
|
# if the returncode isn't 0, than the command was not successful
|
||||||
Log3 $name, 3, "YAMAHA_AVR ($name) - Could not execute \"$cmd".(defined($arg) ? " ".(split("\\|", $arg))[0] : "")."\"";
|
Log3 $name, 3, "YAMAHA_AVR ($name) - Could not execute \"$cmd".(defined($arg) ? " ".(split("\\|", $arg))[0] : "")."\": received return code $1";
|
||||||
}
|
}
|
||||||
|
|
||||||
readingsBeginUpdate($hash);
|
readingsBeginUpdate($hash);
|
||||||
@ -1031,9 +1032,9 @@ YAMAHA_AVR_ParseResponse ($$$)
|
|||||||
{
|
{
|
||||||
Log3 $name, 4, "YAMAHA_AVR ($name) - check for extended input informations on <$1>";
|
Log3 $name, 4, "YAMAHA_AVR ($name) - check for extended input informations on <$1>";
|
||||||
|
|
||||||
YAMAHA_AVR_SendCommand($hash, "<YAMAHA_AV cmd=\"GET\"><$1><Play_Info>GetParam</Play_Info></$1></YAMAHA_AV>", "statusRequest", "playInfo");
|
YAMAHA_AVR_SendCommand($hash, "<YAMAHA_AV cmd=\"GET\"><$1><Play_Info>GetParam</Play_Info></$1></YAMAHA_AV>", "statusRequest", "playInfo", 1);
|
||||||
YAMAHA_AVR_SendCommand($hash, "<YAMAHA_AV cmd=\"GET\"><$1><Play_Control><Play_Mode><Repeat>GetParam</Repeat></Play_Mode></Play_Control></$1></YAMAHA_AV>", "statusRequest", "playRepeat");
|
YAMAHA_AVR_SendCommand($hash, "<YAMAHA_AV cmd=\"GET\"><$1><Play_Control><Play_Mode><Repeat>GetParam</Repeat></Play_Mode></Play_Control></$1></YAMAHA_AV>", "statusRequest", "playRepeat", 1);
|
||||||
YAMAHA_AVR_SendCommand($hash, "<YAMAHA_AV cmd=\"GET\"><$1><Play_Control><Play_Mode><Shuffle>GetParam</Shuffle></Play_Mode></Play_Control></$1></YAMAHA_AV>", "statusRequest", "playShuffle");
|
YAMAHA_AVR_SendCommand($hash, "<YAMAHA_AV cmd=\"GET\"><$1><Play_Control><Play_Mode><Shuffle>GetParam</Shuffle></Play_Mode></Play_Control></$1></YAMAHA_AV>", "statusRequest", "playShuffle", 1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1420,7 +1421,7 @@ sub YAMAHA_AVR_getInputs($)
|
|||||||
YAMAHA_AVR_SendCommand($hash, "<YAMAHA_AV cmd=\"GET\"><$zone><Input><Input_Sel_Item>GetParam</Input_Sel_Item></Input></$zone></YAMAHA_AV>", "statusRequest","getInputs");
|
YAMAHA_AVR_SendCommand($hash, "<YAMAHA_AV cmd=\"GET\"><$zone><Input><Input_Sel_Item>GetParam</Input_Sel_Item></Input></$zone></YAMAHA_AV>", "statusRequest","getInputs");
|
||||||
|
|
||||||
# query all available scenes (only in mainzone available)
|
# query all available scenes (only in mainzone available)
|
||||||
YAMAHA_AVR_SendCommand($hash, "<YAMAHA_AV cmd=\"GET\"><$zone><Scene><Scene_Sel_Item>GetParam</Scene_Sel_Item></Scene></$zone></YAMAHA_AV>", "statusRequest","getScenes") if($hash->{ACTIVE_ZONE} eq "mainzone");
|
YAMAHA_AVR_SendCommand($hash, "<YAMAHA_AV cmd=\"GET\"><$zone><Scene><Scene_Sel_Item>GetParam</Scene_Sel_Item></Scene></$zone></YAMAHA_AV>", "statusRequest","getScenes", 1) if($hash->{ACTIVE_ZONE} eq "mainzone");
|
||||||
}
|
}
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
|
Loading…
Reference in New Issue
Block a user