From c7fb8d12e97c680a44a7833c698f71721fc1b298 Mon Sep 17 00:00:00 2001 From: Marko Oldenburg Date: Wed, 2 Oct 2019 11:00:02 +0200 Subject: [PATCH] test --- 46_TeslaPowerwall2AC.pm | 187 ++++++++++++++++++++-------------------- 1 file changed, 93 insertions(+), 94 deletions(-) diff --git a/46_TeslaPowerwall2AC.pm b/46_TeslaPowerwall2AC.pm index 12427de..0e5cde0 100644 --- a/46_TeslaPowerwall2AC.pm +++ b/46_TeslaPowerwall2AC.pm @@ -480,13 +480,6 @@ sub ErrorHandling($$$) { my ( $param, $err, $data ) = @_; my $hash = $param->{hash}; my $name = $hash->{NAME}; - - print( 'TESLA DEBUG1 - Path: ' . $param->{setCmd} . "\n" ); - print( 'TESLA DEBUG1 - ResponseString: ' . Dumper $data . "\n" ); - print( 'TESLA DEBUG1 - Error: ' . $err . "\n" ) - if ( defined($err) and $err); - print( 'TESLA DEBUG1 - Code: ' . $param->{code} . "\n" ) - if ( exists($param->{code}) ); # my $path = $param->{setCmd}; # temporär @@ -520,98 +513,104 @@ sub ErrorHandling($$$) { # $data = '{"site_name":"Meine Powerwall2AC","timezone":"Europe/Berlin"}'; # } -# ### Begin Error Handling -# -# if ( defined($err) ) { -# if ( $err ne '' ) { -# -# readingsBeginUpdate($hash); -# readingsBulkUpdate( $hash, 'state', $err, 1 ); -# readingsBulkUpdate( $hash, 'lastRequestError', $err, 1 ); -# readingsEndUpdate( $hash, 1 ); -# -# Log3 $name, 3, "TeslaPowerwall2AC ($name) - RequestERROR: $err"; -# -# $hash->{actionQueue} = []; -# return; -# } -# } -# -# if ( $data eq '' and exists( $param->{code} ) && $param->{code} ne 200 ) { -# -# readingsBeginUpdate($hash); -# readingsBulkUpdate( $hash, 'state', $param->{code}, 1 ); -# -# readingsBulkUpdate( $hash, 'lastRequestError', $param->{code}, 1 ); -# -# Log3 $name, 3, -# "TeslaPowerwall2AC ($name) - RequestERROR: " . $param->{code}; -# -# readingsEndUpdate( $hash, 1 ); -# -# Log3 $name, 5, -# "TeslaPowerwall2AC ($name) - RequestERROR: received http code " -# . $param->{code} -# . " without any data after requesting"; -# -# $hash->{actionQueue} = []; -# return; -# } + ### Begin Error Handling -# if ( ( $data =~ /Error/i ) and exists( $param->{code} ) ) { -# -# readingsBeginUpdate($hash); -# -# readingsBulkUpdate( $hash, 'state', $param->{code}, 1 ); -# readingsBulkUpdate( $hash, 'lastRequestError', $param->{code}, 1 ); -# -# readingsEndUpdate( $hash, 1 ); -# -# Log3 $name, 3, -# "TeslaPowerwall2AC ($name) - statusRequestERROR: http error " -# . $param->{code}; -# -# $hash->{actionQueue} = []; -# return; -# } + if ( defined($err) ) { + if ( $err ne '' ) { -# if ( $data =~ m#{"code":(\d+),"error":"(.+)","message":"(.+)"}$# ) { -# -# readingsBeginUpdate($hash); -# -# readingsBulkUpdate( $hash, 'state', $1, 1 ); -# readingsBulkUpdate( -# $hash, -# 'lastRequestError', -# 'Path: ' -# . $param->{setCmd} . ' ' -# . $1 -# . ' - Error: ' -# . $2 -# . ' Messages: ' -# . $3, -# 1 -# ); -# -# readingsEndUpdate( $hash, 1 ); -# -# # $hash->{actionQueue} = []; -# # return; -# ### End Error Handling -# } -# + readingsBeginUpdate($hash); + readingsBulkUpdate( $hash, 'state', $err, 1 ); + readingsBulkUpdate( $hash, 'lastRequestError', $err, 1 ); + readingsEndUpdate( $hash, 1 ); + + Log3 $name, 3, "TeslaPowerwall2AC ($name) - RequestERROR: $err"; + + $hash->{actionQueue} = []; + return; + } + } + + if ( $data eq '' and exists( $param->{code} ) && $param->{code} != 200 ) { + + readingsBeginUpdate($hash); + readingsBulkUpdate( $hash, 'state', $param->{code}, 1 ); + + readingsBulkUpdate( $hash, 'lastRequestError', $param->{code}, 1 ); + + Log3 $name, 3, + "TeslaPowerwall2AC ($name) - RequestERROR: " . $param->{code}; + + readingsEndUpdate( $hash, 1 ); + + Log3 $name, 5, + "TeslaPowerwall2AC ($name) - RequestERROR: received http code " + . $param->{code} + . " without any data after requesting"; + + $hash->{actionQueue} = []; + return; + } + + if ( $data =~ /Error/i + and exists($param->{code}) + and $param->{code} != 200 ) + { + + readingsBeginUpdate($hash); + + readingsBulkUpdate( $hash, 'state', $param->{code}, 1 ); + readingsBulkUpdate( $hash, 'lastRequestError', $param->{code}, 1 ); + + readingsEndUpdate( $hash, 1 ); + + Log3 $name, 3, + "TeslaPowerwall2AC ($name) - statusRequestERROR: http error " + . $param->{code}; + + $hash->{actionQueue} = []; + return; + } + + if ( $data =~ m#{"code":(\d+),"error":"(.+)","message":"(.+)"}$# ) { + + readingsBeginUpdate($hash); + + readingsBulkUpdate( $hash, 'state', $1, 1 ); + readingsBulkUpdate( + $hash, + 'lastRequestError', + 'Path: ' + . $param->{setCmd} . ' ' + . $1 + . ' - Error: ' + . $2 + . ' Messages: ' + . $3, + 1 + ); + + readingsEndUpdate( $hash, 1 ); + } + #### End Error Handling + + + + print( 'TESLA DEBUG1 - Path: ' . $param->{setCmd} . "\n" ); + print( 'TESLA DEBUG1 - ResponseString: ' . Dumper $data . "\n" ); + print( 'TESLA DEBUG1 - Error: ' . $err . "\n" ) + if ( defined($err) and $err); + print( 'TESLA DEBUG1 - Code: ' . $param->{code} . "\n" ) + if ( exists($param->{code}) ); + + + Write($hash) if ( defined( $hash->{actionQueue} ) and scalar( @{ $hash->{actionQueue} } ) > 0 ); -# -# Log3 $name, 4, "TeslaPowerwall2AC ($name) - Recieve JSON data: $data"; -# -# print( 'TESLA DEBUG2 - ResponseString: ' . Dumper $data ); -# print( 'TESLA DEBUG2 - Error: ' . $err . "\n" ) -# unless ( defined($err) -# and $err); -# -# ResponseProcessing( $hash, $param->{setCmd}, $data ); + + Log3 $name, 4, "TeslaPowerwall2AC ($name) - Recieve JSON data: $data"; + + ResponseProcessing( $hash, $param->{setCmd}, $data ); } sub ResponseProcessing($$$) {