2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 18:59:33 +00:00

Luxtronik2: returnTemperatureSetBack eingeführt

git-svn-id: https://svn.fhem.de/fhem/trunk@5381 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
tpoitzsch 2014-03-31 09:38:47 +00:00
parent bf79073e97
commit fc2c5af587

View File

@ -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 ($$$$)
<li><code>hotWaterTemperatureTarget &lt;temperature&gt;</code><br>
Target temperature of domestic hot water boiler in &deg;C
</li><br>
<li><code>returnTemperatureSetBack &lt;Temperatur&gt;</code>
<br>
Decreasing or increasing of the returnTemperatureTarget by -5&deg;C till + 5&deg;C
</li><br>
<li><code>INTERVAL &lt;polling interval&gt;</code><br>
Polling interval in seconds
</li><br>
@ -1694,7 +1713,7 @@ LUXTRONIK2_doStatisticDelta ($$$$)
<br>
<i>Das Modul wurde bisher mit folgender Steuerungs-Firmware getestet: V1.54C, V1.60, V1.69.</i>
<br>
Mehr Infos unter im entsprechenden <a href="http://www.fhemwiki.de/wiki/Luxtronik_2.0">Artikel der FHEM-Wiki</a>.
Mehr Infos im entsprechenden <u><a href="http://www.fhemwiki.de/wiki/Luxtronik_2.0">Artikel der FHEM-Wiki</a></u>.
<br>&nbsp;
<br>
<a name="LUXTRONIK2define"></a>
@ -1721,6 +1740,10 @@ LUXTRONIK2_doStatisticDelta ($$$$)
<br>
Soll-Temperatur des Hei&szlig;wasserboilers in &deg;C
</li><br>
<li><code>returnTemperatureSetBack &lt;Temperatur&gt;</code>
<br>
Absenkung oder Anhebung der Rücklauftemperatur um -5&deg;C - + 5&deg;C
</li><br>
<li><code>INTERVAL &lt;Abfrageinterval&gt;</code>
<br>
Abfrageinterval in Sekunden