Response mit ReadingsVal für Automagic Rückgabewert eingebaut, Codesäuberung, Bugfixes

This commit is contained in:
Marko Oldenburg 2015-11-17 10:11:02 +01:00
parent 5a2a97228a
commit 30b1d8a34d

View File

@ -58,8 +58,8 @@ sub AMAD_Initialize($) {
"root:0,1 ".
"interval ".
"port ".
"disable:1 " if( $hash->{HOST} );
$hash->{AttrList} .= $readingFnAttributes if( $hash->{HOST} );
"disable:1 ".
$readingFnAttributes;
foreach my $d(sort keys %{$modules{AMAD}{defptr}}) {
my $hash = $modules{AMAD}{defptr}{$d};
@ -250,7 +250,7 @@ sub AMAD_RetrieveAutomagicInfo($) {
my $name = $hash->{NAME};
my $host = $hash->{HOST};
my $port = $hash->{PORT};
my $fhemip = ReadingsVal( $bhash, "fhemServerIP", "none" );
my $fhemip = ReadingsVal( $bname, "fhemServerIP", "none" );
my $activetask = AttrVal( $name, "checkActiveTask", "none" );
@ -883,15 +883,6 @@ sub AMAD_CommBridge_Read($) {
return;
}
my $response = "header lines: \r\n AMADCommBridge receive Data complete\r\n FHEM will process\r\n now\r\n";
my $c = $hash->{CD};
print $c "HTTP/1.1 200 OK\r\n",
"Content-Type: text/plain\r\n",
"Content-Length: ".length($response)."\r\n\r\n",
$response;
#### Verarbeitung der Daten welche über die AMADCommBridge kommen ####
@ -905,6 +896,8 @@ sub AMAD_CommBridge_Read($) {
my $header = AMAD_Header2Hash( $data[0] );
my $device = $header->{FHEMDEVICE};
my $dhash = $defs{$device};
my $response;
my $c;
my $fhemcmd = $header->{FHEMCMD};
@ -939,16 +932,30 @@ sub AMAD_CommBridge_Read($) {
### End Response Processing
$response = "header lines: \r\n AMADCommBridge receive Data complete\r\n FHEM was processes\r\n";
$c = $hash->{CD};
print $c "HTTP/1.1 200 OK\r\n",
"Content-Type: text/plain\r\n",
"Content-Length: ".length($response)."\r\n\r\n",
$response;
return;
}
elsif ( $fhemcmd =~ /set\b/ ) {
my $fhemCmd = $data[1];
fhem ("$fhemCmd") if( ReadingsVal( "$bname", "expertMode", 0 ) eq "1" );
readingsSingleUpdate( $bhash, "receiveFhemCommand", $fhemCmd, 1 );
fhem ("set $fhemCmd") if( ReadingsVal( $bname, "expertMode", 0 ) eq "1" );
readingsSingleUpdate( $bhash, "receiveFhemCommand", "set ".$fhemCmd, 0 );
Log3 $name, 4, "AMAD ($name) - AMAD_CommBridge: set reading receive fhem command";
$response = "header lines: \r\n AMADCommBridge receive Data complete\r\n FHEM execute set command now\r\n";
$c = $hash->{CD};
print $c "HTTP/1.1 200 OK\r\n",
"Content-Type: text/plain\r\n",
"Content-Length: ".length($response)."\r\n\r\n",
$response;
return;
}
@ -957,14 +964,52 @@ sub AMAD_CommBridge_Read($) {
readingsSingleUpdate( $bhash, "receiveVoiceCommand", $fhemCmd, 1 );
Log3 $name, 4, "AMAD ($name) - AMAD_CommBridge: set reading receive voice command";
$response = "header lines: \r\n AMADCommBridge receive Data complete\r\n FHEM was processes\r\n";
$c = $hash->{CD};
print $c "HTTP/1.1 200 OK\r\n",
"Content-Type: text/plain\r\n",
"Content-Length: ".length($response)."\r\n\r\n",
$response;
return;
}
elsif ( $fhemcmd eq "statusrequest" ) {
$response = "header lines: \r\n AMADCommBridge receive Data complete\r\n FHEM was processes\r\n";
$c = $hash->{CD};
print $c "HTTP/1.1 200 OK\r\n",
"Content-Type: text/plain\r\n",
"Content-Length: ".length($response)."\r\n\r\n",
$response;
Log3 $name, 4, "AMAD ($name) - AMAD_CommBridge: Call statusRequest";
return AMAD_GetUpdateLocal( $dhash );
}
elsif ( $fhemcmd =~ /readingsval\b/ ) {
my $fhemCmd = $data[1];
my @datavalue = split( ' ', $data[1] );
$response = ReadingsVal( $datavalue[0], $datavalue[1], $datavalue[2] );
$c = $hash->{CD};
print $c "HTTP/1.1 200 OK\r\n",
"Content-Type: text/plain\r\n",
"Content-Length: ".length($response)."\r\n\r\n",
$response;
Log3 $name, 4, "AMAD ($name) - AMAD_CommBridge: response ReadingsVal Value to Automagic Device";
return;
}
$response = "header lines: \r\n AMADCommBridge receive incomplete or corrupt Data\r\n FHEM to do nothing\r\n";
$c = $hash->{CD};
print $c "HTTP/1.1 200 OK\r\n",
"Content-Type: text/plain\r\n",
"Content-Length: ".length($response)."\r\n\r\n",
$response;
}
sub AMAD_Header2Hash($) {