mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-03 23:06:37 +00:00
docu
git-svn-id: https://svn.fhem.de/fhem/trunk@5923 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
a7b1d5bd5d
commit
b3325005be
@ -69,9 +69,9 @@ LUXTRONIK2_Initialize($)
|
|||||||
"autoSynchClock:slider,10,5,300 ".
|
"autoSynchClock:slider,10,5,300 ".
|
||||||
"boilerVolumn ".
|
"boilerVolumn ".
|
||||||
"heatPumpElectricalPowerFactor ".
|
"heatPumpElectricalPowerFactor ".
|
||||||
"heatPumpElectricalPowerWatt:slider,1000,16000,100 ".
|
"heatPumpElectricalPowerWatt ".
|
||||||
"heatRodElectricalPowerWatt:slider,1000,16000,100 ".
|
"heatRodElectricalPowerWatt ".
|
||||||
"compressor2ElectricalPowerWatt:slider,1000,16000,100 ".
|
"compressor2ElectricalPowerWatt ".
|
||||||
"doStatistics:0,1 ".
|
"doStatistics:0,1 ".
|
||||||
"ignoreFirmwareCheck:0,1 ".
|
"ignoreFirmwareCheck:0,1 ".
|
||||||
"statusHTML ".
|
"statusHTML ".
|
||||||
@ -247,6 +247,9 @@ LUXTRONIK2_Set($$@)
|
|||||||
elsif($cmd eq 'activeTariff' && int(@_)==4 ) {
|
elsif($cmd eq 'activeTariff' && int(@_)==4 ) {
|
||||||
$val = 0 if( $val < 1 || $val > 9 );
|
$val = 0 if( $val < 1 || $val > 9 );
|
||||||
readingsSingleUpdate($hash,"activeTariff",$val, 1);
|
readingsSingleUpdate($hash,"activeTariff",$val, 1);
|
||||||
|
$hash->{LOCAL} = 1;
|
||||||
|
LUXTRONIK2_GetUpdate($hash);
|
||||||
|
$hash->{LOCAL} = 0;
|
||||||
return "$name: activeTariff set to $val.";
|
return "$name: activeTariff set to $val.";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -292,11 +295,11 @@ LUXTRONIK2_Set($$@)
|
|||||||
my $list = "statusRequest:noArg"
|
my $list = "statusRequest:noArg"
|
||||||
." activeTariff:0,1,2,3,4,5,6,7,8,9"
|
." activeTariff:0,1,2,3,4,5,6,7,8,9"
|
||||||
." resetStatistics:all,statBoilerGradientCoolDownMin,statAmbientTemp...,statElectricity...,statHours...,statHeatQ..."
|
." resetStatistics:all,statBoilerGradientCoolDownMin,statAmbientTemp...,statElectricity...,statHours...,statHeatQ..."
|
||||||
." hotWaterTemperatureTarget:slider,30.0,0.5,65.0"
|
." hotWaterTemperatureTarget "
|
||||||
." returnTemperatureSetBack:slider,-5,0.5,5"
|
." returnTemperatureSetBack "
|
||||||
." opModeHotWater:Auto,Party,Off"
|
." opModeHotWater:Auto,Party,Off"
|
||||||
." synchronizeClockHeatPump:noArg"
|
." synchronizeClockHeatPump:noArg"
|
||||||
." INTERVAL:slider,30,30,1800";
|
." INTERVAL ";
|
||||||
|
|
||||||
return "Unknown argument $cmd, choose one of $list";
|
return "Unknown argument $cmd, choose one of $list";
|
||||||
}
|
}
|
||||||
@ -778,16 +781,16 @@ LUXTRONIK2_UpdateDone($)
|
|||||||
if ($value ne "") {
|
if ($value ne "") {
|
||||||
readingsBulkUpdate($hash,"statBoilerGradientCoolDown",$value);
|
readingsBulkUpdate($hash,"statBoilerGradientCoolDown",$value);
|
||||||
Log3 $name,3,"$name: statBoilerGradientCoolDown set to $value";
|
Log3 $name,3,"$name: statBoilerGradientCoolDown set to $value";
|
||||||
if ( exists( $hash->{READINGS}{statBoilerGradientCoolDownMin} ) ) {
|
|
||||||
my @new = split / /, $value;
|
my @new = split / /, $value;
|
||||||
|
if ( exists( $hash->{READINGS}{statBoilerGradientCoolDownMin} ) ) {
|
||||||
my @old = split / /, $hash->{READINGS}{statBoilerGradientCoolDownMin}{VAL};
|
my @old = split / /, $hash->{READINGS}{statBoilerGradientCoolDownMin}{VAL};
|
||||||
if ($new[5]>6 && $new[1]>$old[1] && $new[1] < 0) {
|
if ($new[5]>6 && $new[1]>$old[1] && $new[1] < 0) {
|
||||||
readingsBulkUpdate($hash,"statBoilerGradientCoolDownMin",$value);
|
readingsBulkUpdate($hash,"statBoilerGradientCoolDownMin",$value,1);
|
||||||
Log3 $name,3,"$name: statBoilerGradientCoolDownMin set to $value";
|
Log3 $name,3,"$name: statBoilerGradientCoolDownMin set to '$value'";
|
||||||
}
|
}
|
||||||
} else {
|
} elsif ($new[5]>6 && $new[1] < 0) {
|
||||||
readingsBulkUpdate($hash,"statBoilerGradientCoolDownMin",$value);
|
readingsBulkUpdate($hash,"statBoilerGradientCoolDownMin",$value,1);
|
||||||
Log3 $name,3,"$name: statBoilerGradientCoolDownMin set to $value";
|
Log3 $name,3,"$name: statBoilerGradientCoolDownMin set to '$value'";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -852,9 +855,9 @@ LUXTRONIK2_UpdateDone($)
|
|||||||
&& $a[11] == 1
|
&& $a[11] == 1
|
||||||
&& $averageAmbientTemperature >= $thresholdHeatingLimit) {
|
&& $averageAmbientTemperature >= $thresholdHeatingLimit) {
|
||||||
if ($ambientTemperature>=10 ) {
|
if ($ambientTemperature>=10 ) {
|
||||||
$value = "Heizungsgrenze (Soll 1°C)";
|
$value = "Heizungsgrenze (Soll 15 C)";
|
||||||
} else {
|
} else {
|
||||||
$value = "Frostschutz (Soll 20°C)";
|
$value = "Frostschutz (Soll 20 C)";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$value = $heatingState{$a[46]};
|
$value = $heatingState{$a[46]};
|
||||||
@ -862,9 +865,9 @@ LUXTRONIK2_UpdateDone($)
|
|||||||
# Consider heating reduction limit
|
# Consider heating reduction limit
|
||||||
if ($a[46] == 0) {
|
if ($a[46] == 0) {
|
||||||
if ($thresholdTemperatureSetBack <= $ambientTemperature) {
|
if ($thresholdTemperatureSetBack <= $ambientTemperature) {
|
||||||
$value .= " ".LUXTRONIK2_CalcTemp($a[47])."°C";
|
$value .= " ".LUXTRONIK2_CalcTemp($a[47])." C"; #° ° ° °
|
||||||
} else {
|
} else {
|
||||||
$value = "Normal da < ".$thresholdTemperatureSetBack."°C";
|
$value = "Normal da < ".$thresholdTemperatureSetBack." C";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -950,14 +953,14 @@ LUXTRONIK2_UpdateDone($)
|
|||||||
$value .= "$opStateHeatPump1<br>\n";
|
$value .= "$opStateHeatPump1<br>\n";
|
||||||
$value .= "$opStateHeatPump2<br>\n";
|
$value .= "$opStateHeatPump2<br>\n";
|
||||||
$value .= "$opStateHeatPump3<br>\n";
|
$value .= "$opStateHeatPump3<br>\n";
|
||||||
$value .= "Brauchwasser: ".$hotWaterTemperature."°C";
|
$value .= "Brauchwasser: ".$hotWaterTemperature."°C";
|
||||||
readingsBulkUpdate($hash,"floorplanHTML",$value);
|
readingsBulkUpdate($hash,"floorplanHTML",$value);
|
||||||
}
|
}
|
||||||
# State update
|
# State update
|
||||||
$value = "$opStateHeatPump1 $opStateHeatPump2 - $opStateHeatPump3";
|
$value = "$opStateHeatPump1 $opStateHeatPump2 - $opStateHeatPump3";
|
||||||
if ($thermalPower != 0) {
|
if ($thermalPower != 0) {
|
||||||
$value .= " (".sprintf ("%.1f", $thermalPower)." kW";
|
$value .= sprintf (" (%.1f kW", $thermalPower);
|
||||||
if ($heatPumpPower>0) {$value .= ", COP: ".sprintf ("%.2f", $cop);}
|
if ($heatPumpPower>0) {$value .= sprintf (", COP: %.2f", $cop);}
|
||||||
$value .= ")"; }
|
$value .= ")"; }
|
||||||
readingsBulkUpdate($hash, "state", $value);
|
readingsBulkUpdate($hash, "state", $value);
|
||||||
|
|
||||||
@ -1235,22 +1238,20 @@ LUXTRONIK2_doStatisticThermalPower ($$$$$$$$$)
|
|||||||
$save = 1;
|
$save = 1;
|
||||||
$last[0] = $currOpState;
|
$last[0] = $currOpState;
|
||||||
$value2 = ($currOpHours - $last[2])/60;
|
$value2 = ($currOpHours - $last[2])/60;
|
||||||
if ($value2 > 9.5) {
|
if ($value2 >= 6) {
|
||||||
$value1 = $last[3] / $last[5];
|
$value1 = $last[3] / $last[5];
|
||||||
$returnStr = "aT: " . sprintf "%.1f", $value1;
|
$returnStr = sprintf "aT: %.1f", $value1;
|
||||||
$value1 = $last[4] / $last[5];
|
$value1 = $last[4] / $last[5];
|
||||||
$returnStr .= " iT: " . sprintf "%.1f", $value1;
|
$returnStr .= sprintf " iT: %.1f", $value1;
|
||||||
$returnStr .= " tT: " . sprintf "%.1f", $targetTemp;
|
$returnStr .= " tT: " . $targetTemp;
|
||||||
$value1 = $currHeatQuantity - $last[1];
|
$value1 = $currHeatQuantity - $last[1];
|
||||||
$value3 = $value1 * 60 / $value2;
|
$value3 = $value1 * 60 / $value2;
|
||||||
$returnStr .= " thP: " . sprintf "%.1f", $value3;
|
$returnStr .= sprintf " thP: %.1f DQ: %.1f t: %.0f", $value3, $value1, $value2;
|
||||||
$returnStr .= " DQ: " . sprintf "%.1f", $value1;
|
|
||||||
$returnStr .= " t: " . sprintf "%.0f", $value2;
|
|
||||||
if ($last[7]>0) {
|
if ($last[7]>0) {
|
||||||
$value1 = $value3 *1000 / $last[7] * $last[5];;
|
$value1 = $value3 *1000 / $last[7] * $last[5];;
|
||||||
$returnStr .= " COP: " . sprintf "%.2f", $value1;
|
$returnStr .= sprintf " COP: %.2f", $value1;
|
||||||
}
|
}
|
||||||
if ($last[6] > $targetTemp) { $returnStr .= " tTStart: " . sprintf "%.1f", $last[6]; }
|
if ($last[6] > $targetTemp) { $returnStr .= " tTStart: " . $last[6]; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1339,21 +1340,16 @@ LUXTRONIK2_doStatisticBoilerHeatUp ($$$$$$)
|
|||||||
Log3 $name, 4, "$name: Statistic Boiler Heat-Up step 3->1: Boiler heat-up measurement finished";
|
Log3 $name, 4, "$name: Statistic Boiler Heat-Up step 3->1: Boiler heat-up measurement finished";
|
||||||
$value1 = ( int(10 * $maxTemp) - int(10 * $minTemp) ) / 10; # delta hot water temperature
|
$value1 = ( int(10 * $maxTemp) - int(10 * $minTemp) ) / 10; # delta hot water temperature
|
||||||
$value2 = ( $currOpHours - $lastOpHours ) / 60; # delta time (minutes)
|
$value2 = ( $currOpHours - $lastOpHours ) / 60; # delta time (minutes)
|
||||||
$returnStr = "DT/min: ".sprintf("%.2f", $value1/$value2)." DT: ".sprintf("%.2f", $value1)." Dmin: ".sprintf("%.0f", $value2);
|
$value3 = $currHQ - $lastHQ; # delta heat quantity, average thermal power
|
||||||
|
|
||||||
$value3 = $currHQ - $lastHQ; # delta heat quantity
|
|
||||||
# Delta Heat Quantity
|
|
||||||
$returnStr .= " DQ: ".sprintf("%.1f",$value3);
|
|
||||||
# Average thermal power
|
|
||||||
$returnStr .= " thP: ".sprintf("%.1f",$value3 * 60 / $value2);
|
|
||||||
|
|
||||||
|
$returnStr = sprintf "DT/min: %.2f DT: %.2f Dmin: %.0f DQ: %.1f thP: %.1f", $value1/$value2, $value1, $value2, $value3, $value3*60/$value2;
|
||||||
|
|
||||||
#real (mixed) Temperature-Difference
|
#real (mixed) Temperature-Difference
|
||||||
my $boilerVolumn = AttrVal($name, "boilerVolumn", 0);
|
my $boilerVolumn = AttrVal($name, "boilerVolumn", 0);
|
||||||
if ($boilerVolumn >0 ) {
|
if ($boilerVolumn >0 ) {
|
||||||
# (delta T) [K] = Wärmemenge [kWh] / #Volumen [l] * ( 3.600 [kJ/kWh] / ( 4,179 [kJ/(kg*K)] (H2O Wärmekapazität bei 40°C) * 0,992 [kg/l] (H2O Dichte bei 40°C) ) [K/(kWh*l)] )
|
# (delta T) [K] = Wärmemenge [kWh] / #Volumen [l] * ( 3.600 [kJ/kWh] / ( 4,179 [kJ/(kg*K)] (H2O Wärmekapazität bei 40°C) * 0,992 [kg/l] (H2O Dichte bei 40°C) ) [K/(kWh*l)] )
|
||||||
$value2 = 868.4 * $value3 / $boilerVolumn ;
|
$value2 = 868.4 * $value3 / $boilerVolumn ;
|
||||||
$returnStr .= " realDT: ".sprintf("%.0f", $value2);
|
$returnStr .= sprintf " realDT: %.0f", $value2;
|
||||||
}
|
}
|
||||||
|
|
||||||
$step = 1;
|
$step = 1;
|
||||||
@ -1712,7 +1708,7 @@ LUXTRONIK2_doStatisticDeltaSingle ($$$$$$)
|
|||||||
|
|
||||||
<a name="LUXTRONIK2"></a>
|
<a name="LUXTRONIK2"></a>
|
||||||
<h3>LUXTRONIK2</h3>
|
<h3>LUXTRONIK2</h3>
|
||||||
<ul>
|
<ul style="width:800px">
|
||||||
Luxtronik 2.0 is a heating controller used in <a href="http://www.alpha-innotec.de">Alpha Innotec</a>, Siemens Novelan (WPR NET) and Wolf Heiztechnik (BWL/BWS) heat pumps.
|
Luxtronik 2.0 is a heating controller used in <a href="http://www.alpha-innotec.de">Alpha Innotec</a>, Siemens Novelan (WPR NET) and Wolf Heiztechnik (BWL/BWS) heat pumps.
|
||||||
<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).
|
||||||
@ -1830,7 +1826,7 @@ LUXTRONIK2_doStatisticDeltaSingle ($$$$$$)
|
|||||||
|
|
||||||
<a name="LUXTRONIK2"></a>
|
<a name="LUXTRONIK2"></a>
|
||||||
<h3>LUXTRONIK2</h3>
|
<h3>LUXTRONIK2</h3>
|
||||||
<ul>
|
<ul style="width:800px">
|
||||||
Die Luxtronik 2.0 ist eine Heizungssteuerung, welche in Wärmepumpen von <a href="http://www.alpha-innotec.de">Alpha Innotec</a>,
|
Die Luxtronik 2.0 ist eine Heizungssteuerung, welche in Wärmepumpen von <a href="http://www.alpha-innotec.de">Alpha Innotec</a>,
|
||||||
Siemens Novelan (WPR NET) und Wolf Heiztechnik (BWL/BWS) verbaut ist.
|
Siemens Novelan (WPR NET) und Wolf Heiztechnik (BWL/BWS) verbaut ist.
|
||||||
<br>
|
<br>
|
||||||
@ -1944,7 +1940,8 @@ LUXTRONIK2_doStatisticDeltaSingle ($$$$$$)
|
|||||||
gesetzt ist, dann wird der Firmware-Test ignoriert und neue Firmware kann getestet werden.
|
gesetzt ist, dann wird der Firmware-Test ignoriert und neue Firmware kann getestet werden.
|
||||||
Dieses Attribut wird jedoch ignoriert, wenn die Steuerungs-Firmware bereits als nicht kompatibel berichtet wurde.
|
Dieses Attribut wird jedoch ignoriert, wenn die Steuerungs-Firmware bereits als nicht kompatibel berichtet wurde.
|
||||||
</li><br>
|
</li><br>
|
||||||
<li><code>statusHTML</code><br>
|
<li><code>statusHTML</code>
|
||||||
|
<br>
|
||||||
wenn gesetzt, dann wird ein HTML-formatierter Wert "floorplanHTML" erzeugt,
|
wenn gesetzt, dann wird ein HTML-formatierter Wert "floorplanHTML" erzeugt,
|
||||||
welcher vom Modul <a href="#FLOORPLAN">FLOORPLAN</a> genutzt werden kann.<br>
|
welcher vom Modul <a href="#FLOORPLAN">FLOORPLAN</a> genutzt werden kann.<br>
|
||||||
Momentan wird nur geprüft, ob der Wert dieses Attributes ungleich NULL ist,
|
Momentan wird nur geprüft, ob der Wert dieses Attributes ungleich NULL ist,
|
||||||
|
@ -269,6 +269,9 @@ JSONMETER_Set($$@)
|
|||||||
elsif($cmd eq 'activeTariff' && int(@_)==4 ) {
|
elsif($cmd eq 'activeTariff' && int(@_)==4 ) {
|
||||||
$val = 0 if( $val < 1 || $val > 9 );
|
$val = 0 if( $val < 1 || $val > 9 );
|
||||||
readingsSingleUpdate($hash,"activeTariff",$val, 1);
|
readingsSingleUpdate($hash,"activeTariff",$val, 1);
|
||||||
|
$hash->{LOCAL} = 1;
|
||||||
|
JSONMETER_GetUpdate($hash);
|
||||||
|
$hash->{LOCAL} = 0;
|
||||||
return "$name: activeTariff set to $val.";
|
return "$name: activeTariff set to $val.";
|
||||||
}
|
}
|
||||||
my $list = "statusRequest:noArg"
|
my $list = "statusRequest:noArg"
|
||||||
@ -884,7 +887,7 @@ JSONMETER_doStatisticDeltaSingle ($$$$$$)
|
|||||||
|
|
||||||
<a name="JSONMETER"></a>
|
<a name="JSONMETER"></a>
|
||||||
<h3>JSONMETER</h3>
|
<h3>JSONMETER</h3>
|
||||||
<ul>
|
<ul style="width:800px">
|
||||||
This module reads data from a measurement unit (so called smart meters for electricity, gas or heat)
|
This module reads data from a measurement unit (so called smart meters for electricity, gas or heat)
|
||||||
<br>
|
<br>
|
||||||
that provides OBIS compliant data in JSON format on a webserver or on the FHEM file system.
|
that provides OBIS compliant data in JSON format on a webserver or on the FHEM file system.
|
||||||
@ -1002,7 +1005,7 @@ JSONMETER_doStatisticDeltaSingle ($$$$$$)
|
|||||||
|
|
||||||
<a name="JSONMETER"></a>
|
<a name="JSONMETER"></a>
|
||||||
<h3>JSONMETER</h3>
|
<h3>JSONMETER</h3>
|
||||||
<ul>
|
<ul style="width:800px">
|
||||||
Dieses Modul liest Daten von Messgeräten (z.B. Stromzähler, Gaszähler oder Wärmezähler, so genannte Smartmeter),
|
Dieses Modul liest Daten von Messgeräten (z.B. Stromzähler, Gaszähler oder Wärmezähler, so genannte Smartmeter),
|
||||||
<br>
|
<br>
|
||||||
welche <a href="http://de.wikipedia.org/wiki/OBIS-Kennzahlen">OBIS</a> kompatible Daten im JSON-Format auf einem Webserver oder auf dem FHEM-Dateisystem zur Verfügung stellen.
|
welche <a href="http://de.wikipedia.org/wiki/OBIS-Kennzahlen">OBIS</a> kompatible Daten im JSON-Format auf einem Webserver oder auf dem FHEM-Dateisystem zur Verfügung stellen.
|
||||||
|
@ -874,7 +874,7 @@ statistics_FormatDuration($)
|
|||||||
<ul>
|
<ul>
|
||||||
<li><b>Minimal-, Mittel- und Maximalwerte:</b> brightness, current, humidity, temperature, voltage, wind, windSpeed</li>
|
<li><b>Minimal-, Mittel- und Maximalwerte:</b> brightness, current, humidity, temperature, voltage, wind, windSpeed</li>
|
||||||
<li><b>Deltawerte:</b> count, energy, power, total, rain, rain_total</li>
|
<li><b>Deltawerte:</b> count, energy, power, total, rain, rain_total</li>
|
||||||
<li><b>Dauer der Stati:</b> Window, state <i>(wenn kein anderer Gerätewert gültig)</i></li>
|
<li><b>Dauer der Stati:</b> Window, state <i>(wenn kein anderer Gerätewert gültig)</i></li>
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
@ -929,12 +929,12 @@ statistics_FormatDuration($)
|
|||||||
<br>
|
<br>
|
||||||
Start der Berechnung der periodischen Daten, standardmässig 10 Sekunden vor der vollen Stunde,
|
Start der Berechnung der periodischen Daten, standardmässig 10 Sekunden vor der vollen Stunde,
|
||||||
<br>
|
<br>
|
||||||
erlaubt die korrekte zeitliche Zuordnung in Plots, kann je nach Systemauslastung verringert oder vergrößert werden
|
erlaubt die korrekte zeitliche Zuordnung in Plots, kann je nach Systemauslastung verringert oder vergrößert werden
|
||||||
<br>
|
<br>
|
||||||
</li><br>
|
</li><br>
|
||||||
<li><code>singularReadings <GerätenameRegExp:GerätewertRegExp>:Statistiktypen<i>(Min|Avg|Max|Delta)</i>:ZeitPeriode<i>(Hour|Day|Month|Year)</i></code>
|
<li><code>singularReadings <GerätenameRegExp:GerätewertRegExp>:Statistiktypen<i>(Min|Avg|Max|Delta)</i>:ZeitPeriode<i>(Hour|Day|Month|Year)</i></code>
|
||||||
<br>
|
<br>
|
||||||
Regulärer Ausdruck statistischer Werte, die nicht nur in zusammengefassten sondern auch als einzelne Werte gespeichert werden sollen.
|
Regulärer Ausdruck statistischer Werte, die nicht nur in zusammengefassten sondern auch als einzelne Werte gespeichert werden sollen.
|
||||||
<br>
|
<br>
|
||||||
z.B. <code>Wettersensor:rain:Delta:(Hour|Day))|(FritzDect:(current|power):(Avg|Max|Delta):(Hour|Day)</code>
|
z.B. <code>Wettersensor:rain:Delta:(Hour|Day))|(FritzDect:(current|power):(Avg|Max|Delta):(Hour|Day)</code>
|
||||||
<br>
|
<br>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user