From aaeb103623d12d5b40e29ebe40be1394a712da29 Mon Sep 17 00:00:00 2001 From: justme1968 Date: Sun, 16 Feb 2014 23:12:03 +0000 Subject: [PATCH] added disable to bridge git-svn-id: https://svn.fhem.de/fhem/trunk@4958 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/30_HUEBridge.pm | 9 ++++++--- fhem/FHEM/31_HUEDevice.pm | 15 +++++++++------ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/fhem/FHEM/30_HUEBridge.pm b/fhem/FHEM/30_HUEBridge.pm index caf95f777..66813caae 100644 --- a/fhem/FHEM/30_HUEBridge.pm +++ b/fhem/FHEM/30_HUEBridge.pm @@ -31,7 +31,7 @@ sub HUEBridge_Initialize($) $hash->{SetFn} = "HUEBridge_Set"; $hash->{GetFn} = "HUEBridge_Get"; $hash->{UndefFn} = "HUEBridge_Undefine"; - $hash->{AttrList}= "key"; + $hash->{AttrList}= "key disable:1"; } sub @@ -92,7 +92,7 @@ HUEBridge_Define($$) } if( $init_done ) { - HUEBridge_OpenDev( $hash ); + HUEBridge_OpenDev( $hash ) if( !AttrVal($name, "disable", 0) ); } return undef; @@ -107,7 +107,7 @@ HUEBridge_Notify($$) return if($dev->{NAME} ne "global"); return if(!grep(m/^INITIALIZED|REREADCFG$/, @{$dev->{CHANGED}})); - return if($attr{$name} && $attr{$name}{disable}); + return undef if( AttrVal($name, "disable", 0) ); HUEBridge_OpenDev($hash); @@ -390,6 +390,9 @@ sub HUEBridge_HTTP_Call($$$) my ($hash,$path,$obj) = @_; my $name = $hash->{NAME}; + return undef if($attr{$name} && $attr{$name}{disable}); + #return { state => {reachable => 0 } } if($attr{$name} && $attr{$name}{disable}); + my $uri = "http://" . $hash->{Host} . "/api"; my $method = 'GET'; if( defined($obj) ) { diff --git a/fhem/FHEM/31_HUEDevice.pm b/fhem/FHEM/31_HUEDevice.pm index 703fbf524..0e8176014 100644 --- a/fhem/FHEM/31_HUEDevice.pm +++ b/fhem/FHEM/31_HUEDevice.pm @@ -613,9 +613,11 @@ HUEDevice_GetUpdate($) my $result = HUEDevice_ReadFromServer($hash,$hash->{ID}); if( !defined($result) ) { + $hash->{helper}{reachable} = 0; $hash->{STATE} = "unknown"; return; } elsif( $result->{'error'} ) { + $hash->{helper}{reachable} = 0; $hash->{STATE} = $result->{'error'}->{'description'}; return; } @@ -690,7 +692,7 @@ HUEDevice_GetUpdate($) { $s = 'off'; $percent = 0; - if( $on != $hash->{helper}{on} ) {readingsBulkUpdate($hash,"onoff",0);} + if( $on && $on != $hash->{helper}{on} ) {readingsBulkUpdate($hash,"onoff",0);} } if( $percent != $hash->{helper}{percent} ) {readingsBulkUpdate($hash,"level", $percent . ' %');} @@ -698,11 +700,6 @@ HUEDevice_GetUpdate($) $s = 'off' if( !$reachable ); - if( $s ne $hash->{STATE} ) {readingsBulkUpdate($hash,"state",$s);} - readingsEndUpdate($hash,defined($hash->{LOCAL} ? 0 : 1)); - - CommandTrigger( "", "$name RGB: ".CommandGet("","$name rgb") ); - $hash->{helper}{on} = $on; $hash->{helper}{reachable} = $reachable; $hash->{helper}{colormode} = $colormode; @@ -715,6 +712,12 @@ HUEDevice_GetUpdate($) $hash->{helper}{effect} = $effect; $hash->{helper}{percent} = $percent; + + if( $s ne $hash->{STATE} ) {readingsBulkUpdate($hash,"state",$s);} + readingsEndUpdate($hash,defined($hash->{LOCAL} ? 0 : 1)); + + CommandTrigger( "", "$name RGB: ".CommandGet("","$name rgb") ); + } 1;