Beispiel für Anwendung der Ventil-Stellung (Position)

Der folgende Skript soll dafür sorgen, dass die Pumpe für den Heizkörperkreis stoppt, wenn alle Ventile geschlossen sind, d.h. keine Wärme benötigt wird. Da die Kesselsteuerung nichts über die Ventilstellungen wissen kann, läuft die Pumpe meist den ganzen Winter durch. Dadurch wird nicht nur Strom verschwendet sondern auch zusätzliches Gas, weil das zirkulierende Wasser schneller abkühlt und der Kessel dadurch öfter wieder einschaltet.

Die Funktionsweise ist simpel: Jede Änderung (nicht Update) triggert den Skript, sind alle Stellungen null wird die Pumpe für eine bestimmte Zeit abgeschaltet. Der Skripttimer ruft den Skript spätestens nach dieser Zeit auf, und überprüft wieder, ob noch alle Ventile zu sind.

Sollte in der Zwischenzeit z.B. ein einziges Ventil öffnen, d.h. der *.Position Wert ändert sich, dann wird der Skript sofort ausgeführt und die Pumpe ohne Verzögerung wieder frei gegeben.

Dadurch, dass die Pumpe immer nur für eine bestimmte Zeit abgeschaltet wird, kann die Pumpe auch dann wieder anlaufen, wenn zwischenzeitlich der PC abgestürzt ist. Ohne diese Maßnahme wäre die Heizung ohne PC nicht mehr funktionsfähig. Ich sach nur WAF :wink:


<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Check_Position.ips.php
Trigger  : OnChange *.position
Interval : 15 min
*/

/*
   Control of radiatior heating circuit pump. If all valves are closed,
   no warm water is required so the pump can be turned of in order to safe
   electrical and heating energy.

   Triggered by any change of valve *.postion values.
   If ALL *.position values are zero, disable pump for given $interval.
   Watchdog timer rechecks valve *.position values after $interval seconds
   for higher reliabilty.
   Negative logic together with "pulsed" turn-off ensures pump is running
   in case of computer crash or after a power failure.
*/

$scriptname = "Check_Position";
$debug = TRUE;
$interval = 60 * 15; // watchdog time 15 minutes

$location = array ( "WC","Roland","Daniela",
                    "Schlafen","Bad","Florian");
// sum up all positon values
$sum_positions = 0;
foreach ($location as $Location) {
   if (IPS_VariableExists("$Location.Position"))
      $sum_positions += GetValueFloat("$Location.Position");
      echo "$Location: ".GetValueFloat("$Location.Position")."
";
   }

if ($sum_positions == 0) {
   $message = "Position sum: $sum_positions => Disable radiator pump! ($IPS_SENDER)";
   // negative logic: turn switch on to disable the pump for $interval seconds.
   FS20_SwitchDuration(39663,TRUE,$interval);
   }
else {
   $message = "Position sum: $sum_positions => Enable radiator pump! ($IPS_SENDER)";
   // negative logic: turn switch off to enable the pump.
   FS20_SwitchMode(39663,FALSE);
   }

echo "$message
";
IPS_LogMessage($scriptname,$message);

// check again in $interval seconds
IPS_SetScriptTimer($scriptname,$interval);
?>

Geniale Idee, die ich prinzipiell auch brauchen kann. Nur haben wir im Haus eine Kombitherme mit einem Thermostat im Wohnzimmer. Ich muß jetzt durch dieses Script die Therme ansprechen (quasi als Ersatz zu dem Thermen-Thermostat). Ich glaub, ich zerleg das Teil mal…

lg, Gregor.

Oder das therme-kontakt zum thermostat ubernehmen lassen durch IPS. Soll man nichts zerlegen…
ODER sicherheitshalbe (so hab’s ich gemacht:) den thermostat auf frost-frei setzen und parallel an das kontakt die FS20-aktor. Lasst mich in der schnee fahren ohne gefahren - aber pass auf! Wenn der rechner sturtzt dan gibt es eine chance das die ventile alle geschlossen sind… und die lassen sich nicht offen drucken durch dem wasserdruck von die pumpe, wie herkommliche thermostat-ventile. Also brauchte mann noch ein störsender die die kommunication FHT-stellantriebe unterbricht, und nur dann ist man sicher. (Wenn es keine funk mehr gibt FHT-stellantriebe offnen sie sich auf 30%)

Also: störsender gesucht :cool:

Hallo Zusammen

ich realisiere etwas ändliches. Meine Pumpe soll sich stoppen wenn kein Ventil geöffnet ist. Das ganze ist wird über einen Mikroprozessor realisiert, welcher die Pumpe und die Vorlauftemperatur regelt, so bin ich Server unabhängig.

Da ich es doch etwas störend empfinden würde wenn die Heizung kalt bleiben würde wenn der IP-Symcon Server einen hänger hat, habe ich einen Timer im Mikroprozessor erstellt welcher nach Ablauf einer definierten Zeit die Pumpe wieder startet.
Der Timer wird im normal Fall innerhalb der Ablaufzeit durch die IP-Symcon Software zurück gesetzt, so das diese wieder von Null beginnt.

Gruss Patrik