From 485ecfa6866193ace725a07b708cbd29c43830be Mon Sep 17 00:00:00 2001 From: justme1968 Date: Sun, 29 Mar 2015 12:32:30 +0000 Subject: [PATCH] 30_HUEBridge.pm: fixed bridge rediscovery, only possible for blocking http. see forum: http://forum.fhem.de/index.php/topic,11020.msg279333.html#msg279333 git-svn-id: https://svn.fhem.de/fhem/trunk@8322 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/30_HUEBridge.pm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/fhem/FHEM/30_HUEBridge.pm b/fhem/FHEM/30_HUEBridge.pm index 2b24278a7..0ca54fd6e 100644 --- a/fhem/FHEM/30_HUEBridge.pm +++ b/fhem/FHEM/30_HUEBridge.pm @@ -108,6 +108,8 @@ HUEBridge_Define($$) if( !defined($host) ) { $hash->{NUPNP} = 1; HUEBridge_Detect($hash); + } else { + delete $hash->{NUPNP}; } $interval= 300 unless defined($interval); @@ -555,20 +557,23 @@ HUEBridge_Call($$$$;$) $json = encode_json($obj) if $obj; # @TODO: repeat twice? - - for (my $attempt=0; $attempt<2; $attempt++) { + for( my $attempt=0; $attempt<2; $attempt++ ) { + my $blocking; my $res = undef; if( !defined($attr{$name}{httpUtils}) ) { + $blocking = 1; $res = HUEBridge_HTTP_Call($hash,$path,$json,$method); } else { + $blocking = $attr{$name}{httpUtils} < 1; $res = HUEBridge_HTTP_Call2($hash,$chash,$path,$json,$method); } - if( defined($res) ) { - return $res; - } + + return $res if( !$blocking || defined($res) ); + Log3 $name, 3, "HUEBridge_Call: failed, retrying"; HUEBridge_Detect($hash); } + Log3 $name, 3, "HUEBridge_Call: failed"; return undef; }