Pumpe schalten

Ich möchte eine <pumpe mit einem Taster für eine bestimmte Zeit schalten.
Jetzt habe ich ein <beispiel gefunden.

<?
/*


IP-SYNCOM Event Scripting


*/
//File: Pumpe.ips.php
// Trigger: Pumpe

if(GetValueBoolean(„Pumpe“)) {
if (IPS_GetScriptTimer(„Pumpe“) == 0) {
IPS_SetScriptTimer(„Pumpe“, 5 * 60);
} else {
SetValueBoolean(„Pumpe“, False);
IPS_SetScriptTimer(„Pumpe“, 0);
}
} else {
IPS_SetScriptTimer(„Pumpe“, 0);
}
?>

mit der ich die Pumpe für 5 Minuten steuern kann.
Habe mit diesem Beispiel ein neues script angelegt. " Pumpe " dann bei Variables Pumpe vom Typ Integer.
Beim Taster habe ich unter Data dieses verknüpft.
Klappt leider nicht.Was ist falsch. :confused:

status-variabelen werden gerecht gesetzt usw.
aber du hast vergessen die pumpe selber zu schalten :


FS20_SwitchDuration([pumpe-id],true,5*60);

Danke für den Hinweis, aber ich blutiger anfänger und habe noch nicht viel ahnung von PHP.
Wo muss ich den Code von Dir einfügen ?
wer dankbar für eine Hilfe

Hinter


       IPS_SetScriptTimer("Pumpe", 5 * 60);

muss der Aufruf, wobei [pumpe-id] durch die Instanz deiner Pumpe eingetauscht werden muss (CTRL + I)

Grüße, paresy

Hallo habe ich so gemacht, aber funzt nicht.

<?
/*


IP-SYNCOM Event Scripting


*/
//File: Pumpe_Heizung.ips.php
// Trigger: Pumpe_Heizung

if(GetValueBoolean(„Pumpe_Heizung“)) {
if (IPS_GetScriptTimer(„Pumpe_Heizung“) == 0) {
IPS_SetScriptTimer(„Pumpe_Heizung“, 5 * 60);
FS20_SwitchDuration(63241,true,5*60);
} else {
SetValueBoolean(„Pumpe_Heizung“, False);
IPS_SetScriptTimer(„Pumpe_Heizung“, 0);
}
} else {
IPS_SetScriptTimer(„Pumpe_Heizung“, 0);
}
?>

Wenn ich dn Taster betätige geht die Pumpe an aber aus leider nicht.
was kann noch falsch sein ?

Fehlermeldung
Notice: Unable to locate IPSVariable: Pumpe_Heizung in line 10

Du sollst naturlich dem Variabel Pumpe_Heizung (gross & klein geschrieben) als Boolean wert in die Variabelen eintragen
ABER :
Wenn du dein knopf druckst dann ist Pumpe_Heizung = ‚true‘, script wird getriggert und gibt Pumpe_Heizung = ‚false‘ (knopf ist schon lange nicht mehr gedruckt) :o oder hat dein knopf ‚latch‘ werte (immer on oder off)?
Deine pumpe lauft 300s und dan ist alle - brauchst du wieder eine munze ein zu werfen und dan lauft er wieder 300s. Etwas zu Eukonomisch :smiley:

Was mochtest du schalten? Wenn der status-variabele Pumpe_Heizung an ist, soll die Pumpe fur 300s laufen … und dann ?
Das ganze kommt meiner einsicht auf dieser commando zuruck :


<?/*
*******************************
IP-SYNCOM Event Scripting
*******************************
*/
//File: Pumpe_Heizung.ips.php
// Trigger: Pumpe_Heizung
    FS20_SwitchDuration(63241,true,5*60);
?>

Hmm, wie kann die Pumpe angehen, wenn das Script nicht ausgeführt wird?

Theoretisch müsste es so aussehen:

  1. FS20RX (11111) ist deine Fernbedienung -> Variable TasterXYZ
  2. FS20TX (22222) ist deine Pumpe -> Variable Pumpe_Heizung
  3. Pumpe_Heizung ist dein Script -> Trigger TasterXYZ

Auszug Script Pumpe_Heizung:


 <?
 /*
 *******************************
 IP-SYMCON Event Scripting
 *******************************
 */
 //File: Pumpe_Heizung.ips.php
 //Trigger: TasterXYZ
$timer=5*60; //5 Minuten an!
 
//Wenn über Taster getriggert anschalten bzw zeit verlängern
    if ($IPS_SENDER == "Variable") {
 IPS_SetScriptTimer("Pumpe_Heizung", $timer);
 FS20_SwitchDuration(22222,true,$timer); 
    } else { //andernfalls status auf false setzten
 SetValueBoolean("Pumpe_Heizung", False);
 IPS_SetScriptTimer("Pumpe_Heizung", 0);
    }
 ?>

Grüße, paresy

Danke für die tolle Hilfe.
Klappt jetzt.:slight_smile: :slight_smile: