Basierend auf einem Projekt, die ich direkt in der Homematic-CCU gelöst habe, stelle ich hiermit eine Lösung für IP-Symcon zur Verfügung.
Artikel: Sascha ‘Real-RIOT’ Schmidt – MyBLOG Blog Archive Die intelligente Warmwasser Zirkulationspumpe
Für die Lösung kann folgendes Script genutzt werden:
<?
//*****************
$pumpen_id = 42990;
//*****************
$runtime_id = @IPS_GetObjectIDByName("RUN_TIME", $IPS_SELF);
$lastrun_id = @IPS_GetObjectIDByName("LAST_RUN", $IPS_SELF);
$locktime_id = @IPS_GetObjectIDByName("LOCK_TIME", $IPS_SELF);
if ( $runtime_id == 0 )
{
$runtime_id = IPS_CreateVariable(1);
IPS_SetName($runtime_id, "RUN_TIME");
IPS_SetParent($runtime_id, $IPS_SELF);
SetValue($runtime_id, 5);
}
if ( $locktime_id == 0 )
{
$locktime_id = IPS_CreateVariable(1);
IPS_SetName($locktime_id, "LOCK_TIME");
IPS_SetParent($locktime_id, $IPS_SELF);
SetValue($locktime_id, 45);
}
if ( $lastrun_id == 0 )
{
$lastrun_id = IPS_CreateVariable(1);
IPS_SetName($lastrun_id, "LAST_RUN");
IPS_SetParent($lastrun_id, $IPS_SELF);
}
$lock_time = GetValue($locktime_id);
$run_time = GetValue($runtime_id);
$last_run = GetValue($lastrun_id);
$lock_time = $lock_time*60;
$run_time = $run_time*60;
if ( $IPS_SENDER != "TimerEvent" )
{
if ( time() > $last_run + $lock_time )
{
IPS_SetScriptTimer($IPS_SELF, $run_time);
HM_WriteValueBoolean($pumpen_id, "STATE", true);
SetValue($lastrun_id, time());
}
} else
{
HM_WriteValueBoolean($pumpen_id, "STATE", false);
IPS_SetScriptTimer($IPS_SELF, 0);
}
?>
Es muß lediglich am Anfang des Scripts die ID der Zirkulationspumpe angegeben werden. Das ist bei mir ein ganz normaler Schaltaktor.
LOCK_TIME: Definiert die Zeit, die die Warmwasser Pumpe NICHT eingeschaltet werden soll (Minuten)
RUN_TIME: Definiert die Zeit, die die Warmwasser Pumpe laufen soll
LAST_RUN: Ist eine Variable, die vom Script genutzt wird und bedarf keiner Userinteraktion.
Getriggert wird das Script durch angegebene Ereignisse in IP-Symcom. Bei mir sind es beispielsweise die Bewegungsmelder in Küche, GästeWC und Bad.
Hoffe, ich konnte das verständlich darlegen.
Viele Grüße
Sascha