Installationsassistent verbessert, diverse Bugfixes in den Modulen, ready for betausertest

This commit is contained in:
Marko Oldenburg 2017-05-30 00:14:39 +02:00
parent 3e2de00594
commit 7af196bada
3 changed files with 4458 additions and 20 deletions

View File

@ -41,8 +41,8 @@
###### Möglicher Aufbau eines JSON Strings für die AMADCommBridge
#
# first initial String
# {"amad": {"amad_id": "1495827100156","fhemcmd": "setreading"},"payload": {},"firstrun": {"fhemdevice": "TabletWohnzimmer","fhemserverip": "fhem02.tuxnet.local","amaddevice_ip": "10.6.9.35"}}
# {"amad": {"amad_id": "1495827100156","fhemcmd": "setreading"},"payload": {},"firstrun": {"fhemdevice": "TabletWohnzimmer","fhemserverip": "fhem02.tuxnet.local","amaddevice_ip": "10.6.9.35"}}
# {"amad": {"amad_id": "1495827100156","fhemcmd": "setreading"},"firstrun": {"fhemdevice": "TabletWohnzimmer","fhemserverip": "fhem02.tuxnet.local","amaddevice_ip": "10.6.9.35"}}
# {"amad": {"amad_id": "1495827100156","fhemcmd": "setreading"},"firstrun": {"fhemdevice": "TabletWohnzimmer","fhemserverip": "fhem02.tuxnet.local","amaddevice_ip": "10.6.9.35"}}
#
# default String
# {"amad": {"amad_id": "37836534","fhemcmd": "setreading"},"payload": {"reading0": "value0","reading1": "value1","readingX": "valueX"}}
@ -68,8 +68,8 @@ use TcpServerUtils;
eval "use JSON;1" or $missingModul .= "JSON ";
my $modulversion = "3.9.48";
my $flowsetversion = "3.9.48";
my $modulversion = "3.9.52";
my $flowsetversion = "3.9.52";
@ -563,7 +563,7 @@ sub AMADCommBridge_Open($) {
readingsSingleUpdate ( $hash, "state", "opened", 1 ) if( defined($hash->{FD}) );
Log3 $name, 3, "AMADCommBridge ($name) - Socket opened.";
return;
return $ret;
}
sub AMADCommBridge_Close($) {
@ -603,9 +603,9 @@ sub AMADCommBridge_Read($) {
# When there is an error in connection return
if( !defined($ret ) || $ret <= 0 ) {
if( !defined($ret ) or $ret <= 0 ) {
CommandDelete( undef, $name );
Log3 $name, 5, "AMADCommBridge ($name) - Error in connection";
Log3 $name, 5, "AMADCommBridge ($name) - Connection closed for $name";
return;
}
@ -674,7 +674,7 @@ sub AMADCommBridge_ProcessRead($$) {
Log3 $name, 5, "AMADCommBridge ($name) - Incoming data: " . $json;
$buffer = $buffer . $json;
Log3 $name, 5, "AMADCommBridge ($name) - Current processing buffer (PARTIAL + incoming data): " . $buffer;
Log3 $name, 4, "AMADCommBridge ($name) - Current processing buffer (PARTIAL + incoming data): " . $buffer;
my ($correct_json,$tail) = AMADCommBridge_ParseMsg($hash, $buffer);
@ -722,10 +722,11 @@ sub AMADCommBridge_ResponseProcessing($$) {
my $response;
my $c;
#my $json = $data[1];
my $decode_json;
$decode_json = eval{decode_json($json)};
if($@){
Log3 $bname, 3, "AMADCommBridge ($name) - ERROR while request: $@";
readingsSingleUpdate($bhash, "JSON info", "JSON ERROR", 1);
@ -744,8 +745,11 @@ sub AMADCommBridge_ResponseProcessing($$) {
my $fhemDevice;
if( defined($decode_json->{firstrun}) and ($decode_json->{firstrun}) ) {
$fhemDevice = $decode_json->{payload}{fhemdevice} if( defined($decode_json->{firstrun}{fhemdevice}) );
$fhemDevice = $decode_json->{firstrun}{fhemdevice} if( defined($decode_json->{firstrun}{fhemdevice}) );
} else {
$fhemDevice = $modules{AMADDevice}{defptr}{$amad_id}->{NAME};
}
@ -771,7 +775,7 @@ sub AMADCommBridge_ResponseProcessing($$) {
if( defined($fhemcmd) and ($fhemcmd) ) {
if ( $fhemcmd eq 'setreading' ) {
return Log3 $bname, 3, "AMADCommBridge ($name) - AMADCommBridge: processing receive no reading values from Device: $fhemDevice"
unless( defined($decode_json->{payload}) and ($decode_json->{payload}) );
unless( (defined($decode_json->{payload}) and ($decode_json->{payload})) or (defined($decode_json->{firstrun}) and ($decode_json->{firstrun})) );
Log3 $bname, 4, "AMADCommBridge ($bname) - AMADCommBridge: processing receive reading values - Device: $fhemDevice Data: $decode_json->{payload}";
@ -795,7 +799,7 @@ sub AMADCommBridge_ResponseProcessing($$) {
fhem ("set $fhemCmd") if( ReadingsVal( $bname, "expertMode", 0 ) eq "1" );
readingsSingleUpdate( $bhash, "receiveFhemCommand", "set ".$fhemCmd, 0 );
Log3 $bname, 3, "AMADCommBridge ($name) - AMADCommBridge_CommBridge: set reading receive fhem command";
Log3 $bname, 4, "AMADCommBridge ($name) - AMADCommBridge_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};
@ -843,6 +847,7 @@ sub AMADCommBridge_ResponseProcessing($$) {
return;
}
# elsif ( $fhemcmd =~ /fhemfunc\b/ ) {
# my $fhemCmd = $data[1];
#

View File

@ -54,8 +54,8 @@ use Encode qw(encode);
eval "use JSON;1" or $missingModul .= "JSON ";
my $modulversion = "3.9.49";
my $flowsetversion = "3.9.48";
my $modulversion = "3.9.52";
my $flowsetversion = "3.9.52";
@ -185,11 +185,11 @@ sub AMADDevice_Define($$) {
if( $init_done ) {
AMADDevice_GetUpdate($hash);
InternalTimer( gettimeofday()+3, "AMADDevice_GetUpdate", $hash, 0 ) if( ($hash->{HOST}) );
} else {
InternalTimer( gettimeofday()+30, "AMADDevice_GetUpdate", $hash, 0 ) if( ($hash->{HOST}) );
InternalTimer( gettimeofday()+15, "AMADDevice_GetUpdate", $hash, 0 ) if( ($hash->{HOST}) );
}
$modules{AMADDevice}{defptr}{$amad_id} = $hash;
@ -354,7 +354,6 @@ sub AMADDevice_statusRequest($) {
my $apssid = AttrVal( $name, "setAPSSID", "none" );
my $fhemip = ReadingsVal($hash->{IODev}->{NAME}, "fhemServerIP", "none");
my $bport = $hash->{IODev}->{PORT};
my $amad_id = $hash->{AMAD_ID};
$uri = $host . ":" . $port . "/fhem-amad/deviceInfo/"; # Pfad muß so im Automagic als http request Trigger drin stehen
@ -758,8 +757,7 @@ sub AMADDevice_Parse($$) {
}
Log3 $name, 4, "AMADDevice ($name) - ParseFn was called";
Log3 $name, 4, "AMADDevice ($name) - ParseFn was called, !!! JSON: $json";
Log3 $name, 4, "AMADDevice ($name) - ParseFn was called, !!! AMAD_ID: $decode_json->{amad}{amad_id}";
Log3 $name, 5, "AMADDevice ($name) - ParseFn was called, !!! AMAD_ID: $decode_json->{amad}{amad_id}";
my $fhemDevice = $decode_json->{firstrun}{fhemdevice} if( defined($decode_json->{firstrun}) and defined($decode_json->{firstrun}{fhemdevice}) );
@ -782,6 +780,7 @@ sub AMADDevice_Parse($$) {
##################################
##################################
#### my little helpers ###########
sub AMADDevice_checkDeviceState($) {
my ( $hash ) = @_;

File diff suppressed because it is too large Load Diff