michl
11. Februar 2018 um 12:48
1
Hallo zusammen,
ich hab mal eine Frage an euch.
Errechne bei meiner Wärmepumpe die Wärmemenge, jedoch hab ich bei der Variable für Kälteenergie natürlich immer ein „-“ davor stehen ( VL kälter als der RL ).
Kann ich das ändern das ich das „-“ nicht angezeigt bekomme bei der Berechnung?
Hier ein Bsp.:
Käleenergie : Float -5,2 kWh möchte aber das „-“ nicht dabei haben.
Danke!
khge
11. Februar 2018 um 13:17
2
Eine Möglichkeit wäre: „Variable“ * (-1)
Gruß K.-H.
<?
$wert = -5.2;
if ($wert < 0) // wenn wert kleiner 0
{$wert *= -1;} // dann Vorzeichen entfernen, sonst nicht
echo $wert;
?>
Fonzo
11. Februar 2018 um 13:24
4
michl:
Kann ich das ändern das ich das „-“ nicht angezeigt bekomme bei der Berechnung?
Hier ein Bsp.:
Käleenergie : Float -5,2 kWh möchte aber das „-“ nicht dabei haben.
abs
$value = abs(GetValue(12345));
michl
11. Februar 2018 um 13:39
5
Danke!
Wenn ich jetzt das Bsp. mit dem „abs“ Absolutwert verwende, dann müsste ich das abs nach dem SetValueFloat einbauen?
$Kühlenergie = ($Kühlenergie + ($waerme / 60 / 1000)); //Kwh
SetValueFloat (56052 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärme/Kälte Test\Kälte\Kühlenergie]*/, $Kühlenergie);
oder so?
mit -1 am Ende
$Kühlenergie = ($Kühlenergie + ($waerme / 60 / 1000)); //Kwh
SetValueFloat (56052 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärme/Kälte Test\Kälte\Kühlenergie]*/, $Kühlenergie * (-1));
Fonzo
11. Februar 2018 um 14:52
7
michl:
Danke!
Wenn ich jetzt das Bsp. mit dem „abs“ Absolutwert verwende, dann müsste ich das abs nach dem SetValueFloat einbauen?
$Kühlenergie = ($Kühlenergie + ($waerme / 60 / 1000)); //Kwh
SetValueFloat (56052 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärme/Kälte Test\Kälte\Kühlenergie]*/, $Kühlenergie);
$Kühlenergie = ($Kühlenergie + ($waerme / 60 / 1000)); //Kwh
SetValueFloat (56052 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärme/Kälte Test\Kälte\Kühlenergie]*/, abs($Kühlenergie));
tomgr:
Oh, Fonzo war schneller…
1 Stunde 20 Minuten später:D
tomgr
11. Februar 2018 um 19:05
9
Klar, passiert wenn man zwischendurch was anderes macht, und dann ca 1 Std später auf absenden drückt.
michl
12. Februar 2018 um 20:44
10
Abend zusammen,
also ich hab momentan folgendes Problem das die „Kühlenergie“ nicht mitgezählt ( addiert ) wird?
Der Wert bleibt immer bei Null, bzw. 0,04 dann wieder Null??
habe jeweils beim Script das „abs“ zugefügt um den Negativen Wert zu entfernen ( - ).
Das mit der Wärmeenergie funktioniert
Anbei die Auswertung:
if ($waerme <0) {
SetValueFloat(21250 /*[Wärme - Kälteenergie Verbrauch Akuell\Kälteenergie]*/, abs($waerme/1000));
SetValueFloat(41091 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärmeenergie]*/,0);
$Kühlenergie = ($Kühlenergie + ($waerme / 60 / 1000)); //Kwh
SetValueFloat (56052 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärme/Kälte Test\Kälte\Kühlenergie]*/, abs($Kühlenergie));
} else {
SetValueFloat(41091 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärmeenergie]*/, ($waerme/1000));
SetValueFloat(21250 /*[Wärme - Kälteenergie Verbrauch Akuell\Kälteenergie]*/,0);
$Heizenergie = ($Heizenergie + ($waerme / 60 / 1000)); //Kwh
SetValueFloat (41161 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärme/Kälte Test\Wärme\Heizenergie]*/, $Heizenergie);
}
Swifty
13. Februar 2018 um 17:12
11
Hallo Michl,
wenn ich unterstelle, dass die Ausgangsgröße $Kühlenergie = GeValue(56052) ist, dann ergibt sich folgender „Kreislauf“:
Runde 1 (Ausgangsgrößen: Kühlenergie =0 und $wärme=-2400)
1 .$Kühlenergie = GeValue(56052) // Kühlenergie=0
2. $Kühlenergie = ($Kühlenergie + ($waerme / 60 / 1000)); // Kühlenergie = -0,04
3. SetValueFloat (56052, abs($Kühlenergie)); // Variable 56052 = 0,04
Runde 2 (unterstellt $wärme ist wieder -2400)
1 .$Kühlenergie = GeValue(56052) // Kühlenergie= 0,04
2. $Kühlenergie = ($Kühlenergie + ($waerme / 60 / 1000)); // Kühlenergie = 0,04 + -0,04 = 0
3. SetValueFloat (56052, abs($Kühlenergie)); // Variable 56052 = 0
:rolleyes:
Gruß
Swifty
michl
13. Februar 2018 um 20:32
12
Also ich steh auf dem schlauch - wo ist der Fehler???
Habe dem Wert der bei Kühlenergie errechnet wird, mit „abs“ gesagt das er positiv ( kein - vor der Zahl ) ´werden soll.
Ah, verstehe:
$waerme ist natürlich noch negativ + und - ergibt 0
Wie kann ich das am besten lösen?
khge
14. Februar 2018 um 08:20
13
Angenommen du liest über $waerme eienen negativen Wert ein.
Hier wandelst du deinen negativen Wert aus $waerme um in einen positiven.
SetValueFloat(21250 /*[Wärme - Kälteenergie Verbrauch Akuell\Kälteenergie]*/, abs($waerme/1000));
Zwei Zeilen später rechnest du wieder mit dem negativen Ursprungswert $waerme weiter.
$Kühlenergie = ($Kühlenergie + ($waerme / 60 / 1000)); //Kwh
Ich verstehe auch den Sinn nicht, besitze jedoch auch keine Wärmepumpe, evtl. fehlen auch ein paar ergänzende Angaben um das ganze zu verstehen.
Warum denn „if“, wenn doch?
hab ich bei der Variable für Kälteenergie natürlich immer ein "-" davor stehen
Warum kann die Variable nicht sofort beim Einlesen in eine positive umgewandelt werden? Anschließend dann die weiteren Berechnungen.
Swifty
14. Februar 2018 um 14:36
14
mein Vorschlag:
if ($waerme <0) {
$waerme=abs($waerme);
SetValueFloat(21250 /*[Wärme - Kälteenergie Verbrauch Akuell\Kälteenergie]*/, $waerme/1000);
SetValueFloat(41091 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärmeenergie]*/,0);
$Kühlenergie = ($Kühlenergie + ($waerme / 60 / 1000)); //Kwh
SetValueFloat (56052 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärme/Kälte Test\Kälte\Kühlenergie]*/, $Kühlenergie));
} else {
SetValueFloat(41091 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärmeenergie]*/, ($waerme/1000));
SetValueFloat(21250 /*[Wärme - Kälteenergie Verbrauch Akuell\Kälteenergie]*/,0);
$Heizenergie = ($Heizenergie + ($waerme / 60 / 1000)); //Kwh
SetValueFloat (41161 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärme/Kälte Test\Wärme\Heizenergie]*/, $Heizenergie);
}
michl
15. Februar 2018 um 08:34
15
Danke für die Info!
Ich werde deinen Tipp testen
Sollte aber passen, da du den Wert $Waerme vorher „positiv“ schreibst.
michl
15. Februar 2018 um 11:29
16
Hier mal das Fertige Script, aktuell läuft es ganz gut, dank der mithilfe von euch
Es dient zur Erfassung des der Wärmemenge/Kältemenge ( Heizen Kühlen ) für die Wärmepumpe.
<?
$Durchfluss = GetValueFloat(17461 /*[Hardware IPS\EKM-868 Volumenstrom Heizung\Durchfluss]*/);
$Heizenergie = GetValueFloat(41161 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärme Kälteenergie Gesamt\Heizenergie]*/);
$Kühlenergie = GetValueFloat(56052 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärme Kälteenergie Gesamt\Kühlenergie]*/);
// Script verlassen, wenn kein Durchfluss und setzen einer 0 bei Wärme-Kältemenge
if ($Durchfluss == 0) {
SetValueFloat(33361, 0);
SetValueFloat(41091, 0);
SetValueFloat(21250, 0);
Return;
}
$Vorlauf = GetValueFloat(20059 /*[Hardware IPS\JKM-868 (ThermoJET)\VL Fubo + Boilerladung]*/);
$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 = $Durchfluss;
// Berechnung der Wärmeleistung
$delta_T = $Vorlauf - $Ruecklauf;
$waerme = ($c * $Menge * $delta_T) / 3600; // Wh
}
if ($waerme <0) {
$waerme=abs($waerme);
SetValueFloat(21250 /*[Wärme - Kälteenergie Verbrauch Akuell\Kälteenergie aktuell]*/, ($waerme/1000));
SetValueFloat(41091 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärmeenergie aktuell]*/,0);
$Kühlenergie = ($Kühlenergie + ($waerme / 60 / 1000)); //Kwh
SetValueFloat (56052 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärme Kälteenergie Gesamt\Kühlenergie]*/, ($Kühlenergie));
} else {
SetValueFloat(41091 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärmeenergie aktuell]*/, ($waerme/1000));
SetValueFloat(21250 /*[Wärme - Kälteenergie Verbrauch Akuell\Kälteenergie aktuell]*/,0);
$Heizenergie = ($Heizenergie + ($waerme / 60 / 1000)); //Kwh
SetValueFloat (41161 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärme Kälteenergie Gesamt\Heizenergie]*/, $Heizenergie);
}
?>