Mir ist gerade eingefallen man könnte ja das Heating Control nehmen
man braucht dann nur eine Varialble die zb bei Pooltemperatur + 5C° auf true geht.
Dann könnte ich sie als Vorrang Variable eintragen.
bin gerade am Montieren von 50 m² Solaranlage für unseren Schwimmteich und gerade am entwickeln eines Scriptes, welche Differenz zwischen Kollektor Temp und Wassertempertur berücksichtigt, wie auch max. temp des Schwimmteiches. Evtl. auch noch den Wetterforecast.
Hysteres wird selbstverständlich auch integriert um eine Takten der ANlage zu verhindern.
Sobald ich was habe, kann ich es gerne zur Verfügung stellen.
Der hat in Summe eine Wasseroberfläche von 100m². Schwimmbereich davon sind 44m².
Da wird nichts gekocht, sondern kontrolliert bis zu 25°C nachgeholfen, mehr nicht. Daher hab ich auch geschrieben, dass das Scrupt auch die Maxtemp des Teichs berücksichtigt. Denn das Biogleichgewicht soll damit nicht umgeschmissen werden.
So sieht es bei mir nach 3 Jahren Optimieren aus.
Hab sowohl eine Max. Temperatur für den Pool als auch eine Hitzeschutzfkt. für die Absorber (schaltet ein trotzt Max. Temp Pool).
Die Mind. Laufzeit meiner Pumpe beträgt 1 min.
Das Script wird alle 1 Min. getriggert.
Ich schreibe auch noch die Pumpenlaufzeit mit. („Solar_Timer“)
Weiters hab ich in einem anderen Script noch eine Temperaturabhängige Filter-Pumpenlaufzeit implementiert.
Prüfe ob Solartemperatur um xx Grad höher als Pooltemperatur ist.
wenn ja, schalte Pumpe ein, wenn nein schalte Pumpe aus.
*/
include( IPS_GetKernelDir() . "scripts\Global_Definition.ips.php");
$Pool_Solar = round(GetValueFloat($Solar_Temp),1);
$Pool_Wasser = round(GetValueFloat(POOLSTEUERUNG_POOL_TEMP),1);
$Solar_Counter = GetValueInteger($Solar_Timer);
$Solar_Pumpe = GetValue(POOLSTEUERUNG_RELAIS_SOLAR);
if($IPS_SENDER == "WebFront")
{
T4C(TIMED4CHANNEL,SOLARPUMPE,!$Solar_Pumpe,POOLSTEUERUNG_RELAIS_SOLAR); // händisch 1 min ein
}
// wenn Pool_Solar > Pool_Wasser + Diff und Pool_Wasser < Max_Temp
elseif($Pool_Solar > ($Pool_Wasser + GetValueFloat($Temp_Diff)) && ($Pool_Wasser < GetValueFloat($Max_Temp)))
{
// Solar Pumpe einschalten, falls nicht schon an
if(!$Solar_Pumpe)
{
T4C(TIMED4CHANNEL,SOLARPUMPE,1, POOLSTEUERUNG_RELAIS_SOLAR);
echo("Solarpumpe eingeschaltet");
}
else
{
SetValueInteger($Solar_Timer,$Solar_Counter + 1);
T4C(TIMED4CHANNEL,SOLARPUMPE,1, POOLSTEUERUNG_RELAIS_SOLAR);
//echo("Solarpumpe laeuft weiter");
}
}
else
{
// Hitzeschutz für die Solarmatte, über 50 Grad schalte zwangsweise die Solaranlage ein, auch wenn Max-Temp Pool überschritten
if($Pool_Solar > GetValueFloat(POOLSTEUERUNG_HITZESCHUTZ_TEMP))
{
// Solar Pumpe einschalten, falls nicht schon an
if(!$Solar_Pumpe)
{
T4C(TIMED4CHANNEL,SOLARPUMPE,1, POOLSTEUERUNG_RELAIS_SOLAR);
echo("Solarpumpe Hitzeschutz eingeschaltet
");
}
}
else
{
// Solar Pumpe ausschalten, falls nicht schon aus
if($Pool_Wasser > GetValueFloat($Max_Temp))
{
if($Solar_Pumpe)
{
T4C(TIMED4CHANNEL,SOLARPUMPE,0, POOLSTEUERUNG_RELAIS_SOLAR);
echo("Solarpumpe Hitzeschutz ausgeschaltet
");
}
}
}
// Solarpumpe läuft?
if($Solar_Counter >= GetValueInteger($Min_Laufzeit))
{
if($Solar_Pumpe)
{
// Solar Pumpe ausschalten
T4C(TIMED4CHANNEL,SOLARPUMPE,0, POOLSTEUERUNG_RELAIS_SOLAR);
SetValueInteger($Betr_Minuten, GetValueInteger($Betr_Minuten)
+ GetValueInteger($Solar_Timer));
SetValueInteger($Solar_Timer, 0);
echo("Solarpumpe ausgeschaltet");
}
else
SetValueInteger($Solar_Timer,$Solar_Counter + 1);
}
}
?>