From fee0aa0b0210a27e2e9229463208f032ffc27275 Mon Sep 17 00:00:00 2001 From: LeonGaultier Date: Thu, 27 Feb 2020 12:29:10 +0000 Subject: [PATCH] 73_GardenaSmartBridge: fix rename passwordstore bug git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@21292 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- CHANGED | 1 + FHEM/73_GardenaSmartBridge.pm | 31 +++++++++++++++---------------- FHEM/74_GardenaSmartDevice.pm | 4 ++-- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/CHANGED b/CHANGED index 1c626d844..0912f8087 100644 --- a/CHANGED +++ b/CHANGED @@ -1,5 +1,6 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it. + - bugfix: 73_GardenaSmartBridge: fix rename passwordstore bug - feature: 73_WaterCalculator: New Attribute DecimalPlace - feature: 73_GasCalculator: New Attribute DecimalPlace - feature: 73_ElectricityCalculator: New Attribute DecimalPlace diff --git a/FHEM/73_GardenaSmartBridge.pm b/FHEM/73_GardenaSmartBridge.pm index d8540c8ef..7b9fa9800 100644 --- a/FHEM/73_GardenaSmartBridge.pm +++ b/FHEM/73_GardenaSmartBridge.pm @@ -423,7 +423,7 @@ sub Set($@) { return "please set Attribut gardenaAccountEmail first" if ( AttrVal( $name, 'gardenaAccountEmail', 'none' ) eq 'none' ); return "please set gardenaAccountPassword first" - if ( not defined( ReadPassword($hash) ) ); + if ( not defined( ReadPassword($hash,$name) ) ); return "token is up to date" if ( defined( $hash->{helper}{session_id} ) ); @@ -436,7 +436,7 @@ sub Set($@) { return "usage: $cmd " if ( @args != 1 ); my $passwd = join( ' ', @args ); - StorePassword( $hash, $passwd ); + StorePassword( $hash, $name, $passwd ); } elsif ( lc $cmd eq 'deleteaccountpassword' ) { @@ -448,11 +448,11 @@ sub Set($@) { else { my $list = "getDevicesState:noArg getToken:noArg" - if ( defined( ReadPassword($hash) ) ); + if ( defined( ReadPassword($hash,$name) ) ); $list .= " gardenaAccountPassword" - if ( not defined( ReadPassword($hash) ) ); + if ( not defined( ReadPassword($hash,$name) ) ); $list .= " deleteAccountPassword:noArg" - if ( defined( ReadPassword($hash) ) ); + if ( defined( ReadPassword($hash,$name) ) ); return "Unknown argument $cmd, choose one of $list"; } @@ -950,7 +950,7 @@ sub getToken($) { if ( AttrVal( $name, 'gardenaAccountEmail', 'none' ) eq 'none' ); return readingsSingleUpdate( $hash, 'state', 'please set gardena account password first', 1 ) - if ( not defined( ReadPassword($hash) ) ); + if ( not defined( ReadPassword($hash,$name) ) ); readingsSingleUpdate( $hash, 'state', 'get token', 1 ); delete $hash->{helper}{session_id} @@ -967,7 +967,7 @@ sub getToken($) { '"sessions": {"email": "' . AttrVal( $name, 'gardenaAccountEmail', 'none' ) . '","password": "' - . ReadPassword($hash) . '"}', + . ReadPassword($hash,$name) . '"}', undef, undef ); @@ -976,10 +976,10 @@ sub getToken($) { "GardenaSmartBridge ($name) - send credentials to fetch Token and locationId"; } -sub StorePassword($$) { +sub StorePassword($@) { - my ( $hash, $password ) = @_; - my $index = $hash->{TYPE} . "_" . $hash->{NAME} . "_passwd"; + my ( $hash, $name, $password ) = @_; + my $index = $hash->{TYPE} . "_" . $name . "_passwd"; my $key = getUniqueId() . $index; my $enc_pwd = ""; @@ -1002,11 +1002,10 @@ sub StorePassword($$) { return "password successfully saved"; } -sub ReadPassword($) { +sub ReadPassword($$) { - my ($hash) = @_; - my $name = $hash->{NAME}; - my $index = $hash->{TYPE} . "_" . $hash->{NAME} . "_passwd"; + my ( $hash, $name ) = @_; + my $index = $hash->{TYPE} . "_" . $name . "_passwd"; my $key = getUniqueId() . $index; my ( $password, $err ); @@ -1052,8 +1051,8 @@ sub Rename(@) { my ( $new, $old ) = @_; my $hash = $defs{$new}; - - StorePassword( $hash, ReadPassword($hash) ); + + StorePassword( $hash, $new, ReadPassword($hash,$old) ); setKeyValue( $hash->{TYPE} . "_" . $old . "_passwd", undef ); return undef; diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 146f656cb..e234b3d5c 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -66,7 +66,7 @@ use warnings; use POSIX; use FHEM::Meta; use Time::Local; -our $VERSION = '1.6.5'; +our $VERSION = '1.6.6'; # try to use JSON::MaybeXS wrapper # for chance of better performance + open code @@ -629,7 +629,7 @@ sub WriteReadings($$) { readingsBulkUpdate( $hash, 'state', ( - ReadingsVal( $name, 'outlet-valve_open', 'readingsValError' ) == 1 + ReadingsVal( $name, 'outlet-valve_open', 0 ) == 1 ? RigRadingsValue( $hash, 'open' ) : RigRadingsValue( $hash, 'closed' ) )