2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-03 16:56:54 +00:00

luxtronik2, statistics: bug fixes

git-svn-id: https://svn.fhem.de/fhem/trunk@6799 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
tpoitzsch 2014-10-21 21:06:06 +00:00
parent e429465583
commit 27acaa8b74
2 changed files with 13 additions and 12 deletions

View File

@ -1,4 +1,4 @@
############################################################### ###############################################################
# $Id$ # $Id$
# #
# 23_LUXTRONIK2.pm # 23_LUXTRONIK2.pm
@ -767,18 +767,19 @@ LUXTRONIK2_UpdateDone($)
#WM[kW] = delta_Temp [K] * Durchfluss [l/h] / ( 3.600 [kJ/kWh] / ( 4,179 [kJ/(kg*K)] (H2O Wärmekapazität bei 30 & 40°C) * 0,994 [kg/l] (H2O Dichte bei 35°C) ) #WM[kW] = delta_Temp [K] * Durchfluss [l/h] / ( 3.600 [kJ/kWh] / ( 4,179 [kJ/(kg*K)] (H2O Wärmekapazität bei 30 & 40°C) * 0,994 [kg/l] (H2O Dichte bei 35°C) )
my $thermalPower = 0; my $thermalPower = 0;
# 0=Heizen, 5=Brauchwasser, 7=Abtauen, 16=Durchflussüberwachung # 0=Heizen, 5=Brauchwasser, 7=Abtauen, 16=Durchflussüberwachung
if ($a[3] =~ /^(0|5|16)$/ ) { if ($a[3] =~ /^(0|5|16)$/) {
$thermalPower = abs($flowTemperature - $returnTemperature) * $a[19] / 866.65; if ($a[19] !~ /no/) { $thermalPower = abs($flowTemperature - $returnTemperature) * $a[19] / 866.65; } #Nur bei Wärmezählern
$heatPumpPower = AttrVal($name, "heatPumpElectricalPowerWatt", -1); $heatPumpPower = AttrVal($name, "heatPumpElectricalPowerWatt", -1);
$heatPumpPower *= (1 + ($flowTemperature-35) * AttrVal($name, "heatPumpElectricalPowerFactor", 0)); $heatPumpPower *= (1 + ($flowTemperature-35) * AttrVal($name, "heatPumpElectricalPowerFactor", 0));
} }
readingsBulkUpdate( $hash, "thermalPower", sprintf "%.1f", $thermalPower); if ($a[19] !~ /no/) { readingsBulkUpdate( $hash, "thermalPower", sprintf "%.1f", $thermalPower); } #Nur bei Wärmezählern
if ($heatPumpPower >-1 ) { readingsBulkUpdate( $hash, "heatPumpElectricalPowerEstimated", sprintf "%.0f", $heatPumpPower); } if ($heatPumpPower >-1 ) { readingsBulkUpdate( $hash, "heatPumpElectricalPowerEstimated", sprintf "%.0f", $heatPumpPower); }
if ($heatPumpPower > 0) { if ($heatPumpPower > 0 && $a[19] !~ /no/) { #Nur bei Wärmezählern
$cop = $thermalPower * 1000 / $heatPumpPower; $cop = $thermalPower * 1000 / $heatPumpPower;
readingsBulkUpdate( $hash, "COP", sprintf "%.2f", $cop); readingsBulkUpdate( $hash, "COP", sprintf "%.2f", $cop);
} }
# if selected, do all the statistic calculations # if selected, do all the statistic calculations
if ( $doStatistic == 1) { if ( $doStatistic == 1) {
#LUXTRONIK2_doStatisticBoilerHeatUp $hash, $currOpHours, $currHQ, $currTemp, $opState, $target #LUXTRONIK2_doStatisticBoilerHeatUp $hash, $currOpHours, $currHQ, $currTemp, $opState, $target
@ -805,13 +806,13 @@ LUXTRONIK2_UpdateDone($)
Log3 $name,3,"$name: statBoilerGradientCoolDownMin set to '$value'"; Log3 $name,3,"$name: statBoilerGradientCoolDownMin set to '$value'";
} }
} }
# LUXTRONIK2_doStatisticThermalPower: $hash, $MonitoredOpState, $currOpState, $currHeatQuantity, $currOpHours, $currAmbTemp, $currHeatSourceIn, $TargetTemp, $electricalPower # LUXTRONIK2_doStatisticThermalPower: $hash, $MonitoredOpState, $currOpState, $currHeatQuantity, $currOpHours, $currAmbTemp, $currHeatSourceIn, $TargetTemp, $electricalPower
$value = LUXTRONIK2_doStatisticThermalPower ($hash, 5, $a[3], $a[37]/10, $a[35], $ambientTemperature, $heatSourceIN,$hotWaterTemperatureTarget, $heatPumpPower); $value = LUXTRONIK2_doStatisticThermalPower ($hash, 5, $a[3], $a[37]/10, $a[35], $ambientTemperature, $heatSourceIN,$hotWaterTemperatureTarget, $heatPumpPower);
if ($value ne "") { readingsBulkUpdate($hash,"statThermalPowerBoiler",$value); } if ($value ne "") { readingsBulkUpdate($hash,"statThermalPowerBoiler",$value); }
$value = LUXTRONIK2_doStatisticThermalPower ($hash, 0, $a[3], $a[36]/10, $a[34], $ambientTemperature, $heatSourceIN, $returnTemperatureTarget, $heatPumpPower); $value = LUXTRONIK2_doStatisticThermalPower ($hash, 0, $a[3], $a[36]/10, $a[34], $ambientTemperature, $heatSourceIN, $returnTemperatureTarget, $heatPumpPower);
if ($value ne "") { readingsBulkUpdate($hash,"statThermalPowerHeating",$value); } if ($value ne "") { readingsBulkUpdate($hash,"statThermalPowerHeating",$value); }
# LUXTRONIK2_doStatisticMinMax $hash, $readingName, $value # LUXTRONIK2_doStatisticMinMax $hash, $readingName, $value
LUXTRONIK2_doStatisticMinMax ( $hash, "statAmbientTemp", $ambientTemperature); LUXTRONIK2_doStatisticMinMax ( $hash, "statAmbientTemp", $ambientTemperature);
@ -1725,7 +1726,7 @@ LUXTRONIK2_doStatisticDeltaSingle ($$$$$$$)
<br> <br>
It has a built-in ethernet port, so it can be directly integrated into a local area network (LAN). It has a built-in ethernet port, so it can be directly integrated into a local area network (LAN).
<br> <br>
<i>The modul is reported to work with firmware: V1.51, V1.54C, V1.60, V1.69, V1.70.</i> <i>The modul is reported to work with firmware: V1.51, V1.54C, V1.60, V1.64, V1.69, V1.70.</i>
<br> <br>
More Info on the particular <a href="http://www.fhemwiki.de/wiki/Luxtronik_2.0">page of FHEM-Wiki</a> (in German). More Info on the particular <a href="http://www.fhemwiki.de/wiki/Luxtronik_2.0">page of FHEM-Wiki</a> (in German).
<br> <br>
@ -1843,7 +1844,7 @@ LUXTRONIK2_doStatisticDeltaSingle ($$$$$$$)
Siemens Novelan (WPR NET) und Wolf Heiztechnik (BWL/BWS) verbaut ist. Siemens Novelan (WPR NET) und Wolf Heiztechnik (BWL/BWS) verbaut ist.
Sie besitzt einen Ethernet Anschluss, so dass sie direkt in lokale Netzwerke (LAN) integriert werden kann. Sie besitzt einen Ethernet Anschluss, so dass sie direkt in lokale Netzwerke (LAN) integriert werden kann.
<br> <br>
<i>Das Modul wurde bisher mit folgender Steuerungs-Firmware getestet: V1.51, V1.54C, V1.60, V1.69, V1.70.</i> <i>Das Modul wurde bisher mit folgender Steuerungs-Firmware getestet: V1.51, V1.54C, V1.60, V1.64, V1.69, V1.70.</i>
<br> <br>
Mehr Infos im entsprechenden <u><a href="http://www.fhemwiki.de/wiki/Luxtronik_2.0">Artikel der FHEM-Wiki</a></u>. Mehr Infos im entsprechenden <u><a href="http://www.fhemwiki.de/wiki/Luxtronik_2.0">Artikel der FHEM-Wiki</a></u>.
<br>&nbsp; <br>&nbsp;

View File

@ -969,8 +969,8 @@ statistics_FormatDuration($)
sub ######################################## sub ########################################
statistics_maxDecPlaces($$) statistics_maxDecPlaces($$)
{ {
my ($value,$decMax) = @_; my ($value, $decMax) = @_;
$decMax = 0 if $decMax == undef; $decMax = 0 if ! defined $decMax;
if ( $value =~ /.*\.(.*)/ ) { if ( $value =~ /.*\.(.*)/ ) {
my $decPlaces = length($1); my $decPlaces = length($1);
$decMax = $decPlaces >= $decMax ? $decPlaces : $decMax; $decMax = $decPlaces >= $decMax ? $decPlaces : $decMax;