Merge pull request 'patch-token_expired' (#42) from patch-token_expired into devel
Reviewed-on: #42 Reviewed-by: Marko Oldenburg <marko@noreply@cooltux.net>
This commit is contained in:
commit
ef1aabfcb0
@ -207,6 +207,7 @@ sub Initialize {
|
|||||||
$hash->{AttrFn} = \&Attr;
|
$hash->{AttrFn} = \&Attr;
|
||||||
$hash->{AttrList} =
|
$hash->{AttrList} =
|
||||||
'debugJSON:0,1 '
|
'debugJSON:0,1 '
|
||||||
|
. 'debugDEVICE:0,1 '
|
||||||
. 'disable:1 '
|
. 'disable:1 '
|
||||||
. 'interval '
|
. 'interval '
|
||||||
. 'disabledForIntervals '
|
. 'disabledForIntervals '
|
||||||
@ -260,7 +261,7 @@ sub Undef {
|
|||||||
my $hash = shift;
|
my $hash = shift;
|
||||||
my $name = shift;
|
my $name = shift;
|
||||||
|
|
||||||
RemoveInternalTimer($hash);
|
RemoveInternalTimer($hash, "FHEM::GardenaSmartBridge::getDevices");
|
||||||
delete $modules{GardenaSmartBridge}{defptr}{BRIDGE}
|
delete $modules{GardenaSmartBridge}{defptr}{BRIDGE}
|
||||||
if ( defined( $modules{GardenaSmartBridge}{defptr}{BRIDGE} ) );
|
if ( defined( $modules{GardenaSmartBridge}{defptr}{BRIDGE} ) );
|
||||||
|
|
||||||
@ -281,7 +282,7 @@ sub Attr {
|
|||||||
|
|
||||||
if ( $attrName eq 'disable' ) {
|
if ( $attrName eq 'disable' ) {
|
||||||
if ( $cmd eq 'set' && $attrVal eq '1' ) {
|
if ( $cmd eq 'set' && $attrVal eq '1' ) {
|
||||||
RemoveInternalTimer($hash);
|
RemoveInternalTimer($hash, "FHEM::GardenaSmartBridge::getDevices");
|
||||||
readingsSingleUpdate( $hash, 'state', 'inactive', 1 );
|
readingsSingleUpdate( $hash, 'state', 'inactive', 1 );
|
||||||
Log3 $name, 3, "GardenaSmartBridge ($name) - disabled";
|
Log3 $name, 3, "GardenaSmartBridge ($name) - disabled";
|
||||||
}
|
}
|
||||||
@ -306,13 +307,13 @@ sub Attr {
|
|||||||
if ( $cmd eq 'set' ) {
|
if ( $cmd eq 'set' ) {
|
||||||
return 'Interval must be greater than 0'
|
return 'Interval must be greater than 0'
|
||||||
if ( $attrVal == 0 );
|
if ( $attrVal == 0 );
|
||||||
RemoveInternalTimer($hash);
|
RemoveInternalTimer($hash, "FHEM::GardenaSmartBridge::getDevices");
|
||||||
$hash->{INTERVAL} = $attrVal;
|
$hash->{INTERVAL} = $attrVal;
|
||||||
Log3 $name, 3,
|
Log3 $name, 3,
|
||||||
"GardenaSmartBridge ($name) - set interval: $attrVal";
|
"GardenaSmartBridge ($name) - set interval: $attrVal";
|
||||||
}
|
}
|
||||||
elsif ( $cmd eq 'del' ) {
|
elsif ( $cmd eq 'del' ) {
|
||||||
RemoveInternalTimer($hash);
|
RemoveInternalTimer($hash, "FHEM::GardenaSmartBridge::getDevices");
|
||||||
$hash->{INTERVAL} = 60;
|
$hash->{INTERVAL} = 60;
|
||||||
Log3 $name, 3,
|
Log3 $name, 3,
|
||||||
"GardenaSmartBridge ($name) - delete User interval and set default: 60";
|
"GardenaSmartBridge ($name) - delete User interval and set default: 60";
|
||||||
@ -390,7 +391,6 @@ sub Notify {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
||||||
InternalTimer( gettimeofday() + $hash->{INTERVAL},
|
InternalTimer( gettimeofday() + $hash->{INTERVAL},
|
||||||
"FHEM::GardenaSmartBridge::getDevices", $hash );
|
"FHEM::GardenaSmartBridge::getDevices", $hash );
|
||||||
Log3 $name, 4,
|
Log3 $name, 4,
|
||||||
@ -416,7 +416,7 @@ sub Get {
|
|||||||
my $list = "";
|
my $list = "";
|
||||||
$list .= " debug_devices_list:"
|
$list .= " debug_devices_list:"
|
||||||
.join( ',', @{ $hash->{helper}{deviceList} })
|
.join( ',', @{ $hash->{helper}{deviceList} })
|
||||||
if ( AttrVal( $name, "debugJSON", "none") ne "none"
|
if ( AttrVal( $name, "debugDEVICE", "none") ne "none"
|
||||||
&& exists($hash->{helper}{deviceList}) );
|
&& exists($hash->{helper}{deviceList}) );
|
||||||
return "Unknown argument $cmd,choose one of $list";
|
return "Unknown argument $cmd,choose one of $list";
|
||||||
}
|
}
|
||||||
@ -712,10 +712,26 @@ sub ErrorHandling {
|
|||||||
delete $dhash->{helper}{deviceAction}
|
delete $dhash->{helper}{deviceAction}
|
||||||
if ( defined( $dhash->{helper}{deviceAction} ) );
|
if ( defined( $dhash->{helper}{deviceAction} ) );
|
||||||
|
|
||||||
|
readingsSingleUpdate( $hash, 'token', 'none', 1 )
|
||||||
|
if ( !defined( $hash->{helper}{session_id} ) );
|
||||||
|
|
||||||
|
getToken($hash)
|
||||||
|
if ( !defined( $hash->{helper}{session_id} ) );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (defined($hash->{helper}{debug_device})){
|
elsif (defined ($decode_json->{message})
|
||||||
Log3 $name, 5, "GardenaSmartBridge DEBUG Device";
|
&& $decode_json->{message} eq 'Unauthorized') {
|
||||||
|
Log3 $name, 3,
|
||||||
|
"GardenaSmartBridge ($name) - Unauthorized -> fetch new token ";
|
||||||
|
getToken($hash);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (defined($hash->{helper}{debug_device})
|
||||||
|
&& $hash->{helper}{debug_device} ne 'none'
|
||||||
|
){
|
||||||
|
Log3 $name, 4, "GardenaSmartBridge DEBUG Device";
|
||||||
|
delete $hash->{helper}{debug_device};
|
||||||
my @device_spec = ("name", "id", "category");
|
my @device_spec = ("name", "id", "category");
|
||||||
my $devJson=$decode_json->{devices};
|
my $devJson=$decode_json->{devices};
|
||||||
my $output = '.:{ DEBUG OUTPUT for '.$devJson->{name}.' }:. \n';
|
my $output = '.:{ DEBUG OUTPUT for '.$devJson->{name}.' }:. \n';
|
||||||
@ -787,6 +803,10 @@ sub ResponseProcessing {
|
|||||||
$hash->{helper}{session_id} = $decode_json->{data}{id};
|
$hash->{helper}{session_id} = $decode_json->{data}{id};
|
||||||
$hash->{helper}{user_id} = $decode_json->{data}{attributes}->{user_id};
|
$hash->{helper}{user_id} = $decode_json->{data}{attributes}->{user_id};
|
||||||
$hash->{helper}{refresh_token} = $decode_json->{data}{attributes}->{refresh_token};
|
$hash->{helper}{refresh_token} = $decode_json->{data}{attributes}->{refresh_token};
|
||||||
|
$hash->{helper}{token_expired} = gettimeofday() + $decode_json->{data}{attributes}->{expires_in};
|
||||||
|
|
||||||
|
InternalTimer($hash->{helper}{token_expired},
|
||||||
|
"FHEM::GardenaSmartBridge::getToken", $hash );
|
||||||
|
|
||||||
Write( $hash, undef, undef, undef );
|
Write( $hash, undef, undef, undef );
|
||||||
Log3 $name, 3, "GardenaSmartBridge ($name) - fetch locations id";
|
Log3 $name, 3, "GardenaSmartBridge ($name) - fetch locations id";
|
||||||
@ -947,7 +967,6 @@ sub WriteReadings {
|
|||||||
elsif ( $decode_json->{abilities}[0]{properties}
|
elsif ( $decode_json->{abilities}[0]{properties}
|
||||||
[$properties]{name} eq 'wifi_status' )
|
[$properties]{name} eq 'wifi_status' )
|
||||||
{
|
{
|
||||||
#TODO: read valies if bridge connected to wifi
|
|
||||||
readingsBulkUpdateIfChanged( $hash,
|
readingsBulkUpdateIfChanged( $hash,
|
||||||
'wifi_status-ssid', $v->{ssid} )
|
'wifi_status-ssid', $v->{ssid} )
|
||||||
if (ref($v->{ssid}) ne 'HASH');
|
if (ref($v->{ssid}) ne 'HASH');
|
||||||
@ -983,7 +1002,7 @@ sub getDevices {
|
|||||||
my $hash = shift;
|
my $hash = shift;
|
||||||
|
|
||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
RemoveInternalTimer($hash);
|
RemoveInternalTimer($hash, "FHEM::GardenaSmartBridge::getDevices");
|
||||||
|
|
||||||
if ( not IsDisabled($name) ) {
|
if ( not IsDisabled($name) ) {
|
||||||
|
|
||||||
@ -1224,7 +1243,8 @@ sub createHttpValueStrings {
|
|||||||
&& defined( $hash->{helper}{locations_id} ) );
|
&& defined( $hash->{helper}{locations_id} ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
$uri = '/devices/'.InternalVal($hash->{helper}{debug_device}, 'DEVICEID', 0 ) if ( exists ($hash->{helper}{debug_device}));
|
$uri = '/devices/'.InternalVal($hash->{helper}{debug_device}, 'DEVICEID', 0 ) if ( defined ($hash->{helper}{debug_device})
|
||||||
|
&& defined( $hash->{helper}{locations_id} ) );
|
||||||
$uri = '/auth/token' if ( !defined( $hash->{helper}{session_id} ) );
|
$uri = '/auth/token' if ( !defined( $hash->{helper}{session_id} ) );
|
||||||
|
|
||||||
if ( defined( $hash->{helper}{locations_id} ) ) {
|
if ( defined( $hash->{helper}{locations_id} ) ) {
|
||||||
@ -1487,7 +1507,7 @@ sub DeletePassword {
|
|||||||
],
|
],
|
||||||
"release_status": "stable",
|
"release_status": "stable",
|
||||||
"license": "GPL_2",
|
"license": "GPL_2",
|
||||||
"version": "v2.4.4",
|
"version": "v2.4.6",
|
||||||
"author": [
|
"author": [
|
||||||
"Marko Oldenburg <leongaultier@gmail.com>"
|
"Marko Oldenburg <leongaultier@gmail.com>"
|
||||||
],
|
],
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
UPD 2021-06-28_15:56:58 47009 FHEM/73_GardenaSmartBridge.pm
|
UPD 2021-08-07_23:54:26 48067 FHEM/73_GardenaSmartBridge.pm
|
||||||
UPD 2021-07-16_20:26:01 56217 FHEM/74_GardenaSmartDevice.pm
|
UPD 2021-08-01_15:08:54 56217 FHEM/74_GardenaSmartDevice.pm
|
||||||
|
Loading…
x
Reference in New Issue
Block a user