From a0aee74475ab044d65286ab31f41413bf9a29023 Mon Sep 17 00:00:00 2001 From: Marko Oldenburg Date: Wed, 4 Nov 2015 22:23:02 +0100 Subject: [PATCH] =?UTF-8?q?Verbesserte=20Auswertung=20der=20empfangenden?= =?UTF-8?q?=20Daten=20=C3=BCber=20die=20AMADCommBridge=20nach=20=C3=84nder?= =?UTF-8?q?ung=20des=20HTTP=20Request=20Headers=20ab=20Autimagic=201.29?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 74_AMAD.pm | 53 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 19 deletions(-) diff --git a/74_AMAD.pm b/74_AMAD.pm index c55e0ce..1c07c48 100644 --- a/74_AMAD.pm +++ b/74_AMAD.pm @@ -900,16 +900,6 @@ sub AMAD_CommBridge_Read($) { my $tv = $data[1]; @data = split( '\R', $data[0] ); - if( $data[2] =~ /FHEMDEVICE:/ ) { - - $data[2] =~ s/FHEMDEVICE: //; - my $chash = $defs{$data[2]}; - - } else { - $data[3] =~ s/FHEMDEVICE: //; - my $chash = $defs{$data[3]}; - - } ### Begin Response Processing @@ -923,15 +913,38 @@ sub AMAD_CommBridge_Read($) { my $t; my $v; - while( ( $t, $v ) = each %buffer ) { - $v =~ s/null//g; + + if( $data[2] =~ /FHEMDEVICE:/ ) { + + $data[2] =~ s/FHEMDEVICE: //; + my $chash = $defs{$data[2]}; + + while( ( $t, $v ) = each %buffer ) { + $v =~ s/null//g; - readingsBeginUpdate( $chash ); - readingsBulkUpdate( $chash, $t, $v ) if( defined( $v ) ); - } + readingsBeginUpdate( $chash ); + readingsBulkUpdate( $chash, $t, $v ) if( defined( $v ) ); + } - readingsBulkUpdate( $chash, "lastStatusRequestState", "statusRequest_done" ); - readingsEndUpdate( $chash, 1 ); + readingsBulkUpdate( $chash, "lastStatusRequestState", "statusRequest_done" ); + readingsEndUpdate( $chash, 1 ); + + } else { + $data[3] =~ s/FHEMDEVICE: //; + my $chash = $defs{$data[3]}; + + while( ( $t, $v ) = each %buffer ) { + $v =~ s/null//g; + + readingsBeginUpdate( $chash ); + readingsBulkUpdate( $chash, $t, $v ) if( defined( $v ) ); + } + + readingsBulkUpdate( $chash, "lastStatusRequestState", "statusRequest_done" ); + readingsEndUpdate( $chash, 1 ); + + } + ### End Response Processing return; @@ -961,14 +974,16 @@ sub AMAD_CommBridge_Read($) { $data[2] =~ s/FHEMDEVICE: //; my $chash = $defs{$data[2]}; + + return AMAD_GetUpdateLocal( $chash ); } else { $data[3] =~ s/FHEMDEVICE: //; my $chash = $defs{$data[3]}; + return AMAD_GetUpdateLocal( $chash ); + } - - return AMAD_GetUpdateLocal( $chash ); } }