Servus
gehts dir um die Software oder die Hardware ?
Hardware: kannst selbst basteln oder brauchst ein fertiges Modul ?
Software: was soll deine Stellgröße sein ?
Ich hab das hier laufen, bin sehr zufrieden.
IPS regelt den Mischer damit die ISt Vorlauftemperatur(rosa) bestmöglich der Sol-Vorluaftemperatur (blau). folgt.
Rot ist die Puffertemp, also die Eingangstemperatur.
Script sieht so aus:
- sorry ist nicht für Veröffentlichung gedacht, daher sind alle ID hardgecodet.
Funktion: es wird periodisch (alle 120sek) abgefragt ob die Ausgangstemp Über oder unter der Solltemp ist.
Je nach Ergebnis wird der Mischermotor dann für 15sec in die passende Richtung einegeschaltet.
Hier im Zoom sieht man die Funktion:
# 60 / 20 gibt scheinbar kleinere Übersschwinger als 120/5
$Wartezeit = 120; // Settlingzeit, Motor Aus 120
$Einschaltzeit = 15; // Zeit während Mischermotor EIN 5
$Hysterese = 2; // Hysterese zu Zieltemperatur
IPS_SetEventCyclic(51766 /*[Heizung\Scripte\Mischersteuerung\]*/, 0, 0, 0, 0, 1 ,$Einschaltzeit);
IPS_SetEventCyclic(58574 /*[Heizung\Scripte\Mischersteuerung\]*/, 0, 0, 0, 0, 1 ,$Wartezeit);
if (IPS_GetName($_IPS['EVENT'])=='Einschaltzeit') {
TMEX_F3A_SetPin(42501 /*[Heizung\Heizkreis\Mischer]*/,0,false);
TMEX_F3A_SetPin(42501 /*[Heizung\Heizkreis\Mischer]*/,1,false);
IPS_SetEventActive(51766 /*[Heizung\Scripte\Mischersteuerung\]*/,false);
IPS_SetEventActive(58574 /*[Heizung\Scripte\Mischersteuerung\]*/,true);
}
if (IPS_GetName($_IPS['EVENT'])=='Wartezeit') {
$Soll_VL = GetValue(23336 /*[Heizung\Anlagenstatus\Soll HZG Vorlauft.]*/);
$Ist_VL = GetValue(57133 /*[Heizung\Heizkreis\Heizung_Vorlauf\Temperatur]*/);
$action = 'Idle';
if ($Ist_VL < ($Soll_VL - $Hysterese) ) $action = 'Auf';
if ($Ist_VL > ($Soll_VL + $Hysterese) ) $action = 'Zu';
if (GetValue(32015 /*[Heizung\Heizkreis\Relaisgruppe\Heizungspumpe]*/) == False) $action = 'Idle';
Switch ($action){
Case 'Idle':
TMEX_F3A_SetPin(42501 /*[Heizung\Heizkreis\Mischer]*/,0,false);
TMEX_F3A_SetPin(42501 /*[Heizung\Heizkreis\Mischer]*/,1,false);
break;
Case 'Zu':
TMEX_F3A_SetPin(42501 /*[Heizung\Heizkreis\Mischer]*/,0,false);
TMEX_F3A_SetPin(42501 /*[Heizung\Heizkreis\Mischer]*/,1,true);
break;
Case 'Auf':
TMEX_F3A_SetPin(42501 /*[Heizung\Heizkreis\Mischer]*/,0,true);
TMEX_F3A_SetPin(42501 /*[Heizung\Heizkreis\Mischer]*/,1,false);
break;
}
SetValueString(18192 /*[Heizung\Heizkreis\Mischer\Mischer-Status]*/,$action);
IPS_SetEventActive(51766 /*[Heizung\Scripte\Mischersteuerung\]*/,true);
IPS_SetEventActive(58574 /*[Heizung\Scripte\Mischersteuerung\]*/,false);
}
gruß
bb