Errechnen der Wärme-Kälteenergie möglich?

Guten Morgen,
ich hab mal eine spezielle Frage an euch :slight_smile:
Kann ich anhand der Daten von Vorlauf-Rücklauftemperatur und des Volumenstromgebers die momentane Energie (Kälte/Wärme) errechnen?

Vielleicht hilft dir das.

IP-Symcon Community Forum

Gesendet von iPhone mit Tapatalk

Danke,
die Formel ist ja noch aktuell :slight_smile:

Berechnung:

Q=mcdeltaT/3600 (KWh)

m= Durchflussmenge
c= 4,19 (Wasser)
deltaT = VL-RL (K)

würde bei mir auch passen!
Leider ist der Beitrag schon etwas älter, dacht mir ich schreib hier dann weiter.

Ist die Formel, wenn ich im Sommer Kühle die selbe? ( VL ist dann kälter als der RL)

Hallo!

Kleine Korrektur:

m= Durchflussmenge
c= 1,16 (Wasser)
deltaT = VL-RL (K)

Schönen Gruß:)
Egon

Ist die Formel nur für die Berechnung der Wärmemenge zu benutzen oder kann ich diese auch für die errechnen der Kälteenergie benutzen?

So, ich hab mal mit dem Script begonnen.
Ich bin mal soweit, das wenn die Float Variable ( Durchfluss ) auf 0 Steht die Variable Wärmemenge auf 0 Gesetzt wird!

Es scheitert am errechnen der Wärmemenge, wenn ein Durchfluss vorhanden ist, da hol ich mir den Wert der Float Variable ( Durchfluss ) aber wie kann ich diesen Wert zur Berechnung zufügen?
Ich habe geschrieben das wenn der Durchfluss grösser als 1 ist, soll der wert der aktuell in der Variable ist verwendet werden.
Wert c ist 4182 ( Wasser flüssig )



 $Durchfluss = GetValueFloat(17461 /*[Hardware IPS\EKM-868 Volumenstrom Heizung\Durchfluss]*/);

 // Script verlassen, wenn kein Durchfluss
 if ($Durchfluss == 0) {
 
 SetValueFloat(33361 /*[Wärme - Kälteenergie Verbrauch Akuell\Energie]*/, 0);
 Return;
 }

 $Vorlauf = GetValueFloat(16790 /*[Hardware IPS\JKM-868 (ThermoJET)\VL Fussbodenheizung]*/);
 $Ruecklauf = GetValueFloat(59719 /*[Hardware IPS\JKM-868 (ThermoJET)\RL Fussbodenheizung]*/);

 $Durchfluss = GetValueFloat(17461 /*[Hardware IPS\EKM-868 Volumenstrom Heizung\Durchfluss]*/); //Durchfluss grösser als 1
 $c = 4182; // Wasser

 if ($Durchfluss == 1) $Menge

 // Berechnung der Wärmeleistung
 $delta_T = $Ruecklauf - $Vorlauf;
 $waerme = ($c * $Menge * $delta_T) / 3600; // Watt / h


Hallo Michl,

wenn Du bei Ducrhfluss > 0 rechnen möchtest, musst Du das aber auch schreiben:


 if ($Durchfluss > 1)
{
   $Menge = $Durchfluss;
       // Berechnung der Wärmeleistung
   $delta_T = $Ruecklauf - $Vorlauf;                <--- ist aber negativ und damit auch das Ergebnis, da würdest Du kühlen
   $waerme = ($c * $Menge * $delta_T) / 3600; // Wh
}

Die Menge wird in kg (Wasser) eingetragen, ergibt also Wh. Hast Du Qubikmeter (= 1000l = 1000kg), dann sind das kWh.
Wir reden hier aber immer von einer Wasser-MENGE (m3) und nicht von einem Volumenstrom (l/s oä).

Grüße, Gerhard

Hallo,

also die Variable $Durchfluss ist bei mir eine Float Variable mit l/h und ist der Aktuelle Durchfluss im Heizsystem. Dieser Wert ändert sich natürlich.

Daher möchte ich diesen Wert alle zb. 60 Sekunden zum berechnen verwenden!

$Menge wäre dann sozusagen der Wert, den ich von der Variable $Durchfluss alle 60 Sekunden bekomme ( kopiere )

Hallo Michl,

wenn Du alle ‚delta_t‘ Sekunden den Wert ‚D‘ in l/h sowie die Vor- und Rücklauftemperatur (‚delta_T‘ = V-R) abliest, dann wäre die Formel:
Wärmemenge = (1,162 * D * delta_T * delta_t) / 3600 in Wh.

Dann gehst Du davon aus, dass sich weder Durchfluss noch die Temperaturen in dieser Zeit wesentlich ändern. Wenn Dir dies nicht gefällt, müsstest Du auf die jeweiligen Variablenänderungen reagieren und die entsprechende Differenzzeit errechnen.

