diff --git a/fhem/FHEM/23_LUXTRONIK2.pm b/fhem/FHEM/23_LUXTRONIK2.pm index b1dfd3567..61c918f36 100644 --- a/fhem/FHEM/23_LUXTRONIK2.pm +++ b/fhem/FHEM/23_LUXTRONIK2.pm @@ -46,7 +46,7 @@ sub LUXTRONIK2_storeReadings ($$$$$); sub LUXTRONIK2_doStatisticDelta ($$$$) ; # Modul Version for remote debugging - my $modulVersion = "2014-03-03"; + my $modulVersion = "2014-03-31"; #List of firmware versions that are known to be compatible with this modul my $testedFirmware = "#V1.54C#V1.60#V1.69#"; @@ -266,7 +266,8 @@ LUXTRONIK2_Set($$@) return $resultStr; } elsif(int(@_)==4 && ($cmd eq 'hotWaterTemperatureTarget' - || $cmd eq 'opModeHotWater')) { + || $cmd eq 'opModeHotWater' + || $cmd eq 'returnTemperatureSetBack')) { $hash->{LOCAL} = 1; $resultStr = LUXTRONIK2_SetParameter ($hash, $cmd, $val); $hash->{LOCAL} = 0; @@ -276,6 +277,7 @@ LUXTRONIK2_Set($$@) my $list = "statusRequest:noArg" ." resetStatistics:all,statBoilerGradientCoolDownMin" ." hotWaterTemperatureTarget:slider,30.0,0.5,65.0" + ." returnTemperatureSetBack:slider,-5,0.5,5" ." opModeHotWater:Auto,Party,Off" ." synchronizeClockHeatPump:noArg" ." INTERVAL:slider,30,30,1800"; @@ -539,7 +541,7 @@ LUXTRONIK2_DoUpdate($) # 18 - returnTemperatureExtern $return_str .= "|".($heatpump_visibility[24]==1 ? $heatpump_values[13] : "no"); # 19 - flowRate - $return_str .= "|".$heatpump_values[155]; + $return_str .= "|".($heatpump_visibility[240]==1 ? $heatpump_values[155] : "no"); # 20 - firmware my $fwvalue = ""; for(my $fi=81; $fi<91; $fi++) { @@ -612,6 +614,8 @@ LUXTRONIK2_DoUpdate($) $return_str .= "|". ($heatpump_visibility[248]==1 ? $heatpump_values[161] : "no"); # 53 - Number of visibility attributes $return_str .= "|".$countVisibAttr; + # 54 - returnTemperatureSetBack + $return_str .= "|".$heatpump_parameters[1]; return $return_str; } @@ -855,8 +859,9 @@ LUXTRONIK2_UpdateDone($) readingsBulkUpdate( $hash, "flowTemperature", $flowTemperature); readingsBulkUpdate( $hash, "returnTemperature", $returnTemperature); readingsBulkUpdate( $hash, "returnTemperatureTarget",LUXTRONIK2_CalcTemp($a[17])); - if ($a[18] !~ /no/) {readingsBulkUpdate( $hash, "returnTemperatureExtern",LUXTRONIK2_CalcTemp($a[18]))}; - readingsBulkUpdate( $hash, "flowRate",$a[19]); + readingsBulkUpdate( $hash, "returnTemperaturSetBack",LUXTRONIK2_CalcTemp($a[54])); + if ($a[18] !~ /no/) {readingsBulkUpdate( $hash, "returnTemperatureExtern",LUXTRONIK2_CalcTemp($a[18]));} + if ($a[19] !~ /no/) {readingsBulkUpdate( $hash, "flowRate",$a[19]);} readingsBulkUpdate( $hash, "heatSourceIN",$heatSourceIN); readingsBulkUpdate( $hash, "heatSourceOUT",LUXTRONIK2_CalcTemp($a[24])); readingsBulkUpdate( $hash, "hotGasTemperature",LUXTRONIK2_CalcTemp($a[26])); @@ -869,9 +874,9 @@ LUXTRONIK2_UpdateDone($) LUXTRONIK2_storeReadings $hash, "counterHoursHeatPump", $a[33], 3600, $doStatistic; LUXTRONIK2_storeReadings $hash, "counterHoursHeating", $a[34], 3600, $doStatistic; LUXTRONIK2_storeReadings $hash, "counterHoursHotWater", $a[35], 3600, $doStatistic; - LUXTRONIK2_storeReadings $hash, "counterHeatQHeating", $a[36], 10, $doStatistic; - LUXTRONIK2_storeReadings $hash, "counterHeatQHotWater", $a[37], 10, $doStatistic; - LUXTRONIK2_storeReadings $hash, "counterHeatQTotal", $a[36] + $a[37], 10, $doStatistic; + LUXTRONIK2_storeReadings $hash, "counterHeatQHeating", $a[36], 10, $a[19] !~ /no/ ? $doStatistic : 0; + LUXTRONIK2_storeReadings $hash, "counterHeatQHotWater", $a[37], 10, $a[19] !~ /no/ ? $doStatistic : 0; + LUXTRONIK2_storeReadings $hash, "counterHeatQTotal", $a[36] + $a[37], 10, $a[19] !~ /no/ ? $doStatistic : 0; # Input / Output status @@ -1027,9 +1032,19 @@ LUXTRONIK2_SetParameter($$$) if (! exists($opMode{$realValue})) { return "$name Error: Wrong parameter given for opModeHotWater, use Automatik,Party,Off" } - $setParameter = 4; + $setParameter = 4; $setValue = $opMode{$realValue}; } + elsif ($parameterName eq "returnTemperatureSetBack") { + #parameter number + $setParameter = 1; + #limit temperature range + $realValue = -5 if( $realValue < -5 ); + $realValue = 5 if( $realValue > 5 ); + #Allow only integer temperature or with decimal .5 + $setValue = int($realValue * 2) * 5; + $realValue = $setValue / 10; + } else { return "$name LUXTRONIK2_SetParameter-Error: unknown parameter $parameterName"; } @@ -1625,6 +1640,10 @@ LUXTRONIK2_doStatisticDelta ($$$$)
hotWaterTemperatureTarget <temperature>returnTemperatureSetBack <Temperatur>
+ INTERVAL <polling interval>returnTemperatureSetBack <Temperatur>
+ INTERVAL <Abfrageinterval>