Skript für dein Pellet Lager:
<?
$time = 17; // Einschaltdauer in Sekunden // hier kannst du evtl. noch auf 18 erhöhen, musst du testen, damit deine maximalen 20 Sek. nicht überschritten werden
$SaugturbineStatus = 51132 /*Saugturbine]*/; // Boolean Variable
$HMaktorPelletsauger = 37917 /*[HomeMatic\Aktor\Schalterdose\HM Schalterdose 3_Pelletsauger]*/;
$erg1 = GetValue(11304 /*[Heizungssteuerung\UVR1611 - 2\D8 LagPel 1/3]*/); // Boolean Variable
$erg2 = GetValue(30325 /*[Heizungssteuerung\UVR1611 - 2\D7 LagPel (1/2)]*/); // Boolean Variable
$erg3 = GetValue(11704 /*[Heizungssteuerung\UVR1611 - 2\D6 PelletLageraußen]*/); // Boolean Variable
if ($erg2 == true) {
IPS_SetScriptTimer($IPS_SELF, 0); // Timer abschalten
HM_WriteValueBoolean($HMaktorPelletsauger, "STATE" , false); // Dein Pelletsauger wieder abgeschaltet
SetValue($SaugturbineStatus, false); // Status für Turbinenaktivität wird auf false (AUS) gesetzt
}
if (($erg1 == false) AND ($erg3 == true)) { // wenn $erg1 GLEICH false und $erg3 GLEICH true, dann wird der Timer auf aktuell 17 Sek. gestellt und der Pelletsauger eingestellt
IPS_SetScriptTimer($IPS_SELF, $time);
HM_WriteValueBoolean($HMaktorPelletsauger, "STATE" , true); // Dein Pelletsauger wird eingeschaltet
SetValue($SaugturbineStatus, true); // Status für Turbinenaktivität wird auf TRUE gesetzt
}
// der folgende if-Teil wird nur aufgerufen, wenn das Skript per Timer gestartet wurde (also nach den eben festgelegten 17 Sekunden)
if($IPS_SENDER == "TimerEvent") {
HM_WriteValueBoolean($HMaktorPelletsauger, "STATE" , false); // Dein Pelletsauger wird erstmal ausgeschaltet (ist jetzt knapp 20 Sek. gelaufen - musst du Live testen)
SetValue($SaugturbineStatus, false); // Status für Turbinenaktivität wird auf FALSE gesetzt
if ($erg2 == false){ // wenn $erg2 GLEICH false ist, dann wird der Timer aktiv gelassen, 5 Sek. gewartet, Sauger wieder eigneschaltet und dann das Skript erneut aufgerufen nach 17 Sek.
IPS_Sleep(5000); // 5 Sekunden das Skript pausieren lassen
HM_WriteValueBoolean($HMaktorPelletsauger, "STATE" , true); // Dein Pelletsauger wieder eingeschalten (bis in 17 Sekunden das Skript wieder aufgerufen wird und der Sauger erstmal wieder abgeschaltet wird)
SetValue($SaugturbineStatus, true); // Status für Turbinenaktivität wird auf TRUE gesetzt
}
}
?>
Und diesem Skript fügst du jetzt noch ein AUSGELÖSTES Ereignis hinzu (Im Skript „Ereignis hinzufügen“ und dann „ausgelöstes Ereignis“, dann die zu überwachende Variable wählen und auf Wertänderung oder einen bestimmten Wert oder was zu benötigst. Zum Beispiel wenn Sensor X den Wert false hat oder irgendwie sowas. Dann wird das Skript immer aufgerufen, wenn dein Sensor meldet „Lager zu leer“. Und natürlich eine Überwachung auf die Variable $erg2, damit gestoppt werden kann.
Dann wird das Skript immer wieder durch den Timer gestartet (alle 17 Sekunden), bis $erg2 GLEICH true und dann wird so lange nichts gemacht, bis das auslösende Ereignis das Skript wieder aufruft und die Bedingung „if (($erg1 == false) AND ($erg3 == true))“ erfüllt wurde, dann beginnt der Ablauf erneut…
Ich hoffe damit kannst du jetzt was anfangen 
Grüße,
Chris
PS: Du solltest dich dringend mal in die Grundlagen von PHP und IPS einlesen, ist nicht so schwer, habe es selbst auch geschafft 
PPS: Hier gibst die IP Symcon Befehlsreferenz, sehr wichtig
>> http://www.ip-symcon.de/service/dokumentation/befehlsreferenz/