Hallo miteinander,
momentan erarbeite ich mir ein Script zur COP Berechnung der Wärmepumpe. Zum einen um das System besser kennenzulernen und zum anderen um aus den Ergebnissen den Betrieb zu optimieren.
Für den Stromverbrauch nutze ich derzeit einen Drehstromzähler am EKM mit 1000 Impulsen.
Die Wärmemenge bekommen wir aus einem M-Bus Zelsius WMZ.
In einer ersten Version habe ich den COP aus den Momentanwerten mit den Nachteilen von sprunghaften Werten berechnet.
Das untere Script soll diesen Effekt etwas minimieren und den COP aus dem Energiemengen der letzten 5 Minuten berechnen.
Das ist jetzt eines meiner ersten Scripte und ich bitte Euch mal darüberzuschauen. Besonders das Abfangen einer Division durch Null bereitet mir Probleme.
Ebenfalls mal die Frage an die Wärmepumpenbesitzer: Welche Werte berechnet Ihr und habe ich vielleicht Denkfehler in meiner untenstehenden Berechnung?
<?
echo "===== COP Berechnung Wärmepumpe ======================================
";
// COP = gelieferte Wärmemenge des WMZ / eingesetzte Energie
$imp_kw = 1000; // Impulse pro kw/h
$counter = GetValue(55937); // EKM Counter 2 für WP aktuell
$counter_old = GetValue(51800); // EKM Counter 2 vor 5 Minuten
//Fuer Testzwecke koennen Debugausgaben aktiviert werden
// Debug-Modus an=true / aus=false
$debug = true;
// 5 minütlicher Verbrauch
// echo "Counter: $counter
"; Anzeige aktueller Counter
$delta = $counter - GetValue(51800); // delta = Zählerdelta 5 Min. Counter old
if($debug) {echo "Counter Old: $counter_old
";}
if($debug) {echo "Counter aktuell: $counter
";}
if($debug) {echo "Delta: $delta
";}
// Teil 1 Stromverbrauch in den letzten 5 Minuten
$data = IPS_GetVariable(51800);
$delta_t =time()-($data['VariableUpdated']); // Zeitdiff = aktuelle Zeit - Zeit wo die Var zuletzt upgedatet wurde
if($debug) {echo "Delta: $delta Sekunden
";}
if($debug) {print_r ($data) ;}
SetValue(51800, $counter); // setzen Conter old 5 min mit dem aktuellen Wert
$delta_verbrauch = (double)($delta * 3600 / $delta_t / $imp_kw);
SetValue(31548,$$delta_verbrauch); // setzen Var für durchschn. Verbrauch je Stunde
if($debug) {echo "Verbrauch: $delta_verbrauch kW/h
";}
// Teil 2 gelieferte Wärmemenge in den letzten 5 Minuten
$waermemenge_aktuell = GetValue(38693); /*[15 WMZ\M-Bus Device WMZ\Wärmeenergie Gesamt]*/
$waermemenge_5min = GetValue(33401); /*[15 WMZ\M-Bus Device WMZ\Waermemenge vor 5 Min]*/
$waermemenge_delta = $waermemenge_aktuell - $waermemenge_5min;
if($debug) {echo "Wärmemenge aktuell: $delta
";}
if($debug) {echo "Wärmemenge vor 5 Min.: $delta
";}
if($debug) {echo "Wärmemenge Delta: $delta
";}
// Teil 3 COP Berechnung im Durchschnitt der letzten 5 Minuten
$cop2 = $waermemenge_delta / $delta_verbrauch;
SetValue(36002, $cop2);
if($debug) {echo "COP2 - 5 Minuten: $delta
";}
?>
Herzlichen Dank, Stromer