Die Gesamtwärmemenge ist die Summe der einzelnen Wärmemengen.

Grüße, Gerhard

Abend,
so ich habe aktuell einen Durchfluss in der Heizung von 1370 l/h.
Wenn ich das Script starte, erhalte ich immer einen aktuelle Wärmeenegie von 0,0 kWh?

Den Wert für c hab ich auf 1.162 geändert.
Liegt es am Durchfluss in L/h das ich den aktuellen Wert nicht im Script habe?
Aber wenn ich doch sage das wenn Durchfluss grösser als 1 dann rechnen, müsste es doch passen?

Aber warum?


 $Durchfluss = GetValueFloat(17461 /*[Hardware IPS\EKM-868 Volumenstrom Heizung\Durchfluss]*/);

 // Script verlassen, wenn kein Durchfluss
 if ($Durchfluss == 0) {
 
 SetValueFloat(33361 /*[Wärme - Kälteenergie Verbrauch Akuell\Energie]*/, 0);
 Return;
 }

 $Vorlauf = GetValueFloat(16790 /*[Hardware IPS\JKM-868 (ThermoJET)\VL Fussbodenheizung]*/);
 $Ruecklauf = GetValueFloat(59719 /*[Hardware IPS\JKM-868 (ThermoJET)\RL Fussbodenheizung]*/);

 $Durchfluss = GetValueFloat(17461 /*[Hardware IPS\EKM-868 Volumenstrom Heizung\Durchfluss]*/); //Durchfluss grösser als 1
 $c = 1.162; // Wasser

 if ($Durchfluss > 1) {
 $Menge = $Durchfluss;
 }
 // Berechnung der Wärmeleistung
 $delta_T = $Ruecklauf - $Vorlauf;
 $waerme = ($c * $Menge * $delta_T) / 3600; // Watt / h



 // Werte speichern
 $waerme = Round($waerme, 0);
 if ($waerme < 0){
 $waerme = 0;
 }

 SetValueFloat(33361 /*[Wärme - Kälteenergie Verbrauch Akuell\Energie]*/, ($waerme/1000));


Ich habe hinter den physikalischen Modellen dahinter jetzt wenig Ahnung, aber einfach ein paar Ideen:

Ist der Durchfluss auch mal zwischen 0 und 1? Steckt dahinter also eine Float-Variable und kommen diese Werte vor? Das könnte Probleme machen, da dann $Menge nicht gesetzt wird. Ich weiß nicht genau, wie PHP damit umgeht. Es könnte dann einen Fehler geben oder es wird einfach 0 benutzt.

Ansonsten sieht das ganze soweit aus meiner Perspektive vernünftig aus. Vielleicht kannst du ja mal per IPS_LogMessage (IPS_LogMessage — IP-Symcon :: Automatisierungssoftware) die Werte ausgeben lassen. Dann findest du vielleicht einen Grund.

Hallo Michl,

in meinem 1. Post habe ich in Deinen Code geschrieben, dass

$delta_T = $Ruecklauf - $Vorlauf;

NEGATIV ist. Damit wird die Wärme < 0 und nach Deinem Script anschließend auf 0 gesetzt.
Wenn Du es von Hand startest zum testen, baue doch für alle Werte erst mal ein echo ein, z.B. ‚echo $waerme."
";‘, dann siehst Du, was passiert.
In der Berechnung

$waerme = ($c * $Menge * $delta_T) / 3600; // Watt / h

fehlt die Zeit zwischen den Messungen (z.B. die 60 s, die du verwenden wolltest), sonst stimmt die Formel nicht. So wie die Formel zur Zeit da steht, ist sie für eine WärmeMENGE (kWh, dann aber mit 4182) und nicht für einen DURCHFLUSS (l/h).

Grüße, Gerhard

kleine Anmerkung

Warum wurde c auf 1,16 geändert ?
Handelt es sich nicht um Wasser ?

Wasser hat nach meinem Kenntnisstand eine spezifische Wärmekapazität von 4,182 kJ/(kg*K) :confused:

Hallo Rene,

Du hast zwar Recht::
Q = cmdelta_T mit c=4,182 kJ /(kg*K). Q in kJ oder kWs.

ABER:

Das m in der Formel steht für einen festen Wert (z.B. 100l Wasser = 100kg in einem Behälter). Da kann man die Wärmeenergie direkt ermitteln.
Michl hat aber eine Durchflussanzeige, bekommt damit nicht kg sondern $d l/h. Bei z.B. 100 l/h werden 100 l Wasser in 1Std erwärmt. Er muss also eine Zeitspanne $t in seine Rechnung einbauen:

Er merkt sich einen Startwert und reagiert dann auf jede Variablenänderung von $d oder $delta_T. Die vergangene Zeit ist sein $t:

