diff --git a/fhem/FHEM/72_TA_CMI_JSON.pm b/fhem/FHEM/72_TA_CMI_JSON.pm index d077f73b4..b1a70e2bb 100755 --- a/fhem/FHEM/72_TA_CMI_JSON.pm +++ b/fhem/FHEM/72_TA_CMI_JSON.pm @@ -47,6 +47,8 @@ sub TA_CMI_JSON_Initialize { $hash->{DefFn} = "TA_CMI_JSON::Define"; $hash->{UndefFn} = "TA_CMI_JSON::Undef"; $hash->{NotifyFn} = "TA_CMI_JSON::Notify"; +# $hash->{FW_detailFn} = "TA_CMI_JSON::DetailFn"; +# $hash->{FW_directNotify} = "TA_CMI_JSON::DirectNotify"; $hash->{AttrList} = "username password outputStatesInterval interval readingNamesInputs readingNamesOutputs readingNamesDL-Bus readingNamesLoggingAnalog readingNamesLoggingDigital includePrettyReadings:0,1 includeUnitReadings:0,1 prettyOutputStates:0,1 " . $readingFnAttributes; @@ -184,14 +186,15 @@ sub SetupIntervals { my $queryParams = $hash->{QUERYPARAM}; if ( defined $queryParams ) { $hash->{INTERVAL} = AttrVal( $name, "interval", "60" ); - Log3 $name, 0, "TA_CMI_JSON ($name) - queryParam interval: ".$hash->{INTERVAL}; - Log3 $name, 0, "TA_CMI_JSON ($name) - queryParams=$queryParams"; - GetStatus( $hash ); + Log3 $name, 3, "TA_CMI_JSON ($name) - queryParam interval: ".$hash->{INTERVAL}; + Log3 $name, 3, "TA_CMI_JSON ($name) - queryParams=$queryParams"; } + #make initial call in any case, even if queryParams not defined. because that brings us model and number of outputs + GetStatus( $hash ); my $outputStatesInterval = AttrVal( $name, 'outputStatesInterval', undef); if ( defined $outputStatesInterval ) { - Log3 $name, 0, "TA_CMI_JSON ($name) - Define::outputStatesInterval: $outputStatesInterval"; + Log3 $name, 3, "TA_CMI_JSON ($name) - Define::outputStatesInterval: $outputStatesInterval"; RequestOutputStates ( $hash ); } @@ -272,7 +275,7 @@ sub ParseHttpResponse { if ($canDevice eq 'UVR16x2' or $canDevice eq 'RSM610' ) { extractReadings($hash, $keyValues, 'DL-Bus', 'DL-Bus'); } else { - Log3 $name, 0, "TA_CMI_JSON ($name) - Reading DL-Bus input is not supported on $canDevice"; + Log3 $name, 1, "TA_CMI_JSON ($name) - Reading DL-Bus input is not supported on $canDevice"; } } @@ -280,7 +283,7 @@ sub ParseHttpResponse { if ($canDevice eq 'UVR16x2') { extractReadings($hash, $keyValues, 'LoggingAnalog', 'Logging_Analog'); } else { - Log3 $name, 0, "TA_CMI_JSON ($name) - Reading Logging Analog data is not supported on $canDevice"; + Log3 $name, 1, "TA_CMI_JSON ($name) - Reading Logging Analog data is not supported on $canDevice"; } } @@ -288,7 +291,7 @@ sub ParseHttpResponse { if ($canDevice eq 'UVR16x2') { extractReadings($hash, $keyValues, 'LoggingDigital', 'Logging_Digital'); } else { - Log3 $name, 0, "TA_CMI_JSON ($name) - Reading Logging Digital data is not supported on $canDevice"; + Log3 $name, 1, "TA_CMI_JSON ($name) - Reading Logging Digital data is not supported on $canDevice"; } } } @@ -429,7 +432,7 @@ sub ParseOutputStateResponse { my $prettyOutputStates = AttrVal( $name, "prettyOutputStates", '0' ); my $readingNames = AttrVal($name, "readingNamesOutputs", undef); if ( ! defined $readingNames ) { - Log3 $name, 0, "TA_CMI_JSON ($name) - Unable to assign output states, please set attribute readingNamesOutputs"; + Log3 $name, 1, "TA_CMI_JSON ($name) - Unable to assign output states, please set attribute readingNamesOutputs"; return undef; } my @readingsArray = split(/ /, $readingNames); #1:T.Kollektor 5:T.Vorlauf @@ -465,6 +468,96 @@ sub ParseOutputStateResponse { return undef; } +my $counter = 0; + +sub DetailFn { + my $css = ''; + + +my $html = ' +