Script mit Verzögerung Starten

Hallo,

ich würde gerne bei meinem Script das ich zur Errechnung der Wärmemenge benutze, auch noch eine zweite Bedingung einbauen und zwar wenn die Variable der Wärmepumpe auf „true“ ist!

Sprich wenn Variable Float „true“ und Durchfluss grösser als 1 dann Script starten.

Das Script ist dieses hier:



<?


/*
Das Script berechnet das Delta aus Vorlauf und Rücklauftemperatur und prüft dann ob dieses Delta T zwischen +0,5 und -0,5 ist.
Ausserdem wird geprüft ob der Durchfluss kleiner gleich 1 ist.
Trifft eine der beiden bedingungen zu, wird in 3 Variablen (33361, 41091 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärmeenergie aktuell]*/, 21250 /*[Wärme - Kälteenergie Verbrauch Akuell\Kälteenergie aktuell]*/) eine 0 geschrieben und Das Script abgebrochen.
Trifft keine der Berdingungen zu wird $waerme berechnet.
Wenn $waerme unter 0 ist wird der Betrag von $waerme umgerechnet /1000 in Variable 21250 /*[Wärme - Kälteenergie Verbrauch Akuell\Kälteenergie aktuell]*/ und /60000 in 56052 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärme Kälteenergie Gesamt\Kühlenergie]*/ geschrieben. 41091 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärmeenergie aktuell]*/ wird 0 gesetzt.
Wenn $waerme größer gleich 0 ist wird $waerme umgerechnet /1000 in Variable 41091 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärmeenergie aktuell]*/ und /60000 in 41161 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärme Kälteenergie Gesamt\Heizenergie]*/ geschrieben. 21250 /*[Wärme - Kälteenergie Verbrauch Akuell\Kälteenergie aktuell]*/ wird 0 gesetzt.
*/

$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]*/);
$Vorlauf = GetValueFloat(20059 /*[Hardware IPS\JKM-868 (ThermoJET)\VL Fubo + Boilerladung]*/);
$Ruecklauf = GetValueFloat(59719 /*[Hardware IPS\JKM-868 (ThermoJET)\RL Fussbodenheizung]*/);
$c = 4182; // Wasser

// Berechnung der Wärmeleistung
$delta_T = $Vorlauf - $Ruecklauf; 
 
// Script verlassen, wenn kein Durchfluss oder bei Errechnung Delta_T kleiner als 0,5 ist oder größer als -0,5
if ($Durchfluss <= 1 || ($delta_T <0.5 && $delta_T >-0.5)) //hier stand vorher "==0", das script hat im Bereich 0-1 aber nichts gemacht (alles was danach kam war verpackt in "if $Durchfluss >1", deshalb gleich hier schon bei <=1 aussteigen.
{
        
         SetValueFloat(41091 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärmeenergie aktuell]*/, 0);
         SetValueFloat(21250 /*[Wärme - Kälteenergie Verbrauch Akuell\Kälteenergie aktuell]*/, 0);
         Return;
}
// hier hast du $Menge deklariert und ihr $Durchfluss zugewiesen. Warum nicht gleich mit $Durchfluss weiterarbeiten ?
$waerme = ($c * $Durchfluss * $delta_T) / 3600; // Wh

if ($waerme <0)
{ 
        $waerme=abs($waerme);
        $Kühlenergie = ($Kühlenergie + ($waerme / 60 / 1000)); //Kwh
        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);
        SetValueFloat (56052 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärme Kälteenergie Gesamt\Kühlenergie]*/, ($Kühlenergie));
        
} else
{ 
        $Heizenergie = ($Heizenergie + ($waerme / 60 / 1000)); //Kwh 
          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);
           SetValueFloat (41161 /*[Wärme - Kälteenergie Verbrauch Akuell\Wärme Kälteenergie Gesamt\Heizenergie]*/, $Heizenergie);
}  
    
?> 

Der Grund dafür ist, das sich der VL und RL Fühler erst einpendeln müssen!

Viel Erfolg!

Dafür musst du gar nicht das Skript anfassen, sondern kannst beim Ereignis zusätzliche Bedingungen setzen. Wenn dein Ereignis also aktuell auf den Durchfluss reagiert, dann setzt du Wärmepumpe = true als zusätzliche Bedingung.