mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-27 16:43:29 +00:00
73_km200.pm: Bugfix double service. Feature service info.
git-svn-id: https://svn.fhem.de/fhem/trunk@12146 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
665607db58
commit
7a3612b003
@ -122,9 +122,10 @@ sub km200_Define($$)
|
||||
"/recordings",
|
||||
"/solarCircuits",
|
||||
"/system",
|
||||
"/dhwCircuits",
|
||||
);
|
||||
####END####### Define known services of gateway ############################################################END#####
|
||||
|
||||
|
||||
|
||||
###START### Check whether all variables are available #####################################################START####
|
||||
if (int(@a) == 5)
|
||||
@ -329,10 +330,9 @@ sub km200_DbLog_splitFn($$)
|
||||
$argument[0] =~ s/:.*//;
|
||||
|
||||
### Log entries for debugging
|
||||
Log3 $name, 5, $name. " : km200_DbLog_splitFn - Content of event : " . $event;
|
||||
|
||||
Log3 $name, 5, $name. " : km200_DbLog_splitFn - Content of argument[0] : " . $argument[0];
|
||||
Log3 $name, 5, $name. " : km200_DbLog_splitFn - Content of argument[1] : " . $argument[1];
|
||||
Log3 $name, 5, $name. " : km200_DbLog_splitFn - Content of event : " . $event;
|
||||
Log3 $name, 5, $name. " : km200_DbLog_splitFn - Content of argument[0] : " . $argument[0];
|
||||
Log3 $name, 5, $name. " : km200_DbLog_splitFn - Content of argument[1] : " . $argument[1];
|
||||
|
||||
### If the service to be changed is identical to the one where the unit received from
|
||||
if ($argument[0] = $hash->{temp}{ServiceDbLogSplitHash}{id})
|
||||
@ -722,13 +722,13 @@ sub km200_Decrypt($)
|
||||
my $decryptData = $hash->{temp}{decodedcontent};
|
||||
|
||||
### Log entries for debugging purposes
|
||||
Log3 $name, 5, $name. " : km200 - decryptData2 - decryptData : " .$decryptData;
|
||||
#Log3 $name, 5, $name. " : km200 - decryptData2 - decryptData : " .$decryptData;
|
||||
|
||||
# Remove additional encoding with base64
|
||||
$decryptData = decode_base64($decryptData);
|
||||
|
||||
### Log entries for debugging purposes
|
||||
Log3 $name, 5, $name. " : km200 - decryptData2 - base64decode : " .$decryptData;
|
||||
#Log3 $name, 5, $name. " : km200 - decryptData2 - base64decode : " .$decryptData;
|
||||
|
||||
# Check whether the length of the decryptData is NOT multiplies of 16
|
||||
if ((length($decryptData)&0xF) != 0)
|
||||
@ -762,9 +762,9 @@ sub km200_Decrypt($)
|
||||
if ( $i != $decipher_padchar )
|
||||
{
|
||||
### Log entries for debugging purposes
|
||||
Log3 $name, 5, $name. " : km200 - decryptData1 - decipher_len : " .$decipher_len;
|
||||
Log3 $name, 5, $name. " : km200 - decryptData1 - decipher_len : " .$decipher_len;
|
||||
$deciphertext =~ s/\x00+$//;
|
||||
Log3 $name, 5, $name. " : km200 - decryptData1 - deciphertext : " .$deciphertext;
|
||||
Log3 $name, 5, $name. " : km200 - decryptData1 - deciphertext : " .$deciphertext;
|
||||
### Log entries for debugging purposes
|
||||
return $deciphertext;
|
||||
}
|
||||
@ -773,9 +773,9 @@ sub km200_Decrypt($)
|
||||
{
|
||||
$deciphertext = substr($deciphertext,0,$decipher_len - $decipher_padchar);
|
||||
### Log entries for debugging purposes
|
||||
Log3 $name, 5, $name. " : km200 - decryptData2 - decipher_len : " .$decipher_len;
|
||||
Log3 $name, 5, $name. " : km200 - decryptData2 - decipher_len : " .$decipher_len;
|
||||
$deciphertext =~ s/\x00+$//;
|
||||
Log3 $name, 5, $name. " : km200 - decryptData2 - deciphertext : " .$deciphertext;
|
||||
Log3 $name, 5, $name. " : km200 - decryptData2 - deciphertext : " .$deciphertext;
|
||||
### Log entries for debugging purposes
|
||||
return $deciphertext;
|
||||
}
|
||||
@ -1579,9 +1579,9 @@ sub km200_GetSingleService($)
|
||||
my $JsonType = $json->{type};
|
||||
|
||||
### Log entries for debugging purposes
|
||||
Log3 $name, 4, $name. " : km200_parseHttpResponseDyn - value found for : " .$Service;
|
||||
Log3 $name, 5, $name. " : km200_parseHttpResponseDyn - id : " .$JsonId;
|
||||
Log3 $name, 5, $name. " : km200_parseHttpResponseDyn - type : " .$JsonType;
|
||||
Log3 $name, 4, $name. " : km200_parseHttpResponseDyn - value found for : " .$Service;
|
||||
Log3 $name, 5, $name. " : km200_parseHttpResponseDyn - id : " .$JsonId;
|
||||
Log3 $name, 5, $name. " : km200_parseHttpResponseDyn - type : " .$JsonType;
|
||||
|
||||
### Set up variables
|
||||
my $TempReturnVal = "";
|
||||
@ -1919,7 +1919,7 @@ sub km200_ParseHttpResponseInit($)
|
||||
if($err ne "")
|
||||
{
|
||||
### Create Log entry
|
||||
Log3 $name, 2, $name . " : km200_ParseHttpResponseInit - ERROR - Service: ".$Service. ": No proper Communication with Gateway: " .$err;
|
||||
Log3 $name, 2, $name . " : km200_ParseHttpResponseInit - ERROR : ".$Service. ": No proper Communication with Gateway: " .$err;
|
||||
|
||||
### Set status of km200 fhem module
|
||||
$hash->{STATE} = "ERROR - Initial Connection failed... Try to re-connect in 10s";
|
||||
@ -1928,8 +1928,8 @@ sub km200_ParseHttpResponseInit($)
|
||||
InternalTimer(gettimeofday()+10, "km200_GetInitService", $hash, 1);
|
||||
|
||||
### Create Log entry
|
||||
Log3 $name, 2, $name . " : km200_ParseHttpResponseInit - ERROR - Timer restarted to try again in 10s";
|
||||
|
||||
Log3 $name, 2, $name . " : km200_ParseHttpResponseInit - ERROR : Timer restarted to try again in 10s";
|
||||
Log3 $name, 5, $name . "______________________________________________________________________________________________________________________";
|
||||
return "ERROR";
|
||||
}
|
||||
|
||||
@ -1957,14 +1957,20 @@ sub km200_ParseHttpResponseInit($)
|
||||
my $JsonValue = $json->{value};
|
||||
|
||||
### Log entries for debugging purposes
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - value found for : " .$Service;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - id : " .$JsonId;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - type : " .$JsonType;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - value : " .$JsonValue;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - value found for : " .$Service;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - id : " .$JsonId;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - type : " .$JsonType;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - value : " .$JsonValue;
|
||||
|
||||
### Add service to the list of responding services
|
||||
push (@KM200_RespondingServices, $Service);
|
||||
|
||||
|
||||
### Delete double entries in the list of responding services and sort in alphabetical order
|
||||
my %FilteredKM200RespondingServices;
|
||||
$FilteredKM200RespondingServices{$_}=0 for @KM200_RespondingServices;
|
||||
@KM200_RespondingServices = (keys %FilteredKM200RespondingServices);
|
||||
@KM200_RespondingServices = sort @KM200_RespondingServices;
|
||||
|
||||
### Save json-hash for DbLog-Split
|
||||
$hash->{temp}{ServiceDbLogSplitHash} = $json;
|
||||
|
||||
@ -1988,7 +1994,7 @@ sub km200_ParseHttpResponseInit($)
|
||||
}
|
||||
|
||||
### Log file entry for debugging
|
||||
$LogMessage = $LogMessage . ": " . $JsonId;
|
||||
$LogMessage = $LogMessage . " : " . $JsonId;
|
||||
Log3 $name, 4, $name. $LogMessage;
|
||||
}
|
||||
### Check whether the type is an switchProgram
|
||||
@ -1999,13 +2005,19 @@ sub km200_ParseHttpResponseInit($)
|
||||
my @JsonValues = $json->{switchPoints};
|
||||
|
||||
### Log entries for debugging purposes
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - value found for : " .$Service;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - id : " .$JsonId;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - type : " .$JsonType;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - value : " .@JsonValues;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - value found for : " .$Service;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - id : " .$JsonId;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - type : " .$JsonType;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - value : " .@JsonValues;
|
||||
|
||||
### Add service to the list of responding services
|
||||
push (@KM200_RespondingServices, $Service);
|
||||
|
||||
### Delete double entries in the list of responding services and sort in alphabetical order
|
||||
my %FilteredKM200RespondingServices;
|
||||
$FilteredKM200RespondingServices{$_}=0 for @KM200_RespondingServices;
|
||||
@KM200_RespondingServices = (keys %FilteredKM200RespondingServices);
|
||||
@KM200_RespondingServices = sort @KM200_RespondingServices;
|
||||
|
||||
### Log file entry for debugging
|
||||
my $LogMessage = " : The following Service can be read";
|
||||
@ -2021,7 +2033,7 @@ sub km200_ParseHttpResponseInit($)
|
||||
# Do nothing
|
||||
$LogMessage = $LogMessage . " ";
|
||||
}
|
||||
$LogMessage = $LogMessage . ": " .$JsonId;
|
||||
$LogMessage = $LogMessage . " : " .$JsonId;
|
||||
Log3 $name, 4, $name . $LogMessage;
|
||||
|
||||
### Set up variables
|
||||
@ -2166,7 +2178,7 @@ sub km200_ParseHttpResponseInit($)
|
||||
$TempJsonId = $JsonId . "/" . "1-Mo";
|
||||
readingsSingleUpdate( $hash, $TempJsonId, $TempReadingMo, 1);
|
||||
### Log file entry for debugging
|
||||
Log3 $name, 5, $name. " : The following Service can be read and is writeable: " . $TempJsonId;
|
||||
Log3 $name, 5, $name. " : The following Service can be read and is writeable : " . $TempJsonId;
|
||||
### Add service to the list of writeable services
|
||||
push (@KM200_WriteableServices, $TempJsonId);
|
||||
|
||||
@ -2175,7 +2187,7 @@ sub km200_ParseHttpResponseInit($)
|
||||
$TempJsonId = $JsonId . "/" . "2-Tu";
|
||||
readingsSingleUpdate( $hash, $TempJsonId, $TempReadingTu, 1);
|
||||
### Log file entry for debugging
|
||||
Log3 $name, 5, $name. " : The following Service can be read and is writeable: " . $TempJsonId;
|
||||
Log3 $name, 5, $name. " : The following Service can be read and is writeable : " . $TempJsonId;
|
||||
### Add service to the list of writeable services
|
||||
push (@KM200_WriteableServices, $TempJsonId);
|
||||
|
||||
@ -2184,7 +2196,7 @@ sub km200_ParseHttpResponseInit($)
|
||||
$TempJsonId = $JsonId . "/" . "3-We";
|
||||
readingsSingleUpdate( $hash, $TempJsonId, $TempReadingWe, 1);
|
||||
### Log file entry for debugging
|
||||
Log3 $name, 5, $name. " : The following Service can be read and is writeable: " . $TempJsonId;
|
||||
Log3 $name, 5, $name. " : The following Service can be read and is writeable : " . $TempJsonId;
|
||||
### Add service to the list of writeable services
|
||||
push (@KM200_WriteableServices, $TempJsonId);
|
||||
|
||||
@ -2193,7 +2205,7 @@ sub km200_ParseHttpResponseInit($)
|
||||
$TempJsonId = $JsonId . "/" . "4-Th";
|
||||
readingsSingleUpdate( $hash, $TempJsonId, $TempReadingTh, 1);
|
||||
### Log file entry for debugging
|
||||
Log3 $name, 5, $name. " : The following Service can be read and is writeable: " . $TempJsonId;
|
||||
Log3 $name, 5, $name. " : The following Service can be read and is writeable : " . $TempJsonId;
|
||||
### Add service to the list of writeable services
|
||||
push (@KM200_WriteableServices, $TempJsonId);
|
||||
|
||||
@ -2202,7 +2214,7 @@ sub km200_ParseHttpResponseInit($)
|
||||
$TempJsonId = $JsonId . "/" . "5-Fr";
|
||||
readingsSingleUpdate( $hash, $TempJsonId, $TempReadingFr, 1);
|
||||
### Log file entry for debugging
|
||||
Log3 $name, 5, $name. " : The following Service can be read and is writeable: " . $TempJsonId;
|
||||
Log3 $name, 5, $name. " : The following Service can be read and is writeable : " . $TempJsonId;
|
||||
### Add service to the list of writeable services
|
||||
push (@KM200_WriteableServices, $TempJsonId);
|
||||
|
||||
@ -2211,7 +2223,7 @@ sub km200_ParseHttpResponseInit($)
|
||||
$TempJsonId = $JsonId . "/" . "6-Sa";
|
||||
readingsSingleUpdate( $hash, $TempJsonId, $TempReadingSa, 1);
|
||||
### Log file entry for debugging
|
||||
Log3 $name, 5, $name. " : The following Service can be read and is writeable: " . $TempJsonId;
|
||||
Log3 $name, 5, $name. " : The following Service can be read and is writeable : " . $TempJsonId;
|
||||
### Add service to the list of writeable services
|
||||
push (@KM200_WriteableServices, $TempJsonId);
|
||||
|
||||
@ -2220,7 +2232,7 @@ sub km200_ParseHttpResponseInit($)
|
||||
$TempJsonId = $JsonId . "/" . "7-Su";
|
||||
readingsSingleUpdate( $hash, $TempJsonId, $TempReadingSu, 1);
|
||||
### Log file entry for debugging
|
||||
Log3 $name, 5, $name. " : The following Service can be read and is writeable: " . $TempJsonId;
|
||||
Log3 $name, 5, $name. " : The following Service can be read and is writeable : " . $TempJsonId;
|
||||
### Add service to the list of writeable services
|
||||
push (@KM200_WriteableServices, $TempJsonId);
|
||||
|
||||
@ -2232,12 +2244,18 @@ sub km200_ParseHttpResponseInit($)
|
||||
my $JsonType = $json->{type};
|
||||
|
||||
### Log entries for debugging purposes
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - value found for : " .$Service;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - id : " .$JsonId;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - type : " .$JsonType;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - value found for : " .$Service;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - id : " .$JsonId;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - type : " .$JsonType;
|
||||
|
||||
### Add service to the list of responding services
|
||||
push (@KM200_RespondingServices, $Service);
|
||||
|
||||
### Delete double entries in the list of responding services and sort in alphabetical order
|
||||
my %FilteredKM200RespondingServices;
|
||||
$FilteredKM200RespondingServices{$_}=0 for @KM200_RespondingServices;
|
||||
@KM200_RespondingServices = (keys %FilteredKM200RespondingServices);
|
||||
@KM200_RespondingServices = sort @KM200_RespondingServices;
|
||||
|
||||
### Log file entry for debugging
|
||||
my $LogMessage = " : The following Service can be read";
|
||||
@ -2246,7 +2264,6 @@ sub km200_ParseHttpResponseInit($)
|
||||
if ($json->{writeable} == 1)
|
||||
{
|
||||
$LogMessage = $LogMessage . " and is writeable ";
|
||||
|
||||
push (@KM200_WriteableServices, $Service);
|
||||
}
|
||||
else
|
||||
@ -2255,7 +2272,7 @@ sub km200_ParseHttpResponseInit($)
|
||||
$LogMessage = $LogMessage . " ";
|
||||
}
|
||||
### Log file entry for debugging
|
||||
$LogMessage = $LogMessage . ": " . $JsonId;
|
||||
$LogMessage = $LogMessage . " : " . $JsonId;
|
||||
Log3 $name, 4, $name . $LogMessage;
|
||||
|
||||
### Sort list by timestamps descending
|
||||
@ -2287,7 +2304,7 @@ sub km200_ParseHttpResponseInit($)
|
||||
readingsSingleUpdate( $hash, $TempServiceString, $TempErrorMessage, 1);
|
||||
|
||||
### Log file entry for debugging
|
||||
Log3 $name, 5, $name. " : The following Service can be read : " .$TempServiceString;
|
||||
Log3 $name, 5, $name. " : The following Service can be read : " .$TempServiceString;
|
||||
}
|
||||
}
|
||||
### Check whether the type is an refEnum which is indicating an empty parent directory
|
||||
@ -2298,7 +2315,7 @@ sub km200_ParseHttpResponseInit($)
|
||||
my @JsonReferences = $json->{references};
|
||||
|
||||
### Log file entry for debugging
|
||||
Log3 $name, 5, $name. "The following Service is an empty parent directory : " . $JsonId;
|
||||
Log3 $name, 5, $name. " : The following Service is an empty parent directory : " . $JsonId;
|
||||
|
||||
### For each item found in this empty parent directory
|
||||
foreach my $item (@{ $json->{references} })
|
||||
@ -2323,23 +2340,78 @@ sub km200_ParseHttpResponseInit($)
|
||||
### Sort the list of all services alphabetically
|
||||
@{$hash ->{Secret}{KM200ALLSERVICES}} = sort @{$hash ->{Secret}{KM200ALLSERVICES}};
|
||||
}
|
||||
### Check whether the type is a systeminfo
|
||||
elsif ($json -> {type} eq "systeminfo")
|
||||
{
|
||||
my $JsonId = $json->{id};
|
||||
my $JsonType = $json->{type};
|
||||
my @JsonValues = $json->{values};
|
||||
|
||||
### Log entries for debugging purposes
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - value found for : " .$Service;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - id : " .$JsonId;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - type : " .$JsonType;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - value : " .@JsonValues;
|
||||
|
||||
### Add service to the list of responding services
|
||||
push (@KM200_RespondingServices, $Service);
|
||||
|
||||
### Delete double entries in the list of responding services and sort in alphabetical order
|
||||
my %FilteredKM200RespondingServices;
|
||||
$FilteredKM200RespondingServices{$_}=0 for @KM200_RespondingServices;
|
||||
@KM200_RespondingServices = (keys %FilteredKM200RespondingServices);
|
||||
@KM200_RespondingServices = sort @KM200_RespondingServices;
|
||||
|
||||
### Log file entry for debugging
|
||||
Log3 $name, 4, $name . " : The following Service can be read : " .$JsonId;
|
||||
|
||||
### Initialise ArrayCounter
|
||||
my $ArrayCounter = 0;
|
||||
|
||||
foreach my $ArrayItem (@{ $json->{values} })
|
||||
{
|
||||
### Incrementation of ArrayCounter
|
||||
$ArrayCounter++;
|
||||
|
||||
### Log file entry for debugging
|
||||
Log3 $name, 5, $name . " : The ArrayItem is : " . $ArrayItem ;
|
||||
Log3 $name, 5, $name . " : The keys ArrayItem is : " . (keys $ArrayItem) ;
|
||||
|
||||
### Get array from scalar
|
||||
my %ArrayHash = %{$ArrayItem};
|
||||
|
||||
while( my( $SystemInfoHashKey, $SystemInfoHashValue ) = each %ArrayHash )
|
||||
{
|
||||
### Log file entry for debugging
|
||||
Log3 $name, 5, $name . " : The ArrayHashKey is : " . $SystemInfoHashKey;
|
||||
Log3 $name, 5, $name . " : The ArrayHashValue is : " . $SystemInfoHashValue;
|
||||
|
||||
### Create new Service and write reading for fhem
|
||||
my $TempJsonId = $JsonId . "/" . sprintf ('%02d', $ArrayCounter) . "/" . $SystemInfoHashKey;
|
||||
readingsSingleUpdate( $hash, $TempJsonId, $SystemInfoHashValue, 1);
|
||||
### Log file entry for debugging
|
||||
Log3 $name, 5, $name . " : The following Service can be read : " . $TempJsonId;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
### Check whether the type is unknown
|
||||
else
|
||||
{
|
||||
### Log entries for debugging purposes
|
||||
Log3 $name, 4, $name. " : km200_ParseHttpResponseInit - type unknown for : " .$Service;
|
||||
Log3 $name, 4, $name. " : km200_ParseHttpResponseInit - type unknown for : " .$Service;
|
||||
}
|
||||
}
|
||||
### Check whether the decoded content is empty and therefore NOT available
|
||||
else
|
||||
{
|
||||
### Log entries for debugging purposes
|
||||
Log3 $name, 4, $name. " : km200_ParseHttpResponseInit - NOT available : ". $Service;
|
||||
Log3 $name, 4, $name. " : km200_ParseHttpResponseInit - NOT available : ". $Service;
|
||||
}
|
||||
|
||||
### Log entries for debugging purposes
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit : response : " .$data;
|
||||
|
||||
#Log3 $name, 5, $name. " : km200_ParseHttpResponseInit : response : " .$data;
|
||||
Log3 $name, 5, $name . "______________________________________________________________________________________________________________________";
|
||||
### Get the size of the array
|
||||
@KM200_InitServices = @{$hash ->{Secret}{KM200ALLSERVICES}};
|
||||
$NumberInitServices = @KM200_InitServices;
|
||||
@ -2430,7 +2502,7 @@ sub km200_GetDynService($)
|
||||
}
|
||||
|
||||
### Log file entry for debugging
|
||||
Log3 $name, 5, $name . " - km200_GetDynService - Polling : " . $Service;
|
||||
Log3 $name, 5, $name . " - km200_GetDynService - Polling : " . $Service;
|
||||
|
||||
my $url = "http://" . $km200_gateway_host . $Service;
|
||||
my $param = {
|
||||
@ -2470,7 +2542,7 @@ sub km200_ParseHttpResponseDyn($)
|
||||
my $type;
|
||||
my $json ->{type} = "";
|
||||
|
||||
Log3 $name, 5, $name. " : Parsing response of dynamic service received for: " . $Service;
|
||||
Log3 $name, 5, $name. " : Parsing response of dynamic service received for : " . $Service;
|
||||
|
||||
### Reset Status Flag
|
||||
$hash->{status}{FlagDynRequest} = false;
|
||||
@ -2504,10 +2576,10 @@ sub km200_ParseHttpResponseDyn($)
|
||||
my $JsonValue = $json->{value};
|
||||
|
||||
### Log entries for debugging purposes
|
||||
Log3 $name, 4, $name. " : km200_parseHttpResponseDyn - value found for : " .$Service;
|
||||
Log3 $name, 5, $name. " : km200_parseHttpResponseDyn - id : " .$JsonId;
|
||||
Log3 $name, 5, $name. " : km200_parseHttpResponseDyn - type : " .$JsonType;
|
||||
Log3 $name, 5, $name. " : km200_parseHttpResponseDyn - value : " .$JsonValue;
|
||||
Log3 $name, 4, $name. " : km200_parseHttpResponseDyn - value found for : " .$Service;
|
||||
Log3 $name, 5, $name. " : km200_parseHttpResponseDyn - id : " .$JsonId;
|
||||
Log3 $name, 5, $name. " : km200_parseHttpResponseDyn - type : " .$JsonType;
|
||||
Log3 $name, 5, $name. " : km200_parseHttpResponseDyn - value : " .$JsonValue;
|
||||
### Log entries for debugging purposes
|
||||
|
||||
### Save json-hash for DbLog-Split
|
||||
@ -2525,9 +2597,9 @@ sub km200_ParseHttpResponseDyn($)
|
||||
my $JsonType = $json->{type};
|
||||
|
||||
### Log entries for debugging purposes
|
||||
Log3 $name, 4, $name. " : km200_parseHttpResponseDyn - value found for : " .$Service;
|
||||
Log3 $name, 5, $name. " : km200_parseHttpResponseDyn - id : " .$JsonId;
|
||||
Log3 $name, 5, $name. " : km200_parseHttpResponseDyn - type : " .$JsonType;
|
||||
Log3 $name, 4, $name. " : km200_parseHttpResponseDyn - value found for : " .$Service;
|
||||
Log3 $name, 5, $name. " : km200_parseHttpResponseDyn - id : " .$JsonId;
|
||||
Log3 $name, 5, $name. " : km200_parseHttpResponseDyn - type : " .$JsonType;
|
||||
|
||||
### Set up variables
|
||||
my $TempJsonId = "";
|
||||
@ -2731,6 +2803,38 @@ sub km200_ParseHttpResponseDyn($)
|
||||
readingsSingleUpdate( $hash, $TempServiceString, $TempErrorMessage, 1);
|
||||
}
|
||||
}
|
||||
### Check whether the type is a systeminfo
|
||||
elsif ($json -> {type} eq "systeminfo")
|
||||
{
|
||||
my $JsonId = $json->{id};
|
||||
my $JsonType = $json->{type};
|
||||
my @JsonValues = $json->{values};
|
||||
|
||||
### Log entries for debugging purposes
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - value found for : " .$Service;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - id : " .$JsonId;
|
||||
Log3 $name, 5, $name. " : km200_ParseHttpResponseInit - type : " .$JsonType;
|
||||
|
||||
### Initialise ArrayCounter
|
||||
my $ArrayCounter = 0;
|
||||
|
||||
foreach my $ArrayItem (@{ $json->{values} })
|
||||
{
|
||||
### Incrementation of ArrayCounter
|
||||
$ArrayCounter++;
|
||||
|
||||
|
||||
### Get array from scalar
|
||||
my %ArrayHash = %{$ArrayItem};
|
||||
|
||||
while( my( $SystemInfoHashKey, $SystemInfoHashValue ) = each %ArrayHash )
|
||||
{
|
||||
### Create new Service and write reading for fhem
|
||||
my $TempJsonId = $JsonId . "/" . sprintf ('%02d', $ArrayCounter) . "/" . $SystemInfoHashKey;
|
||||
readingsSingleUpdate( $hash, $TempJsonId, $SystemInfoHashValue, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
### Check whether the type is unknown
|
||||
else
|
||||
{
|
||||
@ -2743,7 +2847,7 @@ sub km200_ParseHttpResponseDyn($)
|
||||
Log3 $name, 5, $name. " : km200_parseHttpResponseDyn - Data not available on km200 for http://" . $param->{url};
|
||||
}
|
||||
|
||||
|
||||
Log3 $name, 5, $name . "______________________________________________________________________________________________________________________";
|
||||
### Clear up temporary variables
|
||||
$hash->{temp}{decodedcontent} = "";
|
||||
$hash->{temp}{service} = "";
|
||||
@ -2770,6 +2874,8 @@ sub km200_ParseHttpResponseDyn($)
|
||||
readingsSingleUpdate( $hash, "fullResponse", "OK", 1);
|
||||
|
||||
$hash->{status}{FlagDynRequest} = false;
|
||||
|
||||
Log3 $name, 5, $name . "______________________________________________________________________________________________________________________";
|
||||
}
|
||||
return undef;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user