Q = 4182 Ws/(kg*k) * $d kg/3600s * $t s * $delta_T K. kJ habe ich schon in 1000 Ws umgewandelt; 1l = 1kg; kg, K und s kürzen sich weg.
Es bleibt: Q = (1,162 * $d * $t * $delta_T) in Ws. WICHTIG: die Zeitspanne muss in Sekunden eingehen. Q gesamt ergibt sich als Summe der einzelnen Q.

Ws lassen sich natürlich auch in kWs oder in kWh umrechnen.

Gerhard, der hofft, nun nicht alle Klarheiten restlos beseitigt zu haben

Guten Abend,

bin jetzt noch mehr verwirrt :slight_smile:
sprich das hier wäre die richtige Formel wenn ich die Wärmemenge mittels Durchfluss errechnen möchte:



 $delta_T = $Ruecklauf - $Vorlauf;
 $waerme = ($c * D * delta_T * delta_t) / 3600; // Watt / h


+Ich habe aber nur ein „delta_T“ ( das von VL zu RL )

+Bzw. müsste ich nicht das „delta_T“ nicht aus $Vorlauf - $Ruecklauf errechen und nicht umgekehrt?

+Was ist das „delta_t“ ? ( kleines t ) in der Formel?

+Bzw. „D“ in der Formel steht ja für den Durchfluss, aber muss ich diesen nicht wo zwischenspeichern um diesen für das Script benutzen zu können?

So viele Fragen :slight_smile: Danke…

Hallo Michl,

ich habe das Gefühl, Du lies nur Teile, aber nicht alles.

$delta_T = $Vorlauf - $Ruecklauf // ist grösser 0, damit ist Dein Ergebnis auch grösser 0

Bau doch mal in Dein Script nach jeder Berechnung ein echo ein, z.B. echo $delta_T. Dann siehst Du doch sofort, wo vielleicht noch ein Fehler liegt. Wenn der Fehler korrigiert ist, kommentierst Du das echo wieder aus.

Grüße, Gerhard

So hab nun eine „echo“ bei der Wärmeberechnung gesetzt!
Das Ergebnis ist 0,843 ( weis aber nicht ob das jetzt Kwh sind? ( siehe Script )
Auch kommt mir der Wert sehr klein Vor? Da ich ja /3600 den Wert dividiere ist das die Wärmemenge pro Sekunde?

  
 if ($Durchfluss > 1)
{
   $Menge = $Durchfluss;
       // Berechnung der Wärmeleistung
   $delta_T = $Vorlauf - $Ruecklauf;                
   $waerme = ($c * $Menge * $delta_T) / 3600; // Wh
}  
echo $waerme



Der Wasserwert ist


$c = 1.162; // Wasser

Post #12 und #14 gelesen?

$waerme = ($c * $Menge * $delta_T) ; // ist eine WärmeLEISTUNG, ein momentaner Wert in W
wenn Du einsetzt $c = 1.162 und unter $Menge den Durchfluß in l/h, dann darfst Du NICHT mehr durch 3600 teilen, die sind ja schon in 1.162 drin.

Wenn Dein Bügeleisen 3000 W Leistung hat, dann ‚verbraucht‘ es in einer Stunde 3 kWh.
Wenn Du die Energiemenge Deiner Heizung brauchst, dann muß die Zeit, mit rein, in der die KONSTANTE WärmeLEISTUNG jeweils anliegt. In meinen Beispielen ist dies dann $delta_t (in Sekunden).

Grüße, Gerhard

Abend,
danke! Jetzt hab ich es Verstanden :slight_smile:

Das Script funktioniert soweit ganz gut!
Wenn die Wärmepumpe abtaut, hab ich natürlich, da der Vorlauf ja dann Kälter ist als der Rücklauf ein „minus“ bei dem Rechenergebnis. ( Ist dann auch so im Kühlbetrieb im Sommer ).

Nun hab ich eine spezielle Frage, wo ich nicht mehr weiterweis, bzw. ob das Überhaut machbar ist? :confused:

Kann ich anhand der Angezeigten ( errechneten Wärme-Kältemenge ) den Tagesbedarf an Wärme/Kälte errechnen lassen, diese dann in separate Variable speichern? Zb.:
Wärmemenge…5 Kwh
Kältemenge…1 Kwh

Hallo Michl,

die Wärmemenge, die Du berechnest, ist ja immmer nur für die Zeitspanne, zu der sich Durchfluss, Vor- und Rücklauf nicht ändern. Danach errechnest Du eine neue Wärmemenge. Die einzelnen Mengen addierst Du auf.

Leichtes Heizöl hat übrigens 10 kWh/l. Damit könntst Du Deine berechnung überschlägig kontrollieren.

Grüße, Gerhard