tests mit verschiedenen Codeteilen
This commit is contained in:
		
							
								
								
									
										110
									
								
								74_AMAD.pm
									
									
									
									
									
								
							
							
						
						
									
										110
									
								
								74_AMAD.pm
									
									
									
									
									
								
							@@ -48,6 +48,7 @@ sub AMAD_Initialize($) {
 | 
			
		||||
    $hash->{UndefFn}	= "AMAD_Undef";
 | 
			
		||||
    $hash->{AttrFn}	= "AMAD_Attr";
 | 
			
		||||
    $hash->{ReadFn}	= "AMAD_CommBridge_Read";
 | 
			
		||||
    
 | 
			
		||||
    $hash->{AttrList} 	= "setOpenApp ".
 | 
			
		||||
			  "setFullscreen:0,1 ".
 | 
			
		||||
			  "setScreenOrientation:0,1 ".
 | 
			
		||||
@@ -59,7 +60,6 @@ sub AMAD_Initialize($) {
 | 
			
		||||
			  "disable:1 ";
 | 
			
		||||
    $hash->{AttrList}	.= $readingFnAttributes;
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    foreach my $d(sort keys %defs) {
 | 
			
		||||
	next if($defs{$d}{TYPE} ne "AMAD");
 | 
			
		||||
	$defs{$d}->{VERSION} 	= $version;
 | 
			
		||||
@@ -69,21 +69,6 @@ sub AMAD_Initialize($) {
 | 
			
		||||
sub AMAD_Define($$) {
 | 
			
		||||
 | 
			
		||||
    my ( $hash, $def ) = @_;
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    #if( !$defs{AMADCommBridge} ) {	# Anlegen einer Masterinstanz für die bidirektionale Kommunikation
 | 
			
		||||
    
 | 
			
		||||
	#my $bridgeDevice = "AMADCommBridge";
 | 
			
		||||
	#CommandDefine( undef, "$bridgeDevice AMAD 127.0.0.1" );
 | 
			
		||||
	#$defs{AMADCommBridge}{FAKEDEVICE} = 1;
 | 
			
		||||
	#$defs{AMADCommBridge}{TEMPORARY} = 1;
 | 
			
		||||
	#$defs{AMADCommBridge}{alias} = "AMAD Communication Bridge";
 | 
			
		||||
	#$defs{AMADCommBridge}{room} = 'hidden';
 | 
			
		||||
 | 
			
		||||
	#Log3 $hash->{NAME}, 3, "AMAD ( $hash->{NAME} ) - AMADCommBridge fertig angelegt";
 | 
			
		||||
    #}
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    my @a = split( "[ \t][ \t]*", $def );
 | 
			
		||||
 | 
			
		||||
    return "too few parameters: define <name> AMAD <HOST>" if ( @a != 3 );
 | 
			
		||||
@@ -96,86 +81,32 @@ sub AMAD_Define($$) {
 | 
			
		||||
 | 
			
		||||
    $hash->{HOST} 	= $host;
 | 
			
		||||
    $hash->{PORT} 	= $port;
 | 
			
		||||
    $hash->{INTERVAL} 	= $interval;
 | 
			
		||||
    $hash->{INTERVAL} 	= $interval if( $name ne "AMADCommBridge" );
 | 
			
		||||
    $hash->{VERSION} 	= $version;
 | 
			
		||||
    $hash->{helper}{infoErrorCounter} = 0;
 | 
			
		||||
    $hash->{helper}{setCmdErrorCounter} = 0;
 | 
			
		||||
    $hash->{helper}{infoErrorCounter} = 0 if( $name ne "AMADCommBridge" );
 | 
			
		||||
    $hash->{helper}{setCmdErrorCounter} = 0 if( $name ne "AMADCommBridge" );
 | 
			
		||||
 | 
			
		||||
    Log3 $name, 3, "AMAD ($name) - defined with host $hash->{HOST} on port $hash->{PORT} and interval $hash->{INTERVAL} (sec)";
 | 
			
		||||
    Log3 $name, 3, "AMAD ($name) - defined with host $hash->{HOST} on port $hash->{PORT} and interval $hash->{INTERVAL} (sec)" if( $name ne "AMADCommBridge" );
 | 
			
		||||
 | 
			
		||||
    AMAD_GetUpdateLocal( $hash );
 | 
			
		||||
    AMAD_GetUpdateLocal( $hash ) if( $name ne "AMADCommBridge" );
 | 
			
		||||
    InternalTimer( gettimeofday()+$hash->{INTERVAL}, "AMAD_GetUpdateTimer", $hash, 0 ) if( $name ne "AMADCommBridge" );
 | 
			
		||||
    
 | 
			
		||||
    InternalTimer( gettimeofday()+$hash->{INTERVAL}, "AMAD_GetUpdateTimer", $hash, 0 );
 | 
			
		||||
    #AMAD_CommBridge_Open( $hash ) if( $hash eq "AMADCommBridge" );
 | 
			
		||||
    readingsSingleUpdate ( $hash, "state", "initialized", 1 );
 | 
			
		||||
    readingsSingleUpdate ( $hash, "deviceState", "online", 1 );
 | 
			
		||||
    
 | 
			
		||||
    return undef;
 | 
			
		||||
    
 | 
			
		||||
    if( !$defs{AMADCommBridge} ) {	# Anlegen einer Masterinstanz für die bidirektionale Kommunikation
 | 
			
		||||
    
 | 
			
		||||
	my $bridgeDevice = "AMADCommBridge";
 | 
			
		||||
	CommandDefine( undef, "$bridgeDevice AMAD 127.0.0.1" );
 | 
			
		||||
	$defs{AMADCommBridge}{TEMPORARY} = 1;
 | 
			
		||||
	CommandAttr(undef,"$bridgeDevice room hidden");
 | 
			
		||||
	
 | 
			
		||||
	AMAD_CommBridge_Open( $hash );
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
my ( $hash, $def ) = @_;
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    my @a = split( "[ \t][ \t]*", $def );
 | 
			
		||||
 | 
			
		||||
    return "too few parameters: define <name> AMAD <HOST>" if ( @a != 3 );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    my $name    	= $a[0];
 | 
			
		||||
    my $host    	= $a[2];
 | 
			
		||||
    my $port		= 8090;
 | 
			
		||||
    my $interval  	= 180;
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    $hash->{HOST} 	= $host;
 | 
			
		||||
    $hash->{PORT} 	= $port;
 | 
			
		||||
    $hash->{INTERVAL} 	= $interval;
 | 
			
		||||
    $hash->{VERSION} 	= $version;
 | 
			
		||||
    $hash->{helper}{infoErrorCounter} = 0;
 | 
			
		||||
    $hash->{helper}{setCmdErrorCounter} = 0;
 | 
			
		||||
 | 
			
		||||
    Log3 $name, 3, "AMAD ($name) - defined with host $hash->{HOST} on port $hash->{HOST} and interval $hash->{INTERVAL} (sec)";
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    AMAD_GetUpdateLocal( $hash ); #if( $name ne "AMADCommBridge" );
 | 
			
		||||
    InternalTimer( gettimeofday()+$hash->{INTERVAL}, "AMAD_GetUpdateTimer", $hash, 0 ); #if( $name ne "AMADCommBridge" );
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    readingsSingleUpdate ( $hash, "state", "initialized", 1 ); #if( $name ne "AMADCommBridge" );
 | 
			
		||||
    readingsSingleUpdate ( $hash, "deviceState", "online", 1 ); #if( $name ne "AMADCommBridge" );
 | 
			
		||||
    return undef;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub AMAD_Undef($$) {
 | 
			
		||||
@@ -273,7 +204,7 @@ sub AMAD_GetUpdateLocal($) {
 | 
			
		||||
my ( $hash ) = @_;
 | 
			
		||||
    my $name = $hash->{NAME};
 | 
			
		||||
 | 
			
		||||
    AMAD_RetrieveAutomagicInfo( $hash ) if( $name ne "AMADCommBridge" && ReadingsVal( $name, "deviceState", "online" ) eq "online" && ReadingsVal( $hash->{NAME}, "state", 0 ) ne "initialized" && AttrVal( $name, "disable", 0 ) ne "1" );  ### deviceState muß von Hand online/offline gesetzt werden z.B. ueber RESIDENZ Modul
 | 
			
		||||
    AMAD_RetrieveAutomagicInfo( $hash ) if( ReadingsVal( $name, "deviceState", "online" ) eq "online" && ReadingsVal( $hash->{NAME}, "state", 0 ) ne "initialized" && AttrVal( $name, "disable", 0 ) ne "1" );  ### deviceState muß von Hand online/offline gesetzt werden z.B. ueber RESIDENZ Modul
 | 
			
		||||
    
 | 
			
		||||
    return 1;
 | 
			
		||||
}
 | 
			
		||||
@@ -283,7 +214,7 @@ sub AMAD_GetUpdateTimer($) {
 | 
			
		||||
    my ( $hash ) = @_;
 | 
			
		||||
    my $name = $hash->{NAME};
 | 
			
		||||
 
 | 
			
		||||
    AMAD_RetrieveAutomagicInfo( $hash ) if( $name ne "AMADCommBridge" && ReadingsVal( $name, "deviceState", "online" ) eq "online" && AttrVal( $name, "disable", 0 ) ne "1" );  ### deviceState muss von Hand online/offline gesetzt werden z.B. ueber RESIDENZ Modul
 | 
			
		||||
    AMAD_RetrieveAutomagicInfo( $hash ) if( ReadingsVal( $name, "deviceState", "online" ) eq "online" && AttrVal( $name, "disable", 0 ) ne "1" );  ### deviceState muss von Hand online/offline gesetzt werden z.B. ueber RESIDENZ Modul
 | 
			
		||||
  
 | 
			
		||||
    InternalTimer( gettimeofday()+$hash->{INTERVAL}, "AMAD_GetUpdateTimer", $hash, 1 );
 | 
			
		||||
    Log3 $name, 4, "AMAD ($name) - Call AMAD_GetUpdateTimer";
 | 
			
		||||
@@ -310,6 +241,8 @@ sub AMAD_CommBridge_Open($) {
 | 
			
		||||
sub AMAD_Set($$@) {
 | 
			
		||||
    
 | 
			
		||||
    my ( $hash, $name, $cmd, @val ) = @_;
 | 
			
		||||
    
 | 
			
		||||
    if( $name ne "AMADCommBridge" ) {
 | 
			
		||||
	my $apps = AttrVal( $name, "setOpenApp", "none" );
 | 
			
		||||
  
 | 
			
		||||
	my $list = "";
 | 
			
		||||
@@ -358,6 +291,7 @@ sub AMAD_Set($$@) {
 | 
			
		||||
 | 
			
		||||
	return "Unknown argument $cmd, bearword as argument or wrong parameter(s), choose one of $list";
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub AMAD_RetrieveAutomagicInfo($) {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user