Hallo Zusammen,
nach dem ich im letzten Jahr einfach nicht die Zeit gefunden habe meine Sprinkler so zu Programmieren, wie ich es mir vorstelle und ich mir eine Umgehung gebastelt habe (Ich habe einfach für die 6 Sprinklerstränge Zeitschaltungen gebaut und eine Variable zum „Aktiviern/Deaktivieren“ gesetzt.
Das hat soweit auch gut funktioniert, aber ich wollte eigentlich was anderes.
Zum System, ich habe 6 Sprinklerstränge, die von Magnetventilen geöffnet und geschlossen werden. Die Magnetventile werden von HomeMatic IP Wired geschaltet.
Das Funktioniert soweit.
Jetzt soll jeder Strang nach einander für 20min „offen“ sein.
Da Skripte nicht länger als 30sek sein sollen, kommt hier wohl der TimerEvent Befehl zum Einsatz.
Also für alle 6 Sprinklerstränge ein Skript angelegt.
hier ein Beispiel:
// Sprinkler 4 Ein- und Ausschalten
if($_IPS['SENDER'] == "TimerEvent")
{
//Aus Befehl
RequestAction(31915, false);
//Timer ausschalten
IPS_SetScriptTimer($_IPS['SELF'], 0);
}
else
{
//An Befehl
RequestAction(31915, true);
//Timer anschalten
IPS_SetScriptTimer($_IPS['SELF'], 60);
}
zum Testen mal 60sek.
Funktioniert auch, jetzt aber zu meinem Problem. Wie mache ich weiter. Erst dachte ich, ich kann einfach in einem Skript alle 6 Sträng nach einander mit dem TimerEvent für 60sek laufen lassen, aber es gehen immer alle gleichzeitig an.
Hier ein Beispiel:
// Sprinkler 4 Ein- und Ausschalten
if($_IPS['SENDER'] == "TimerEvent")
{
//Aus Befehl
RequestAction(31915, false);
//Timer ausschalten
IPS_SetScriptTimer($_IPS['SELF'], 0);
}
else
{
//An Befehl
RequestAction(31915, true);
//Timer anschalten
IPS_SetScriptTimer($_IPS['SELF'], 60);
}
// Sprinkler 5 Ein- und Ausschalten
if($_IPS['SENDER'] == "TimerEvent")
{
//Aus Befehl
RequestAction(31916, false);
//Timer ausschalten
IPS_SetScriptTimer($_IPS['SELF'], 0);
}
else
{
//An Befehl
RequestAction(31916, true);
//Timer anschalten
IPS_SetScriptTimer($_IPS['SELF'], 60);
}
Das war also auch nicht die Lösung.
- Idee, alle 6 Sprinklerstränge in 6 Einzelne Skripte und ein Hauptskript, welches nach einander die Sprinkler startet.
Beispiel:
IPS_RunScriptWait(23336);
IPS_RunScriptWait(30719);
IPS_RunScriptWait(23217);
Aber die Starten auch alle gleichzeitig dann.
Es ist sicher nur ein kleiner Denkfehler, aber ich komme nicht drauf.
Wer kann mir einen stoß in die richtige Richtung geben?
Viele Dank!
Gruß Sven