From f990f8b8b356d3689ccba4e7df4312a6f8ee4182 Mon Sep 17 00:00:00 2001 From: pahenning <> Date: Sun, 10 Apr 2016 08:12:19 +0000 Subject: [PATCH] OWSWITCH.pm: Bugfix in der Ankopplung an OWServer git-svn-id: https://svn.fhem.de/fhem/trunk@11216 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/21_OWSWITCH.pm | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/fhem/FHEM/21_OWSWITCH.pm b/fhem/FHEM/21_OWSWITCH.pm index 855ea73e0..74dd83854 100644 --- a/fhem/FHEM/21_OWSWITCH.pm +++ b/fhem/FHEM/21_OWSWITCH.pm @@ -87,7 +87,7 @@ no warnings 'deprecated'; sub Log($$); -my $owx_version="6.01"; +my $owx_version="6.02"; #-- fixed raw channel name, flexible channel name my @owg_fixed = ("A","B","C","D","E","F","G","H"); my @owg_channel = ("A","B","C","D","E","F","G","H"); @@ -783,19 +783,16 @@ sub OWSWITCH_Set($@) { #-- OWFS interface }elsif( $interface eq "OWServer" ){ $ret1 = OWFSSWITCH_GetState($hash); - my $gpio = 0; - #-- + my $gpio = 0; for (my $i=0;$i<$cnumber{$attr{$name}{"model"}};$i++){ - if( $outval==0 ){ - $gpio += ($hash->{owg_vax}->[$i]<<$i) - if( $i != $outfnd ); - }else{ - $gpio += ($hash->{owg_vax}->[$i]<<$i); - $gpio += (1<<$i) - if( $i == $outfnd ); - } - } - $ret2 = OWFSSWITCH_SetState($hash,$value); + $gpio += ($hash->{owg_vax}->[$i]<<$i) + }; + if( $outval==0 ){ + $gpio &= ~(1<<$outfnd); + }else{ + $gpio |= (1<<$outfnd); + } + $ret2 = OWFSSWITCH_SetState($hash,$gpio); #-- Unknown interface }else{ return "OWSWITCH: Get with wrong IODev type $interface";