fix for invalid json

git-svn-id: https://svn.fhem.de/fhem/trunk@4908 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
justme1968
2014-02-13 14:35:50 +00:00
parent 4e091a6351
commit 66e009efde

View File

@@ -6,7 +6,7 @@ package main;
use strict;
use warnings;
use Encode qw(encode_utf8);
use Encode qw(encode);
use JSON;
use LWP::Simple;
use HTTP::Request;
@@ -170,7 +170,9 @@ withings_getToken($)
my $request = HTTP::Request->new('GET', $URL, $header);
my $response = $agent->request($request);
my $json = JSON->new->utf8(0)->decode($response->content);
my $json = ();
$json = JSON->new->utf8(0)->decode($response->content) if( $response->content =~ m/^{.*}$/ );
my $once = $json->{body}{once};
$hash->{Token} = $once;
@@ -209,7 +211,9 @@ withings_getSessionKey($)
my $request = HTTP::Request->new('GET', $URL, $header);
my $response = $agent->request($request);
my $json = JSON->new->utf8(0)->decode($response->content);
my $json = ();
$json = JSON->new->utf8(0)->decode($response->content) if( $response->content =~ m/^{.*}$/ );
foreach my $account (@{$json->{body}{account}}) {
next if( !defined($account->{id}) );
$hash->{AccountID} = $account->{id} if($account->{email} eq $hash->{Login});
@@ -356,7 +360,8 @@ withings_getUsers($)
my $request = HTTP::Request->new('GET', $URL, $header);
my $response = $agent->request($request);
my $json = JSON->new->utf8(0)->decode($response->content);
my $json = ();
$json = JSON->new->utf8(0)->decode($response->content) if( $response->content =~ m/^{.*}$/ );
my @users = ();
foreach my $user (@{$json->{body}{users}}) {
@@ -380,7 +385,8 @@ withings_getDevices($)
my $request = HTTP::Request->new('GET', $URL, $header);
my $response = $agent->request($request);
my $json = JSON->new->utf8(0)->decode($response->content);
my $json = ();
$json = JSON->new->utf8(0)->decode($response->content) if( $response->content =~ m/^{.*}$/ );;
my @devices = ();
foreach my $association (@{$json->{body}{associations}}) {
@@ -406,7 +412,8 @@ withings_getDeviceDetail($$)
my $request = HTTP::Request->new('GET', $URL, $header);
my $response = $agent->request($request);
my $json = JSON->new->utf8(0)->decode($response->content);
my $json = ();
$json = JSON->new->utf8(0)->decode($response->content) if( $response->content =~ m/^{.*}$/ );
return $json->{body};
}
@@ -431,19 +438,8 @@ withings_getDeviceReadings($$)
my $request = HTTP::Request->new('GET', $URL, $header);
my $response = $agent->request($request);
my $json = JSON->new->utf8(0)->decode($response->content);
if(open(FH, "</tmp/getmeashf.txt")) {
my $content;
while (my $line = <FH>) {
chomp $line;
next if($line =~ m/^#.*$/);
$content .= $line;
}
close(FH);
$json = JSON->new->utf8(0)->decode($content);
}
my $json = ();
$json = JSON->new->utf8(0)->decode($response->content) if( $response->content =~ m/^{.*}$/ );
return $json;
}
@@ -460,7 +456,8 @@ withings_getUserDetail($$)
my $request = HTTP::Request->new('GET', $URL, $header);
my $response = $agent->request($request);
my $json = JSON->new->utf8(0)->decode($response->content);
my $json = ();
$json = JSON->new->utf8(0)->decode($response->content) if( $response->content =~ m/^{.*}$/ );
return $json->{body}{users}[0];
}
@@ -556,7 +553,9 @@ withings_pollUser($)
$url .= "&userid=$hash->{User}&publickey=$hash->{Key}";
$url .= "&lastupdate=$lastupdate" if( $lastupdate );
my $ret = get($url);
my $json = JSON->new->utf8(0)->decode($ret);
#my $json = JSON->new->utf8(0)->decode($ret);
my $json = ();
$json = JSON->new->utf8->decode(encode('UTF-8', $ret)) if( $ret =~ m/^{.*}$/ );
$hash->{status} = $json->{status};
if( $hash->{status} == 0 ) {
@@ -646,7 +645,6 @@ withings_Get($$@)
}
}
Log 3, "$name: >$hash->{SUBTYPE}< >>$cmd<<";
return "Unknown argument $cmd, choose one of $list";
}