Bessere Variante zur HTTP Headeranalyse, Code aufgeräumt
This commit is contained in:
		
							
								
								
									
										51
									
								
								74_AMAD.pm
									
									
									
									
									
								
							
							
						
						
									
										51
									
								
								74_AMAD.pm
									
									
									
									
									
								
							@@ -35,7 +35,7 @@ use Time::HiRes qw(gettimeofday);
 | 
				
			|||||||
use HttpUtils;
 | 
					use HttpUtils;
 | 
				
			||||||
use TcpServerUtils;
 | 
					use TcpServerUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
my $version = "0.8.2";
 | 
					my $version = "0.8.3";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -894,7 +894,19 @@ sub AMAD_CommBridge_Read($) {
 | 
				
			|||||||
    ###
 | 
					    ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    my @data = split( '\R\R',  $buf );
 | 
					    my @data = split( '\R\R',  $buf );
 | 
				
			||||||
    my $chash = undef;
 | 
					    my $chash;
 | 
				
			||||||
 | 
					    my $fhemdev;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    my @fhemdev = split( '\R',  $data[0] );
 | 
				
			||||||
 | 
					        foreach my $ret( @fhemdev ) {
 | 
				
			||||||
 | 
					            if( $ret =~ /FHEMDEVICE: (.*)/ ) {
 | 
				
			||||||
 | 
					                $fhemdev = $1;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    $chash = $defs{$fhemdev};
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    if ( $data[0] =~ /FHEMCMD: setreading\b/ ) {
 | 
					    if ( $data[0] =~ /FHEMCMD: setreading\b/ ) {
 | 
				
			||||||
	my $tv = $data[1];
 | 
						my $tv = $data[1];
 | 
				
			||||||
@@ -914,11 +926,6 @@ sub AMAD_CommBridge_Read($) {
 | 
				
			|||||||
		my $t;
 | 
							my $t;
 | 
				
			||||||
		my $v;
 | 
							my $v;
 | 
				
			||||||
                    
 | 
					                    
 | 
				
			||||||
		if( $data[2] =~ /FHEMDEVICE:/ ) {
 | 
					 | 
				
			||||||
                
 | 
					 | 
				
			||||||
                    $data[2] =~ s/FHEMDEVICE: //;
 | 
					 | 
				
			||||||
                    my $chash = $defs{$data[2]};
 | 
					 | 
				
			||||||
                    
 | 
					 | 
				
			||||||
                while( ( $t, $v ) = each %buffer ) {
 | 
					                while( ( $t, $v ) = each %buffer ) {
 | 
				
			||||||
                    $v =~ s/null//g;
 | 
					                    $v =~ s/null//g;
 | 
				
			||||||
		    
 | 
							    
 | 
				
			||||||
@@ -929,22 +936,6 @@ sub AMAD_CommBridge_Read($) {
 | 
				
			|||||||
                readingsBulkUpdate( $chash, "lastStatusRequestState", "statusRequest_done" );
 | 
					                readingsBulkUpdate( $chash, "lastStatusRequestState", "statusRequest_done" );
 | 
				
			||||||
                readingsEndUpdate( $chash, 1 );
 | 
					                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
 | 
							### End Response Processing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@@ -969,21 +960,7 @@ sub AMAD_CommBridge_Read($) {
 | 
				
			|||||||
    
 | 
					    
 | 
				
			||||||
    elsif ( $data[0] =~ /FHEMCMD: statusrequest\b/ ) {
 | 
					    elsif ( $data[0] =~ /FHEMCMD: statusrequest\b/ ) {
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@data = split( '\R',  $data[0] );
 | 
					 | 
				
			||||||
	if( $data[2] =~ /FHEMDEVICE:/ ) {
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
            $data[2] =~ s/FHEMDEVICE: //;
 | 
					 | 
				
			||||||
            my $chash = $defs{$data[2]};
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
        return AMAD_GetUpdateLocal( $chash );
 | 
					        return AMAD_GetUpdateLocal( $chash );
 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            $data[3] =~ s/FHEMDEVICE: //;
 | 
					 | 
				
			||||||
            my $chash = $defs{$data[3]};
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            return AMAD_GetUpdateLocal( $chash );
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user